@antelopejs/interface-dms 0.13.2 → 0.14.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 +243 -2
- package/README.md +9 -9
- package/dist/attachments.js +1 -1
- package/dist/attachments.js.map +1 -1
- package/dist/auth/db/models/sessions.model.d.ts +3 -3
- package/dist/auth/db/models/userExternalIdentities.model.d.ts +3 -3
- package/dist/auth/db/models/users.model.d.ts +3 -3
- package/dist/auth/db/tables/users.table.d.ts +3 -3
- package/dist/auth/index.js +3 -5
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/internal/jwt-auth-decorator.js +1 -2
- package/dist/auth/internal/jwt-auth-decorator.js.map +1 -1
- package/dist/auth/internal/request-authenticators.js +3 -5
- package/dist/auth/internal/request-authenticators.js.map +1 -1
- package/dist/auth/internal/request-principal.js +2 -2
- package/dist/auth/internal/request-principal.js.map +1 -1
- package/dist/base/activity-feed.d.ts +2 -2
- package/dist/base/banner.js +2 -2
- package/dist/base/banner.js.map +1 -1
- package/dist/base/block-registry/helpers.js +1 -1
- package/dist/base/block-registry/helpers.js.map +1 -1
- package/dist/base/block-registry/internal/describe.js +9 -14
- package/dist/base/block-registry/internal/describe.js.map +1 -1
- package/dist/base/block-registry/registry.js +2 -2
- package/dist/base/block-registry/registry.js.map +1 -1
- package/dist/base/block-registry/types.d.ts +1 -1
- package/dist/base/chart-card.js +8 -6
- package/dist/base/chart-card.js.map +1 -1
- package/dist/base/chart-schemas.d.ts +70 -70
- package/dist/base/chart.d.ts +1 -1
- package/dist/base/chart.js +1 -1
- package/dist/base/chart.js.map +1 -1
- package/dist/base/code-block.d.ts +1 -1
- package/dist/base/code-block.js +2 -2
- package/dist/base/code-block.js.map +1 -1
- package/dist/base/data-types/compare-types.js +18 -14
- package/dist/base/data-types/compare-types.js.map +1 -1
- package/dist/base/data-types/default/choices.d.ts +1 -1
- package/dist/base/data-types/default/choices.js +17 -16
- package/dist/base/data-types/default/choices.js.map +1 -1
- package/dist/base/data-types/default/inputs.d.ts +1 -1
- package/dist/base/data-types/default/numbers.d.ts +2 -1
- package/dist/base/data-types/default/numbers.js +8 -5
- package/dist/base/data-types/default/numbers.js.map +1 -1
- package/dist/base/data-types/default/relations.d.ts +0 -6
- package/dist/base/data-types/default/relations.js +14 -7
- package/dist/base/data-types/default/relations.js.map +1 -1
- package/dist/base/data-types/default-types.d.ts +0 -1
- package/dist/base/data-types/default-types.js +0 -2
- package/dist/base/data-types/default-types.js.map +1 -1
- package/dist/base/data-types/index.js +0 -1
- package/dist/base/data-types/index.js.map +1 -1
- package/dist/base/data-types/internal/relation-endpoints.js +5 -3
- package/dist/base/data-types/internal/relation-endpoints.js.map +1 -1
- package/dist/base/data-types/internal/table-view-meta-slot.d.ts +17 -0
- package/dist/base/data-types/internal/table-view-meta-slot.js +25 -0
- package/dist/base/data-types/internal/table-view-meta-slot.js.map +1 -0
- package/dist/base/empty-state.d.ts +1 -1
- package/dist/base/export-jobs.d.ts +47 -19
- package/dist/base/export-jobs.js +39 -4
- package/dist/base/export-jobs.js.map +1 -1
- package/dist/base/form-schema.d.ts +0 -1
- package/dist/base/form-schema.js +12 -12
- package/dist/base/form-schema.js.map +1 -1
- package/dist/base/grid.js +1 -1
- package/dist/base/grid.js.map +1 -1
- package/dist/base/guard.d.ts +4 -4
- package/dist/base/guard.js +1 -1
- package/dist/base/guard.js.map +1 -1
- package/dist/base/helpers/archive-mode-helpers.js +4 -5
- package/dist/base/helpers/archive-mode-helpers.js.map +1 -1
- package/dist/base/helpers/file-refs.js +14 -24
- package/dist/base/helpers/file-refs.js.map +1 -1
- package/dist/base/internal/chart.d.ts +1 -1
- package/dist/base/internal/chart.js +1 -1
- package/dist/base/internal/chart.js.map +1 -1
- package/dist/base/internal/display.js +1 -3
- package/dist/base/internal/display.js.map +1 -1
- package/dist/base/internal/export-jobs.d.ts +11 -0
- package/dist/base/internal/export-jobs.js +11 -0
- package/dist/base/internal/export-jobs.js.map +1 -1
- package/dist/base/internal/form-block-schema.d.ts +1 -1
- package/dist/base/internal/form-block-schema.js +1 -1
- package/dist/base/internal/form-block-schema.js.map +1 -1
- package/dist/base/internal/form-schema-validation.js +1 -2
- package/dist/base/internal/form-schema-validation.js.map +1 -1
- package/dist/base/internal/series-bucket.js +2 -2
- package/dist/base/internal/series-bucket.js.map +1 -1
- package/dist/base/key-value-list.d.ts +10 -10
- package/dist/base/kpi-card.js +1 -2
- package/dist/base/kpi-card.js.map +1 -1
- package/dist/base/meter.d.ts +1 -1
- package/dist/base/placeholder.js +1 -1
- package/dist/base/placeholder.js.map +1 -1
- package/dist/base/query-response.js +2 -3
- package/dist/base/query-response.js.map +1 -1
- package/dist/base/searchable.d.ts +3 -3
- package/dist/base/searchable.js.map +1 -1
- package/dist/base/stack.js +1 -1
- package/dist/base/stack.js.map +1 -1
- package/dist/base/tab.js +2 -3
- package/dist/base/tab.js.map +1 -1
- package/dist/base/table-view/data-functions.d.ts +10 -11
- package/dist/base/table-view/data-functions.js.map +1 -1
- package/dist/base/table-view/factory.js +2 -0
- package/dist/base/table-view/factory.js.map +1 -1
- package/dist/base/table-view/internal/archive-filter.d.ts +21 -0
- package/dist/base/table-view/internal/archive-filter.js +48 -0
- package/dist/base/table-view/internal/archive-filter.js.map +1 -0
- package/dist/base/table-view/internal/auth.d.ts +2 -2
- package/dist/base/table-view/internal/auth.js +1 -3
- package/dist/base/table-view/internal/auth.js.map +1 -1
- package/dist/base/table-view/internal/column-conditions.js +3 -12
- package/dist/base/table-view/internal/column-conditions.js.map +1 -1
- package/dist/base/table-view/internal/data-functions.d.ts +2 -2
- package/dist/base/table-view/internal/erase-row-type.d.ts +4 -0
- package/dist/base/table-view/internal/erase-row-type.js +12 -0
- package/dist/base/table-view/internal/erase-row-type.js.map +1 -0
- package/dist/base/table-view/internal/factory-helpers.js +9 -5
- package/dist/base/table-view/internal/factory-helpers.js.map +1 -1
- package/dist/base/table-view/internal/factory-lifecycle-created.js +3 -2
- package/dist/base/table-view/internal/factory-lifecycle-created.js.map +1 -1
- package/dist/base/table-view/internal/factory-lifecycle-options.js +2 -2
- package/dist/base/table-view/internal/factory-lifecycle-options.js.map +1 -1
- package/dist/base/table-view/internal/factory-private-actions.js +5 -6
- package/dist/base/table-view/internal/factory-private-actions.js.map +1 -1
- package/dist/base/table-view/internal/footer.js +21 -13
- package/dist/base/table-view/internal/footer.js.map +1 -1
- package/dist/base/table-view/internal/guards.d.ts +1 -1
- package/dist/base/table-view/internal/guards.js +14 -12
- package/dist/base/table-view/internal/guards.js.map +1 -1
- package/dist/base/table-view/internal/meta-helpers.js +7 -3
- package/dist/base/table-view/internal/meta-helpers.js.map +1 -1
- package/dist/base/table-view/internal/meta.js +18 -8
- package/dist/base/table-view/internal/meta.js.map +1 -1
- package/dist/base/table-view/internal/nav-badges.js +4 -7
- package/dist/base/table-view/internal/nav-badges.js.map +1 -1
- package/dist/base/table-view/internal/option-views.d.ts +7 -4
- package/dist/base/table-view/internal/realtime.js +8 -13
- package/dist/base/table-view/internal/realtime.js.map +1 -1
- package/dist/base/table-view/internal/request-filter.js +2 -3
- package/dist/base/table-view/internal/request-filter.js.map +1 -1
- package/dist/base/table-view/internal/resource-form.js +3 -1
- package/dist/base/table-view/internal/resource-form.js.map +1 -1
- package/dist/base/table-view/internal/row-actions-schema.d.ts +6 -6
- package/dist/base/table-view/internal/row-rules.js +2 -2
- package/dist/base/table-view/internal/row-rules.js.map +1 -1
- package/dist/base/table-view/internal/tabs.js +4 -6
- package/dist/base/table-view/internal/tabs.js.map +1 -1
- package/dist/base/table-view/internal/writer.js +2 -2
- package/dist/base/table-view/internal/writer.js.map +1 -1
- package/dist/base/table-view/meta.d.ts +5 -5
- package/dist/base/table-view/meta.js +9 -3
- package/dist/base/table-view/meta.js.map +1 -1
- package/dist/base/table-view/routes.d.ts +39 -12
- package/dist/base/table-view/routes.js +0 -1
- package/dist/base/table-view/routes.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +127 -127
- package/dist/base/top-list-card.d.ts +4 -4
- package/dist/base/top-list-card.js +1 -2
- package/dist/base/top-list-card.js.map +1 -1
- package/dist/component-options/data-type.d.ts +2 -1
- package/dist/component-options/data-type.js +6 -2
- package/dist/component-options/data-type.js.map +1 -1
- package/dist/component-slots.js +1 -1
- package/dist/component-slots.js.map +1 -1
- package/dist/connection-access.d.ts +46 -0
- package/dist/connection-access.js +73 -0
- package/dist/connection-access.js.map +1 -0
- package/dist/data-controllers/members.d.ts +15 -2
- package/dist/data-controllers/roles.d.ts +15 -2
- package/dist/db/internal/exportJobs.model.d.ts +3 -3
- package/dist/db/internal/inviteResolutions.model.d.ts +3 -3
- package/dist/db/internal/tenantLifecycle.model.d.ts +4 -4
- package/dist/db/internal/tenantLifecycle.model.js +2 -3
- package/dist/db/internal/tenantLifecycle.model.js.map +1 -1
- package/dist/db/models/roles.model.d.ts +3 -3
- package/dist/db/models/tenantMembers.model.d.ts +3 -3
- package/dist/db/models/tenants.model.d.ts +3 -3
- package/dist/db/models/user_invites.model.d.ts +18 -3
- package/dist/db/models/user_invites.model.js +28 -0
- package/dist/db/models/user_invites.model.js.map +1 -1
- package/dist/db/tables/user_invites.table.d.ts +6 -1
- package/dist/db/tables/user_invites.table.js +3 -0
- package/dist/db/tables/user_invites.table.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/component-permissions.js +2 -2
- package/dist/internal/component-permissions.js.map +1 -1
- package/dist/internal/component-serialization.js +5 -3
- package/dist/internal/component-serialization.js.map +1 -1
- package/dist/internal/component-slots.js +8 -10
- package/dist/internal/component-slots.js.map +1 -1
- package/dist/internal/component-watches.js +5 -4
- package/dist/internal/component-watches.js.map +1 -1
- package/dist/internal/invite-content.d.ts +8 -0
- package/dist/internal/invite-content.js +36 -0
- package/dist/internal/invite-content.js.map +1 -0
- package/dist/internal/tenant-ownership.d.ts +5 -4
- package/dist/internal/tenant-ownership.js +5 -4
- package/dist/internal/tenant-ownership.js.map +1 -1
- package/dist/internal/uploads.js +5 -2
- package/dist/internal/uploads.js.map +1 -1
- package/dist/invite-extensions/internal/delivery.d.ts +3 -2
- package/dist/invite-extensions/internal/delivery.js +3 -2
- package/dist/invite-extensions/internal/delivery.js.map +1 -1
- package/dist/invite-extensions/internal/form-slot.js +4 -7
- package/dist/invite-extensions/internal/form-slot.js.map +1 -1
- package/dist/invite-extensions/registry.js +5 -6
- package/dist/invite-extensions/registry.js.map +1 -1
- package/dist/invite-resolution.d.ts +5 -1
- package/dist/invite-resolution.js +10 -26
- package/dist/invite-resolution.js.map +1 -1
- package/dist/invites.d.ts +5 -0
- package/dist/invites.js +27 -1
- package/dist/invites.js.map +1 -1
- package/dist/notifications/builder.js +17 -21
- package/dist/notifications/builder.js.map +1 -1
- package/dist/notifications/internal.d.ts +0 -1
- package/dist/notifications/internal.js +0 -1
- package/dist/notifications/internal.js.map +1 -1
- package/dist/notifications/sendable.d.ts +1 -2
- package/dist/notifications/sendable.js +1 -12
- package/dist/notifications/sendable.js.map +1 -1
- package/dist/notifications/types.d.ts +1 -4
- package/dist/page/categories.d.ts +6 -0
- package/dist/page/categories.js +10 -3
- package/dist/page/categories.js.map +1 -1
- package/dist/page/controllers.d.ts +6 -9
- package/dist/page/controllers.js +9 -7
- package/dist/page/controllers.js.map +1 -1
- package/dist/page/internal/categories.js +43 -32
- package/dist/page/internal/categories.js.map +1 -1
- package/dist/page/internal/category-resolution.d.ts +31 -0
- package/dist/page/internal/category-resolution.js +63 -0
- package/dist/page/internal/category-resolution.js.map +1 -0
- package/dist/page/internal/component-target.js +2 -2
- package/dist/page/internal/component-target.js.map +1 -1
- package/dist/page/internal/controller-options.js +2 -2
- package/dist/page/internal/controller-options.js.map +1 -1
- package/dist/page/internal/extension-assembly.js +6 -9
- package/dist/page/internal/extension-assembly.js.map +1 -1
- package/dist/page/internal/layout-filter.js +5 -5
- package/dist/page/internal/layout-filter.js.map +1 -1
- package/dist/page/internal/metadata-extension-contributions.js +1 -2
- package/dist/page/internal/metadata-extension-contributions.js.map +1 -1
- package/dist/page/internal/metadata-info.js +19 -7
- package/dist/page/internal/metadata-info.js.map +1 -1
- package/dist/page/internal/metadata-layout.d.ts +3 -2
- package/dist/page/internal/metadata-layout.js.map +1 -1
- package/dist/page/internal/metadata-lifecycle.js +1 -4
- package/dist/page/internal/metadata-lifecycle.js.map +1 -1
- package/dist/page/internal/metadata-publish.js +7 -6
- package/dist/page/internal/metadata-publish.js.map +1 -1
- package/dist/page/internal/metadata-registration.js +8 -6
- package/dist/page/internal/metadata-registration.js.map +1 -1
- package/dist/page/internal/metadata-upload-registration.js +4 -8
- package/dist/page/internal/metadata-upload-registration.js.map +1 -1
- package/dist/page/internal/metadata-uploads.js +4 -7
- package/dist/page/internal/metadata-uploads.js.map +1 -1
- package/dist/page/internal/nav-badges.js +2 -3
- package/dist/page/internal/nav-badges.js.map +1 -1
- package/dist/page/internal/page-controller.d.ts +18 -0
- package/dist/page/internal/page-controller.js +36 -0
- package/dist/page/internal/page-controller.js.map +1 -0
- package/dist/page/internal/page-record.js +11 -22
- package/dist/page/internal/page-record.js.map +1 -1
- package/dist/page/internal/table-view-ids.js +4 -3
- package/dist/page/internal/table-view-ids.js.map +1 -1
- package/dist/page/metadata.d.ts +3 -3
- package/dist/page/metadata.js +6 -4
- package/dist/page/metadata.js.map +1 -1
- package/dist/page/types.d.ts +8 -2
- package/dist/page.d.ts +1 -1
- package/dist/page.js +2 -1
- package/dist/page.js.map +1 -1
- package/dist/permissions.d.ts +2 -1
- package/dist/permissions.js +5 -2
- package/dist/permissions.js.map +1 -1
- package/dist/request-tenant.js +2 -2
- package/dist/request-tenant.js.map +1 -1
- package/dist/tenant-lifecycle.js +7 -6
- package/dist/tenant-lifecycle.js.map +1 -1
- package/dist/tenant-provisioning.js +1 -1
- package/dist/tenant-provisioning.js.map +1 -1
- package/dist/types.d.ts +7 -3
- package/dist/uploads.js +7 -8
- package/dist/uploads.js.map +1 -1
- package/dist/utils/internal/controller-class.d.ts +9 -0
- package/dist/utils/internal/controller-class.js +19 -0
- package/dist/utils/internal/controller-class.js.map +1 -0
- package/dist/utils/internal/row-instance.js +10 -2
- package/dist/utils/internal/row-instance.js.map +1 -1
- package/dist/utils/internal/value-parser.js +1 -6
- package/dist/utils/internal/value-parser.js.map +1 -1
- package/docs/1.core/11.modules-and-dynamic-menus.md +3 -3
- package/docs/1.core/2.pages-and-modules.md +2 -1
- package/docs/1.core/4.permissions.md +2 -2
- package/docs/1.core/5.tenancy.md +1 -1
- package/docs/1.core/6.invites.md +3 -1
- package/docs/2.auth/2.authentication.md +1 -1
- package/docs/2.auth/3.tokens-and-sessions.md +1 -1
- package/docs/3.base/1.introduction.md +1 -1
- package/docs/3.base/14.table-events-and-helpers.md +1 -1
- package/docs/3.base/15.table-sources-and-gates.md +14 -2
- package/docs/3.base/3.forms.md +1 -1
- package/docs/3.base/4.tables.md +1 -1
- package/docs/3.base/5.charts-and-widgets.md +3 -3
- package/docs/3.base/8.data-types.md +1 -1
- package/docs/3.base/9.helpers.md +16 -5
- package/docs/4.notifications/3.sending.md +0 -11
- package/docs/index.md +1 -1
- package/package.json +11 -11
package/dist/index.js
CHANGED
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.StampUploadFieldTokens = exports.SignUploadToken = exports.RegisterTenantAccessGate = exports.CheckTenantAccess = exports.AssertTenantAccess = exports.SubscribeMessage = exports.RegisterPageTopic = exports.PublishMessage = exports.QuickActionCategory = exports.QuickAction = exports.RegisterPermissionsResolver = exports.ApplyPermissionsResolvers = void 0;
|
|
17
|
+
exports.UnmarkModuleScopedPermission = exports.RegisterPermission = exports.MarkModuleScopedPermission = exports.IsModuleScopedPermission = exports.HasPermission = exports.HasAnyPermission = exports.GetUserPermissions = exports.GetPermissions = exports.GetPermission = exports.GetEffectiveUserPermissions = exports.settingsCategory = exports.pagesCategory = exports.pageRoutePath = exports.modulesCategory = exports.isOwnerOnly = exports.isInsideModule = exports.RootPageController = exports.RootCategory = exports.RegisterPageExtension = exports.RegisterPage = exports.RegisterModule = exports.RegisterDynamicMenuProvider = exports.PageMetadata = exports.PageController = exports.PAGE_ROUTE_PREFIX = exports.NotifyMenuChanged = exports.MODULE_URL_PREFIX = exports.GetRegisteredPageIds = exports.GetPermissionId = exports.GetPageLayoutBySlug = exports.GetFrontendModules = exports.GetComponentPermissionIds = exports.ClearPageLayoutBySlug = exports.Category = exports.AddFrontendModule = exports.RegisterLayoutBanner = exports.LayoutBannerVariant = exports.LayoutBannerScope = exports.inviteeDisplayName = exports.inviteUserToTenant = exports.createUserInviteToken = exports.INVITE_TOKEN_LENGTH = exports.INVITE_EXPIRY_DAYS = exports.RegisterInviteExtension = exports.authenticateTenantRequest = exports.AuthUserWithPermission = exports.AuthTenantOwner = exports.AuthTenantMember = exports.SaveComponentFiles = exports.GetAttachmentValidationMetadata = void 0;
|
|
18
|
+
exports.StampUploadFieldTokens = exports.SignUploadToken = exports.RegisterTenantAccessGate = exports.CheckTenantAccess = exports.AssertTenantAccess = exports.SubscribeMessage = exports.RegisterPageTopic = exports.PublishMessage = exports.QuickActionCategory = exports.QuickAction = exports.RegisterPermissionsResolver = exports.ApplyPermissionsResolvers = exports.UnregisterPermission = void 0;
|
|
19
19
|
var attachments_1 = require("./attachments");
|
|
20
20
|
Object.defineProperty(exports, "GetAttachmentValidationMetadata", { enumerable: true, get: function () { return attachments_1.GetAttachmentValidationMetadata; } });
|
|
21
21
|
Object.defineProperty(exports, "SaveComponentFiles", { enumerable: true, get: function () { return attachments_1.SaveComponentFiles; } });
|
|
@@ -62,6 +62,7 @@ Object.defineProperty(exports, "RegisterPageExtension", { enumerable: true, get:
|
|
|
62
62
|
Object.defineProperty(exports, "RootCategory", { enumerable: true, get: function () { return page_1.RootCategory; } });
|
|
63
63
|
Object.defineProperty(exports, "RootPageController", { enumerable: true, get: function () { return page_1.RootPageController; } });
|
|
64
64
|
Object.defineProperty(exports, "isInsideModule", { enumerable: true, get: function () { return page_1.isInsideModule; } });
|
|
65
|
+
Object.defineProperty(exports, "isOwnerOnly", { enumerable: true, get: function () { return page_1.isOwnerOnly; } });
|
|
65
66
|
Object.defineProperty(exports, "modulesCategory", { enumerable: true, get: function () { return page_1.modulesCategory; } });
|
|
66
67
|
Object.defineProperty(exports, "pageRoutePath", { enumerable: true, get: function () { return page_1.pageRoutePath; } });
|
|
67
68
|
Object.defineProperty(exports, "pagesCategory", { enumerable: true, get: function () { return page_1.pagesCategory; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,6CAMuB;AAFrB,8HAAA,+BAA+B,OAAA;AAC/B,iHAAA,kBAAkB,OAAA;AAEpB,8CAA4B;AAC5B,oDAAkC;AAClC,8CAA4B;AAC5B,mCAOkB;AANhB,0GAAA,gBAAgB,OAAA;AAChB,yGAAA,eAAe,OAAA;AACf,gHAAA,sBAAsB,OAAA;AAGtB,mHAAA,yBAAyB,OAAA;AAE3B,0CAAwB;AACxB,yDAW6B;AAD3B,4HAAA,uBAAuB,OAAA;AAEzB,sDAAoC;AACpC,qCAUmB;AAPjB,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AAGnB,gHAAA,qBAAqB,OAAA;AACrB,6GAAA,kBAAkB,OAAA;AAClB,6GAAA,kBAAkB,OAAA;AAEpB,mDAS0B;AALxB,mHAAA,iBAAiB,OAAA;AAEjB,qHAAA,mBAAmB,OAAA;AAEnB,sHAAA,oBAAoB,OAAA;AAEtB,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,6CAMuB;AAFrB,8HAAA,+BAA+B,OAAA;AAC/B,iHAAA,kBAAkB,OAAA;AAEpB,8CAA4B;AAC5B,oDAAkC;AAClC,8CAA4B;AAC5B,mCAOkB;AANhB,0GAAA,gBAAgB,OAAA;AAChB,yGAAA,eAAe,OAAA;AACf,gHAAA,sBAAsB,OAAA;AAGtB,mHAAA,yBAAyB,OAAA;AAE3B,0CAAwB;AACxB,yDAW6B;AAD3B,4HAAA,uBAAuB,OAAA;AAEzB,sDAAoC;AACpC,qCAUmB;AAPjB,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AAGnB,gHAAA,qBAAqB,OAAA;AACrB,6GAAA,kBAAkB,OAAA;AAClB,6GAAA,kBAAkB,OAAA;AAEpB,mDAS0B;AALxB,mHAAA,iBAAiB,OAAA;AAEjB,qHAAA,mBAAmB,OAAA;AAEnB,sHAAA,oBAAoB,OAAA;AAEtB,+BA2DgB;AA1Dd,yGAAA,iBAAiB,OAAA;AAEjB,gGAAA,QAAQ,OAAA;AAER,6GAAA,qBAAqB,OAAA;AAWrB,iHAAA,yBAAyB,OAAA;AACzB,0GAAA,kBAAkB,OAAA;AAClB,2GAAA,mBAAmB,OAAA;AACnB,uGAAA,eAAe,OAAA;AACf,4GAAA,oBAAoB,OAAA;AACpB,yGAAA,iBAAiB,OAAA;AAYjB,yGAAA,iBAAiB,OAAA;AACjB,yGAAA,iBAAiB,OAAA;AACjB,sGAAA,cAAc,OAAA;AAOd,oGAAA,YAAY,OAAA;AAKZ,mHAAA,2BAA2B,OAAA;AAC3B,sGAAA,cAAc,OAAA;AACd,oGAAA,YAAY,OAAA;AACZ,6GAAA,qBAAqB,OAAA;AACrB,oGAAA,YAAY,OAAA;AACZ,0GAAA,kBAAkB,OAAA;AAClB,sGAAA,cAAc,OAAA;AACd,mGAAA,WAAW,OAAA;AACX,uGAAA,eAAe,OAAA;AACf,qGAAA,aAAa,OAAA;AACb,qGAAA,aAAa,OAAA;AACb,wGAAA,gBAAgB,OAAA;AAElB,6CAcuB;AAbrB,0HAAA,2BAA2B,OAAA;AAC3B,4GAAA,aAAa,OAAA;AACb,6GAAA,cAAc,OAAA;AACd,iHAAA,kBAAkB,OAAA;AAClB,+GAAA,gBAAgB,OAAA;AAChB,4GAAA,aAAa,OAAA;AACb,uHAAA,wBAAwB,OAAA;AACxB,yHAAA,0BAA0B,OAAA;AAG1B,iHAAA,kBAAkB,OAAA;AAClB,2HAAA,4BAA4B,OAAA;AAC5B,mHAAA,oBAAoB,OAAA;AAEtB,+DAOgC;AAN9B,iIAAA,yBAAyB,OAAA;AAKzB,mIAAA,2BAA2B,OAAA;AAE7B,iDAOyB;AANvB,4GAAA,WAAW,OAAA;AACX,oHAAA,mBAAmB,OAAA;AAMrB,uCAQoB;AAPlB,0GAAA,cAAc,OAAA;AAId,6GAAA,iBAAiB,OAAA;AACjB,4GAAA,gBAAgB,OAAA;AAGlB,oDAAkC;AAClC,mDAAiC;AACjC,iDAOyB;AANvB,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,yHAAA,wBAAwB,OAAA;AAK1B,kDAAgC;AAChC,qDAAmC;AACnC,qDAAmC;AACnC,wDAAsC;AACtC,0CAAwB;AACxB,qCAAoE;AAA3D,0GAAA,eAAe,OAAA;AAAE,iHAAA,sBAAsB,OAAA"}
|
|
@@ -5,6 +5,7 @@ exports.componentPermissionId = componentPermissionId;
|
|
|
5
5
|
exports.actionPermissionId = actionPermissionId;
|
|
6
6
|
exports.toActionPermission = toActionPermission;
|
|
7
7
|
exports.resolveButtonPermissionId = resolveButtonPermissionId;
|
|
8
|
+
const type_check_1 = require("../utils/internal/type-check");
|
|
8
9
|
/** @internal */
|
|
9
10
|
exports.actionComponents = new WeakMap();
|
|
10
11
|
/** @internal */
|
|
@@ -35,8 +36,7 @@ function toActionPermission(action, componentPermissionId) {
|
|
|
35
36
|
}
|
|
36
37
|
/** @internal */
|
|
37
38
|
function resolveButtonPermissionId(permission, componentPermissionId) {
|
|
38
|
-
|
|
39
|
-
if (typeof permission !== "string")
|
|
39
|
+
if (!(0, type_check_1.isString)(permission))
|
|
40
40
|
return permission.permissionId;
|
|
41
41
|
if (!componentPermissionId)
|
|
42
42
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-permissions.js","sourceRoot":"","sources":["../../src/internal/component-permissions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"component-permissions.js","sourceRoot":"","sources":["../../src/internal/component-permissions.ts"],"names":[],"mappings":";;;AAcA,sDAOC;AAGD,gDAMC;AAGD,gDAeC;AAGD,8DAOC;AAlDD,6DAAwD;AAExD,gBAAgB;AACH,QAAA,gBAAgB,GAAG,IAAI,OAAO,EAAqB,CAAC;AAEjE,gBAAgB;AAChB,SAAgB,qBAAqB,CACnC,MAAc,EACd,GAA8B;IAE9B,MAAM,SAAS,GAAG,wBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAED,gBAAgB;AAChB,SAAgB,kBAAkB,CAChC,MAAc,EACd,qBAAyC;IAEzC,IAAI,CAAC,qBAAqB;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,GAAG,qBAAqB,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;AACjD,CAAC;AAED,gBAAgB;AAChB,SAAgB,kBAAkB,CAChC,MAAc,EACd,qBAAyC;IAEzC,IAAI,CAAC,qBAAqB;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO;QACL,EAAE,EAAE,GAAG,qBAAqB,IAAI,MAAM,CAAC,EAAE,EAAE;QAC3C,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK;QAC9B,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;QAC5B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW;QAC1C,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,CAC/C,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,qBAAqB,IAAI,QAAQ,EAAE,CACrD;QACD,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc;KACjD,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,SAAgB,yBAAyB,CACvC,UAA4B,EAC5B,qBAAyC;IAEzC,IAAI,CAAC,IAAA,qBAAQ,EAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC,YAAY,CAAC;IAC1D,IAAI,CAAC,qBAAqB;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,GAAG,qBAAqB,IAAI,UAAU,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.normalizeComponentAnchor = normalizeComponentAnchor;
|
|
4
4
|
exports.serializedInfo = serializedInfo;
|
|
5
5
|
exports.serializeInfoSync = serializeInfoSync;
|
|
6
|
+
const type_check_1 = require("../utils/internal/type-check");
|
|
6
7
|
/** @internal */
|
|
7
8
|
function normalizeComponentAnchor(anchor) {
|
|
8
|
-
|
|
9
|
-
return typeof anchor === "string" ? anchor.split(".") : [...anchor];
|
|
9
|
+
return (0, type_check_1.isString)(anchor) ? anchor.split(".") : [...anchor];
|
|
10
10
|
}
|
|
11
11
|
/** @internal */
|
|
12
12
|
async function serializedInfo(componentInfo, options) {
|
|
@@ -25,7 +25,9 @@ async function serializeChild(child) {
|
|
|
25
25
|
}
|
|
26
26
|
/** @internal */
|
|
27
27
|
function serializeInfoSync(info) {
|
|
28
|
-
|
|
28
|
+
if (info instanceof Promise) {
|
|
29
|
+
throw new TypeError("serializeSync() cannot read a component built from a promise: call serialize()");
|
|
30
|
+
}
|
|
29
31
|
const componentInfo = info;
|
|
30
32
|
if (componentInfo.children) {
|
|
31
33
|
const serializedChildren = componentInfo.children.map((child) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-serialization.js","sourceRoot":"","sources":["../../src/internal/component-serialization.ts"],"names":[],"mappings":";;AAUA,
|
|
1
|
+
{"version":3,"file":"component-serialization.js","sourceRoot":"","sources":["../../src/internal/component-serialization.ts"],"names":[],"mappings":";;AAUA,4DAIC;AAGD,wCAQC;AAcD,8CAqBC;AArDD,6DAAwD;AAExD,gBAAgB;AAChB,SAAgB,wBAAwB,CACtC,MAAuB;IAEvB,OAAO,IAAA,qBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,gBAAgB;AACT,KAAK,UAAU,cAAc,CAClC,aAA+C,EAC/C,OAAsB;IAEtB,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ;QACrC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC/D,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,KAAqE;IAErE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,GAAG,KAAK,CAAC;IACpD,OAAO;QACL,EAAE;QACF,SAAS,EAAE,MAAM,SAAS,CAAC,SAAS,EAAE;QACtC,GAAG,eAAe;KACnB,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,SAAgB,iBAAiB,CAC/B,IAA6B;IAE7B,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,SAAS,CACjB,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,kBAAkB,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9D,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,GAAG,KAAK,CAAC;YACpD,OAAO;gBACL,EAAE;gBACF,SAAS,EAAE,SAAS,CAAC,aAAa,EAAE;gBACpC,GAAG,eAAe;aACnB,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.slotResolvers = exports.COMPONENT_SLOT_KEY = void 0;
|
|
4
4
|
exports.ResolveComponentSlots = ResolveComponentSlots;
|
|
5
5
|
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
6
|
+
const type_check_1 = require("../utils/internal/type-check");
|
|
6
7
|
/**
|
|
7
8
|
* Property a serialized component's options carry to open an extension point.
|
|
8
9
|
* A component that declares one says "whoever owns this slot may rewrite my
|
|
@@ -22,7 +23,7 @@ exports.COMPONENT_SLOT_KEY = "slotId";
|
|
|
22
23
|
* sits above this one in the layering, and the walker tests resolve forms built
|
|
23
24
|
* by `Form`, so the two cannot drift apart.
|
|
24
25
|
*/
|
|
25
|
-
const SLOT_FORM_COMPONENT_NAME = "dms-form";
|
|
26
|
+
const SLOT_FORM_COMPONENT_NAME = "dms-form-block";
|
|
26
27
|
/** @internal */
|
|
27
28
|
exports.slotResolvers = new Map();
|
|
28
29
|
function isSlotFormOptions(options) {
|
|
@@ -39,10 +40,9 @@ function isSlotFormOptions(options) {
|
|
|
39
40
|
* form declares `slotId`, and it always serializes a `fields` array, so a node
|
|
40
41
|
* that is anything else is left alone, whatever its options say.
|
|
41
42
|
*/
|
|
42
|
-
// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Takes one node of the serialized options tree ResolveComponentSlots walks over a page's cached layout, any primitive, array or object, and narrows it with Array.isArray and
|
|
43
|
+
// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Takes one node of the serialized options tree ResolveComponentSlots walks over a page's cached layout, any primitive, array or object, and narrows it with Array.isArray and isObject before reading it.
|
|
43
44
|
function slotFormOptionsOf(node) {
|
|
44
|
-
|
|
45
|
-
if (!node || typeof node !== "object" || Array.isArray(node)) {
|
|
45
|
+
if (!node || !(0, type_check_1.isObject)(node) || Array.isArray(node)) {
|
|
46
46
|
return undefined;
|
|
47
47
|
}
|
|
48
48
|
if (!("componentName" in node) ||
|
|
@@ -52,13 +52,12 @@ function slotFormOptionsOf(node) {
|
|
|
52
52
|
const options = "options" in node ? node.options : undefined;
|
|
53
53
|
return isSlotFormOptions(options) ? options : undefined;
|
|
54
54
|
}
|
|
55
|
-
// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Takes one node of the serialized options tree ResolveComponentSlots walks over a page's cached layout, any primitive, array or object, and narrows it with Array.isArray and
|
|
55
|
+
// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Takes one node of the serialized options tree ResolveComponentSlots walks over a page's cached layout, any primitive, array or object, and narrows it with Array.isArray and isObject before reading it.
|
|
56
56
|
function hasResolvableSlot(node) {
|
|
57
57
|
if (Array.isArray(node)) {
|
|
58
58
|
return node.some(hasResolvableSlot);
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
if (!node || typeof node !== "object") {
|
|
60
|
+
if (!node || !(0, type_check_1.isObject)(node)) {
|
|
62
61
|
return false;
|
|
63
62
|
}
|
|
64
63
|
if (slotFormOptionsOf(node)) {
|
|
@@ -71,15 +70,14 @@ function hasResolvableSlot(node) {
|
|
|
71
70
|
* what a resolver contributes is never walked again, which would let a
|
|
72
71
|
* contribution declaring the slot it was contributed to loop forever.
|
|
73
72
|
*/
|
|
74
|
-
// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Takes one node of the serialized options tree ResolveComponentSlots walks over a page's cached layout, any primitive, array or object, and narrows it with Array.isArray and
|
|
73
|
+
// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Takes one node of the serialized options tree ResolveComponentSlots walks over a page's cached layout, any primitive, array or object, and narrows it with Array.isArray and isObject before reading it.
|
|
75
74
|
async function resolveNode(node) {
|
|
76
75
|
if (Array.isArray(node)) {
|
|
77
76
|
for (const item of node)
|
|
78
77
|
await resolveNode(item);
|
|
79
78
|
return;
|
|
80
79
|
}
|
|
81
|
-
|
|
82
|
-
if (!node || typeof node !== "object") {
|
|
80
|
+
if (!node || !(0, type_check_1.isObject)(node)) {
|
|
83
81
|
return;
|
|
84
82
|
}
|
|
85
83
|
for (const value of Object.values(node))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-slots.js","sourceRoot":"","sources":["../../src/internal/component-slots.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"component-slots.js","sourceRoot":"","sources":["../../src/internal/component-slots.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,14 +58,15 @@ function buildWatchAction(event, functionId, opts) {
|
|
|
58
58
|
}
|
|
59
59
|
return watch;
|
|
60
60
|
}
|
|
61
|
+
/** Whether builder options are an object, which alone can carry `watchActions`. */
|
|
62
|
+
const isObjectOption = (opts) => typeof opts === "object" && opts !== null;
|
|
61
63
|
/** @internal */
|
|
62
64
|
function stripWatchActions(opts) {
|
|
63
|
-
|
|
64
|
-
if (!opts || typeof opts !== "object" || !("watchActions" in opts)) {
|
|
65
|
+
if (!opts || !isObjectOption(opts) || !("watchActions" in opts)) {
|
|
65
66
|
return opts;
|
|
66
67
|
}
|
|
67
68
|
const { watchActions: _ignored, ...rest } = opts;
|
|
68
|
-
//
|
|
69
|
+
// SAFETY: rest is an O exactly when O does not require watchActions and keeps its members as own enumerable fields, since the spread copies those and drops watchActions. Every options type of this package declares watchActions optional (BaseComponentProps, SlotFormOptions); a module's options type that requires it, or reads members through a prototype, is not one.
|
|
69
70
|
return rest;
|
|
70
71
|
}
|
|
71
72
|
/** @internal */
|
|
@@ -76,7 +77,7 @@ function mergeWatchesIntoOptions(options, watches) {
|
|
|
76
77
|
const optionsObj = options ?? {};
|
|
77
78
|
const existing = optionsObj.watchActions ?? [];
|
|
78
79
|
const merged = [...existing, ...watches];
|
|
79
|
-
//
|
|
80
|
+
// SAFETY: The result is a T exactly when options are a T whose watchActions, where T declares it, holds WatchAction[] as BaseComponentProps declares, or options are absent and T requires no member, as for CustomComponent's ComponentBuilder<unknown>. A builder whose T requires a member and that was never given options gets an object without it.
|
|
80
81
|
return { ...optionsObj, watchActions: merged };
|
|
81
82
|
}
|
|
82
83
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-watches.js","sourceRoot":"","sources":["../../src/internal/component-watches.ts"],"names":[],"mappings":";;AAWA,8CAwBC;AAGD,4CAGC;AAGD,4CAQC;AAGD,4CAkBC;
|
|
1
|
+
{"version":3,"file":"component-watches.js","sourceRoot":"","sources":["../../src/internal/component-watches.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { UserInvite } from "../db/tables/user_invites.table";
|
|
2
|
+
/**
|
|
3
|
+
* Whether two invitations carry the same content, ignoring their id, token
|
|
4
|
+
* and dates.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare function isSameInviteContent(left: UserInvite | null | undefined, right: UserInvite | null | undefined): boolean;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSameInviteContent = isSameInviteContent;
|
|
4
|
+
const node_util_1 = require("node:util");
|
|
5
|
+
/**
|
|
6
|
+
* The invitation's content as plain data.
|
|
7
|
+
*
|
|
8
|
+
* `roles_ids` and `extensions` reach this comparison as per-context views when
|
|
9
|
+
* the caller lives in another module, and `isDeepStrictEqual` refuses two views
|
|
10
|
+
* holding the same values, which would report a faithful retry as a conflict.
|
|
11
|
+
*/
|
|
12
|
+
function inviteContent(invite) {
|
|
13
|
+
if (!invite)
|
|
14
|
+
return null;
|
|
15
|
+
return JSON.stringify([
|
|
16
|
+
invite.email,
|
|
17
|
+
invite.firstname,
|
|
18
|
+
invite.lastname,
|
|
19
|
+
invite.language,
|
|
20
|
+
invite.roles_ids,
|
|
21
|
+
invite.asTenantOwner,
|
|
22
|
+
invite.extensions,
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Whether two invitations carry the same content, ignoring their id, token
|
|
27
|
+
* and dates.
|
|
28
|
+
*
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
function isSameInviteContent(left, right) {
|
|
32
|
+
const leftContent = inviteContent(left);
|
|
33
|
+
const rightContent = inviteContent(right);
|
|
34
|
+
return (0, node_util_1.isDeepStrictEqual)(leftContent === null ? null : JSON.parse(leftContent), rightContent === null ? null : JSON.parse(rightContent));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=invite-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invite-content.js","sourceRoot":"","sources":["../../src/internal/invite-content.ts"],"names":[],"mappings":";;AA6BA,kDAUC;AAvCD,yCAA8C;AAG9C;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,MAAqC;IAC1D,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,MAAM,CAAC,KAAK;QACZ,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,aAAa;QACpB,MAAM,CAAC,UAAU;KAClB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,IAAmC,EACnC,KAAoC;IAEpC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,IAAA,6BAAiB,EACtB,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EACrD,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CACxD,CAAC;AACJ,CAAC"}
|
|
@@ -6,10 +6,11 @@ import type { TenantMembershipPatch } from "../tenant-ownership";
|
|
|
6
6
|
*/
|
|
7
7
|
export declare function applyAdmittedTenantOwnership(userModel: UserModel, userId: string, tenantId: string, patch: TenantMembershipPatch): Promise<void>;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* separately, see `RegisterSaasMode`) and outside the
|
|
9
|
+
* Outside SaaS mode the default tenant's owners are the platform owners, so
|
|
10
|
+
* this copies `TenantMember.isTenantOwner` on the default tenant onto
|
|
11
|
+
* `users.owner`. It does nothing in SaaS mode (where `users.owner` reflects
|
|
12
|
+
* platform ownership separately, see `RegisterSaasMode`) and outside the
|
|
13
|
+
* default tenant.
|
|
13
14
|
*
|
|
14
15
|
* @internal
|
|
15
16
|
*/
|
|
@@ -75,10 +75,11 @@ async function applyAdmittedTenantOwnership(userModel, userId, tenantId, patch)
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* separately, see `RegisterSaasMode`) and outside the
|
|
78
|
+
* Outside SaaS mode the default tenant's owners are the platform owners, so
|
|
79
|
+
* this copies `TenantMember.isTenantOwner` on the default tenant onto
|
|
80
|
+
* `users.owner`. It does nothing in SaaS mode (where `users.owner` reflects
|
|
81
|
+
* platform ownership separately, see `RegisterSaasMode`) and outside the
|
|
82
|
+
* default tenant.
|
|
82
83
|
*
|
|
83
84
|
* @internal
|
|
84
85
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-ownership.js","sourceRoot":"","sources":["../../src/internal/tenant-ownership.ts"],"names":[],"mappings":";;AAoDA,oEA6BC;
|
|
1
|
+
{"version":3,"file":"tenant-ownership.js","sourceRoot":"","sources":["../../src/internal/tenant-ownership.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/uploads.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.readUploadFieldOptions = readUploadFieldOptions;
|
|
4
|
+
/** Whether component options are an object a token can be stamped into; an array is not. */
|
|
5
|
+
function isStampableOptions(options) {
|
|
6
|
+
return (typeof options === "object" && options !== null && !Array.isArray(options));
|
|
7
|
+
}
|
|
4
8
|
/**
|
|
5
9
|
* Read the component options of a file or image field before a token is
|
|
6
10
|
* stamped into them. Absent options become an empty object that carries the
|
|
@@ -12,8 +16,7 @@ exports.readUploadFieldOptions = readUploadFieldOptions;
|
|
|
12
16
|
*/
|
|
13
17
|
function readUploadFieldOptions(field) {
|
|
14
18
|
const options = field.component.options ?? {};
|
|
15
|
-
|
|
16
|
-
if (typeof options !== "object" || Array.isArray(options)) {
|
|
19
|
+
if (!isStampableOptions(options)) {
|
|
17
20
|
throw new TypeError(`A ${field.type} field's component options must be an object, got ${JSON.stringify(options)}`);
|
|
18
21
|
}
|
|
19
22
|
field.component.options = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../src/internal/uploads.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../src/internal/uploads.ts"],"names":[],"mappings":";;AAsDA,wDAYC;AA5BD,4FAA4F;AAC5F,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAC3E,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAC,KAGtC;IACC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CACjB,KAAK,KAAK,CAAC,IAAI,qDAAqD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -25,8 +25,9 @@ export declare function CollectInviteExtensionPayloads(body: unknown): InviteExt
|
|
|
25
25
|
* Hand each extension the payload its invitation carried, now that the invitee
|
|
26
26
|
* is a member of the tenant.
|
|
27
27
|
*
|
|
28
|
-
*
|
|
29
|
-
* invalid stored payloads and failed handlers
|
|
28
|
+
* Without retryOnFailure, a failure is logged and the call resolves. Durable
|
|
29
|
+
* delivery requests retryOnFailure: invalid stored payloads and failed handlers
|
|
30
|
+
* then keep the decision pending.
|
|
30
31
|
*
|
|
31
32
|
* @internal
|
|
32
33
|
*/
|
|
@@ -40,8 +40,9 @@ body) {
|
|
|
40
40
|
* Hand each extension the payload its invitation carried, now that the invitee
|
|
41
41
|
* is a member of the tenant.
|
|
42
42
|
*
|
|
43
|
-
*
|
|
44
|
-
* invalid stored payloads and failed handlers
|
|
43
|
+
* Without retryOnFailure, a failure is logged and the call resolves. Durable
|
|
44
|
+
* delivery requests retryOnFailure: invalid stored payloads and failed handlers
|
|
45
|
+
* then keep the decision pending.
|
|
45
46
|
*
|
|
46
47
|
* @internal
|
|
47
48
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/delivery.ts"],"names":[],"mappings":";;AAkCA,wEAcC;
|
|
1
|
+
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/delivery.ts"],"names":[],"mappings":";;AAkCA,wEAcC;AAYD,0DAmBC;AAYD,0DAoBC;AA9GD,qDAK0B;AAC1B,yCAA6E;AAQ7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,8BAA8B;AAC5C,sMAAsM;AACtM,IAAa;IAEb,MAAM,MAAM,GAAG,IAAA,oCAAmB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,IAAA,+BAAoB,GAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAA,wBAAO,EAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxC,IAAA,iCAAgB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,uBAAuB,CAC3C,QAAoD,EACpD,MAAoB,EACpB,OAA+B,EAC/B,UAAiC,EAAE;IAEnC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,IAAA,+BAAoB,GAAE,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,4BAAW,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,oCAAyB,EAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAClE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM;QAC3C,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,uBAAuB,CAC3C,QAAoD,EACpD,OAA6B,EAC7B,UAAiC,EAAE;IAEnC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,IAAA,+BAAoB,GAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,SAAS;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAClB,IAAA,4BAAW,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,EAC3C,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,oCAAyB,EAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM;QAC3C,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -7,6 +7,7 @@ const component_slots_1 = require("../../internal/component-slots");
|
|
|
7
7
|
const component_slots_2 = require("../../component-slots");
|
|
8
8
|
const field_ids_1 = require("./field-ids");
|
|
9
9
|
const registry_1 = require("./registry");
|
|
10
|
+
const type_check_1 = require("../../utils/internal/type-check");
|
|
10
11
|
/**
|
|
11
12
|
* Slot the DMS invite form opens for `RegisterInviteExtension`.
|
|
12
13
|
*
|
|
@@ -34,14 +35,11 @@ function flattenSerializedFields(fields) {
|
|
|
34
35
|
}
|
|
35
36
|
function prefixWatchAction(key, watch) {
|
|
36
37
|
const params = { ...watch.params };
|
|
37
|
-
|
|
38
|
-
if ("targetField" in params && typeof params.targetField === "string") {
|
|
38
|
+
if ("targetField" in params && (0, type_check_1.isString)(params.targetField)) {
|
|
39
39
|
params.targetField = (0, field_ids_1.inviteExtensionFieldId)(key, params.targetField);
|
|
40
40
|
}
|
|
41
41
|
const conditions = watch.onParam
|
|
42
|
-
? [watch.onParam].flat().map((condition) => condition.key === WATCH_FIELD_CONDITION_KEY &&
|
|
43
|
-
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Conditions support nonstring operands; remap only string field references without validating unrelated watch values.
|
|
44
|
-
typeof condition.value === "string"
|
|
42
|
+
? [watch.onParam].flat().map((condition) => condition.key === WATCH_FIELD_CONDITION_KEY && (0, type_check_1.isString)(condition.value)
|
|
45
43
|
? {
|
|
46
44
|
...condition,
|
|
47
45
|
value: (0, field_ids_1.inviteExtensionFieldId)(key, condition.value),
|
|
@@ -181,8 +179,7 @@ function assembleFields(own, contributions, hostOrientation) {
|
|
|
181
179
|
return assembled;
|
|
182
180
|
}
|
|
183
181
|
function mergeSchema(own, contributions) {
|
|
184
|
-
|
|
185
|
-
if (!own || typeof own !== "object")
|
|
182
|
+
if (!own || !(0, type_check_1.isObject)(own))
|
|
186
183
|
return own;
|
|
187
184
|
const source = own;
|
|
188
185
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-slot.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/form-slot.ts"],"names":[],"mappings":";;;AAAA,gEAA6D;AAC7D,0CAMyB;AAEzB,oEAAoE;AACpE,2DAAgF;AAChF,2CAAqD;AACrD,yCAIoB;
|
|
1
|
+
{"version":3,"file":"form-slot.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/form-slot.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,17 +65,16 @@ function assertUsableKey(key) {
|
|
|
65
65
|
*/
|
|
66
66
|
function RegisterInviteExtension(options) {
|
|
67
67
|
assertUsableKey(options.key);
|
|
68
|
+
// SAFETY: Registrations of different payload types share one registry, so it holds the handlers with T erased. The handlers get a T exactly when every call passes what readPayload parsed with this registration's schema, or undefined where the handler admits it: DeliverInviteExtensions, CleanupInviteExtensions and notifyUpdate, their only callers, do.
|
|
69
|
+
const erased = options;
|
|
68
70
|
const info = {
|
|
69
71
|
key: options.key,
|
|
70
72
|
component: options.component,
|
|
71
73
|
schema: options.schema,
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
// oxlint-disable-next-line anti-slop/require-safety-comment-for-type-assertion -- Cleanup receives this registration's parsed payload or undefined; the erased registry type cannot retain its correlation with T.
|
|
75
|
-
onCleanup: options.onCleanup,
|
|
74
|
+
onAccept: erased.onAccept,
|
|
75
|
+
onCleanup: erased.onCleanup,
|
|
76
76
|
editable: options.editable,
|
|
77
|
-
|
|
78
|
-
onUpdate: options.onUpdate,
|
|
77
|
+
onUpdate: erased.onUpdate,
|
|
79
78
|
label: options.label,
|
|
80
79
|
description: options.description,
|
|
81
80
|
placement: resolvePlacement(options.placement),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/invite-extensions/registry.ts"],"names":[],"mappings":";;;AA2EA,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/invite-extensions/registry.ts"],"names":[],"mappings":";;;AA2EA,0DAuBC;AAlGD,+DAGoC;AACpC,oDAAwE;AAOxE,MAAM,iBAAiB,GAA4B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAE7E,SAAS,gBAAgB,CACvB,OAAmD;IAEnD,IAAI,CAAC,OAAO;QAAE,OAAO,iBAAiB,CAAC;IACvC,MAAM,SAAS,GAA4B;QACzC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,iBAAiB,CAAC,IAAI;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAAC,KAAK;KAChD,CAAC;IACF,IAAI,OAAO,CAAC,WAAW;QAAE,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACrE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,4CAAgC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,yBAAyB,GAAG,sBAAsB,4CAAgC,sEAAsE,CACzJ,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,SAAgB,uBAAuB,CACrC,OAAkC;IAElC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE7B,iWAAiW;IACjW,MAAM,MAAM,GAAG,OAA0C,CAAC;IAC1D,MAAM,IAAI,GAAwB;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC;QAC9C,QAAQ,EAAE,IAAA,qCAAoB,GAAE,IAAI,SAAS;KAC9C,CAAC;IAEF,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,IAAiB,QAAQ,CAIxB;AAJD,WAAiB,QAAQ;IACV,gCAAuB,GAAG,IAAI,iCAAgB,EAExD,CAAC;AACN,CAAC,EAJgB,QAAQ,wBAAR,QAAQ,QAIxB"}
|
|
@@ -6,7 +6,11 @@ export type ResolveInviteInput = Omit<InviteDecision, "extensionKeys">;
|
|
|
6
6
|
export declare function loadInviteForAction(tenantId: string, inviteId: string): Promise<UserInvite | undefined>;
|
|
7
7
|
/** Rejects actions on a replacement until its creating hooks complete. */
|
|
8
8
|
export declare function assertInviteReady(tenantId: string, invite: UserInvite): Promise<void>;
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Chooses one permanent outcome; all competing lifecycle paths must use this before effects.
|
|
11
|
+
* A new replacement is refused with HTTP 409 unless its invite is the only invite of its email,
|
|
12
|
+
* so a fresh invite that lost a concurrent creation is withdrawn, never replaced.
|
|
13
|
+
*/
|
|
10
14
|
export declare function decideInvite(input: ResolveInviteInput): Promise<InviteResolution>;
|
|
11
15
|
/** Replays durable effects. Contributor callbacks must deduplicate by deliveryId; failures retain the snapshot. */
|
|
12
16
|
export declare function completeInviteResolution(resolution: InviteResolution): Promise<void>;
|
|
@@ -4,7 +4,6 @@ exports.loadInviteForAction = loadInviteForAction;
|
|
|
4
4
|
exports.assertInviteReady = assertInviteReady;
|
|
5
5
|
exports.decideInvite = decideInvite;
|
|
6
6
|
exports.completeInviteResolution = completeInviteResolution;
|
|
7
|
-
const node_util_1 = require("node:util");
|
|
8
7
|
const interface_api_util_1 = require("@antelopejs/interface-api-util");
|
|
9
8
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
10
9
|
const inviteResolutions_model_1 = require("./db/internal/inviteResolutions.model");
|
|
@@ -13,6 +12,7 @@ const registry_1 = require("./invite-extensions/internal/registry");
|
|
|
13
12
|
const tenant_members_1 = require("./tenant-members");
|
|
14
13
|
const invite_resolution_1 = require("./internal/invite-resolution");
|
|
15
14
|
const invite_membership_1 = require("./internal/invite-membership");
|
|
15
|
+
const invite_content_1 = require("./internal/invite-content");
|
|
16
16
|
const HTTP_CONFLICT = 409;
|
|
17
17
|
/** Loads the exact incarnation or its durable snapshot so failed actions can resume. */
|
|
18
18
|
async function loadInviteForAction(tenantId, inviteId) {
|
|
@@ -29,35 +29,16 @@ async function assertInviteReady(tenantId, invite) {
|
|
|
29
29
|
const parent = await (0, interface_database_decorators_1.GetModel)(inviteResolutions_model_1.InviteResolutionsModel, tenantId).get(invite.creationResolutionId);
|
|
30
30
|
(0, interface_api_util_1.assert)(parent?.completed, HTTP_CONFLICT, "Invitation creation is still pending");
|
|
31
31
|
}
|
|
32
|
-
/**
|
|
33
|
-
* The replacement's content as plain data.
|
|
34
|
-
*
|
|
35
|
-
* `roles_ids` and `extensions` reach this comparison as per-context views when
|
|
36
|
-
* the caller lives in another module, and `isDeepStrictEqual` refuses two views
|
|
37
|
-
* holding the same values — which would report a faithful retry as a conflict.
|
|
38
|
-
*/
|
|
39
|
-
function replacementContent(invite) {
|
|
40
|
-
if (!invite)
|
|
41
|
-
return null;
|
|
42
|
-
return JSON.stringify([
|
|
43
|
-
invite.email,
|
|
44
|
-
invite.firstname,
|
|
45
|
-
invite.lastname,
|
|
46
|
-
invite.language,
|
|
47
|
-
invite.roles_ids,
|
|
48
|
-
invite.asTenantOwner,
|
|
49
|
-
invite.extensions,
|
|
50
|
-
]);
|
|
51
|
-
}
|
|
52
|
-
function isSameContent(left, right) {
|
|
53
|
-
return (0, node_util_1.isDeepStrictEqual)(left === null ? null : JSON.parse(left), right === null ? null : JSON.parse(right));
|
|
54
|
-
}
|
|
55
32
|
function assertSameDecision(resolution, input) {
|
|
56
33
|
(0, interface_api_util_1.assert)(resolution.reason === input.reason &&
|
|
57
34
|
resolution.userId === (input.userId ?? null), HTTP_CONFLICT, "Invitation already has a different terminal decision");
|
|
58
|
-
(0, interface_api_util_1.assert)(
|
|
35
|
+
(0, interface_api_util_1.assert)((0, invite_content_1.isSameInviteContent)(resolution.replacement, input.replacement), HTTP_CONFLICT, "Invitation already has a different replacement");
|
|
59
36
|
}
|
|
60
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Chooses one permanent outcome; all competing lifecycle paths must use this before effects.
|
|
39
|
+
* A new replacement is refused with HTTP 409 unless its invite is the only invite of its email,
|
|
40
|
+
* so a fresh invite that lost a concurrent creation is withdrawn, never replaced.
|
|
41
|
+
*/
|
|
61
42
|
async function decideInvite(input) {
|
|
62
43
|
await assertInviteReady(input.tenantId, input.invite);
|
|
63
44
|
const model = (0, interface_database_decorators_1.GetModel)(inviteResolutions_model_1.InviteResolutionsModel, input.tenantId);
|
|
@@ -65,6 +46,9 @@ async function decideInvite(input) {
|
|
|
65
46
|
(0, interface_api_util_1.assert)(input.reason !== "accepted" ||
|
|
66
47
|
existing ||
|
|
67
48
|
new Date(input.invite.expiresAt) > new Date(), HTTP_CONFLICT, "Invitation expired before acceptance");
|
|
49
|
+
(0, interface_api_util_1.assert)(!input.replacement ||
|
|
50
|
+
existing ||
|
|
51
|
+
(await (0, interface_database_decorators_1.GetModel)(user_invites_model_1.UserInviteModel, input.tenantId).isOnlyInviteOfEmail(input.invite)), HTTP_CONFLICT, "Invitation for this email was created concurrently");
|
|
68
52
|
const extensionKeys = [
|
|
69
53
|
...new Set([
|
|
70
54
|
...Object.keys(input.invite.extensions ?? {}),
|