@antelopejs/interface-dms 0.3.5 → 0.4.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 +46 -0
- package/README.md +2 -2
- package/dist/attachments.d.ts +19 -10
- package/dist/attachments.js +15 -0
- package/dist/attachments.js.map +1 -1
- package/dist/auth/db/internal/sessions.model.d.ts +9 -0
- package/dist/auth/db/internal/sessions.model.js +31 -0
- package/dist/auth/db/internal/sessions.model.js.map +1 -0
- package/dist/auth/db/models/sessions.model.d.ts +16 -2
- package/dist/auth/db/models/sessions.model.js +33 -41
- package/dist/auth/db/models/sessions.model.js.map +1 -1
- package/dist/auth/db/models/userExternalIdentities.model.d.ts +11 -0
- package/dist/auth/db/models/userExternalIdentities.model.js +11 -0
- package/dist/auth/db/models/userExternalIdentities.model.js.map +1 -1
- package/dist/auth/db/models/users.model.d.ts +13 -0
- package/dist/auth/db/models/users.model.js +13 -0
- package/dist/auth/db/models/users.model.js.map +1 -1
- package/dist/auth/db/tables/sessions.table.d.ts +6 -1
- package/dist/auth/db/tables/sessions.table.js +0 -4
- package/dist/auth/db/tables/sessions.table.js.map +1 -1
- package/dist/auth/db/tables/userExternalIdentities.table.d.ts +24 -0
- package/dist/auth/db/tables/userExternalIdentities.table.js +13 -0
- package/dist/auth/db/tables/userExternalIdentities.table.js.map +1 -1
- package/dist/auth/db/tables/users.table.d.ts +60 -0
- package/dist/auth/db/tables/users.table.js +32 -0
- package/dist/auth/db/tables/users.table.js.map +1 -1
- package/dist/auth/index.d.ts +114 -10
- package/dist/auth/index.js +110 -17
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/internal/request-authenticators.d.ts +6 -0
- package/dist/auth/internal/request-authenticators.js +82 -0
- package/dist/auth/internal/request-authenticators.js.map +1 -0
- package/dist/auth/internal/request-principal.d.ts +10 -0
- package/dist/auth/internal/request-principal.js +27 -0
- package/dist/auth/internal/request-principal.js.map +1 -0
- package/dist/auth/internal/user-agent.d.ts +10 -0
- package/dist/auth/internal/user-agent.js +3 -0
- package/dist/auth/internal/user-agent.js.map +1 -0
- package/dist/auth/password.d.ts +19 -0
- package/dist/auth/password.js +23 -0
- package/dist/auth/password.js.map +1 -1
- package/dist/auth/request-authenticators.d.ts +4 -3
- package/dist/auth/request-authenticators.js +0 -77
- package/dist/auth/request-authenticators.js.map +1 -1
- package/dist/base/activity-feed.d.ts +210 -0
- package/dist/base/activity-feed.js +104 -0
- package/dist/base/activity-feed.js.map +1 -0
- package/dist/base/banner.d.ts +111 -0
- package/dist/base/banner.js +93 -0
- package/dist/base/banner.js.map +1 -0
- package/dist/base/block-registry/helpers.d.ts +26 -0
- package/dist/base/block-registry/helpers.js +27 -1
- package/dist/base/block-registry/helpers.js.map +1 -1
- package/dist/base/block-registry/internal/describe.d.ts +35 -0
- package/dist/base/block-registry/{describe.js → internal/describe.js} +50 -0
- package/dist/base/block-registry/internal/describe.js.map +1 -0
- package/dist/base/block-registry/internal/ui.d.ts +23 -0
- package/dist/base/block-registry/internal/ui.js +35 -0
- package/dist/base/block-registry/internal/ui.js.map +1 -0
- package/dist/base/block-registry/registry.d.ts +24 -0
- package/dist/base/block-registry/registry.js +30 -1
- package/dist/base/block-registry/registry.js.map +1 -1
- package/dist/base/block-registry/types.d.ts +149 -0
- package/dist/base/block-types.d.ts +22 -2
- package/dist/base/block-types.js +24 -2
- package/dist/base/block-types.js.map +1 -1
- package/dist/base/card.d.ts +100 -0
- package/dist/base/card.js +91 -0
- package/dist/base/card.js.map +1 -0
- package/dist/base/chart-card.d.ts +9 -2
- package/dist/base/chart-card.js +14 -1
- package/dist/base/chart-card.js.map +1 -1
- package/dist/base/chart-schemas.d.ts +127 -115
- package/dist/base/chart-schemas.js +18 -56
- package/dist/base/chart-schemas.js.map +1 -1
- package/dist/base/chart-type.d.ts +15 -0
- package/dist/base/chart-type.js +20 -0
- package/dist/base/chart-type.js.map +1 -0
- package/dist/base/chart.d.ts +31 -22
- package/dist/base/chart.js +27 -54
- package/dist/base/chart.js.map +1 -1
- package/dist/base/confirm-dialog.d.ts +6 -0
- package/dist/base/confirm-dialog.js +18 -0
- package/dist/base/confirm-dialog.js.map +1 -0
- package/dist/base/data-sources.d.ts +38 -0
- package/dist/base/data-sources.js +13 -0
- package/dist/base/data-sources.js.map +1 -1
- package/dist/base/data-types/compare-types.d.ts +0 -2
- package/dist/base/data-types/compare-types.js +18 -13
- package/dist/base/data-types/compare-types.js.map +1 -1
- package/dist/base/data-types/core.d.ts +55 -0
- package/dist/base/data-types/core.js +42 -0
- package/dist/base/data-types/core.js.map +1 -1
- package/dist/base/data-types/default-types.d.ts +241 -62
- package/dist/base/data-types/default-types.js +257 -135
- package/dist/base/data-types/default-types.js.map +1 -1
- package/dist/base/data-types/field-types.d.ts +164 -0
- package/dist/base/data-types/field-types.js +236 -0
- package/dist/base/data-types/field-types.js.map +1 -0
- package/dist/base/data-types/index.d.ts +1 -0
- package/dist/base/data-types/index.js +21 -0
- package/dist/base/data-types/index.js.map +1 -1
- package/dist/base/data-types/internal/compare-types.d.ts +3 -0
- package/dist/base/data-types/internal/compare-types.js +15 -0
- package/dist/base/data-types/internal/compare-types.js.map +1 -0
- package/dist/base/data-types/status-type.d.ts +2 -1
- package/dist/base/data-types/status-type.js +6 -0
- package/dist/base/data-types/status-type.js.map +1 -1
- package/dist/base/display.d.ts +124 -0
- package/dist/base/display.js +95 -0
- package/dist/base/display.js.map +1 -0
- package/dist/base/empty-state.d.ts +106 -0
- package/dist/base/empty-state.js +109 -0
- package/dist/base/empty-state.js.map +1 -0
- package/dist/base/export-jobs.d.ts +39 -1
- package/dist/base/export-jobs.js +12 -3
- package/dist/base/export-jobs.js.map +1 -1
- package/dist/base/form-block-schema.d.ts +345 -28
- package/dist/base/form-block-schema.js +83 -12
- package/dist/base/form-block-schema.js.map +1 -1
- package/dist/base/form-schema.d.ts +137 -22
- package/dist/base/form-schema.js +139 -42
- package/dist/base/form-schema.js.map +1 -1
- package/dist/base/form-types.d.ts +139 -4
- package/dist/base/form-types.js +7 -1
- package/dist/base/form-types.js.map +1 -1
- package/dist/base/form.js +7 -0
- package/dist/base/form.js.map +1 -1
- package/dist/base/grid.d.ts +57 -0
- package/dist/base/grid.js +43 -0
- package/dist/base/grid.js.map +1 -1
- package/dist/base/helpers/file-refs.js +5 -1
- package/dist/base/helpers/file-refs.js.map +1 -1
- package/dist/base/index.d.ts +11 -1
- package/dist/base/index.js +16 -1
- package/dist/base/index.js.map +1 -1
- package/dist/base/internal/button-availability.d.ts +17 -0
- package/dist/base/internal/button-availability.js +31 -0
- package/dist/base/internal/button-availability.js.map +1 -0
- package/dist/base/internal/chart-schemas.d.ts +6 -0
- package/dist/base/internal/chart-schemas.js +70 -0
- package/dist/base/internal/chart-schemas.js.map +1 -0
- package/dist/base/internal/chart.d.ts +22 -0
- package/dist/base/internal/chart.js +37 -0
- package/dist/base/internal/chart.js.map +1 -0
- package/dist/base/internal/confirm-dialog.d.ts +13 -0
- package/dist/base/internal/confirm-dialog.js +24 -0
- package/dist/base/internal/confirm-dialog.js.map +1 -0
- package/dist/base/internal/display.d.ts +13 -0
- package/dist/base/internal/display.js +18 -0
- package/dist/base/internal/display.js.map +1 -0
- package/dist/base/internal/export-jobs.d.ts +2 -0
- package/dist/base/internal/export-jobs.js +6 -0
- package/dist/base/internal/export-jobs.js.map +1 -0
- package/dist/base/internal/form-block-schema.d.ts +6 -0
- package/dist/base/internal/form-block-schema.js +10 -0
- package/dist/base/internal/form-block-schema.js.map +1 -0
- package/dist/base/internal/form-schema.d.ts +7 -0
- package/dist/base/internal/form-schema.js +26 -0
- package/dist/base/internal/form-schema.js.map +1 -0
- package/dist/base/internal/layouts.d.ts +39 -0
- package/dist/base/internal/layouts.js +3 -0
- package/dist/base/internal/layouts.js.map +1 -0
- package/dist/base/internal/query-response.d.ts +24 -0
- package/dist/base/internal/query-response.js +47 -0
- package/dist/base/internal/query-response.js.map +1 -0
- package/dist/base/internal/searchable.d.ts +6 -0
- package/dist/base/internal/searchable.js +15 -0
- package/dist/base/internal/searchable.js.map +1 -0
- package/dist/base/key-value-list.d.ts +160 -0
- package/dist/base/key-value-list.js +107 -0
- package/dist/base/key-value-list.js.map +1 -0
- package/dist/base/kpi-card.d.ts +12 -4
- package/dist/base/kpi-card.js +7 -0
- package/dist/base/kpi-card.js.map +1 -1
- package/dist/base/layouts.d.ts +35 -0
- package/dist/base/layouts.js +41 -7
- package/dist/base/layouts.js.map +1 -1
- package/dist/base/meter.d.ts +186 -0
- package/dist/base/meter.js +134 -0
- package/dist/base/meter.js.map +1 -0
- package/dist/base/nav-card-grid.d.ts +173 -0
- package/dist/base/nav-card-grid.js +89 -0
- package/dist/base/nav-card-grid.js.map +1 -0
- package/dist/base/period-selector.d.ts +20 -0
- package/dist/base/period-selector.js +23 -0
- package/dist/base/period-selector.js.map +1 -1
- package/dist/base/placeholder.d.ts +26 -0
- package/dist/base/placeholder.js +12 -0
- package/dist/base/placeholder.js.map +1 -1
- package/dist/base/query-response.d.ts +51 -1
- package/dist/base/query-response.js +43 -26
- package/dist/base/query-response.js.map +1 -1
- package/dist/base/resource-form-schema.d.ts +18 -0
- package/dist/base/resource-form-schema.js +20 -3
- package/dist/base/resource-form-schema.js.map +1 -1
- package/dist/base/searchable.d.ts +2 -0
- package/dist/base/searchable.js +4 -0
- package/dist/base/searchable.js.map +1 -1
- package/dist/base/section.d.ts +105 -0
- package/dist/base/section.js +123 -0
- package/dist/base/section.js.map +1 -0
- package/dist/base/stack.d.ts +113 -0
- package/dist/base/stack.js +58 -0
- package/dist/base/stack.js.map +1 -1
- package/dist/base/stat-group.d.ts +152 -0
- package/dist/base/stat-group.js +97 -0
- package/dist/base/stat-group.js.map +1 -0
- package/dist/base/tab.d.ts +25 -8
- package/dist/base/tab.js +11 -0
- package/dist/base/tab.js.map +1 -1
- package/dist/base/table-view/column-display.d.ts +195 -0
- package/dist/base/table-view/column-display.js +131 -0
- package/dist/base/table-view/column-display.js.map +1 -0
- package/dist/base/table-view/data-functions.d.ts +36 -14
- package/dist/base/table-view/data-functions.js +26 -1
- package/dist/base/table-view/data-functions.js.map +1 -1
- package/dist/base/table-view/factory-helpers.d.ts +0 -42
- package/dist/base/table-view/factory-helpers.js +1 -244
- package/dist/base/table-view/factory-helpers.js.map +1 -1
- package/dist/base/table-view/factory.d.ts +5 -1
- package/dist/base/table-view/factory.js +158 -202
- package/dist/base/table-view/factory.js.map +1 -1
- package/dist/base/table-view/internal/auth.d.ts +33 -0
- package/dist/base/table-view/{auth.js → internal/auth.js} +45 -6
- package/dist/base/table-view/internal/auth.js.map +1 -0
- package/dist/base/table-view/internal/column-display.d.ts +18 -0
- package/dist/base/table-view/internal/column-display.js +37 -0
- package/dist/base/table-view/internal/column-display.js.map +1 -0
- package/dist/base/table-view/internal/data-functions.d.ts +14 -0
- package/dist/base/table-view/internal/data-functions.js +3 -0
- package/dist/base/table-view/internal/data-functions.js.map +1 -0
- package/dist/base/table-view/internal/factory-helpers.d.ts +213 -0
- package/dist/base/table-view/internal/factory-helpers.js +477 -0
- package/dist/base/table-view/internal/factory-helpers.js.map +1 -0
- package/dist/base/table-view/{files.d.ts → internal/files.d.ts} +5 -0
- package/dist/base/table-view/{files.js → internal/files.js} +14 -4
- package/dist/base/table-view/internal/files.js.map +1 -0
- package/dist/base/table-view/internal/footer.d.ts +33 -0
- package/dist/base/table-view/internal/footer.js +112 -0
- package/dist/base/table-view/internal/footer.js.map +1 -0
- package/dist/base/table-view/{guards.d.ts → internal/guards.d.ts} +3 -0
- package/dist/base/table-view/internal/guards.js +134 -0
- package/dist/base/table-view/internal/guards.js.map +1 -0
- package/dist/base/table-view/internal/meta.d.ts +5 -0
- package/dist/base/table-view/internal/meta.js +13 -0
- package/dist/base/table-view/internal/meta.js.map +1 -0
- package/dist/base/table-view/internal/nav-badges.d.ts +9 -0
- package/dist/base/table-view/internal/nav-badges.js +79 -0
- package/dist/base/table-view/internal/nav-badges.js.map +1 -0
- package/dist/base/table-view/internal/options.d.ts +6 -0
- package/dist/base/table-view/internal/options.js +10 -0
- package/dist/base/table-view/internal/options.js.map +1 -0
- package/dist/base/table-view/internal/realtime-listeners.d.ts +4 -0
- package/dist/base/table-view/internal/realtime-listeners.js +7 -0
- package/dist/base/table-view/internal/realtime-listeners.js.map +1 -0
- package/dist/base/table-view/internal/realtime.d.ts +39 -0
- package/dist/base/table-view/internal/realtime.js +163 -0
- package/dist/base/table-view/internal/realtime.js.map +1 -0
- package/dist/base/table-view/internal/request-filter.d.ts +75 -0
- package/dist/base/table-view/internal/request-filter.js +154 -0
- package/dist/base/table-view/internal/request-filter.js.map +1 -0
- package/dist/base/table-view/internal/resource-form.d.ts +25 -0
- package/dist/base/table-view/internal/resource-form.js +91 -0
- package/dist/base/table-view/internal/resource-form.js.map +1 -0
- package/dist/base/table-view/{row-rules.d.ts → internal/row-rules.d.ts} +5 -2
- package/dist/base/table-view/{row-rules.js → internal/row-rules.js} +20 -19
- package/dist/base/table-view/internal/row-rules.js.map +1 -0
- package/dist/base/table-view/internal/tabs.d.ts +39 -0
- package/dist/base/table-view/internal/tabs.js +116 -0
- package/dist/base/table-view/internal/tabs.js.map +1 -0
- package/dist/base/table-view/internal/validation.d.ts +99 -0
- package/dist/base/table-view/internal/validation.js +297 -0
- package/dist/base/table-view/internal/validation.js.map +1 -0
- package/dist/base/table-view/internal/views.d.ts +14 -0
- package/dist/base/table-view/internal/views.js +42 -0
- package/dist/base/table-view/internal/views.js.map +1 -0
- package/dist/base/table-view/internal/writer.d.ts +39 -0
- package/dist/base/table-view/internal/writer.js +55 -0
- package/dist/base/table-view/internal/writer.js.map +1 -0
- package/dist/base/table-view/meta.d.ts +77 -4
- package/dist/base/table-view/meta.js +133 -13
- package/dist/base/table-view/meta.js.map +1 -1
- package/dist/base/table-view/options.d.ts +749 -28
- package/dist/base/table-view/options.js +9 -2
- package/dist/base/table-view/options.js.map +1 -1
- package/dist/base/table-view/realtime.d.ts +26 -17
- package/dist/base/table-view/realtime.js +29 -126
- package/dist/base/table-view/realtime.js.map +1 -1
- package/dist/base/table-view/resource-form.d.ts +11 -5
- package/dist/base/table-view/resource-form.js +15 -59
- package/dist/base/table-view/resource-form.js.map +1 -1
- package/dist/base/table-view/routes.d.ts +29 -0
- package/dist/base/table-view/routes.js +71 -6
- package/dist/base/table-view/routes.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +483 -69
- package/dist/base/table-view/schema.js +163 -18
- package/dist/base/table-view/schema.js.map +1 -1
- package/dist/base/table-view/source.d.ts +62 -0
- package/dist/base/table-view/source.js +161 -0
- package/dist/base/table-view/source.js.map +1 -0
- package/dist/base/table-view/views.d.ts +20 -0
- package/dist/base/table-view/views.js +38 -0
- package/dist/base/table-view/views.js.map +1 -0
- package/dist/base/table-view/writer.d.ts +7 -0
- package/dist/base/table-view/writer.js +17 -0
- package/dist/base/table-view/writer.js.map +1 -0
- package/dist/base/table-view.d.ts +34 -6
- package/dist/base/table-view.js +42 -6
- package/dist/base/table-view.js.map +1 -1
- package/dist/base/tenant-export-archive.d.ts +21 -0
- package/dist/base/tenant-export-archive.js +11 -0
- package/dist/base/tenant-export-archive.js.map +1 -1
- package/dist/base/top-list-card.d.ts +35 -12
- package/dist/base/top-list-card.js +24 -0
- package/dist/base/top-list-card.js.map +1 -1
- package/dist/base/types/action-target.d.ts +36 -20
- package/dist/base/types/component-input.d.ts +3 -0
- package/dist/base/types/confirm-dialog.d.ts +69 -0
- package/dist/base/types/confirm-dialog.js +3 -0
- package/dist/base/types/confirm-dialog.js.map +1 -0
- package/dist/base/types/custom-button.d.ts +48 -2
- package/dist/base/types/enum-option.d.ts +9 -0
- package/dist/base/types/error.d.ts +9 -0
- package/dist/base/types/error.js +7 -1
- package/dist/base/types/error.js.map +1 -1
- package/dist/base/types/export-status.d.ts +3 -0
- package/dist/base/types/export-status.js +3 -0
- package/dist/base/types/export-status.js.map +1 -1
- package/dist/base/types/field-config.d.ts +3 -0
- package/dist/base/types/form-mode.d.ts +3 -0
- package/dist/base/types/form-mode.js +3 -0
- package/dist/base/types/form-mode.js.map +1 -1
- package/dist/base/types/form-values.d.ts +6 -0
- package/dist/base/types/guards.d.ts +37 -7
- package/dist/base/types/index.d.ts +2 -0
- package/dist/base/types/index.js +2 -0
- package/dist/base/types/index.js.map +1 -1
- package/dist/base/types/internal/action-target.d.ts +8 -0
- package/dist/base/types/internal/action-target.js +16 -0
- package/dist/base/types/internal/action-target.js.map +1 -0
- package/dist/base/types/json.d.ts +6 -0
- package/dist/base/types/orientation.d.ts +3 -0
- package/dist/base/types/orientation.js +3 -0
- package/dist/base/types/orientation.js.map +1 -1
- package/dist/base/types/readonly-behavior.d.ts +9 -0
- package/dist/base/types/readonly-behavior.js +3 -0
- package/dist/base/types/readonly-behavior.js.map +1 -1
- package/dist/base/types/row-action.d.ts +111 -0
- package/dist/base/types/size.d.ts +1 -0
- package/dist/base/types/size.js +4 -0
- package/dist/base/types/size.js.map +1 -1
- package/dist/base/types/tone.d.ts +14 -0
- package/dist/base/types/tone.js +24 -0
- package/dist/base/types/tone.js.map +1 -0
- package/dist/client-base-url.d.ts +8 -0
- package/dist/client-base-url.js +8 -0
- package/dist/client-base-url.js.map +1 -1
- package/dist/component-slots.d.ts +17 -2
- package/dist/component-slots.js +18 -66
- package/dist/component-slots.js.map +1 -1
- package/dist/component.d.ts +113 -0
- package/dist/component.js +84 -1
- package/dist/component.js.map +1 -1
- package/dist/data-controllers/members.d.ts +16 -1
- package/dist/data-controllers/members.js +87 -26
- package/dist/data-controllers/members.js.map +1 -1
- package/dist/data-controllers/roles.d.ts +1 -0
- package/dist/data-controllers/roles.js +3 -3
- package/dist/data-controllers/roles.js.map +1 -1
- package/dist/db/{models → internal}/exportJobs.model.d.ts +2 -0
- package/dist/db/{models → internal}/exportJobs.model.js +4 -1
- package/dist/db/internal/exportJobs.model.js.map +1 -0
- package/dist/db/internal/inviteResolutions.model.d.ts +34 -0
- package/dist/db/internal/inviteResolutions.model.js +80 -0
- package/dist/db/internal/inviteResolutions.model.js.map +1 -0
- package/dist/db/internal/table-names.d.ts +4 -0
- package/dist/db/internal/table-names.js +8 -0
- package/dist/db/internal/table-names.js.map +1 -0
- package/dist/db/{models → internal}/tenantLifecycle.model.d.ts +10 -1
- package/dist/db/{models → internal}/tenantLifecycle.model.js +10 -1
- package/dist/db/internal/tenantLifecycle.model.js.map +1 -0
- package/dist/db/{tables → internal}/tenantLifecycle.table.d.ts +6 -0
- package/dist/db/{tables → internal}/tenantLifecycle.table.js +6 -0
- package/dist/db/internal/tenantLifecycle.table.js.map +1 -0
- package/dist/db/models/index.d.ts +0 -2
- package/dist/db/models/index.js +0 -2
- package/dist/db/models/index.js.map +1 -1
- package/dist/db/models/inviteResolutions.model.d.ts +1 -25
- package/dist/db/models/inviteResolutions.model.js +0 -68
- package/dist/db/models/inviteResolutions.model.js.map +1 -1
- package/dist/db/models/roles.model.d.ts +6 -0
- package/dist/db/models/roles.model.js +6 -0
- package/dist/db/models/roles.model.js.map +1 -1
- package/dist/db/models/tenantMembers.model.js +1 -1
- package/dist/db/models/tenantMembers.model.js.map +1 -1
- package/dist/db/models/user_invites.model.d.ts +24 -0
- package/dist/db/models/user_invites.model.js +25 -1
- package/dist/db/models/user_invites.model.js.map +1 -1
- package/dist/db/tables/exportJobs.table.d.ts +5 -1
- package/dist/db/tables/exportJobs.table.js +3 -3
- package/dist/db/tables/exportJobs.table.js.map +1 -1
- package/dist/db/tables/index.d.ts +0 -1
- package/dist/db/tables/index.js +0 -1
- package/dist/db/tables/index.js.map +1 -1
- package/dist/db/tables/inviteResolutions.table.d.ts +1 -1
- package/dist/db/tables/inviteResolutions.table.js +4 -3
- package/dist/db/tables/inviteResolutions.table.js.map +1 -1
- package/dist/db/tables/roles.table.d.ts +2 -0
- package/dist/db/tables/roles.table.js +4 -0
- package/dist/db/tables/roles.table.js.map +1 -1
- package/dist/db/tables/tenantMembers.table.d.ts +1 -0
- package/dist/db/tables/user_invites.table.d.ts +11 -0
- package/dist/db/tables/user_invites.table.js +4 -0
- package/dist/db/tables/user_invites.table.js.map +1 -1
- package/dist/guards.d.ts +36 -0
- package/dist/guards.js +30 -1
- package/dist/guards.js.map +1 -1
- package/dist/hooks.d.ts +133 -1
- package/dist/hooks.js +87 -1
- package/dist/hooks.js.map +1 -1
- package/dist/html-render/index.d.ts +15 -0
- package/dist/html-render/index.js +15 -0
- package/dist/html-render/index.js.map +1 -1
- package/dist/html-render/types.d.ts +4 -0
- package/dist/index.d.ts +6 -7
- package/dist/index.js +12 -17
- package/dist/index.js.map +1 -1
- package/dist/internal/attachments.d.ts +16 -0
- package/dist/internal/attachments.js +3 -0
- package/dist/internal/attachments.js.map +1 -0
- package/dist/internal/component-slots.d.ts +27 -0
- package/dist/internal/component-slots.js +97 -0
- package/dist/internal/component-slots.js.map +1 -0
- package/dist/internal/invite-membership.d.ts +8 -0
- package/dist/{invite-membership.js → internal/invite-membership.js} +11 -5
- package/dist/internal/invite-membership.js.map +1 -0
- package/dist/internal/invite-replacement.d.ts +7 -0
- package/dist/{invite-replacement.js → internal/invite-replacement.js} +8 -3
- package/dist/internal/invite-replacement.js.map +1 -0
- package/dist/internal/invite-resolution.d.ts +3 -0
- package/dist/internal/invite-resolution.js +50 -0
- package/dist/internal/invite-resolution.js.map +1 -0
- package/dist/internal/invites.d.ts +31 -0
- package/dist/internal/invites.js +44 -0
- package/dist/internal/invites.js.map +1 -0
- package/dist/internal/permission-gate.d.ts +23 -0
- package/dist/internal/permission-gate.js +43 -0
- package/dist/internal/permission-gate.js.map +1 -0
- package/dist/internal/tenant-access.d.ts +28 -0
- package/dist/internal/tenant-access.js +28 -0
- package/dist/internal/tenant-access.js.map +1 -0
- package/dist/internal/tenant-ownership.d.ts +13 -0
- package/dist/internal/tenant-ownership.js +95 -0
- package/dist/internal/tenant-ownership.js.map +1 -0
- package/dist/internal/uploads.d.ts +19 -0
- package/dist/internal/uploads.js +3 -0
- package/dist/internal/uploads.js.map +1 -0
- package/dist/invite-extensions/availability.d.ts +28 -3
- package/dist/invite-extensions/availability.js +26 -23
- package/dist/invite-extensions/availability.js.map +1 -1
- package/dist/invite-extensions/internal/availability.d.ts +12 -0
- package/dist/invite-extensions/internal/availability.js +32 -0
- package/dist/invite-extensions/internal/availability.js.map +1 -0
- package/dist/invite-extensions/internal/delivery.d.ts +44 -0
- package/dist/invite-extensions/{delivery.js → internal/delivery.js} +38 -0
- package/dist/invite-extensions/internal/delivery.js.map +1 -0
- package/dist/invite-extensions/internal/edit.d.ts +34 -0
- package/dist/invite-extensions/{edit.js → internal/edit.js} +33 -0
- package/dist/invite-extensions/internal/edit.js.map +1 -0
- package/dist/invite-extensions/internal/field-ids.d.ts +21 -0
- package/dist/invite-extensions/{field-ids.js → internal/field-ids.js} +13 -0
- package/dist/invite-extensions/internal/field-ids.js.map +1 -0
- package/dist/invite-extensions/internal/form-slot.d.ts +13 -0
- package/dist/invite-extensions/{form-slot.js → internal/form-slot.js} +49 -4
- package/dist/invite-extensions/internal/form-slot.js.map +1 -0
- package/dist/invite-extensions/internal/payload-slices.d.ts +31 -0
- package/dist/invite-extensions/{payload-slices.js → internal/payload-slices.js} +30 -0
- package/dist/invite-extensions/internal/payload-slices.js.map +1 -0
- package/dist/invite-extensions/internal/registry.d.ts +48 -0
- package/dist/invite-extensions/internal/registry.js +77 -0
- package/dist/invite-extensions/internal/registry.js.map +1 -0
- package/dist/invite-extensions/internal/types.d.ts +61 -0
- package/dist/invite-extensions/internal/types.js +3 -0
- package/dist/invite-extensions/internal/types.js.map +1 -0
- package/dist/invite-extensions/registry.d.ts +44 -12
- package/dist/invite-extensions/registry.js +51 -43
- package/dist/invite-extensions/registry.js.map +1 -1
- package/dist/invite-extensions/types.d.ts +59 -34
- package/dist/invite-extensions.d.ts +30 -4
- package/dist/invite-extensions.js +57 -7
- package/dist/invite-extensions.js.map +1 -1
- package/dist/invite-resolution.d.ts +5 -2
- package/dist/invite-resolution.js +16 -46
- package/dist/invite-resolution.js.map +1 -1
- package/dist/invitee-display-name.d.ts +5 -0
- package/dist/invitee-display-name.js +15 -0
- package/dist/invitee-display-name.js.map +1 -0
- package/dist/invites.d.ts +46 -14
- package/dist/invites.js +41 -44
- package/dist/invites.js.map +1 -1
- package/dist/layout-banners.d.ts +68 -0
- package/dist/layout-banners.js +18 -0
- package/dist/layout-banners.js.map +1 -1
- package/dist/notifications/builder.d.ts +3 -1
- package/dist/notifications/builder.js +10 -0
- package/dist/notifications/builder.js.map +1 -1
- package/dist/notifications/index.d.ts +1 -0
- package/dist/notifications/index.js +16 -0
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/internal.d.ts +8 -5
- package/dist/notifications/internal.js +6 -0
- package/dist/notifications/internal.js.map +1 -1
- package/dist/notifications/sendable.d.ts +6 -0
- package/dist/notifications/sendable.js +13 -4
- package/dist/notifications/sendable.js.map +1 -1
- package/dist/notifications/types.d.ts +26 -1
- package/dist/page/categories.d.ts +19 -17
- package/dist/page/categories.js +24 -168
- package/dist/page/categories.js.map +1 -1
- package/dist/page/component-tree.d.ts +15 -1
- package/dist/page/component-tree.js +0 -40
- package/dist/page/component-tree.js.map +1 -1
- package/dist/page/controllers.d.ts +135 -0
- package/dist/page/controllers.js +124 -8
- package/dist/page/controllers.js.map +1 -1
- package/dist/page/declaration-conflict.d.ts +9 -0
- package/dist/page/declaration-conflict.js +17 -0
- package/dist/page/declaration-conflict.js.map +1 -0
- package/dist/page/form-page-routes.d.ts +7 -10
- package/dist/page/form-page-routes.js +14 -31
- package/dist/page/form-page-routes.js.map +1 -1
- package/dist/page/internal/categories.d.ts +62 -0
- package/dist/page/internal/categories.js +260 -0
- package/dist/page/internal/categories.js.map +1 -0
- package/dist/page/internal/component-target.d.ts +37 -0
- package/dist/page/{component-target.js → internal/component-target.js} +27 -2
- package/dist/page/internal/component-target.js.map +1 -0
- package/dist/page/internal/component-tree.d.ts +13 -0
- package/dist/page/internal/component-tree.js +61 -0
- package/dist/page/internal/component-tree.js.map +1 -0
- package/dist/page/{extension-assembly.d.ts → internal/extension-assembly.d.ts} +5 -2
- package/dist/page/{extension-assembly.js → internal/extension-assembly.js} +8 -0
- package/dist/page/internal/extension-assembly.js.map +1 -0
- package/dist/page/internal/extension-validation.d.ts +24 -0
- package/dist/page/{extension-validation.js → internal/extension-validation.js} +8 -0
- package/dist/page/internal/extension-validation.js.map +1 -0
- package/dist/page/internal/form-page-routes.d.ts +26 -0
- package/dist/page/internal/form-page-routes.js +40 -0
- package/dist/page/internal/form-page-routes.js.map +1 -0
- package/dist/page/internal/layout-filter.d.ts +21 -0
- package/dist/page/internal/layout-filter.js +101 -0
- package/dist/page/internal/layout-filter.js.map +1 -0
- package/dist/page/{metadata-helpers.d.ts → internal/metadata-helpers.d.ts} +4 -1
- package/dist/page/{metadata-helpers.js → internal/metadata-helpers.js} +19 -2
- package/dist/page/internal/metadata-helpers.js.map +1 -0
- package/dist/page/internal/nav-badges.d.ts +17 -0
- package/dist/page/internal/nav-badges.js +68 -0
- package/dist/page/internal/nav-badges.js.map +1 -0
- package/dist/page/internal/page-registration.d.ts +29 -0
- package/dist/page/internal/page-registration.js +41 -0
- package/dist/page/internal/page-registration.js.map +1 -0
- package/dist/page/internal/registry.d.ts +128 -0
- package/dist/page/internal/registry.js +225 -0
- package/dist/page/internal/registry.js.map +1 -0
- package/dist/page/internal/table-view-ids.d.ts +10 -0
- package/dist/page/internal/table-view-ids.js +39 -0
- package/dist/page/internal/table-view-ids.js.map +1 -0
- package/dist/page/internal/types.d.ts +2 -0
- package/dist/page/internal/types.js +6 -0
- package/dist/page/internal/types.js.map +1 -0
- package/dist/page/layout-filter.d.ts +4 -0
- package/dist/page/layout-filter.js +11 -0
- package/dist/page/layout-filter.js.map +1 -1
- package/dist/page/metadata.d.ts +93 -0
- package/dist/page/metadata.js +236 -28
- package/dist/page/metadata.js.map +1 -1
- package/dist/page/registry.d.ts +17 -36
- package/dist/page/registry.js +25 -127
- package/dist/page/registry.js.map +1 -1
- package/dist/page/roots.d.ts +10 -0
- package/dist/page/roots.js +27 -6
- package/dist/page/roots.js.map +1 -1
- package/dist/page/types.d.ts +186 -1
- package/dist/page/types.js +1 -2
- package/dist/page/types.js.map +1 -1
- package/dist/page.d.ts +23 -1
- package/dist/page.js +24 -2
- package/dist/page.js.map +1 -1
- package/dist/permission-gate.d.ts +14 -0
- package/dist/permission-gate.js +3 -0
- package/dist/permission-gate.js.map +1 -0
- package/dist/permissions-resolver.d.ts +24 -0
- package/dist/permissions-resolver.js +24 -0
- package/dist/permissions-resolver.js.map +1 -1
- package/dist/permissions.d.ts +27 -0
- package/dist/permissions.js +37 -0
- package/dist/permissions.js.map +1 -1
- package/dist/quick-actions.d.ts +27 -0
- package/dist/quick-actions.js +1 -0
- package/dist/quick-actions.js.map +1 -1
- package/dist/realtime.d.ts +29 -0
- package/dist/realtime.js +30 -0
- package/dist/realtime.js.map +1 -1
- package/dist/request-tenant.d.ts +17 -0
- package/dist/request-tenant.js +18 -1
- package/dist/request-tenant.js.map +1 -1
- package/dist/tenant-access.d.ts +38 -6
- package/dist/tenant-access.js +38 -8
- package/dist/tenant-access.js.map +1 -1
- package/dist/tenant-export.d.ts +19 -0
- package/dist/tenant-lifecycle.d.ts +13 -0
- package/dist/tenant-lifecycle.js +22 -1
- package/dist/tenant-lifecycle.js.map +1 -1
- package/dist/tenant-ownership.d.ts +2 -1
- package/dist/tenant-ownership.js +5 -85
- package/dist/tenant-ownership.js.map +1 -1
- package/dist/tenant-scoped-model.d.ts +8 -0
- package/dist/tenant-scoped-model.js +8 -0
- package/dist/tenant-scoped-model.js.map +1 -1
- package/dist/uploads.d.ts +24 -16
- package/dist/uploads.js +24 -0
- package/dist/uploads.js.map +1 -1
- package/dist/utils/fire-and-forget.d.ts +4 -0
- package/dist/utils/fire-and-forget.js +4 -0
- package/dist/utils/fire-and-forget.js.map +1 -1
- package/dist/utils/internal/owned-registry.d.ts +36 -0
- package/dist/utils/internal/owned-registry.js +60 -0
- package/dist/utils/internal/owned-registry.js.map +1 -0
- package/dist/utils/{row-instance.d.ts → internal/row-instance.d.ts} +1 -0
- package/dist/utils/internal/row-instance.js +12 -0
- package/dist/utils/internal/row-instance.js.map +1 -0
- package/dist/utils/internal/saas-mode.d.ts +8 -0
- package/dist/utils/internal/saas-mode.js +3 -0
- package/dist/utils/internal/saas-mode.js.map +1 -0
- package/dist/utils/{time.d.ts → internal/time.d.ts} +4 -0
- package/dist/utils/{time.js → internal/time.js} +4 -0
- package/dist/utils/internal/time.js.map +1 -0
- package/dist/utils/{type-check.d.ts → internal/type-check.d.ts} +12 -0
- package/dist/utils/{type-check.js → internal/type-check.js} +12 -0
- package/dist/utils/internal/type-check.js.map +1 -0
- package/dist/utils/internal/value-parser.d.ts +86 -0
- package/dist/utils/internal/value-parser.js +160 -0
- package/dist/utils/internal/value-parser.js.map +1 -0
- package/dist/utils/saas-mode.d.ts +25 -3
- package/dist/utils/saas-mode.js +24 -0
- package/dist/utils/saas-mode.js.map +1 -1
- package/package.json +3 -3
- package/dist/base/block-registry/describe.d.ts +0 -6
- package/dist/base/block-registry/describe.js.map +0 -1
- package/dist/base/block-registry/ui.d.ts +0 -5
- package/dist/base/block-registry/ui.js +0 -17
- package/dist/base/block-registry/ui.js.map +0 -1
- package/dist/base/table-view/auth.d.ts +0 -9
- package/dist/base/table-view/auth.js.map +0 -1
- package/dist/base/table-view/files.js.map +0 -1
- package/dist/base/table-view/guards.js +0 -85
- package/dist/base/table-view/guards.js.map +0 -1
- package/dist/base/table-view/row-rules.js.map +0 -1
- package/dist/base/tree.d.ts +0 -115
- package/dist/base/tree.js +0 -145
- package/dist/base/tree.js.map +0 -1
- package/dist/db/models/exportJobs.model.js.map +0 -1
- package/dist/db/models/tenantLifecycle.model.js.map +0 -1
- package/dist/db/tables/tenantLifecycle.table.js.map +0 -1
- package/dist/invite-extensions/delivery.d.ts +0 -5
- package/dist/invite-extensions/delivery.js.map +0 -1
- package/dist/invite-extensions/edit.d.ts +0 -4
- package/dist/invite-extensions/edit.js.map +0 -1
- package/dist/invite-extensions/field-ids.d.ts +0 -7
- package/dist/invite-extensions/field-ids.js.map +0 -1
- package/dist/invite-extensions/form-slot.d.ts +0 -2
- package/dist/invite-extensions/form-slot.js.map +0 -1
- package/dist/invite-extensions/internal.d.ts +0 -17
- package/dist/invite-extensions/internal.js +0 -55
- package/dist/invite-extensions/internal.js.map +0 -1
- package/dist/invite-extensions/payload-slices.d.ts +0 -8
- package/dist/invite-extensions/payload-slices.js.map +0 -1
- package/dist/invite-membership.d.ts +0 -3
- package/dist/invite-membership.js.map +0 -1
- package/dist/invite-replacement.d.ts +0 -2
- package/dist/invite-replacement.js.map +0 -1
- package/dist/page/component-target.d.ts +0 -10
- package/dist/page/component-target.js.map +0 -1
- package/dist/page/extension-assembly.js.map +0 -1
- package/dist/page/extension-validation.d.ts +0 -7
- package/dist/page/extension-validation.js.map +0 -1
- package/dist/page/metadata-helpers.js.map +0 -1
- package/dist/page/page-registration.d.ts +0 -13
- package/dist/page/page-registration.js +0 -22
- package/dist/page/page-registration.js.map +0 -1
- package/dist/utils/owned-registry.d.ts +0 -10
- package/dist/utils/owned-registry.js +0 -34
- package/dist/utils/owned-registry.js.map +0 -1
- package/dist/utils/row-instance.js +0 -8
- package/dist/utils/row-instance.js.map +0 -1
- package/dist/utils/time.js.map +0 -1
- package/dist/utils/type-check.js.map +0 -1
- package/dist/utils/value-parser.d.ts +0 -11
- package/dist/utils/value-parser.js +0 -86
- package/dist/utils/value-parser.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../src/internal/uploads.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,30 @@
|
|
|
1
|
-
import type { CustomButtonAvailability
|
|
2
|
-
|
|
1
|
+
import type { CustomButtonAvailability } from "../base/types/custom-button";
|
|
2
|
+
/**
|
|
3
|
+
* Decides, per request, whether members can be invited into the tenant right
|
|
4
|
+
* now. Returning `undefined` leaves the invite action available.
|
|
5
|
+
*/
|
|
3
6
|
export type InviteAvailabilityResolver = CustomButtonAvailability;
|
|
7
|
+
/**
|
|
8
|
+
* Mark the invite action unavailable, with a reason, for as long as a
|
|
9
|
+
* condition of the module holds — a plan whose seats are all taken, say. The
|
|
10
|
+
* DMS disables its invite button and shows the reason next to it.
|
|
11
|
+
*
|
|
12
|
+
* The resolver runs while the members page layout is built, once per request.
|
|
13
|
+
* It only shapes the UI: a module that must refuse the invitation itself does
|
|
14
|
+
* so from `Hook.INVITE_BEING_CREATED` and `Hook.MEMBER_BEING_ADDED`.
|
|
15
|
+
*
|
|
16
|
+
* The registration is bound to the registering module and lifted when it
|
|
17
|
+
* stops.
|
|
18
|
+
*
|
|
19
|
+
* ```ts
|
|
20
|
+
* RegisterInviteAvailability(async ({ tenantId }) =>
|
|
21
|
+
* (await hasFreeSeat(tenantId))
|
|
22
|
+
* ? undefined
|
|
23
|
+
* : { reason: "$saas.plan.seat_limit_reached" },
|
|
24
|
+
* );
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @returns Removes this resolver, for a module that drops it while staying
|
|
28
|
+
* loaded.
|
|
29
|
+
*/
|
|
4
30
|
export declare function RegisterInviteAvailability(resolver: InviteAvailabilityResolver): () => void;
|
|
5
|
-
export declare function ResolveInviteAvailability(context: ComponentFilterContext): Promise<CustomButtonUnavailability | undefined>;
|
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RegisterInviteAvailability = RegisterInviteAvailability;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const availability_1 = require("./internal/availability");
|
|
5
|
+
/**
|
|
6
|
+
* Mark the invite action unavailable, with a reason, for as long as a
|
|
7
|
+
* condition of the module holds — a plan whose seats are all taken, say. The
|
|
8
|
+
* DMS disables its invite button and shows the reason next to it.
|
|
9
|
+
*
|
|
10
|
+
* The resolver runs while the members page layout is built, once per request.
|
|
11
|
+
* It only shapes the UI: a module that must refuse the invitation itself does
|
|
12
|
+
* so from `Hook.INVITE_BEING_CREATED` and `Hook.MEMBER_BEING_ADDED`.
|
|
13
|
+
*
|
|
14
|
+
* The registration is bound to the registering module and lifted when it
|
|
15
|
+
* stops.
|
|
16
|
+
*
|
|
17
|
+
* ```ts
|
|
18
|
+
* RegisterInviteAvailability(async ({ tenantId }) =>
|
|
19
|
+
* (await hasFreeSeat(tenantId))
|
|
20
|
+
* ? undefined
|
|
21
|
+
* : { reason: "$saas.plan.seat_limit_reached" },
|
|
22
|
+
* );
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @returns Removes this resolver, for a module that drops it while staying
|
|
26
|
+
* loaded.
|
|
27
|
+
*/
|
|
8
28
|
function RegisterInviteAvailability(resolver) {
|
|
9
|
-
inviteAvailabilityResolvers.add(resolver);
|
|
10
|
-
return () => inviteAvailabilityResolvers.remove((entry) => entry === resolver);
|
|
11
|
-
}
|
|
12
|
-
async function resolveOne(resolver, context) {
|
|
13
|
-
try {
|
|
14
|
-
return await resolver(context);
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
logging_1.Logging.Error("[dms] an invite availability resolver failed:", error);
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
async function ResolveInviteAvailability(context) {
|
|
22
|
-
for (const resolver of inviteAvailabilityResolvers.values()) {
|
|
23
|
-
const unavailability = await resolveOne(resolver, context);
|
|
24
|
-
if (unavailability)
|
|
25
|
-
return unavailability;
|
|
26
|
-
}
|
|
27
|
-
return undefined;
|
|
29
|
+
availability_1.inviteAvailabilityResolvers.add(resolver);
|
|
30
|
+
return () => availability_1.inviteAvailabilityResolvers.remove((entry) => entry === resolver);
|
|
28
31
|
}
|
|
29
32
|
//# sourceMappingURL=availability.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"availability.js","sourceRoot":"","sources":["../../src/invite-extensions/availability.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"availability.js","sourceRoot":"","sources":["../../src/invite-extensions/availability.ts"],"names":[],"mappings":";;AAgCA,gEAMC;AArCD,0DAAsE;AAQtE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,0BAA0B,CACxC,QAAoC;IAEpC,0CAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,GAAG,EAAE,CACV,0CAA2B,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CustomButtonUnavailability } from "../../base/types/custom-button";
|
|
2
|
+
import type { ComponentFilterContext } from "../../component";
|
|
3
|
+
import { OwnedRegistry } from "../../utils/internal/owned-registry";
|
|
4
|
+
/** @internal */
|
|
5
|
+
export declare const inviteAvailabilityResolvers: OwnedRegistry<import("../../base").CustomButtonAvailability>;
|
|
6
|
+
/**
|
|
7
|
+
* The reason the first refusing resolver gives, in registration order;
|
|
8
|
+
* `undefined` while every resolver leaves invitations available.
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare function ResolveInviteAvailability(context: ComponentFilterContext): Promise<CustomButtonUnavailability | undefined>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inviteAvailabilityResolvers = void 0;
|
|
4
|
+
exports.ResolveInviteAvailability = ResolveInviteAvailability;
|
|
5
|
+
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
6
|
+
const owned_registry_1 = require("../../utils/internal/owned-registry");
|
|
7
|
+
/** @internal */
|
|
8
|
+
exports.inviteAvailabilityResolvers = new owned_registry_1.OwnedRegistry();
|
|
9
|
+
async function resolveOne(resolver, context) {
|
|
10
|
+
try {
|
|
11
|
+
return await resolver(context);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
logging_1.Logging.Error("[dms] an invite availability resolver failed:", error);
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The reason the first refusing resolver gives, in registration order;
|
|
20
|
+
* `undefined` while every resolver leaves invitations available.
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
async function ResolveInviteAvailability(context) {
|
|
25
|
+
for (const resolver of exports.inviteAvailabilityResolvers.values()) {
|
|
26
|
+
const unavailability = await resolveOne(resolver, context);
|
|
27
|
+
if (unavailability)
|
|
28
|
+
return unavailability;
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=availability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"availability.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/availability.ts"],"names":[],"mappings":";;;AA4BA,8DAQC;AApCD,gEAA6D;AAG7D,wEAAoE;AAGpE,gBAAgB;AACH,QAAA,2BAA2B,GACtC,IAAI,8BAAa,EAA8B,CAAC;AAElD,KAAK,UAAU,UAAU,CACvB,QAAoC,EACpC,OAA+B;IAE/B,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,yBAAyB,CAC7C,OAA+B;IAE/B,KAAK,MAAM,QAAQ,IAAI,mCAA2B,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5D,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { TenantMember } from "../../db";
|
|
2
|
+
import type { InviteCleanupContext, InviteExtensionContext, InviteExtensionPayloads } from "../types";
|
|
3
|
+
import type { InviteDeliveryOptions } from "./types";
|
|
4
|
+
/**
|
|
5
|
+
* Pull each registered extension's slice out of an invite submission and
|
|
6
|
+
* validate it against the extension's own schema.
|
|
7
|
+
*
|
|
8
|
+
* Every registered extension is validated, including one the submission holds
|
|
9
|
+
* no field for: its schema is what decides whether an absent value is legal,
|
|
10
|
+
* not the browser. Keys belonging to an extension that is no longer registered
|
|
11
|
+
* are dropped — a module can stop between the modal opening and its submit.
|
|
12
|
+
*
|
|
13
|
+
* What is stored is the slice as submitted, not what the schema returned: a
|
|
14
|
+
* schema that transforms its input produces an output the same schema would
|
|
15
|
+
* reject on the way back in, so storing the output would make the payload fail
|
|
16
|
+
* its own re-validation at delivery — silently, and after the invitation had
|
|
17
|
+
* been consumed. Parsing happens once, in {@link readPayload}.
|
|
18
|
+
*
|
|
19
|
+
* @throws HTTPResult 400 when a slice does not satisfy its schema
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare function CollectInviteExtensionPayloads(body: unknown): InviteExtensionPayloads;
|
|
24
|
+
/**
|
|
25
|
+
* Hand each extension the payload its invitation carried, now that the invitee
|
|
26
|
+
* is a member of the tenant.
|
|
27
|
+
*
|
|
28
|
+
* Legacy delivery logs failures. Durable delivery requests retryOnFailure:
|
|
29
|
+
* invalid stored payloads and failed handlers then keep the decision pending.
|
|
30
|
+
*
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
export declare function DeliverInviteExtensions(payloads: InviteExtensionPayloads | null | undefined, member: TenantMember, context: InviteExtensionContext, options?: InviteDeliveryOptions): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Tell every extension that declared a cleanup handler that the invitation —
|
|
36
|
+
* or the membership it produced — is gone, so it can drop what it derived.
|
|
37
|
+
*
|
|
38
|
+
* Called for every registered extension, with the stored payload when the
|
|
39
|
+
* invitation still had one: a member being removed carries none, and the
|
|
40
|
+
* contributor is expected to key its own data off `context.userId`.
|
|
41
|
+
*
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
export declare function CleanupInviteExtensions(payloads: InviteExtensionPayloads | null | undefined, context: InviteCleanupContext, options?: InviteDeliveryOptions): Promise<void>;
|
|
@@ -5,6 +5,25 @@ exports.DeliverInviteExtensions = DeliverInviteExtensions;
|
|
|
5
5
|
exports.CleanupInviteExtensions = CleanupInviteExtensions;
|
|
6
6
|
const payload_slices_1 = require("./payload-slices");
|
|
7
7
|
const registry_1 = require("./registry");
|
|
8
|
+
/**
|
|
9
|
+
* Pull each registered extension's slice out of an invite submission and
|
|
10
|
+
* validate it against the extension's own schema.
|
|
11
|
+
*
|
|
12
|
+
* Every registered extension is validated, including one the submission holds
|
|
13
|
+
* no field for: its schema is what decides whether an absent value is legal,
|
|
14
|
+
* not the browser. Keys belonging to an extension that is no longer registered
|
|
15
|
+
* are dropped — a module can stop between the modal opening and its submit.
|
|
16
|
+
*
|
|
17
|
+
* What is stored is the slice as submitted, not what the schema returned: a
|
|
18
|
+
* schema that transforms its input produces an output the same schema would
|
|
19
|
+
* reject on the way back in, so storing the output would make the payload fail
|
|
20
|
+
* its own re-validation at delivery — silently, and after the invitation had
|
|
21
|
+
* been consumed. Parsing happens once, in {@link readPayload}.
|
|
22
|
+
*
|
|
23
|
+
* @throws HTTPResult 400 when a slice does not satisfy its schema
|
|
24
|
+
*
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
8
27
|
function CollectInviteExtensionPayloads(body) {
|
|
9
28
|
const source = (body ?? {});
|
|
10
29
|
const payloads = {};
|
|
@@ -15,6 +34,15 @@ function CollectInviteExtensionPayloads(body) {
|
|
|
15
34
|
}
|
|
16
35
|
return payloads;
|
|
17
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Hand each extension the payload its invitation carried, now that the invitee
|
|
39
|
+
* is a member of the tenant.
|
|
40
|
+
*
|
|
41
|
+
* Legacy delivery logs failures. Durable delivery requests retryOnFailure:
|
|
42
|
+
* invalid stored payloads and failed handlers then keep the decision pending.
|
|
43
|
+
*
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
18
46
|
async function DeliverInviteExtensions(payloads, member, context, options = {}) {
|
|
19
47
|
const failures = [];
|
|
20
48
|
for (const info of (0, registry_1.listInviteExtensions)()) {
|
|
@@ -32,6 +60,16 @@ async function DeliverInviteExtensions(payloads, member, context, options = {})
|
|
|
32
60
|
if (options.retryOnFailure && failures.length)
|
|
33
61
|
throw new AggregateError(failures, "Invite delivery failed");
|
|
34
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Tell every extension that declared a cleanup handler that the invitation —
|
|
65
|
+
* or the membership it produced — is gone, so it can drop what it derived.
|
|
66
|
+
*
|
|
67
|
+
* Called for every registered extension, with the stored payload when the
|
|
68
|
+
* invitation still had one: a member being removed carries none, and the
|
|
69
|
+
* contributor is expected to key its own data off `context.userId`.
|
|
70
|
+
*
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
35
73
|
async function CleanupInviteExtensions(payloads, context, options = {}) {
|
|
36
74
|
const failures = [];
|
|
37
75
|
for (const info of (0, registry_1.listInviteExtensions)()) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/delivery.ts"],"names":[],"mappings":";;AA6BA,wEAaC;AAWD,0DAmBC;AAYD,0DAoBC;AAvGD,qDAA0E;AAC1E,yCAA6E;AAQ7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,8BAA8B,CAC5C,IAAa;IAEb,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;IACvD,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;;;;;;;;GAQG;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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { InviteExtensionContext, InviteExtensionPayloads } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* The payloads stored on a pending invitation as values of its edit form: each
|
|
4
|
+
* registered extension's stored slice, under the prefixed ids its fields carry
|
|
5
|
+
* in the form. Payloads of an extension that is no longer registered have no
|
|
6
|
+
* field to fill and are left out.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare function ReadInviteExtensionFields(payloads: InviteExtensionPayloads | null | undefined): Record<string, unknown>;
|
|
11
|
+
/**
|
|
12
|
+
* Pull the slices an admin changed out of the edit form of a pending
|
|
13
|
+
* invitation, each validated against its extension's schema.
|
|
14
|
+
*
|
|
15
|
+
* Only editable extensions whose fields the submission carries are taken: a
|
|
16
|
+
* body without them — an API client, a form opened before the extension
|
|
17
|
+
* registered — leaves the stored payload alone rather than resetting it. The
|
|
18
|
+
* slice is kept as submitted, as {@link CollectInviteExtensionPayloads} does.
|
|
19
|
+
*
|
|
20
|
+
* @returns The new payloads, keyed by extension key, to store over the old ones
|
|
21
|
+
* @throws HTTPResult 400 when a slice does not satisfy its schema
|
|
22
|
+
*
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export declare function CollectInviteExtensionEdits(body: unknown): InviteExtensionPayloads;
|
|
26
|
+
/**
|
|
27
|
+
* Tell every extension whose payload an edit changed, once the edit is stored.
|
|
28
|
+
*
|
|
29
|
+
* A failing handler is logged and the others still run: the invitation already
|
|
30
|
+
* carries the new payload, which is what acceptance delivers either way.
|
|
31
|
+
*
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export declare function NotifyInviteExtensionUpdates(previous: InviteExtensionPayloads | null | undefined, edits: InviteExtensionPayloads, context: InviteExtensionContext): Promise<void>;
|
|
@@ -10,9 +10,20 @@ const registry_1 = require("./registry");
|
|
|
10
10
|
function isRecord(value) {
|
|
11
11
|
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
12
12
|
}
|
|
13
|
+
// Payloads cross module boundaries as per-context views, which
|
|
14
|
+
// `isDeepStrictEqual` refuses to equate with plain data holding the same
|
|
15
|
+
// values: both sides are compared as plain JSON.
|
|
13
16
|
function isSamePayload(a, b) {
|
|
14
17
|
return (0, node_util_1.isDeepStrictEqual)(JSON.parse(JSON.stringify(a ?? null)), JSON.parse(JSON.stringify(b ?? null)));
|
|
15
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* The payloads stored on a pending invitation as values of its edit form: each
|
|
21
|
+
* registered extension's stored slice, under the prefixed ids its fields carry
|
|
22
|
+
* in the form. Payloads of an extension that is no longer registered have no
|
|
23
|
+
* field to fill and are left out.
|
|
24
|
+
*
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
16
27
|
function ReadInviteExtensionFields(payloads) {
|
|
17
28
|
const values = {};
|
|
18
29
|
for (const info of (0, registry_1.listInviteExtensions)()) {
|
|
@@ -25,6 +36,20 @@ function ReadInviteExtensionFields(payloads) {
|
|
|
25
36
|
}
|
|
26
37
|
return values;
|
|
27
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Pull the slices an admin changed out of the edit form of a pending
|
|
41
|
+
* invitation, each validated against its extension's schema.
|
|
42
|
+
*
|
|
43
|
+
* Only editable extensions whose fields the submission carries are taken: a
|
|
44
|
+
* body without them — an API client, a form opened before the extension
|
|
45
|
+
* registered — leaves the stored payload alone rather than resetting it. The
|
|
46
|
+
* slice is kept as submitted, as {@link CollectInviteExtensionPayloads} does.
|
|
47
|
+
*
|
|
48
|
+
* @returns The new payloads, keyed by extension key, to store over the old ones
|
|
49
|
+
* @throws HTTPResult 400 when a slice does not satisfy its schema
|
|
50
|
+
*
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
28
53
|
function CollectInviteExtensionEdits(body) {
|
|
29
54
|
const source = isRecord(body) ? body : {};
|
|
30
55
|
const edits = {};
|
|
@@ -51,6 +76,14 @@ async function notifyUpdate(info, previous, edits, context) {
|
|
|
51
76
|
return;
|
|
52
77
|
await info.onUpdate(payload.value, (0, payload_slices_1.readPayload)(info, previous, {})?.value, context);
|
|
53
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Tell every extension whose payload an edit changed, once the edit is stored.
|
|
81
|
+
*
|
|
82
|
+
* A failing handler is logged and the others still run: the invitation already
|
|
83
|
+
* carries the new payload, which is what acceptance delivers either way.
|
|
84
|
+
*
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
54
87
|
async function NotifyInviteExtensionUpdates(previous, edits, context) {
|
|
55
88
|
for (const info of (0, registry_1.listInviteExtensions)()) {
|
|
56
89
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Separates an extension key from one of its field ids once the field is
|
|
3
|
+
* merged into the invite form, whose ids share a single namespace with every
|
|
4
|
+
* extension's. Two underscores rather than a dot: the browser form resolves a
|
|
5
|
+
* dotted name as a nested path, which would nest the submitted value.
|
|
6
|
+
*
|
|
7
|
+
* An extension key may not contain the separator, so the first occurrence
|
|
8
|
+
* always splits key from field id — even when the field id contains one too.
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare const INVITE_EXTENSION_FIELD_SEPARATOR = "__";
|
|
13
|
+
/** @internal */
|
|
14
|
+
export interface InviteExtensionFieldId {
|
|
15
|
+
key: string;
|
|
16
|
+
fieldId: string;
|
|
17
|
+
}
|
|
18
|
+
/** @internal */
|
|
19
|
+
export declare function inviteExtensionFieldId(key: string, fieldId: string): string;
|
|
20
|
+
/** @internal */
|
|
21
|
+
export declare function splitInviteExtensionFieldId(id: string): InviteExtensionFieldId | undefined;
|
|
@@ -3,10 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.INVITE_EXTENSION_FIELD_SEPARATOR = void 0;
|
|
4
4
|
exports.inviteExtensionFieldId = inviteExtensionFieldId;
|
|
5
5
|
exports.splitInviteExtensionFieldId = splitInviteExtensionFieldId;
|
|
6
|
+
/**
|
|
7
|
+
* Separates an extension key from one of its field ids once the field is
|
|
8
|
+
* merged into the invite form, whose ids share a single namespace with every
|
|
9
|
+
* extension's. Two underscores rather than a dot: the browser form resolves a
|
|
10
|
+
* dotted name as a nested path, which would nest the submitted value.
|
|
11
|
+
*
|
|
12
|
+
* An extension key may not contain the separator, so the first occurrence
|
|
13
|
+
* always splits key from field id — even when the field id contains one too.
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
6
17
|
exports.INVITE_EXTENSION_FIELD_SEPARATOR = "__";
|
|
18
|
+
/** @internal */
|
|
7
19
|
function inviteExtensionFieldId(key, fieldId) {
|
|
8
20
|
return `${key}${exports.INVITE_EXTENSION_FIELD_SEPARATOR}${fieldId}`;
|
|
9
21
|
}
|
|
22
|
+
/** @internal */
|
|
10
23
|
function splitInviteExtensionFieldId(id) {
|
|
11
24
|
const index = id.indexOf(exports.INVITE_EXTENSION_FIELD_SEPARATOR);
|
|
12
25
|
if (index <= 0)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-ids.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/field-ids.ts"],"names":[],"mappings":";;;AAoBA,wDAEC;AAGD,kEAUC;AAnCD;;;;;;;;;;GAUG;AACU,QAAA,gCAAgC,GAAG,IAAI,CAAC;AAQrD,gBAAgB;AAChB,SAAgB,sBAAsB,CAAC,GAAW,EAAE,OAAe;IACjE,OAAO,GAAG,GAAG,GAAG,wCAAgC,GAAG,OAAO,EAAE,CAAC;AAC/D,CAAC;AAED,gBAAgB;AAChB,SAAgB,2BAA2B,CACzC,EAAU;IAEV,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAgC,CAAC,CAAC;IAC3D,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,wCAAgC,CAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slot the DMS invite form opens for `RegisterInviteExtension`.
|
|
3
|
+
*
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export declare const INVITE_FORM_SLOT_ID = "dms.invite-form";
|
|
7
|
+
/**
|
|
8
|
+
* Slot the edit form of a pending invitation opens, so the contributed fields
|
|
9
|
+
* can be changed until the invitee accepts.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare const INVITE_EDIT_FORM_SLOT_ID = "dms.invite-edit-form";
|
|
@@ -2,11 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.INVITE_EDIT_FORM_SLOT_ID = exports.INVITE_FORM_SLOT_ID = void 0;
|
|
4
4
|
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
5
|
-
const form_1 = require("
|
|
6
|
-
const component_slots_1 = require("
|
|
5
|
+
const form_1 = require("../../base/form");
|
|
6
|
+
const component_slots_1 = require("../../internal/component-slots");
|
|
7
|
+
const component_slots_2 = require("../../component-slots");
|
|
7
8
|
const field_ids_1 = require("./field-ids");
|
|
8
9
|
const registry_1 = require("./registry");
|
|
10
|
+
/**
|
|
11
|
+
* Slot the DMS invite form opens for `RegisterInviteExtension`.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
9
15
|
exports.INVITE_FORM_SLOT_ID = "dms.invite-form";
|
|
16
|
+
/**
|
|
17
|
+
* Slot the edit form of a pending invitation opens, so the contributed fields
|
|
18
|
+
* can be changed until the invitee accepts.
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
10
22
|
exports.INVITE_EDIT_FORM_SLOT_ID = "dms.invite-edit-form";
|
|
11
23
|
const INVITE_FORM_HOST = {
|
|
12
24
|
isEditForm: false,
|
|
@@ -16,6 +28,7 @@ const INVITE_EDIT_FORM_HOST = {
|
|
|
16
28
|
isEditForm: true,
|
|
17
29
|
anchorAliases: { roles: "roles_ids" },
|
|
18
30
|
};
|
|
31
|
+
/** Watch params naming a field, remapped with the ids they now refer to. */
|
|
19
32
|
const WATCH_FIELD_PARAMS = ["targetField"];
|
|
20
33
|
const WATCH_FIELD_CONDITION_KEY = "fieldId";
|
|
21
34
|
function flattenSerializedFields(fields) {
|
|
@@ -37,6 +50,7 @@ function prefixWatchAction(key, watch) {
|
|
|
37
50
|
}
|
|
38
51
|
: condition)
|
|
39
52
|
: undefined;
|
|
53
|
+
// `onParam` is set only when the contribution declared conditions.
|
|
40
54
|
const resolvedWatch = { ...watch, params };
|
|
41
55
|
if (conditions)
|
|
42
56
|
resolvedWatch.onParam = conditions;
|
|
@@ -54,6 +68,9 @@ function prefixSchemaEntries(key, schema) {
|
|
|
54
68
|
};
|
|
55
69
|
}
|
|
56
70
|
async function buildContribution(info) {
|
|
71
|
+
// Serializing here — not at registration — is what runs the form's option
|
|
72
|
+
// transforms, so the upload fields it carries are stamped exactly as they
|
|
73
|
+
// would be on a page that hosts the form directly.
|
|
57
74
|
const serialized = await info.component.serialize();
|
|
58
75
|
const options = serialized.options;
|
|
59
76
|
const fields = flattenSerializedFields(options?.fields ?? []);
|
|
@@ -87,11 +104,17 @@ async function buildContribution(info) {
|
|
|
87
104
|
function contributionOf(entry) {
|
|
88
105
|
entry.contribution ??= buildContribution(entry.info).catch((error) => {
|
|
89
106
|
(0, registry_1.logInviteExtensionFailure)(entry.info.key, "serialize its form", error);
|
|
107
|
+
// Cleared so a later request retries: a transient failure (an unreachable
|
|
108
|
+
// signing implementation while the DMS is still starting) must not leave
|
|
109
|
+
// the extension permanently out of the modal.
|
|
90
110
|
entry.contribution = undefined;
|
|
91
111
|
return undefined;
|
|
92
112
|
});
|
|
93
113
|
return entry.contribution;
|
|
94
114
|
}
|
|
115
|
+
// Every criterion is intrinsic to the declaration — never module start order —
|
|
116
|
+
// so the modal assembles identically on every host and across restarts. Keys
|
|
117
|
+
// are unique, so they close the total order.
|
|
95
118
|
function compareContributions(a, b) {
|
|
96
119
|
if (a.order !== b.order)
|
|
97
120
|
return a.order - b.order;
|
|
@@ -103,6 +126,8 @@ function disableGroup(group) {
|
|
|
103
126
|
fields: group.fields.map((field) => ({ ...field, disabled: true })),
|
|
104
127
|
};
|
|
105
128
|
}
|
|
129
|
+
// Returns a copy: the contribution is the process-wide cache shared by every
|
|
130
|
+
// request and by both invite forms.
|
|
106
131
|
function adaptToHost(contribution, host) {
|
|
107
132
|
const anchor = contribution.anchorField;
|
|
108
133
|
const isReadOnly = host.isEditForm && !contribution.editable;
|
|
@@ -151,6 +176,14 @@ function bucketContributions(contributions, ownIds) {
|
|
|
151
176
|
}
|
|
152
177
|
function assembleFields(own, contributions, hostOrientation) {
|
|
153
178
|
const buckets = bucketContributions(contributions, new Set(own.map((field) => field.id)));
|
|
179
|
+
// Cloned, not spread: the group hangs off a process-wide cache shared by
|
|
180
|
+
// every request, and a shallow copy would hand each of them the same field
|
|
181
|
+
// objects — one in-place edit downstream and the cache is corrupted for
|
|
182
|
+
// every tenant.
|
|
183
|
+
//
|
|
184
|
+
// A contributed block lays out like the form it lands in unless its author
|
|
185
|
+
// asked otherwise: a block that reads sideways in a column of fields looks
|
|
186
|
+
// like a rendering bug, not like a deliberate choice.
|
|
154
187
|
const blockOf = (contribution) => ({
|
|
155
188
|
...structuredClone(contribution.group),
|
|
156
189
|
orientation: contribution.group.orientation ?? hostOrientation,
|
|
@@ -170,6 +203,8 @@ function assembleFields(own, contributions, hostOrientation) {
|
|
|
170
203
|
}
|
|
171
204
|
return assembled;
|
|
172
205
|
}
|
|
206
|
+
// The browser validates against the form's JSON schema, so a contributed field
|
|
207
|
+
// left out of it would submit unchecked — its own `required` flag included.
|
|
173
208
|
function mergeSchema(own, contributions) {
|
|
174
209
|
if (!own || typeof own !== "object")
|
|
175
210
|
return own;
|
|
@@ -184,15 +219,23 @@ function mergeSchema(own, contributions) {
|
|
|
184
219
|
};
|
|
185
220
|
}
|
|
186
221
|
async function resolveInviteFormSlot(options, host) {
|
|
222
|
+
// The marker has done its job here; leaving it in would ship an internal id
|
|
223
|
+
// to the browser, where an unknown form prop lands as a DOM attribute.
|
|
187
224
|
const { [component_slots_1.COMPONENT_SLOT_KEY]: _slot, ...resolved } = options;
|
|
188
225
|
const contributions = (await collectContributions()).map((contribution) => adaptToHost(contribution, host));
|
|
189
226
|
if (contributions.length === 0)
|
|
190
227
|
return resolved;
|
|
228
|
+
// The source and the target do not overlap, so this cannot be one
|
|
229
|
+
// assertion: the value reaches here through a decorator, a JWT
|
|
230
|
+
// payload or a filter tuple, none of which the type system sees.
|
|
231
|
+
// oxlint-disable-next-line anti-slop/no-chained-type-assertions
|
|
191
232
|
const form = options;
|
|
192
233
|
const watchActions = [
|
|
193
234
|
...(form.watchActions ?? []),
|
|
194
235
|
...contributions.flatMap((contribution) => contribution.watchActions),
|
|
195
236
|
];
|
|
237
|
+
// `watchActions` is set only when there is at least one, so a form with none
|
|
238
|
+
// carries no key for it.
|
|
196
239
|
const merged = {
|
|
197
240
|
...resolved,
|
|
198
241
|
fields: assembleFields(form.fields ?? [], contributions, form.fieldsOrientation),
|
|
@@ -202,6 +245,8 @@ async function resolveInviteFormSlot(options, host) {
|
|
|
202
245
|
merged.watchActions = watchActions;
|
|
203
246
|
return merged;
|
|
204
247
|
}
|
|
205
|
-
|
|
206
|
-
|
|
248
|
+
// Claimed on import: the DMS invite forms declare their slots at page
|
|
249
|
+
// registration, which can run before any module extends them.
|
|
250
|
+
(0, component_slots_2.RegisterComponentSlot)(exports.INVITE_FORM_SLOT_ID, (options) => resolveInviteFormSlot(options, INVITE_FORM_HOST));
|
|
251
|
+
(0, component_slots_2.RegisterComponentSlot)(exports.INVITE_EDIT_FORM_SLOT_ID, (options) => resolveInviteFormSlot(options, INVITE_EDIT_FORM_HOST));
|
|
207
252
|
//# sourceMappingURL=form-slot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-slot.js","sourceRoot":"","sources":["../../../src/invite-extensions/internal/form-slot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { InviteDeliveryOptions, InviteExtensionInfo } from "./types";
|
|
2
|
+
import type { InviteExtensionPayloads } from "../types";
|
|
3
|
+
/** @internal */
|
|
4
|
+
export declare const HTTP_BAD_REQUEST = 400;
|
|
5
|
+
/** @internal */
|
|
6
|
+
export interface StoredPayload {
|
|
7
|
+
value: unknown;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The submitted values of one extension's fields, keyed by unprefixed id.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare function sliceOf(key: string, body: Record<string, unknown>): Record<string, unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* @throws HTTPResult 400 when the slice does not satisfy the schema
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export declare function assertSliceValid(info: InviteExtensionInfo, slice: Record<string, unknown>): void;
|
|
21
|
+
/**
|
|
22
|
+
* Parse the stored submission into the payload `onAccept` is typed for.
|
|
23
|
+
*
|
|
24
|
+
* The schema runs here rather than being trusted from storage: an invitation
|
|
25
|
+
* can outlive the version of the module that wrote its payload, and this is
|
|
26
|
+
* also where a transforming schema produces its output — exactly once, on the
|
|
27
|
+
* input as the admin submitted it.
|
|
28
|
+
*
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export declare function readPayload(info: InviteExtensionInfo, payloads: InviteExtensionPayloads | null | undefined, options: InviteDeliveryOptions): StoredPayload | undefined;
|