@antelopejs/interface-dms 0.3.5 → 0.3.6
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 +27 -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
package/dist/page/registry.d.ts
CHANGED
|
@@ -1,43 +1,24 @@
|
|
|
1
1
|
import type { ControllerClass } from "@antelopejs/interface-api";
|
|
2
2
|
import { type Component, type ComponentTargetInput } from "../component";
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
export declare const permissionMap: Map<ControllerClass | Component<unknown>, string>;
|
|
6
|
-
export declare const pageLayoutHandlers: Map<string, PageLayoutHandler>;
|
|
7
|
-
export declare const pageMetadataByFullId: Map<string, PageMetadata>;
|
|
8
|
-
export declare class RegistrationIdentity<T extends object> {
|
|
9
|
-
private readonly kind;
|
|
10
|
-
private readonly byToken;
|
|
11
|
-
constructor(kind: string);
|
|
12
|
-
private tokenOf;
|
|
13
|
-
stamp(value: T): void;
|
|
14
|
-
remember(value: T): void;
|
|
15
|
-
forget(value: T): void;
|
|
16
|
-
resolve(value: T): T;
|
|
17
|
-
isSame(left: T | undefined, right: T | undefined): boolean;
|
|
18
|
-
}
|
|
19
|
-
export declare const pageIdentity: RegistrationIdentity<PageInfo>;
|
|
20
|
-
export declare const categoryIdentity: RegistrationIdentity<CategoryInfo>;
|
|
21
|
-
export declare const moduleIdentity: RegistrationIdentity<ModuleInfo>;
|
|
22
|
-
export declare const dynamicMenuProviderIdentity: RegistrationIdentity<DynamicMenuProviderInfo>;
|
|
23
|
-
export declare const pageExtensionIdentity: RegistrationIdentity<PageExtensionInfo>;
|
|
24
|
-
export declare function capturePageExtensionContext(info: PageExtensionInfo): void;
|
|
25
|
-
export declare function runAsPageExtensionOwner<T>(info: PageExtensionInfo, callback: () => T): T;
|
|
26
|
-
export declare function stampPageRegistration(pageInfo: PageInfo): void;
|
|
27
|
-
export declare function isSamePageRegistration(left: PageInfo | undefined, right: PageInfo | undefined): boolean;
|
|
3
|
+
import type { PageLayoutHandler } from "./types";
|
|
4
|
+
/** Resolve every live page position of a reusable component. */
|
|
28
5
|
export declare function GetComponentPermissionIds(component: Component): string[];
|
|
29
|
-
export declare const pageExtensions: Map<string, PageExtensionInfo[]>;
|
|
30
|
-
export declare function isPageExtensionRegistered(info: PageExtensionInfo): boolean;
|
|
31
6
|
export declare function GetPageLayoutBySlug(slug: string): PageLayoutHandler | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Drop the layout handler a page registered.
|
|
9
|
+
*
|
|
10
|
+
* Called when the page unregisters: the handler is reachable by slug through
|
|
11
|
+
* `/dms/pagelayout`, so leaving it behind keeps serving the layout of a page
|
|
12
|
+
* that is already gone from the registry, the navigation tree and its own
|
|
13
|
+
* route — an unloaded module's screens would still answer.
|
|
14
|
+
*
|
|
15
|
+
* @param slug Full slug the page registered under
|
|
16
|
+
*/
|
|
32
17
|
export declare function ClearPageLayoutBySlug(slug: string): void;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
export declare function GetPendingPageExtensions(): PendingPageExtension[];
|
|
18
|
+
/**
|
|
19
|
+
* Ids of every registered page, sorted. The id of a page is what
|
|
20
|
+
* `@RegisterPageExtension` takes, and also its permission id.
|
|
21
|
+
*/
|
|
39
22
|
export declare function GetRegisteredPageIds(): string[];
|
|
40
|
-
|
|
23
|
+
/** Resolve the permission id of a page, component, or exact child position. */
|
|
41
24
|
export declare function GetPermissionId(target: ComponentTargetInput | ControllerClass): string | undefined;
|
|
42
|
-
export declare const moduleRootCategories: Map<string, CategoryInfo>;
|
|
43
|
-
export declare const moduleDefaultCategories: Map<string, CategoryInfo>;
|
package/dist/page/registry.js
CHANGED
|
@@ -1,150 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.moduleDefaultCategories = exports.moduleRootCategories = exports.pageExtensions = exports.pageExtensionIdentity = exports.dynamicMenuProviderIdentity = exports.moduleIdentity = exports.categoryIdentity = exports.pageIdentity = exports.RegistrationIdentity = exports.pageMetadataByFullId = exports.pageLayoutHandlers = exports.permissionMap = void 0;
|
|
4
|
-
exports.capturePageExtensionContext = capturePageExtensionContext;
|
|
5
|
-
exports.runAsPageExtensionOwner = runAsPageExtensionOwner;
|
|
6
|
-
exports.stampPageRegistration = stampPageRegistration;
|
|
7
|
-
exports.isSamePageRegistration = isSamePageRegistration;
|
|
8
3
|
exports.GetComponentPermissionIds = GetComponentPermissionIds;
|
|
9
|
-
exports.isPageExtensionRegistered = isPageExtensionRegistered;
|
|
10
4
|
exports.GetPageLayoutBySlug = GetPageLayoutBySlug;
|
|
11
5
|
exports.ClearPageLayoutBySlug = ClearPageLayoutBySlug;
|
|
12
|
-
exports.acceptsPageExtensions = acceptsPageExtensions;
|
|
13
|
-
exports.GetPendingPageExtensions = GetPendingPageExtensions;
|
|
14
6
|
exports.GetRegisteredPageIds = GetRegisteredPageIds;
|
|
15
|
-
exports.syncTargetExtensions = syncTargetExtensions;
|
|
16
7
|
exports.GetPermissionId = GetPermissionId;
|
|
17
|
-
const interface_core_1 = require("@antelopejs/interface-core");
|
|
18
|
-
const modules_1 = require("@antelopejs/interface-core/modules");
|
|
19
8
|
const component_1 = require("../component");
|
|
20
|
-
|
|
21
|
-
component_1.getPermissionIdRef.get = (component) =>
|
|
22
|
-
|
|
23
|
-
exports.pageMetadataByFullId = new Map();
|
|
24
|
-
const REGISTRATION_TOKEN = Symbol.for("@antelopejs/interface-dms:pageRegistration");
|
|
25
|
-
let nextRegistrationToken = 0;
|
|
26
|
-
class RegistrationIdentity {
|
|
27
|
-
kind;
|
|
28
|
-
byToken = new Map();
|
|
29
|
-
constructor(kind) {
|
|
30
|
-
this.kind = kind;
|
|
31
|
-
}
|
|
32
|
-
tokenOf(value) {
|
|
33
|
-
return value[REGISTRATION_TOKEN];
|
|
34
|
-
}
|
|
35
|
-
stamp(value) {
|
|
36
|
-
Object.defineProperty(value, REGISTRATION_TOKEN, {
|
|
37
|
-
value: `${this.kind}:${(nextRegistrationToken += 1)}`,
|
|
38
|
-
configurable: true,
|
|
39
|
-
enumerable: false,
|
|
40
|
-
writable: false,
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
remember(value) {
|
|
44
|
-
if (this.tokenOf(value) === undefined)
|
|
45
|
-
this.stamp(value);
|
|
46
|
-
const token = this.tokenOf(value);
|
|
47
|
-
if (token === undefined)
|
|
48
|
-
return;
|
|
49
|
-
this.byToken.set(token, value);
|
|
50
|
-
}
|
|
51
|
-
forget(value) {
|
|
52
|
-
const token = this.tokenOf(value);
|
|
53
|
-
if (token === undefined)
|
|
54
|
-
return;
|
|
55
|
-
if (this.byToken.get(token) !== value)
|
|
56
|
-
return;
|
|
57
|
-
this.byToken.delete(token);
|
|
58
|
-
}
|
|
59
|
-
resolve(value) {
|
|
60
|
-
const token = this.tokenOf(value);
|
|
61
|
-
if (token === undefined)
|
|
62
|
-
return value;
|
|
63
|
-
return this.byToken.get(token) ?? value;
|
|
64
|
-
}
|
|
65
|
-
isSame(left, right) {
|
|
66
|
-
if (!left || !right)
|
|
67
|
-
return false;
|
|
68
|
-
if (left === right)
|
|
69
|
-
return true;
|
|
70
|
-
const token = this.tokenOf(left);
|
|
71
|
-
return token !== undefined && token === this.tokenOf(right);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.RegistrationIdentity = RegistrationIdentity;
|
|
75
|
-
exports.pageIdentity = new RegistrationIdentity("page");
|
|
76
|
-
exports.categoryIdentity = new RegistrationIdentity("category");
|
|
77
|
-
exports.moduleIdentity = new RegistrationIdentity("module");
|
|
78
|
-
exports.dynamicMenuProviderIdentity = new RegistrationIdentity("dynamic-menu-provider");
|
|
79
|
-
exports.pageExtensionIdentity = new RegistrationIdentity("page-extension");
|
|
80
|
-
const pageExtensionContexts = new WeakMap();
|
|
81
|
-
function capturePageExtensionContext(info) {
|
|
82
|
-
const context = (0, modules_1.GetModuleContext)();
|
|
83
|
-
if (context) {
|
|
84
|
-
pageExtensionContexts.set(info, context);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
const module = (0, interface_core_1.GetResponsibleModule)();
|
|
88
|
-
if (module)
|
|
89
|
-
pageExtensionContexts.set(info, { module });
|
|
90
|
-
}
|
|
91
|
-
function runAsPageExtensionOwner(info, callback) {
|
|
92
|
-
const context = pageExtensionContexts.get(exports.pageExtensionIdentity.resolve(info));
|
|
93
|
-
return context ? (0, modules_1.RunWithModuleContext)(context, callback) : callback();
|
|
94
|
-
}
|
|
95
|
-
function stampPageRegistration(pageInfo) {
|
|
96
|
-
exports.pageIdentity.stamp(pageInfo);
|
|
97
|
-
}
|
|
98
|
-
function isSamePageRegistration(left, right) {
|
|
99
|
-
return exports.pageIdentity.isSame(left, right);
|
|
100
|
-
}
|
|
9
|
+
const registry_1 = require("./internal/registry");
|
|
10
|
+
component_1.getPermissionIdRef.get = (component) => registry_1.permissionMap.get(component);
|
|
11
|
+
/** Resolve every live page position of a reusable component. */
|
|
101
12
|
function GetComponentPermissionIds(component) {
|
|
102
|
-
return [...
|
|
103
|
-
}
|
|
104
|
-
exports.pageExtensions = new Map();
|
|
105
|
-
function isPageExtensionRegistered(info) {
|
|
106
|
-
const registered = exports.pageExtensions.get(info.targetFullId) ?? [];
|
|
107
|
-
return registered.some((entry) => exports.pageExtensionIdentity.isSame(entry, info));
|
|
13
|
+
return [...registry_1.pageMetadataByFullId.values()].flatMap((page) => page.ComponentPermissionIds(component));
|
|
108
14
|
}
|
|
109
15
|
function GetPageLayoutBySlug(slug) {
|
|
110
|
-
return
|
|
111
|
-
}
|
|
16
|
+
return registry_1.pageLayoutHandlers.get(slug);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Drop the layout handler a page registered.
|
|
20
|
+
*
|
|
21
|
+
* Called when the page unregisters: the handler is reachable by slug through
|
|
22
|
+
* `/dms/pagelayout`, so leaving it behind keeps serving the layout of a page
|
|
23
|
+
* that is already gone from the registry, the navigation tree and its own
|
|
24
|
+
* route — an unloaded module's screens would still answer.
|
|
25
|
+
*
|
|
26
|
+
* @param slug Full slug the page registered under
|
|
27
|
+
*/
|
|
112
28
|
function ClearPageLayoutBySlug(slug) {
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
function acceptsPageExtensions(targetFullId) {
|
|
116
|
-
return exports.pageMetadataByFullId.get(targetFullId)?.AcceptsExtensions() ?? false;
|
|
117
|
-
}
|
|
118
|
-
function GetPendingPageExtensions() {
|
|
119
|
-
const pending = [];
|
|
120
|
-
for (const [targetFullId, infos] of exports.pageExtensions) {
|
|
121
|
-
if (exports.pageMetadataByFullId.has(targetFullId))
|
|
122
|
-
continue;
|
|
123
|
-
for (const info of infos) {
|
|
124
|
-
pending.push({ extensionName: info.extensionName, targetFullId });
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return pending;
|
|
29
|
+
registry_1.pageLayoutHandlers.delete(slug);
|
|
128
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Ids of every registered page, sorted. The id of a page is what
|
|
33
|
+
* `@RegisterPageExtension` takes, and also its permission id.
|
|
34
|
+
*/
|
|
129
35
|
function GetRegisteredPageIds() {
|
|
130
|
-
return [...
|
|
131
|
-
}
|
|
132
|
-
function syncTargetExtensions(targetFullId) {
|
|
133
|
-
const metadata = exports.pageMetadataByFullId.get(targetFullId);
|
|
134
|
-
if (!metadata) {
|
|
135
|
-
return Promise.resolve();
|
|
136
|
-
}
|
|
137
|
-
return metadata.SyncExtensions();
|
|
36
|
+
return [...registry_1.pageMetadataByFullId.keys()].sort();
|
|
138
37
|
}
|
|
38
|
+
/** Resolve the permission id of a page, component, or exact child position. */
|
|
139
39
|
function GetPermissionId(target) {
|
|
140
40
|
if (target instanceof component_1.ComponentTarget) {
|
|
141
|
-
const rootPermissionId =
|
|
41
|
+
const rootPermissionId = registry_1.permissionMap.get(target.root);
|
|
142
42
|
if (!rootPermissionId)
|
|
143
43
|
return undefined;
|
|
144
44
|
return [rootPermissionId, ...target.path].join(".");
|
|
145
45
|
}
|
|
146
|
-
return
|
|
46
|
+
return registry_1.permissionMap.get(target);
|
|
147
47
|
}
|
|
148
|
-
exports.moduleRootCategories = new Map();
|
|
149
|
-
exports.moduleDefaultCategories = new Map();
|
|
150
48
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/page/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/page/registry.ts"],"names":[],"mappings":";;AAiBA,8DAIC;AAED,kDAIC;AAYD,sDAEC;AAMD,oDAEC;AAGD,0CASC;AA5DD,4CAKsB;AAEtB,kDAI6B;AAE7B,8BAAkB,CAAC,GAAG,GAAG,CAAC,SAAoB,EAAE,EAAE,CAAC,wBAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAEhF,gEAAgE;AAChE,SAAgB,yBAAyB,CAAC,SAAoB;IAC5D,OAAO,CAAC,GAAG,+BAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzD,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CACjC,IAAY;IAEZ,OAAO,6BAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CAAC,IAAY;IAChD,6BAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;IAClC,OAAO,CAAC,GAAG,+BAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,+EAA+E;AAC/E,SAAgB,eAAe,CAC7B,MAA8C;IAE9C,IAAI,MAAM,YAAY,2BAAe,EAAE,CAAC;QACtC,MAAM,gBAAgB,GAAG,wBAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB;YAAE,OAAO,SAAS,CAAC;QACxC,OAAO,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,wBAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
|
package/dist/page/roots.d.ts
CHANGED
|
@@ -11,3 +11,13 @@ export declare const settingsCategory: {
|
|
|
11
11
|
extend: <T extends import("@antelopejs/interface-api").ControllerClass>(this: T, location: string) => T;
|
|
12
12
|
location: string;
|
|
13
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* The settings of the workspace as a whole — members, invitations, roles —
|
|
16
|
+
* next to the account settings each user keeps for themselves. A project adds
|
|
17
|
+
* its workspace settings here (`category: workspaceSettingsCategory`) rather
|
|
18
|
+
* than declaring a `settings.workspace` category of its own. A page declaring
|
|
19
|
+
* a `module` cannot: registration throws for any page of a module under the
|
|
20
|
+
* settings root. A module keeps its settings in its own sidebar, or
|
|
21
|
+
* registers a workspace settings page without `module`.
|
|
22
|
+
*/
|
|
23
|
+
export declare const workspaceSettingsCategory: CategoryInfo;
|
package/dist/page/roots.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.settingsCategory = exports.modulesCategory = exports.pagesCategory = void 0;
|
|
3
|
+
exports.workspaceSettingsCategory = exports.settingsCategory = exports.modulesCategory = exports.pagesCategory = void 0;
|
|
4
4
|
exports.RegisterModule = RegisterModule;
|
|
5
5
|
const layouts_1 = require("../base/layouts");
|
|
6
6
|
const categories_1 = require("./categories");
|
|
7
|
+
const categories_2 = require("./internal/categories");
|
|
7
8
|
const controllers_1 = require("./controllers");
|
|
8
|
-
const registry_1 = require("./registry");
|
|
9
|
+
const registry_1 = require("./internal/registry");
|
|
9
10
|
function RegisterModule(opts) {
|
|
10
11
|
if (registry_1.moduleRootCategories.has(opts.id)) {
|
|
11
12
|
throw new Error(`Module "${opts.id}" is already registered.`);
|
|
12
13
|
}
|
|
13
|
-
const moduleRoot =
|
|
14
|
+
const moduleRoot = (0, categories_2.RootCategory)(opts.id, {
|
|
14
15
|
displayName: opts.title,
|
|
15
16
|
description: opts.description,
|
|
16
17
|
icon: opts.icon,
|
|
@@ -21,7 +22,9 @@ function RegisterModule(opts) {
|
|
|
21
22
|
});
|
|
22
23
|
registry_1.moduleRootCategories.set(opts.id, moduleRoot);
|
|
23
24
|
if (opts.defaultCategory) {
|
|
24
|
-
const defaultCategory =
|
|
25
|
+
const defaultCategory = (0, categories_2.RootCategory)("pages", {
|
|
26
|
+
// Treat an empty string the same as omitted: fall back to the built-in
|
|
27
|
+
// i18n label rather than rendering a blank heading.
|
|
25
28
|
displayName: opts.defaultCategory.displayName || "$menu.section.pages",
|
|
26
29
|
icon: opts.defaultCategory.icon,
|
|
27
30
|
order: opts.defaultCategory.order,
|
|
@@ -34,7 +37,7 @@ function RegisterModule(opts) {
|
|
|
34
37
|
categories_1.internal.RegisterModule.register(opts);
|
|
35
38
|
return moduleRoot;
|
|
36
39
|
}
|
|
37
|
-
exports.pagesCategory =
|
|
40
|
+
exports.pagesCategory = (0, categories_2.RootCategory)("pages", {
|
|
38
41
|
displayName: "$menu.section.pages",
|
|
39
42
|
urlSlug: "/",
|
|
40
43
|
order: 1,
|
|
@@ -56,5 +59,23 @@ exports.settingsCategory = (0, controllers_1.RootPageController)("settings", {
|
|
|
56
59
|
icon: "i-ph-gear",
|
|
57
60
|
order: 3,
|
|
58
61
|
noComponentPermissions: true,
|
|
59
|
-
|
|
62
|
+
layout: (0, layouts_1.SettingsLayout)(),
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* The settings of the workspace as a whole — members, invitations, roles —
|
|
66
|
+
* next to the account settings each user keeps for themselves. A project adds
|
|
67
|
+
* its workspace settings here (`category: workspaceSettingsCategory`) rather
|
|
68
|
+
* than declaring a `settings.workspace` category of its own. A page declaring
|
|
69
|
+
* a `module` cannot: registration throws for any page of a module under the
|
|
70
|
+
* settings root. A module keeps its settings in its own sidebar, or
|
|
71
|
+
* registers a workspace settings page without `module`.
|
|
72
|
+
*/
|
|
73
|
+
exports.workspaceSettingsCategory = (0, controllers_1.Category)("workspace", {
|
|
74
|
+
category: exports.settingsCategory,
|
|
75
|
+
displayName: "$page.settings.shell.workspace",
|
|
76
|
+
description: "$page.settings.overview.workspace_description",
|
|
77
|
+
urlSlug: "workspace",
|
|
78
|
+
icon: "i-ph-buildings",
|
|
79
|
+
order: 2,
|
|
80
|
+
});
|
|
60
81
|
//# sourceMappingURL=roots.js.map
|
package/dist/page/roots.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roots.js","sourceRoot":"","sources":["../../src/page/roots.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"roots.js","sourceRoot":"","sources":["../../src/page/roots.ts"],"names":[],"mappings":";;;AAUA,wCAkCC;AA5CD,6CAAgE;AAChE,6CAAwC;AACxC,sDAAqD;AACrD,+CAA6D;AAC7D,kDAG6B;AAG7B,SAAgB,cAAc,CAAC,IAAgB;IAC7C,IAAI,+BAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,yBAAY,EAAC,IAAI,CAAC,EAAE,EAAE;QACvC,WAAW,EAAE,IAAI,CAAC,KAAK;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,EAAE;QAChB,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,uBAAe;KAC1B,CAAC,CAAC;IAEH,+BAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAE9C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,eAAe,GAAG,IAAA,yBAAY,EAAC,OAAO,EAAE;YAC5C,uEAAuE;YACvE,oDAAoD;YACpD,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,IAAI,qBAAqB;YACtE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;YAC/B,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK;YACjC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,OAAO;YAChD,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QACH,kCAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC;IAED,qBAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEvC,OAAO,UAAU,CAAC;AACpB,CAAC;AAEY,QAAA,aAAa,GAAG,IAAA,yBAAY,EAAC,OAAO,EAAE;IACjD,WAAW,EAAE,qBAAqB;IAClC,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,OAAO;CACd,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,IAAA,gCAAkB,EAC/C,SAAS,EACT;IACE,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,CAAC;IACR,sBAAsB,EAAE,IAAI;IAC5B,YAAY,EAAE,IAAI;CACnB,EACD,IAAA,uBAAa,GAAE,CAChB,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,gCAAkB,EAAC,UAAU,EAAE;IAC7D,WAAW,EAAE,sBAAsB;IACnC,WAAW,EAAE,sBAAsB;IACnC,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,CAAC;IACR,sBAAsB,EAAE,IAAI;IAC5B,MAAM,EAAE,IAAA,wBAAc,GAAE;CACzB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACU,QAAA,yBAAyB,GAAG,IAAA,sBAAQ,EAAC,WAAW,EAAE;IAC7D,QAAQ,EAAE,wBAAgB;IAC1B,WAAW,EAAE,gCAAgC;IAC7C,WAAW,EAAE,+CAA+C;IAC5D,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,CAAC;CACT,CAAC,CAAC"}
|
package/dist/page/types.d.ts
CHANGED
|
@@ -3,33 +3,113 @@ import type { User } from "../auth/db";
|
|
|
3
3
|
import type { Action, Component, ComponentInfo, ComponentInfoSerialized, PlacementSide } from "../component";
|
|
4
4
|
import type { RoleModel, TenantMemberModel } from "../db";
|
|
5
5
|
import type { Permission } from "../permissions";
|
|
6
|
+
import type { Tone } from "../base/types/tone";
|
|
6
7
|
import type { MaybePromise } from "../types";
|
|
7
8
|
export type { MaybePromise };
|
|
8
9
|
export type MenuItemType = "label" | "link";
|
|
10
|
+
/**
|
|
11
|
+
* Semantic look of a menu entry. `accent` renders the entry in the theme's
|
|
12
|
+
* primary color, for call-to-action entries such as "New project".
|
|
13
|
+
*/
|
|
9
14
|
export type MenuItemVariant = "default" | "accent";
|
|
15
|
+
/**
|
|
16
|
+
* Semantic state dot rendered at the end of a menu entry. Maps to the theme's
|
|
17
|
+
* semantic colors, so a consumer never ships raw classes.
|
|
18
|
+
*/
|
|
10
19
|
export type MenuItemStatus = "success" | "warning" | "error" | "neutral";
|
|
20
|
+
/** Query parameters appended to a menu entry's link. */
|
|
11
21
|
export type MenuItemQuery = Record<string, string>;
|
|
22
|
+
/** Values for the `:name` segments of the page slug a menu entry links to. */
|
|
12
23
|
export type MenuItemParams = Record<string, string>;
|
|
24
|
+
/** Cleanup callback returned by a PageSetupFunction. Called on page unmount. */
|
|
13
25
|
export type PageSetupCleanup = () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Context passed to a PageSetupFunction. Use on(component, event, handler)
|
|
28
|
+
* to subscribe (returns an unsubscribe). Use emit(component, event, data) to
|
|
29
|
+
* dispatch on the shared window event bus.
|
|
30
|
+
*/
|
|
14
31
|
export interface PageSetupContext {
|
|
15
32
|
pageInfo: PageInfo;
|
|
16
33
|
permissions: Set<string>;
|
|
17
34
|
on(component: string, event: string, handler: (data: unknown) => void): () => void;
|
|
18
35
|
emit(component: string, event: string, data?: unknown): void;
|
|
19
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Page-level setup function referenced by MenuOptions.setupId. Registered on
|
|
39
|
+
* the frontend via useDefinedFunctions().registerFunction(). Runs in
|
|
40
|
+
* onMounted; cleanup runs on onUnmounted.
|
|
41
|
+
*
|
|
42
|
+
* Returns `void` rather than `undefined`, which lets callers omit a return
|
|
43
|
+
* statement entirely.
|
|
44
|
+
*/
|
|
20
45
|
export type PageSetupFunction = (context: PageSetupContext) => MaybePromise<PageSetupCleanup | void>;
|
|
21
46
|
export interface PageValidation {
|
|
22
47
|
requiredQueryParams?: string[];
|
|
23
48
|
customFunctionId?: string;
|
|
24
49
|
}
|
|
25
50
|
export declare const MODULE_URL_PREFIX = "/modules";
|
|
26
|
-
|
|
51
|
+
/**
|
|
52
|
+
* State a module reports on the modules catalog, rendered as a pill on its
|
|
53
|
+
* tile: `live` (working normally, the default), `beta` (usable, still
|
|
54
|
+
* changing), `update` (a newer version is available) or `attention`
|
|
55
|
+
* (something needs a platform owner, such as a failing job).
|
|
56
|
+
*/
|
|
57
|
+
export type ModuleStatus = "live" | "beta" | "update" | "attention";
|
|
58
|
+
/**
|
|
59
|
+
* Tone of one readout line: `success` (healthy figure), `info` (neutral
|
|
60
|
+
* fact), `warning` (worth a look) or `error` (something is failing). The
|
|
61
|
+
* former `ok` is still read as `success` in 0.4, with a warning.
|
|
62
|
+
*/
|
|
63
|
+
export type ModuleReadoutTone = Extract<Tone, "success" | "info" | "warning" | "error">;
|
|
64
|
+
/**
|
|
65
|
+
* One short line of a module's live readout on the catalog
|
|
66
|
+
* (`42 tables · 1.9 GB`). `text` may be an i18n key prefixed with `$`.
|
|
67
|
+
*/
|
|
68
|
+
export interface ModuleReadoutLine {
|
|
69
|
+
text: string;
|
|
70
|
+
tone?: ModuleReadoutTone;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Request the catalog hooks of a module run for. The catalog is owner-only,
|
|
74
|
+
* so `user` is a platform owner; `tenantId` is the tenant the request is
|
|
75
|
+
* scoped to.
|
|
76
|
+
*/
|
|
77
|
+
export interface ModuleCatalogContext {
|
|
78
|
+
user: User | undefined;
|
|
79
|
+
tenantId: string;
|
|
80
|
+
}
|
|
27
81
|
export interface ModuleInfo {
|
|
28
82
|
id: string;
|
|
29
83
|
title: string;
|
|
30
84
|
description: string;
|
|
31
85
|
icon: string;
|
|
32
86
|
landingPage?: string;
|
|
87
|
+
/** Version shown on the catalog tile (`1.4.0`). */
|
|
88
|
+
version?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Catalog category the module is filed under (`Content`, `Developer`…).
|
|
91
|
+
* May be an i18n key prefixed with `$`. Modules without one are grouped
|
|
92
|
+
* under a generic "Other" category.
|
|
93
|
+
*/
|
|
94
|
+
catalogCategory?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Reports the module's current state on the catalog. Called on each catalog
|
|
97
|
+
* load; a hook that throws or does not answer in time is ignored and the
|
|
98
|
+
* module shows as `live`.
|
|
99
|
+
*/
|
|
100
|
+
status?: (context: ModuleCatalogContext) => MaybePromise<ModuleStatus>;
|
|
101
|
+
/**
|
|
102
|
+
* Returns a few short lines (two read best) saying what the module is doing
|
|
103
|
+
* right now. Called on each catalog load; a hook that throws or does not
|
|
104
|
+
* answer in time is ignored and the tile shows no readout.
|
|
105
|
+
*/
|
|
106
|
+
readout?: (context: ModuleCatalogContext) => MaybePromise<ModuleReadoutLine[]>;
|
|
107
|
+
/**
|
|
108
|
+
* Optional category that groups the module's "loose" pages (pages declared
|
|
109
|
+
* with `module` but no explicit `category`) under a real, controllable
|
|
110
|
+
* heading instead of the default "Pages" label. When omitted, loose pages
|
|
111
|
+
* fall back to the generic "Pages" grouping.
|
|
112
|
+
*/
|
|
33
113
|
defaultCategory?: {
|
|
34
114
|
displayName?: string;
|
|
35
115
|
icon?: string;
|
|
@@ -49,13 +129,57 @@ export interface MenuOptions {
|
|
|
49
129
|
permission?: Partial<Permission> | Action;
|
|
50
130
|
publicAccess?: boolean;
|
|
51
131
|
authOnly?: boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Every signed-in member of the tenant reaches the entry, its components and
|
|
134
|
+
* their actions without a role grant: their permissions are registered as
|
|
135
|
+
* `defaultGranted`, so they never wait on a role and the role editor does not
|
|
136
|
+
* list them. Guards, menus and table views keep checking them as usual — only
|
|
137
|
+
* the grant is implied. Unlike `authOnly`, the tenant access gate still
|
|
138
|
+
* applies and the permission ids still exist.
|
|
139
|
+
*
|
|
140
|
+
* Inherited by the pages of a flagged category. Meant for personal surfaces
|
|
141
|
+
* every member owns: their profile, security, notifications and preferences.
|
|
142
|
+
*/
|
|
143
|
+
memberAccess?: boolean;
|
|
52
144
|
type?: MenuItemType;
|
|
53
145
|
validation?: PageValidation;
|
|
54
146
|
setupId?: string;
|
|
55
147
|
noComponentPermissions?: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Query parameters carried by the entry's menu link, so a single page with
|
|
150
|
+
* `validation.requiredQueryParams` can serve many entries
|
|
151
|
+
* (e.g. `/project?project=<id>`).
|
|
152
|
+
*/
|
|
56
153
|
query?: MenuItemQuery;
|
|
57
154
|
variant?: MenuItemVariant;
|
|
58
155
|
status?: MenuItemStatus;
|
|
156
|
+
/**
|
|
157
|
+
* Short count or label rendered at the end of the menu entry (`3`, `new`).
|
|
158
|
+
* Takes the trailing slot, so a leaf entry shows either a badge or a
|
|
159
|
+
* status dot — the badge wins.
|
|
160
|
+
*/
|
|
161
|
+
badge?: string;
|
|
162
|
+
/**
|
|
163
|
+
* Default layout of the entry and of every page and sub-category declared
|
|
164
|
+
* under it that sets none of its own (`Category("billing", { category,
|
|
165
|
+
* layout: SettingsLayout() })`). The nearest declaring ancestor wins; a
|
|
166
|
+
* page's own layout argument always overrides it, and a page with neither
|
|
167
|
+
* gets `DefaultLayout()`.
|
|
168
|
+
*/
|
|
169
|
+
layout?: ComponentInfo;
|
|
170
|
+
/**
|
|
171
|
+
* Keep the page reachable while a tenant access gate denies the tenant, the
|
|
172
|
+
* page-level mirror of the `bypassTenantAccessGate` guard option. Covers page
|
|
173
|
+
* visibility, menu visibility and the page's own layout route. Permission
|
|
174
|
+
* checks still apply normally — unlike `authOnly`, which drops them entirely.
|
|
175
|
+
*
|
|
176
|
+
* Inherited by the pages of a flagged category. The data routes feeding the
|
|
177
|
+
* page are not covered: a data API is not owned by a single page, so it opts
|
|
178
|
+
* out explicitly through its own guard's `bypassTenantAccessGate` option.
|
|
179
|
+
*
|
|
180
|
+
* Reserved for recovery surfaces (billing, payment portal) a blocked tenant
|
|
181
|
+
* must still reach.
|
|
182
|
+
*/
|
|
59
183
|
bypassTenantAccessGate?: boolean;
|
|
60
184
|
}
|
|
61
185
|
export interface CategoryInfo extends Omit<MenuOptions, "category"> {
|
|
@@ -64,15 +188,45 @@ export interface CategoryInfo extends Omit<MenuOptions, "category"> {
|
|
|
64
188
|
fullSlug: string;
|
|
65
189
|
category: CategoryInfo | ControllerClass | undefined;
|
|
66
190
|
isModuleRoot?: boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Whether the category adds no segment of its own to the URL, because its
|
|
193
|
+
* `fullSlug` is its parent's — what `urlSlug: "/"` produces. Such a category
|
|
194
|
+
* is a section heading, not a route: it cannot be addressed on its own, and
|
|
195
|
+
* any number of them may sit under one parent.
|
|
196
|
+
*
|
|
197
|
+
* Derived at declaration time, never declared: `MenuOptions` has no matching
|
|
198
|
+
* field, and passing one would be ignored.
|
|
199
|
+
*/
|
|
67
200
|
urlTransparent?: boolean;
|
|
68
201
|
}
|
|
69
202
|
export interface PageInfo extends CategoryInfo {
|
|
70
203
|
layoutUrl: string;
|
|
71
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* A menu entry produced by a dynamic menu provider. It is not a page: it links
|
|
207
|
+
* to an already registered page (`fullSlug`), optionally narrowed by `params`
|
|
208
|
+
* and `query`, so one page can back any number of entries.
|
|
209
|
+
*/
|
|
72
210
|
export interface DynamicMenuItem {
|
|
211
|
+
/**
|
|
212
|
+
* Unique within the provider's category; becomes the entry's `fullId` suffix.
|
|
213
|
+
* Dots separate the levels of a `fullId`, so an id may not contain one — an
|
|
214
|
+
* entry that does is skipped with a warning.
|
|
215
|
+
*/
|
|
73
216
|
id: string;
|
|
74
217
|
displayName: string;
|
|
218
|
+
/**
|
|
219
|
+
* Full slug of the registered page the entry links to. The entry is listed
|
|
220
|
+
* only when the caller can access that page, so an entry never offers a link
|
|
221
|
+
* its target would refuse.
|
|
222
|
+
*/
|
|
75
223
|
fullSlug: string;
|
|
224
|
+
/**
|
|
225
|
+
* Values for the `:name` segments of `fullSlug`, URL-encoded into the entry's
|
|
226
|
+
* link. They must fill every segment and nothing else: an entry that leaves a
|
|
227
|
+
* segment unfilled, or names a parameter the slug does not have, is skipped
|
|
228
|
+
* with a warning.
|
|
229
|
+
*/
|
|
76
230
|
params?: MenuItemParams;
|
|
77
231
|
query?: MenuItemQuery;
|
|
78
232
|
description?: string;
|
|
@@ -80,13 +234,39 @@ export interface DynamicMenuItem {
|
|
|
80
234
|
order?: number;
|
|
81
235
|
variant?: MenuItemVariant;
|
|
82
236
|
status?: MenuItemStatus;
|
|
237
|
+
/** Short count or label rendered at the end of the entry (`3`, `new`). */
|
|
238
|
+
badge?: string;
|
|
239
|
+
/**
|
|
240
|
+
* Permission required to see the entry, as a raw id — unlike `MenuOptions`,
|
|
241
|
+
* which takes a whole permission or an `Action`. Unset means always visible.
|
|
242
|
+
*
|
|
243
|
+
* It is matched against the permission set the caller's browser actually
|
|
244
|
+
* receives, the way the browser matches it — the wildcard or a literal grant,
|
|
245
|
+
* never a `defaultGranted` fallback — so the sidebar never offers an entry
|
|
246
|
+
* whose controls would be inert. While a tenant access gate denies the
|
|
247
|
+
* tenant, that set only holds the surfaces flagged `bypassTenantAccessGate`,
|
|
248
|
+
* so a recovery entry declares its permission under its target page, as in
|
|
249
|
+
* `<recoveryPageFullId>.settle`.
|
|
250
|
+
*/
|
|
83
251
|
permissionId?: string;
|
|
84
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Resolves the dynamic entries of a category for one request. `permissions` is
|
|
255
|
+
* the caller's effective permission set as the parent category sees it: empty
|
|
256
|
+
* when a tenant access gate denies the tenant, unless the category is flagged
|
|
257
|
+
* `bypassTenantAccessGate`, in which case the real permissions are kept.
|
|
258
|
+
* `user` is undefined for an unauthenticated request.
|
|
259
|
+
*/
|
|
85
260
|
export type DynamicMenuResolver = (user: User | undefined, tenantId: string, permissions: Set<string>) => MaybePromise<DynamicMenuItem[]>;
|
|
86
261
|
export interface DynamicMenuProviderInfo {
|
|
87
262
|
categoryFullId: string;
|
|
88
263
|
resolver: DynamicMenuResolver;
|
|
89
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* One component a page extension contributes to its target page. `key` is the
|
|
267
|
+
* static field name it was declared under, and also the last segment of its
|
|
268
|
+
* permission id on the target page.
|
|
269
|
+
*/
|
|
90
270
|
export interface PageExtensionComponent {
|
|
91
271
|
key: string;
|
|
92
272
|
component: Component;
|
|
@@ -94,6 +274,11 @@ export interface PageExtensionComponent {
|
|
|
94
274
|
anchorPath?: readonly string[];
|
|
95
275
|
order: number;
|
|
96
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* Everything one `@RegisterPageExtension` class contributes to one target page.
|
|
279
|
+
* The object itself is the registration handle: it is what gets unregistered
|
|
280
|
+
* when the extending module stops.
|
|
281
|
+
*/
|
|
97
282
|
export interface PageExtensionInfo {
|
|
98
283
|
extensionName: string;
|
|
99
284
|
targetFullId: string;
|
package/dist/page/types.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.MODULE_URL_PREFIX = void 0;
|
|
4
4
|
exports.MODULE_URL_PREFIX = "/modules";
|
|
5
|
-
exports.ROOT_SLUG = "/";
|
|
6
5
|
//# sourceMappingURL=types.js.map
|
package/dist/page/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/page/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/page/types.ts"],"names":[],"mappings":";;;AAwEa,QAAA,iBAAiB,GAAG,UAAU,CAAC"}
|
package/dist/page.d.ts
CHANGED
|
@@ -1,7 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entry of the page system, split by concern under `./page/`:
|
|
3
|
+
*
|
|
4
|
+
* - `types` — the shared vocabulary (menu options, page/category infos,
|
|
5
|
+
* dynamic menu and extension contracts)
|
|
6
|
+
* - `registry` — the page layout and permission id lookups
|
|
7
|
+
* - `layout-filter` — permission filtering of a serialized layout
|
|
8
|
+
* - `categories` — the `internal` registration proxies and the module
|
|
9
|
+
* membership check
|
|
10
|
+
* - `metadata` — `PageMetadata`, the registration/teardown lifecycle of one
|
|
11
|
+
* page
|
|
12
|
+
* - `controllers` — the consumer-facing decorators and constructors
|
|
13
|
+
* - `roots` — the built-in root categories and module registration
|
|
14
|
+
*
|
|
15
|
+
* The plumbing behind them lives under `./page/internal/` and is not
|
|
16
|
+
* re-exported here: the module-wide registries every piece writes to
|
|
17
|
+
* (`registry`), category resolution and creation (`categories`), the
|
|
18
|
+
* deterministic ordering and grafting of page extensions into a layout
|
|
19
|
+
* (`extension-assembly`), extension validation, component targets and trees,
|
|
20
|
+
* form page route claims and the registration identities.
|
|
21
|
+
*/
|
|
1
22
|
export { internal, isInsideModule } from "./page/categories";
|
|
2
23
|
export { AddFrontendModule, type AddFrontendModuleOptions, Category, type FrontendModuleMetadata, type FrontendModuleOptions, type FrontendModuleValue, type FrontendRendererMetadata, GetFrontendModules, NotifyMenuChanged, PageController, RegisterDynamicMenuProvider, RegisterPage, RegisterPageExtension, RootCategory, RootPageController, } from "./page/controllers";
|
|
24
|
+
export { PageDeclarationConflictError } from "./page/declaration-conflict";
|
|
3
25
|
export { FormPageRouteConflictError } from "./page/form-page-routes";
|
|
4
26
|
export { PageMetadata } from "./page/metadata";
|
|
5
|
-
export { ClearPageLayoutBySlug, GetComponentPermissionIds, GetPageLayoutBySlug,
|
|
27
|
+
export { ClearPageLayoutBySlug, GetComponentPermissionIds, GetPageLayoutBySlug, GetPermissionId, GetRegisteredPageIds, } from "./page/registry";
|
|
6
28
|
export * from "./page/roots";
|
|
7
29
|
export * from "./page/types";
|