@antelopejs/interface-dms 0.9.0 → 0.10.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 +123 -0
- package/dist/attachments.js +3 -1
- package/dist/attachments.js.map +1 -1
- package/dist/auth/db/models/sessions.model.js +1 -5
- package/dist/auth/db/models/sessions.model.js.map +1 -1
- package/dist/auth/db/tables/users.table.js.map +1 -1
- package/dist/auth/index.js +4 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/internal/jwt-auth-decorator.js +7 -5
- package/dist/auth/internal/jwt-auth-decorator.js.map +1 -1
- package/dist/auth/internal/request-authenticators.js +4 -1
- package/dist/auth/internal/request-authenticators.js.map +1 -1
- package/dist/auth/internal/request-principal.js +1 -0
- package/dist/auth/internal/request-principal.js.map +1 -1
- package/dist/base/activity-feed.d.ts +26 -26
- package/dist/base/banner.d.ts +14 -14
- package/dist/base/banner.js +1 -0
- package/dist/base/banner.js.map +1 -1
- package/dist/base/block-registry/helpers.js +1 -0
- package/dist/base/block-registry/helpers.js.map +1 -1
- package/dist/base/block-registry/internal/describe.js +107 -85
- package/dist/base/block-registry/internal/describe.js.map +1 -1
- package/dist/base/block-registry/presentation.js +0 -5
- package/dist/base/block-registry/presentation.js.map +1 -1
- package/dist/base/block-registry/registry.js +4 -1
- package/dist/base/block-registry/registry.js.map +1 -1
- package/dist/base/block-types.js +0 -2
- package/dist/base/block-types.js.map +1 -1
- package/dist/base/card.d.ts +8 -8
- package/dist/base/chart-card.d.ts +2 -2
- package/dist/base/chart-card.js +2 -2
- package/dist/base/chart-card.js.map +1 -1
- package/dist/base/chart-schemas.d.ts +66 -66
- package/dist/base/chart-schemas.js +19 -21
- package/dist/base/chart-schemas.js.map +1 -1
- package/dist/base/chart.js +1 -0
- package/dist/base/chart.js.map +1 -1
- package/dist/base/code-block.js +1 -0
- package/dist/base/code-block.js.map +1 -1
- package/dist/base/confirm-dialog.d.ts +2 -6
- package/dist/base/confirm-dialog.js +36 -15
- package/dist/base/confirm-dialog.js.map +1 -1
- package/dist/base/data-sources.js +6 -2
- package/dist/base/data-sources.js.map +1 -1
- package/dist/base/data-types/compare-types.js +82 -68
- package/dist/base/data-types/compare-types.js.map +1 -1
- package/dist/base/data-types/core.d.ts +8 -101
- package/dist/base/data-types/core.js +40 -143
- package/dist/base/data-types/core.js.map +1 -1
- package/dist/base/data-types/default/address.d.ts +126 -0
- package/dist/base/data-types/default/address.js +57 -0
- package/dist/base/data-types/default/address.js.map +1 -0
- package/dist/base/data-types/default/choices.d.ts +54 -0
- package/dist/base/data-types/default/choices.js +135 -0
- package/dist/base/data-types/default/choices.js.map +1 -0
- package/dist/base/data-types/default/files.d.ts +86 -0
- package/dist/base/data-types/default/files.js +214 -0
- package/dist/base/data-types/default/files.js.map +1 -0
- package/dist/base/data-types/default/inputs.d.ts +11 -0
- package/dist/base/data-types/default/inputs.js +26 -0
- package/dist/base/data-types/default/inputs.js.map +1 -0
- package/dist/base/data-types/default/numbers.d.ts +62 -0
- package/dist/base/data-types/default/numbers.js +287 -0
- package/dist/base/data-types/default/numbers.js.map +1 -0
- package/dist/base/data-types/default/options.d.ts +133 -0
- package/dist/base/data-types/default/options.js +3 -0
- package/dist/base/data-types/default/options.js.map +1 -0
- package/dist/base/data-types/default/relations.d.ts +267 -0
- package/dist/base/data-types/default/relations.js +149 -0
- package/dist/base/data-types/default/relations.js.map +1 -0
- package/dist/base/data-types/default/strings.d.ts +35 -0
- package/dist/base/data-types/default/strings.js +154 -0
- package/dist/base/data-types/default/strings.js.map +1 -0
- package/dist/base/data-types/default-types.d.ts +73 -753
- package/dist/base/data-types/default-types.js +39 -991
- package/dist/base/data-types/default-types.js.map +1 -1
- package/dist/base/data-types/field-types.js +2 -6
- package/dist/base/data-types/field-types.js.map +1 -1
- package/dist/base/data-types/index.js +1 -20
- package/dist/base/data-types/index.js.map +1 -1
- package/dist/base/data-types/internal/compare-types.js +0 -2
- package/dist/base/data-types/internal/compare-types.js.map +1 -1
- package/dist/base/data-types/internal/relation-add-form.d.ts +7 -0
- package/dist/base/data-types/internal/relation-add-form.js +21 -0
- package/dist/base/data-types/internal/relation-add-form.js.map +1 -0
- package/dist/base/data-types/internal/relation-endpoints.d.ts +8 -0
- package/dist/base/data-types/internal/relation-endpoints.js +36 -0
- package/dist/base/data-types/internal/relation-endpoints.js.map +1 -0
- package/dist/base/data-types/status-type.js +0 -6
- package/dist/base/data-types/status-type.js.map +1 -1
- package/dist/base/display.d.ts +6 -6
- package/dist/base/display.js +15 -10
- package/dist/base/display.js.map +1 -1
- package/dist/base/empty-state.d.ts +8 -8
- package/dist/base/export-jobs.js.map +1 -1
- package/dist/base/form-block-schema.d.ts +36 -36
- package/dist/base/form-block-schema.js +0 -5
- package/dist/base/form-block-schema.js.map +1 -1
- package/dist/base/form-schema.d.ts +5 -1
- package/dist/base/form-schema.js +44 -206
- package/dist/base/form-schema.js.map +1 -1
- package/dist/base/form-types.d.ts +4 -84
- package/dist/base/form-types.js.map +1 -1
- package/dist/base/form.js +0 -7
- package/dist/base/form.js.map +1 -1
- package/dist/base/guard.d.ts +14 -14
- package/dist/base/helpers/archive-mode-helpers.js +11 -11
- package/dist/base/helpers/archive-mode-helpers.js.map +1 -1
- package/dist/base/helpers/file-refs.js +20 -7
- package/dist/base/helpers/file-refs.js.map +1 -1
- package/dist/base/index.js +0 -5
- package/dist/base/index.js.map +1 -1
- package/dist/base/internal/button-availability.d.ts +3 -17
- package/dist/base/internal/button-availability.js +36 -31
- package/dist/base/internal/button-availability.js.map +1 -1
- package/dist/base/internal/chart-schemas.js +0 -2
- package/dist/base/internal/chart-schemas.js.map +1 -1
- package/dist/base/internal/composed-text.js +0 -2
- package/dist/base/internal/composed-text.js.map +1 -1
- package/dist/base/internal/confirm-dialog.d.ts +3 -13
- package/dist/base/internal/confirm-dialog.js +37 -21
- package/dist/base/internal/confirm-dialog.js.map +1 -1
- package/dist/base/internal/display.js +3 -1
- package/dist/base/internal/display.js.map +1 -1
- package/dist/base/internal/form-schema-components.d.ts +12 -0
- package/dist/base/internal/form-schema-components.js +61 -0
- package/dist/base/internal/form-schema-components.js.map +1 -0
- package/dist/base/internal/form-schema-validation.d.ts +16 -0
- package/dist/base/internal/form-schema-validation.js +68 -0
- package/dist/base/internal/form-schema-validation.js.map +1 -0
- package/dist/base/internal/form-schema.d.ts +2 -7
- package/dist/base/internal/form-schema.js +36 -28
- package/dist/base/internal/form-schema.js.map +1 -1
- package/dist/base/internal/layouts.d.ts +1 -59
- package/dist/base/internal/searchable.js +3 -1
- package/dist/base/internal/searchable.js.map +1 -1
- package/dist/base/key-value-list.d.ts +12 -12
- package/dist/base/kpi-card.d.ts +2 -2
- package/dist/base/kpi-card.js +2 -0
- package/dist/base/kpi-card.js.map +1 -1
- package/dist/base/layouts.d.ts +6 -80
- package/dist/base/layouts.js +38 -54
- package/dist/base/layouts.js.map +1 -1
- package/dist/base/live-toggle.d.ts +2 -2
- package/dist/base/meter.d.ts +25 -25
- package/dist/base/meter.js +0 -1
- package/dist/base/meter.js.map +1 -1
- package/dist/base/nav-card-grid.d.ts +13 -13
- package/dist/base/page-toolbar.d.ts +2 -2
- package/dist/base/page-toolbar.js +0 -6
- package/dist/base/page-toolbar.js.map +1 -1
- package/dist/base/period-selector.d.ts +2 -2
- package/dist/base/period-selector.js +0 -4
- package/dist/base/period-selector.js.map +1 -1
- package/dist/base/query-response.js +3 -5
- package/dist/base/query-response.js.map +1 -1
- package/dist/base/resource-form-schema.js +0 -4
- package/dist/base/resource-form-schema.js.map +1 -1
- package/dist/base/searchable.d.ts +5 -0
- package/dist/base/searchable.js +11 -2
- package/dist/base/searchable.js.map +1 -1
- package/dist/base/stat-group.d.ts +15 -15
- package/dist/base/tab.d.ts +8 -8
- package/dist/base/tab.js +1 -0
- package/dist/base/tab.js.map +1 -1
- package/dist/base/table-view/column-display.js +0 -1
- package/dist/base/table-view/column-display.js.map +1 -1
- package/dist/base/table-view/data-functions.d.ts +10 -10
- package/dist/base/table-view/data-functions.js.map +1 -1
- package/dist/base/table-view/factory.js +32 -204
- package/dist/base/table-view/factory.js.map +1 -1
- package/dist/base/table-view/internal/auth.js +5 -19
- package/dist/base/table-view/internal/auth.js.map +1 -1
- package/dist/base/table-view/internal/column-conditions.js +0 -5
- package/dist/base/table-view/internal/column-conditions.js.map +1 -1
- package/dist/base/table-view/internal/column-display.js +5 -3
- package/dist/base/table-view/internal/column-display.js.map +1 -1
- package/dist/base/table-view/internal/factory-helpers.js +24 -158
- package/dist/base/table-view/internal/factory-helpers.js.map +1 -1
- package/dist/base/table-view/internal/factory-lifecycle-created.d.ts +21 -0
- package/dist/base/table-view/internal/factory-lifecycle-created.js +96 -0
- package/dist/base/table-view/internal/factory-lifecycle-created.js.map +1 -0
- package/dist/base/table-view/internal/factory-lifecycle-filter.d.ts +15 -0
- package/dist/base/table-view/internal/factory-lifecycle-filter.js +37 -0
- package/dist/base/table-view/internal/factory-lifecycle-filter.js.map +1 -0
- package/dist/base/table-view/internal/factory-lifecycle-options.d.ts +41 -0
- package/dist/base/table-view/internal/factory-lifecycle-options.js +99 -0
- package/dist/base/table-view/internal/factory-lifecycle-options.js.map +1 -0
- package/dist/base/table-view/internal/factory-private-actions.d.ts +32 -0
- package/dist/base/table-view/internal/factory-private-actions.js +77 -0
- package/dist/base/table-view/internal/factory-private-actions.js.map +1 -0
- package/dist/base/table-view/internal/factory-private-displays.d.ts +5 -0
- package/dist/base/table-view/internal/factory-private-displays.js +21 -0
- package/dist/base/table-view/internal/factory-private-displays.js.map +1 -0
- package/dist/base/table-view/internal/factory-private-urls.d.ts +15 -0
- package/dist/base/table-view/internal/factory-private-urls.js +43 -0
- package/dist/base/table-view/internal/factory-private-urls.js.map +1 -0
- package/dist/base/table-view/internal/files.js +3 -4
- package/dist/base/table-view/internal/files.js.map +1 -1
- package/dist/base/table-view/internal/footer.js +5 -3
- package/dist/base/table-view/internal/footer.js.map +1 -1
- package/dist/base/table-view/internal/guards.js +7 -10
- package/dist/base/table-view/internal/guards.js.map +1 -1
- package/dist/base/table-view/internal/meta-helpers.d.ts +27 -0
- package/dist/base/table-view/internal/meta-helpers.js +75 -0
- package/dist/base/table-view/internal/meta-helpers.js.map +1 -0
- package/dist/base/table-view/internal/meta.js +8 -2
- package/dist/base/table-view/internal/meta.js.map +1 -1
- package/dist/base/table-view/internal/nav-badges.js +5 -3
- package/dist/base/table-view/internal/nav-badges.js.map +1 -1
- package/dist/base/table-view/internal/option-contract.d.ts +403 -0
- package/dist/base/table-view/internal/option-contract.js +3 -0
- package/dist/base/table-view/internal/option-contract.js.map +1 -0
- package/dist/base/table-view/internal/option-displays.d.ts +125 -0
- package/dist/base/table-view/internal/option-displays.js +3 -0
- package/dist/base/table-view/internal/option-displays.js.map +1 -0
- package/dist/base/table-view/internal/option-empty-states.d.ts +43 -0
- package/dist/base/table-view/internal/option-empty-states.js +3 -0
- package/dist/base/table-view/internal/option-empty-states.js.map +1 -0
- package/dist/base/table-view/internal/option-expandable.d.ts +66 -0
- package/dist/base/table-view/internal/option-expandable.js +3 -0
- package/dist/base/table-view/internal/option-expandable.js.map +1 -0
- package/dist/base/table-view/internal/option-filtering.d.ts +85 -0
- package/dist/base/table-view/internal/option-filtering.js +4 -0
- package/dist/base/table-view/internal/option-filtering.js.map +1 -0
- package/dist/base/table-view/internal/option-footer.d.ts +64 -0
- package/dist/base/table-view/internal/option-footer.js +3 -0
- package/dist/base/table-view/internal/option-footer.js.map +1 -0
- package/dist/base/table-view/internal/option-forms.d.ts +62 -0
- package/dist/base/table-view/internal/option-forms.js +3 -0
- package/dist/base/table-view/internal/option-forms.js.map +1 -0
- package/dist/base/table-view/internal/option-row-actions.d.ts +76 -0
- package/dist/base/table-view/internal/option-row-actions.js +3 -0
- package/dist/base/table-view/internal/option-row-actions.js.map +1 -0
- package/dist/base/table-view/internal/option-views.d.ts +199 -0
- package/dist/base/table-view/internal/option-views.js +3 -0
- package/dist/base/table-view/internal/option-views.js.map +1 -0
- package/dist/base/table-view/internal/options.d.ts +2 -6
- package/dist/base/table-view/internal/options.js +35 -6
- package/dist/base/table-view/internal/options.js.map +1 -1
- package/dist/base/table-view/internal/realtime.js +15 -5
- package/dist/base/table-view/internal/realtime.js.map +1 -1
- package/dist/base/table-view/internal/request-filter.js +12 -12
- package/dist/base/table-view/internal/request-filter.js.map +1 -1
- package/dist/base/table-view/internal/resource-form.js +1 -10
- package/dist/base/table-view/internal/resource-form.js.map +1 -1
- package/dist/base/table-view/internal/row-actions-schema.js +0 -6
- package/dist/base/table-view/internal/row-actions-schema.js.map +1 -1
- package/dist/base/table-view/internal/row-rule-shape.d.ts +10 -0
- package/dist/base/table-view/internal/row-rule-shape.js +43 -0
- package/dist/base/table-view/internal/row-rule-shape.js.map +1 -0
- package/dist/base/table-view/internal/row-rules.js +1 -4
- package/dist/base/table-view/internal/row-rules.js.map +1 -1
- package/dist/base/table-view/internal/tabs.js +3 -6
- package/dist/base/table-view/internal/tabs.js.map +1 -1
- package/dist/base/table-view/internal/validation.js +2 -16
- package/dist/base/table-view/internal/validation.js.map +1 -1
- package/dist/base/table-view/internal/writer.js +1 -0
- package/dist/base/table-view/internal/writer.js.map +1 -1
- package/dist/base/table-view/meta.js +11 -93
- package/dist/base/table-view/meta.js.map +1 -1
- package/dist/base/table-view/options.d.ts +61 -1099
- package/dist/base/table-view/options.js.map +1 -1
- package/dist/base/table-view/resource-form.js +0 -2
- package/dist/base/table-view/resource-form.js.map +1 -1
- package/dist/base/table-view/routes.js +10 -9
- package/dist/base/table-view/routes.js.map +1 -1
- package/dist/base/table-view/schema.d.ts +93 -93
- package/dist/base/table-view/schema.js +4 -22
- package/dist/base/table-view/schema.js.map +1 -1
- package/dist/base/table-view/source.js +0 -5
- package/dist/base/table-view/source.js.map +1 -1
- package/dist/base/table-view/views.js +0 -3
- package/dist/base/table-view/views.js.map +1 -1
- package/dist/base/table-view/writer.js +0 -5
- package/dist/base/table-view/writer.js.map +1 -1
- package/dist/base/top-list-card.d.ts +13 -13
- package/dist/base/top-list-card.js +2 -0
- package/dist/base/top-list-card.js.map +1 -1
- package/dist/base/types/action-target.d.ts +1 -302
- package/dist/base/types/button.d.ts +2 -7
- package/dist/base/types/button.js +35 -8
- package/dist/base/types/button.js.map +1 -1
- package/dist/base/types/confirm-dialog.d.ts +1 -127
- package/dist/base/types/custom-button.d.ts +1 -87
- package/dist/base/types/error.js +2 -1
- package/dist/base/types/error.js.map +1 -1
- package/dist/base/types/export-status.d.ts +2 -8
- package/dist/base/types/export-status.js +35 -9
- package/dist/base/types/export-status.js.map +1 -1
- package/dist/base/types/form-values.d.ts +1 -4
- package/dist/base/types/internal/action-target.d.ts +2 -8
- package/dist/base/types/internal/action-target.js +36 -15
- package/dist/base/types/internal/action-target.js.map +1 -1
- package/dist/base/types/row-action-operators.d.ts +3 -29
- package/dist/base/types/row-action-operators.js +35 -18
- package/dist/base/types/row-action-operators.js.map +1 -1
- package/dist/base/types/row-action.d.ts +3 -36
- package/dist/base/types/size.d.ts +1 -3
- package/dist/base/types/size.js +0 -3
- package/dist/base/types/size.js.map +1 -1
- package/dist/base/types/tone.d.ts +3 -8
- package/dist/base/types/tone.js +35 -15
- package/dist/base/types/tone.js.map +1 -1
- package/dist/base/types/watch.d.ts +5 -19
- package/dist/base/types/watch.js +35 -3
- package/dist/base/types/watch.js.map +1 -1
- package/dist/component-options/action-target.d.ts +304 -0
- package/dist/component-options/action-target.js +3 -0
- package/dist/component-options/action-target.js.map +1 -0
- package/dist/component-options/button.d.ts +93 -0
- package/dist/component-options/button.js +12 -0
- package/dist/component-options/button.js.map +1 -0
- package/dist/component-options/confirm-dialog.d.ts +132 -0
- package/dist/component-options/confirm-dialog.js +18 -0
- package/dist/component-options/confirm-dialog.js.map +1 -0
- package/dist/component-options/data-type.d.ts +101 -0
- package/dist/component-options/data-type.js +146 -0
- package/dist/component-options/data-type.js.map +1 -0
- package/dist/component-options/form-field.d.ts +88 -0
- package/dist/component-options/form-field.js +3 -0
- package/dist/component-options/form-field.js.map +1 -0
- package/dist/component-options/internal/action-target.d.ts +8 -0
- package/dist/component-options/internal/action-target.js +18 -0
- package/dist/component-options/internal/action-target.js.map +1 -0
- package/dist/component-options/internal/button-availability.d.ts +17 -0
- package/dist/component-options/internal/button-availability.js +34 -0
- package/dist/component-options/internal/button-availability.js.map +1 -0
- package/dist/component-options/internal/confirm-dialog.d.ts +13 -0
- package/dist/component-options/internal/confirm-dialog.js +24 -0
- package/dist/component-options/internal/confirm-dialog.js.map +1 -0
- package/dist/component-options/internal/form-field.d.ts +7 -0
- package/dist/component-options/internal/form-field.js +31 -0
- package/dist/component-options/internal/form-field.js.map +1 -0
- package/dist/component-options/internal/page-layout.d.ts +71 -0
- package/dist/component-options/internal/page-layout.js +10 -0
- package/dist/component-options/internal/page-layout.js.map +1 -0
- package/dist/component-options/page-layout.d.ts +80 -0
- package/dist/component-options/page-layout.js +57 -0
- package/dist/component-options/page-layout.js.map +1 -0
- package/dist/component-options/row-action.d.ts +66 -0
- package/dist/component-options/row-action.js +22 -0
- package/dist/component-options/row-action.js.map +1 -0
- package/dist/component-slots.js.map +1 -1
- package/dist/component.d.ts +2 -2
- package/dist/component.js +38 -193
- package/dist/component.js.map +1 -1
- package/dist/data-controllers/members.js +2 -8
- package/dist/data-controllers/members.js.map +1 -1
- package/dist/data-controllers/roles.js +0 -5
- package/dist/data-controllers/roles.js.map +1 -1
- package/dist/db/internal/exportJobs.model.js +10 -6
- package/dist/db/internal/exportJobs.model.js.map +1 -1
- package/dist/db/internal/tenantLifecycle.model.js +0 -2
- package/dist/db/internal/tenantLifecycle.model.js.map +1 -1
- package/dist/db/tables/exportJobs.table.d.ts +1 -1
- package/dist/db/tables/roles.table.js.map +1 -1
- package/dist/db/tables/user_invites.table.d.ts +1 -1
- package/dist/db/tables/user_invites.table.js.map +1 -1
- package/dist/export-status.d.ts +8 -0
- package/dist/export-status.js +13 -0
- package/dist/export-status.js.map +1 -0
- package/dist/hooks.d.ts +1 -1
- package/dist/hooks.js +2 -4
- package/dist/hooks.js.map +1 -1
- package/dist/index.js +0 -9
- package/dist/index.js.map +1 -1
- package/dist/internal/component-builder.d.ts +17 -0
- package/dist/internal/component-builder.js +58 -0
- package/dist/internal/component-builder.js.map +1 -0
- package/dist/internal/component-permissions.d.ts +13 -0
- package/dist/internal/component-permissions.js +45 -0
- package/dist/internal/component-permissions.js.map +1 -0
- package/dist/internal/component-serialization.d.ts +10 -0
- package/dist/internal/component-serialization.js +42 -0
- package/dist/internal/component-serialization.js.map +1 -0
- package/dist/internal/component-slots.js +7 -4
- package/dist/internal/component-slots.js.map +1 -1
- package/dist/internal/component-watches.d.ts +17 -0
- package/dist/internal/component-watches.js +110 -0
- package/dist/internal/component-watches.js.map +1 -0
- package/dist/internal/invite-membership.js +0 -1
- package/dist/internal/invite-membership.js.map +1 -1
- package/dist/invite-extension-payloads.d.ts +2 -0
- package/dist/invite-extension-payloads.js +3 -0
- package/dist/invite-extension-payloads.js.map +1 -0
- package/dist/invite-extensions/internal/delivery.js +4 -1
- package/dist/invite-extensions/internal/delivery.js.map +1 -1
- package/dist/invite-extensions/internal/edit.js +5 -4
- package/dist/invite-extensions/internal/edit.js.map +1 -1
- package/dist/invite-extensions/internal/form-slot.js +5 -35
- package/dist/invite-extensions/internal/form-slot.js.map +1 -1
- package/dist/invite-extensions/internal/payload-slices.js +10 -3
- package/dist/invite-extensions/internal/payload-slices.js.map +1 -1
- package/dist/invite-extensions/internal/registry.js +3 -5
- package/dist/invite-extensions/internal/registry.js.map +1 -1
- package/dist/invite-extensions/registry.js +3 -8
- package/dist/invite-extensions/registry.js.map +1 -1
- package/dist/invite-extensions/types.d.ts +1 -2
- package/dist/invite-resolution.js +2 -1
- package/dist/invite-resolution.js.map +1 -1
- package/dist/layout-banners.js.map +1 -1
- package/dist/notifications/builder.js +25 -5
- package/dist/notifications/builder.js.map +1 -1
- package/dist/notifications/internal.js +0 -3
- package/dist/notifications/internal.js.map +1 -1
- package/dist/notifications/sendable.js.map +1 -1
- package/dist/page/categories.js +1 -4
- package/dist/page/categories.js.map +1 -1
- package/dist/page/controllers.js +9 -55
- package/dist/page/controllers.js.map +1 -1
- package/dist/page/form-page-routes.js +0 -7
- package/dist/page/form-page-routes.js.map +1 -1
- package/dist/page/internal/categories.d.ts +1 -1
- package/dist/page/internal/categories.js +12 -36
- package/dist/page/internal/categories.js.map +1 -1
- package/dist/page/internal/category-permission.d.ts +10 -0
- package/dist/page/internal/category-permission.js +20 -0
- package/dist/page/internal/category-permission.js.map +1 -0
- package/dist/page/internal/component-target.js +2 -2
- package/dist/page/internal/component-target.js.map +1 -1
- package/dist/page/internal/component-tree.js +0 -2
- package/dist/page/internal/component-tree.js.map +1 -1
- package/dist/page/internal/controller-options.d.ts +6 -0
- package/dist/page/internal/controller-options.js +40 -0
- package/dist/page/internal/controller-options.js.map +1 -0
- package/dist/page/internal/extension-assembly.js +2 -7
- package/dist/page/internal/extension-assembly.js.map +1 -1
- package/dist/page/internal/layout-filter.js +7 -3
- package/dist/page/internal/layout-filter.js.map +1 -1
- package/dist/page/internal/metadata-components.d.ts +47 -0
- package/dist/page/internal/metadata-components.js +136 -0
- package/dist/page/internal/metadata-components.js.map +1 -0
- package/dist/page/internal/metadata-extension-contributions.d.ts +14 -0
- package/dist/page/internal/metadata-extension-contributions.js +56 -0
- package/dist/page/internal/metadata-extension-contributions.js.map +1 -0
- package/dist/page/internal/metadata-extensions.d.ts +8 -0
- package/dist/page/internal/metadata-extensions.js +21 -0
- package/dist/page/internal/metadata-extensions.js.map +1 -0
- package/dist/page/internal/metadata-helpers.js +0 -14
- package/dist/page/internal/metadata-helpers.js.map +1 -1
- package/dist/page/internal/metadata-info.d.ts +5 -0
- package/dist/page/internal/metadata-info.js +39 -0
- package/dist/page/internal/metadata-info.js.map +1 -0
- package/dist/page/internal/metadata-layout-response.d.ts +32 -0
- package/dist/page/internal/metadata-layout-response.js +76 -0
- package/dist/page/internal/metadata-layout-response.js.map +1 -0
- package/dist/page/internal/metadata-layout.d.ts +10 -0
- package/dist/page/internal/metadata-layout.js +44 -0
- package/dist/page/internal/metadata-layout.js.map +1 -0
- package/dist/page/internal/metadata-lifecycle.d.ts +52 -0
- package/dist/page/internal/metadata-lifecycle.js +241 -0
- package/dist/page/internal/metadata-lifecycle.js.map +1 -0
- package/dist/page/internal/metadata-owner.d.ts +53 -0
- package/dist/page/internal/metadata-owner.js +14 -0
- package/dist/page/internal/metadata-owner.js.map +1 -0
- package/dist/page/internal/metadata-publish.d.ts +20 -0
- package/dist/page/internal/metadata-publish.js +55 -0
- package/dist/page/internal/metadata-publish.js.map +1 -0
- package/dist/page/internal/metadata-registration.d.ts +8 -0
- package/dist/page/internal/metadata-registration.js +72 -0
- package/dist/page/internal/metadata-registration.js.map +1 -0
- package/dist/page/internal/metadata-upload-registration.d.ts +16 -0
- package/dist/page/internal/metadata-upload-registration.js +64 -0
- package/dist/page/internal/metadata-upload-registration.js.map +1 -0
- package/dist/page/internal/metadata-uploads.d.ts +18 -0
- package/dist/page/internal/metadata-uploads.js +46 -0
- package/dist/page/internal/metadata-uploads.js.map +1 -0
- package/dist/page/internal/nav-badges.d.ts +1 -1
- package/dist/page/internal/nav-badges.js +3 -1
- package/dist/page/internal/nav-badges.js.map +1 -1
- package/dist/page/internal/page-record.d.ts +2 -9
- package/dist/page/internal/page-record.js +8 -5
- package/dist/page/internal/page-record.js.map +1 -1
- package/dist/page/internal/page-registration.js +0 -4
- package/dist/page/internal/page-registration.js.map +1 -1
- package/dist/page/internal/registry.js +2 -1
- package/dist/page/internal/registry.js.map +1 -1
- package/dist/page/internal/table-view-ids.js +3 -2
- package/dist/page/internal/table-view-ids.js.map +1 -1
- package/dist/page/layout-filter.js +1 -0
- package/dist/page/layout-filter.js.map +1 -1
- package/dist/page/metadata.js +192 -558
- package/dist/page/metadata.js.map +1 -1
- package/dist/page/roots.js +3 -5
- package/dist/page/roots.js.map +1 -1
- package/dist/page/types.d.ts +15 -2
- package/dist/page/types.js.map +1 -1
- package/dist/permissions.js +0 -18
- package/dist/permissions.js.map +1 -1
- package/dist/realtime.js +0 -3
- package/dist/realtime.js.map +1 -1
- package/dist/request-tenant.js +4 -1
- package/dist/request-tenant.js.map +1 -1
- package/dist/tenant-lifecycle.js +2 -2
- package/dist/tenant-lifecycle.js.map +1 -1
- package/dist/tones.d.ts +8 -0
- package/dist/tones.js +19 -0
- package/dist/tones.js.map +1 -0
- package/dist/uploads.js +15 -4
- package/dist/uploads.js.map +1 -1
- package/dist/utils/internal/row-instance.js +2 -3
- package/dist/utils/internal/row-instance.js.map +1 -1
- package/dist/utils/internal/type-check.d.ts +10 -1
- package/dist/utils/internal/type-check.js +12 -3
- package/dist/utils/internal/type-check.js.map +1 -1
- package/dist/utils/internal/value-parser.js +7 -2
- package/dist/utils/internal/value-parser.js.map +1 -1
- package/dist/watch-actions.d.ts +19 -0
- package/dist/watch-actions.js +7 -0
- package/dist/watch-actions.js.map +1 -0
- package/docs/3.base/2.types.md +1 -1
- package/docs/3.base/8.data-types.md +2 -0
- package/docs/4.notifications/3.sending.md +1 -1
- package/docs/tsconfig.json +5 -1
- package/package.json +3 -9
|
@@ -1,44 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NotificationBuilder = void 0;
|
|
4
|
-
// The builder tracks which fields are set in a phantom type parameter, so each
|
|
5
|
-
// setter returns `this` widened by one more key. TypeScript cannot narrow
|
|
6
|
-
// `this` to a different instantiation of its own class, which is what makes the
|
|
7
|
-
// chain unavoidable for this pattern.
|
|
8
|
-
/* oxlint-disable anti-slop/no-chained-type-assertions */
|
|
9
4
|
const sendable_1 = require("./sendable");
|
|
5
|
+
const REQUIRED_FIELDS = {
|
|
6
|
+
icon: true,
|
|
7
|
+
title: true,
|
|
8
|
+
description: true,
|
|
9
|
+
subject: true,
|
|
10
|
+
};
|
|
11
|
+
function missingFields(data) {
|
|
12
|
+
const supplied = new Set(Object.entries(data)
|
|
13
|
+
.filter(([, value]) => value !== undefined)
|
|
14
|
+
.map(([field]) => field));
|
|
15
|
+
return Object.keys(REQUIRED_FIELDS).filter((field) => !supplied.has(field));
|
|
16
|
+
}
|
|
17
|
+
function isComplete(data) {
|
|
18
|
+
return missingFields(data).length === 0;
|
|
19
|
+
}
|
|
10
20
|
class NotificationBuilder {
|
|
11
21
|
data = {};
|
|
12
22
|
icon(value) {
|
|
13
23
|
this.data.icon = value;
|
|
24
|
+
// SAFETY: The setter has filled icon on this instance; Set tracks filled fields without changing the runtime instance.
|
|
14
25
|
return this;
|
|
15
26
|
}
|
|
16
27
|
title(value) {
|
|
17
28
|
this.data.title = value;
|
|
29
|
+
// SAFETY: The setter has filled title on this instance; Set tracks filled fields without changing the runtime instance.
|
|
18
30
|
return this;
|
|
19
31
|
}
|
|
20
32
|
description(value) {
|
|
21
33
|
this.data.description = value;
|
|
34
|
+
// SAFETY: The setter has filled description on this instance; Set tracks filled fields without changing the runtime instance.
|
|
22
35
|
return this;
|
|
23
36
|
}
|
|
24
37
|
subject(subject) {
|
|
25
38
|
this.data.subject = subject;
|
|
39
|
+
// SAFETY: The setter has filled subject on this instance; Set tracks filled fields without changing the runtime instance.
|
|
26
40
|
return this;
|
|
27
41
|
}
|
|
28
42
|
linkTo(value) {
|
|
29
43
|
this.data.linkTo = value;
|
|
44
|
+
// SAFETY: The setter has filled linkTo on this instance; Set tracks filled fields without changing the runtime instance.
|
|
30
45
|
return this;
|
|
31
46
|
}
|
|
32
47
|
params(value) {
|
|
33
48
|
this.data.params = value;
|
|
49
|
+
// SAFETY: The setter has filled params on this instance; Set tracks filled fields without changing the runtime instance.
|
|
34
50
|
return this;
|
|
35
51
|
}
|
|
36
52
|
/** Colours the icon well the notification is listed with. */
|
|
37
53
|
tone(value) {
|
|
38
54
|
this.data.tone = value;
|
|
55
|
+
// SAFETY: The setter has filled tone on this instance; Set tracks filled fields without changing the runtime instance.
|
|
39
56
|
return this;
|
|
40
57
|
}
|
|
41
58
|
build() {
|
|
59
|
+
if (!isComplete(this.data)) {
|
|
60
|
+
throw new Error(`Notification is missing required fields: ${missingFields(this.data).join(", ")}`);
|
|
61
|
+
}
|
|
42
62
|
return new sendable_1.SendableNotification(this.data);
|
|
43
63
|
}
|
|
44
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/notifications/builder.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/notifications/builder.ts"],"names":[],"mappings":";;;AAAA,yCAAkD;AAQlD,MAAM,eAAe,GAAiC;IACpD,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,SAAS,aAAa,CAAC,IAA+B;IACpD,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAC3B,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,UAAU,CAAC,IAA+B;IACjD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,MAAa,mBAAmB;IACtB,IAAI,GAA8B,EAAE,CAAC;IAE7C,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACvB,uHAAuH;QACvH,OAAO,IAAyC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,KAAa;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,wHAAwH;QACxH,OAAO,IAA0C,CAAC;IACpD,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC9B,8HAA8H;QAC9H,OAAO,IAAgD,CAAC;IAC1D,CAAC;IAED,OAAO,CACL,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAC5B,0HAA0H;QAC1H,OAAO,IAA4C,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACzB,yHAAyH;QACzH,OAAO,IAA2C,CAAC;IACrD,CAAC;IAED,MAAM,CACJ,KAAsC;QAEtC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACzB,yHAAyH;QACzH,OAAO,IAA2C,CAAC;IACrD,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC,KAAuB;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACvB,uHAAuH;QACvH,OAAO,IAAyC,CAAC;IACnD,CAAC;IAED,KAAK;QAGH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,4CAA4C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,+BAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AA5DD,kDA4DC"}
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.internal = void 0;
|
|
4
4
|
const interface_core_1 = require("@antelopejs/interface-core");
|
|
5
|
-
// On its own rather than in index.ts: sendable.ts sends through these proxies
|
|
6
|
-
// and index.ts imports the builder that imports sendable, so reading them from
|
|
7
|
-
// the barrel closed a cycle.
|
|
8
5
|
/**
|
|
9
6
|
* @internal
|
|
10
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/notifications/internal.ts"],"names":[],"mappings":";;;AAAA,+DAGoC;AAUpC
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/notifications/internal.ts"],"names":[],"mappings":";;;AAAA,+DAGoC;AAUpC;;GAEG;AACH,IAAiB,QAAQ,CAmDxB;AAnDD,WAAiB,QAAQ;IACV,4BAAmB,GAC9B,IAAA,kCAAiB,GAA0B,CAAC;IAEjC,qCAA4B,GAAG,IAAI,iCAAgB,EAE7D,CAAC;IACS,oCAA2B,GAAG,IAAI,iCAAgB,EAE5D,CAAC;IAES,mBAAU,GACrB,IAAA,kCAAiB,GAQd,CAAC;IAEO,oBAAW,GACtB,IAAA,kCAAiB,GAQd,CAAC;IAEO,oBAAW,GACtB,IAAA,kCAAiB,GAMd,CAAC;IAEO,kBAAS,GACpB,IAAA,kCAAiB,GAOd,CAAC;AACR,CAAC,EAnDgB,QAAQ,wBAAR,QAAQ,QAmDxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendable.js","sourceRoot":"","sources":["../../src/notifications/sendable.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAQtC,SAAS,UAAU,CAAC,OAAoB;IACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,MAAa,oBAAoB;IACd,IAAI,CAAmB;IAExC,YAAY,IAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"sendable.js","sourceRoot":"","sources":["../../src/notifications/sendable.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAQtC,SAAS,UAAU,CAAC,OAAoB;IACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,MAAa,oBAAoB;IACd,IAAI,CAAmB;IAExC,YAAY,IAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,UAAuB,EAAE;QACpD,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,mBAAQ,CAAC,UAAU,CACvB,MAAM,EACN,IAAI,CAAC,IAAI,EACT,SAAS,EACT,OAAO,CAAC,cAAc,EACtB,UAAU,CAAC,OAAO,CAAC,CACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE,UAAuB,EAAE;QACxD,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,mBAAQ,CAAC,WAAW,CACxB,OAAO,EACP,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,cAAc,EACtB,UAAU,CAAC,OAAO,CAAC,CACpB,CAAC;IACJ,CAAC;IAED,qGAAqG;IACrG,KAAK,CAAC,mBAAmB,CACvB,OAAiB,EACjB,cAAsB,EACtB,UAAuB,EAAE;QAEzB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,qFAAqF;IACrF,KAAK,CAAC,OAAO,CACX,OAAiB,EACjB,UAA2B,EAAE;QAE7B,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,mBAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAuB,EAAE;QACvC,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,mBAAQ,CAAC,SAAS,CACtB,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,cAAc,EACtB,UAAU,CAAC,OAAO,CAAC,CACpB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,OAAoB;QAC1D,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO;QACjD,IAAI,CAAC,MAAM,mBAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;CACF;AApED,oDAoEC"}
|
package/dist/page/categories.js
CHANGED
|
@@ -4,10 +4,7 @@ exports.internal = void 0;
|
|
|
4
4
|
exports.isInsideModule = isInsideModule;
|
|
5
5
|
const interface_core_1 = require("@antelopejs/interface-core");
|
|
6
6
|
const registry_1 = require("./internal/registry");
|
|
7
|
-
// Category creation
|
|
8
|
-
// declared here, and isInsideModule resolves categories through it: neither
|
|
9
|
-
// module dereferences the other while it evaluates.
|
|
10
|
-
// oxlint-disable-next-line import/no-cycle
|
|
7
|
+
// oxlint-disable-next-line import/no-cycle -- Category creation registers through these proxies; resolveCategoryInfo is called only after module evaluation.
|
|
11
8
|
const categories_1 = require("./internal/categories");
|
|
12
9
|
/**
|
|
13
10
|
* A registration proxy that accepts a per-context view of its entries.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/page/categories.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/page/categories.ts"],"names":[],"mappings":";;;AA4FA,wCAWC;AAtGD,+DAA8D;AAC9D,kDAQ6B;AAQ7B,6JAA6J;AAC7J,sDAA4D;AAE5D;;;;;;;;;GASG;AACH,MAAM,0BAA6C,SAAQ,iCAE1D;IAC8B;IAA7B,YAA6B,QAAiC;QAC5D,KAAK,EAAE,CAAC;QADmB,aAAQ,GAAR,QAAQ,CAAyB;IAE9D,CAAC;IAEQ,QAAQ,CAAC,KAAQ;QACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAEQ,UAAU,CAAC,KAAQ;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,6BAA8B,SAAQ,0BAA6C;IACvF;QACE,KAAK,CAAC,gCAAqB,CAAC,CAAC;IAC/B,CAAC;IAEQ,QAAQ,CAAC,KAAwB;QACxC,IAAA,sCAA2B,EAAC,KAAK,CAAC,CAAC;QACnC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;CACF;AAED;;GAEG;AACH,IAAiB,QAAQ,CAgBxB;AAhBD,WAAiB,QAAQ;IACV,yBAAgB,GAAG,IAAI,0BAA0B,CAC5D,2BAAgB,CACjB,CAAC;IACW,qBAAY,GAAG,IAAI,0BAA0B,CACxD,uBAAY,CACb,CAAC;IACW,uBAAc,GAAG,IAAI,0BAA0B,CAC1D,yBAAc,CACf,CAAC;IACW,oCAA2B,GACtC,IAAI,0BAA0B,CAC5B,sCAA2B,CAC5B,CAAC;IAES,8BAAqB,GAAG,IAAI,6BAA6B,EAAE,CAAC;AAC3E,CAAC,EAhBgB,QAAQ,wBAAR,QAAQ,QAgBxB;AAQD,SAAgB,cAAc,CAAC,KAAkB;IAC/C,IAAI,KAAK,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,OAAO,GAA+C,KAAK,CAAC,QAAQ,CAAC;IACzE,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAA,gCAAmB,EAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,IAAI,QAAQ,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/page/controllers.js
CHANGED
|
@@ -11,6 +11,7 @@ const interface_core_1 = require("@antelopejs/interface-core");
|
|
|
11
11
|
const decorators_1 = require("@antelopejs/interface-core/decorators");
|
|
12
12
|
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
13
13
|
const component_1 = require("../component");
|
|
14
|
+
const controller_options_1 = require("./internal/controller-options");
|
|
14
15
|
const categories_1 = require("./internal/categories");
|
|
15
16
|
const categories_2 = require("./categories");
|
|
16
17
|
const metadata_1 = require("./metadata");
|
|
@@ -20,18 +21,13 @@ const fire_and_forget_1 = require("../utils/fire-and-forget");
|
|
|
20
21
|
* Static component fields of a class, in declaration order. Underscore-prefixed
|
|
21
22
|
* fields are skipped, so a class can keep private static state.
|
|
22
23
|
*/
|
|
23
|
-
//
|
|
24
|
-
// fields are only known at run time, which is the whole point of the
|
|
25
|
-
// decorator. A narrower type would only push an assertion here.
|
|
26
|
-
// oxlint-disable-next-line anti-slop/no-object-parameters
|
|
24
|
+
// oxlint-disable-next-line anti-slop/no-object-parameters -- Decorated classes expose static component fields known only at runtime.
|
|
27
25
|
function collectStaticComponents(cl) {
|
|
28
26
|
const fields = [];
|
|
29
27
|
for (const key of Object.getOwnPropertyNames(cl)) {
|
|
30
28
|
if (key.startsWith("_"))
|
|
31
29
|
continue;
|
|
32
|
-
//
|
|
33
|
-
// whole job here; the alternative is an assertion to a dictionary.
|
|
34
|
-
// oxlint-disable-next-line anti-slop/no-reflect-get
|
|
30
|
+
// oxlint-disable-next-line anti-slop/no-reflect-get -- The static field name comes from Object.getOwnPropertyNames; its value is narrowed with instanceof Component.
|
|
35
31
|
const value = Reflect.get(cl, key);
|
|
36
32
|
if (value instanceof component_1.Component) {
|
|
37
33
|
fields.push({ key, component: value });
|
|
@@ -40,6 +36,7 @@ function collectStaticComponents(cl) {
|
|
|
40
36
|
return fields;
|
|
41
37
|
}
|
|
42
38
|
exports.RegisterPage = (0, decorators_1.MakeClassDecorator)((cl) => {
|
|
39
|
+
// oxlint-disable-next-line anti-slop/require-safety-comment-for-type-assertion -- The decorator accepts any class and trusts callers to apply it to a page controller; checking inheritance would change the published decorator's behavior.
|
|
43
40
|
const meta = (0, interface_core_1.GetMetadata)(cl, metadata_1.PageMetadata);
|
|
44
41
|
for (const { key, component } of collectStaticComponents(cl)) {
|
|
45
42
|
meta.SetComponent(key, component);
|
|
@@ -47,15 +44,10 @@ exports.RegisterPage = (0, decorators_1.MakeClassDecorator)((cl) => {
|
|
|
47
44
|
(0, fire_and_forget_1.fireAndForget)(meta.Register(), "page registration");
|
|
48
45
|
});
|
|
49
46
|
function buildExtensionComponents(
|
|
50
|
-
//
|
|
51
|
-
// fields are only known at run time, which is the whole point of the
|
|
52
|
-
// decorator. A narrower type would only push an assertion here.
|
|
53
|
-
// oxlint-disable-next-line anti-slop/no-object-parameters
|
|
47
|
+
// oxlint-disable-next-line anti-slop/no-object-parameters -- Extension components are collected from the decorated class static fields at runtime.
|
|
54
48
|
extensionClass) {
|
|
55
49
|
return collectStaticComponents(extensionClass).map(({ key, component }) => {
|
|
56
50
|
const placement = component.placement ?? component_1.DEFAULT_PLACEMENT;
|
|
57
|
-
// `anchorPath` is set only when the placement names an anchor: its absence
|
|
58
|
-
// is what extension-assembly reads as "append at the end".
|
|
59
51
|
const entry = {
|
|
60
52
|
key,
|
|
61
53
|
component,
|
|
@@ -127,48 +119,13 @@ exports.RegisterPageExtension = (0, decorators_1.MakeClassDecorator)((cl, target
|
|
|
127
119
|
};
|
|
128
120
|
categories_2.internal.RegisterPageExtension.register(info);
|
|
129
121
|
});
|
|
130
|
-
function assertHasCategoryOrModule(id, options, kind) {
|
|
131
|
-
if (!options.category && !options.module) {
|
|
132
|
-
throw new Error(`${kind} "${id}" must declare either "category" or "module" in its options.`);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
const LIVE_PERIOD_PATTERN = /^[1-9]\d*[mhd]$/;
|
|
136
|
-
function assertPositiveRate(id, name, rate) {
|
|
137
|
-
if (typeof rate === "number" && Number.isFinite(rate) && rate > 0)
|
|
138
|
-
return;
|
|
139
|
-
throw new Error(`Page "${id}" declares ${name} ${String(rate)}: it must be a positive number of seconds.`);
|
|
140
|
-
}
|
|
141
|
-
function assertValidSlowRate(id, live) {
|
|
142
|
-
const slow = live.slowRateAfter;
|
|
143
|
-
if (slow === undefined)
|
|
144
|
-
return;
|
|
145
|
-
assertPositiveRate(id, "live.slowRateAfter.maxRate", slow.maxRate);
|
|
146
|
-
if (!LIVE_PERIOD_PATTERN.test(String(slow.period))) {
|
|
147
|
-
throw new Error(`Page "${id}" declares live.slowRateAfter.period "${String(slow.period)}": it must read like "30m", "24h" or "7d".`);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
// A rate the browser would read as "no cap" or as a busy loop, a period it
|
|
151
|
-
// cannot read or an empty remember key are refused at declaration, where the module
|
|
152
|
-
// author sees them, rather than ignored at run time.
|
|
153
|
-
function assertValidLiveOptions(id, options) {
|
|
154
|
-
const live = options.live;
|
|
155
|
-
if (!live)
|
|
156
|
-
return;
|
|
157
|
-
if (live.maxRate !== undefined) {
|
|
158
|
-
assertPositiveRate(id, "live.maxRate", live.maxRate);
|
|
159
|
-
}
|
|
160
|
-
assertValidSlowRate(id, live);
|
|
161
|
-
if (live.rememberKey !== undefined && live.rememberKey.trim() === "") {
|
|
162
|
-
throw new Error(`Page "${id}" declares an empty live.rememberKey.`);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
122
|
function Category(id, options) {
|
|
166
|
-
assertHasCategoryOrModule(id, options, "Category");
|
|
123
|
+
(0, controller_options_1.assertHasCategoryOrModule)(id, options, "Category");
|
|
167
124
|
return (0, categories_1.createCategoryFunction)(id, options);
|
|
168
125
|
}
|
|
169
126
|
function PageController(id, options, layout) {
|
|
170
|
-
assertHasCategoryOrModule(id, options, "Page");
|
|
171
|
-
assertValidLiveOptions(id, options);
|
|
127
|
+
(0, controller_options_1.assertHasCategoryOrModule)(id, options, "Page");
|
|
128
|
+
(0, controller_options_1.assertValidLiveOptions)(id, options);
|
|
172
129
|
const resolvedOptions = (0, categories_1.applyModuleResolution)(id, options);
|
|
173
130
|
const resolvedCategory = (0, categories_1.resolveCategoryInfo)(resolvedOptions.category);
|
|
174
131
|
(0, categories_1.validateNotInsideSettings)(resolvedOptions.module, resolvedCategory);
|
|
@@ -180,7 +137,7 @@ function PageController(id, options, layout) {
|
|
|
180
137
|
return cl;
|
|
181
138
|
}
|
|
182
139
|
function RootPageController(id, options, layout) {
|
|
183
|
-
assertValidLiveOptions(id, options);
|
|
140
|
+
(0, controller_options_1.assertValidLiveOptions)(id, options);
|
|
184
141
|
const fullSlug = (0, categories_1.calculateFullSlug)(id, options);
|
|
185
142
|
const cl = class extends (0, interface_api_1.Controller)((0, page_routes_1.pageRoutePath)(fullSlug)) {
|
|
186
143
|
};
|
|
@@ -249,9 +206,6 @@ function RootCategory(id, options) {
|
|
|
249
206
|
if (RESERVED_ROOT_CATEGORY_IDS.has(id)) {
|
|
250
207
|
throw new Error(`RootCategory id "${id}" is reserved by the built-in Pages/Modules/Settings groups. Choose a different id.`);
|
|
251
208
|
}
|
|
252
|
-
// Spread options first so an explicitly-passed type wins, then default an
|
|
253
|
-
// omitted type to "label". Spreading after the default would let an explicit
|
|
254
|
-
// `type: undefined` clobber it.
|
|
255
209
|
return (0, categories_1.RootCategory)(id, {
|
|
256
210
|
...options,
|
|
257
211
|
type: options.type ?? "label",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/page/controllers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/page/controllers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Page-mode form sub-pages are not declared: the TableView factory registers
|
|
3
|
-
// one set of them per table view, deriving their id and their slug from the
|
|
4
|
-
// page and from the table view's own key. Two table views resolving to the same
|
|
5
|
-
// id or the same slug used to be silent — `publish()` disposes whatever already
|
|
6
|
-
// held the id, and the layout handler map keeps only the last writer for a slug
|
|
7
|
-
// — so a page would boot with one of its two forms quietly gone. Claims are
|
|
8
|
-
// checked here instead, and a collision is fatal.
|
|
9
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
3
|
exports.FormPageRouteConflictError = void 0;
|
|
11
4
|
const declaration_conflict_1 = require("./declaration-conflict");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-page-routes.js","sourceRoot":"","sources":["../../src/page/form-page-routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"form-page-routes.js","sourceRoot":"","sources":["../../src/page/form-page-routes.ts"],"names":[],"mappings":";;;AAAA,iEAAsE;AAEtE;;;;GAIG;AACH,MAAa,0BAA2B,SAAQ,mDAA4B;CAAG;AAA/E,gEAA+E"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ControllerClass } from "@antelopejs/interface-api";
|
|
2
|
-
import type
|
|
2
|
+
import { type ComponentInfo } from "../../component";
|
|
3
3
|
import type { CategoryInfo, MenuOptions, PageExtensionInfo, PageInfo } from "../types";
|
|
4
4
|
/**
|
|
5
5
|
* Resolve a category to CategoryInfo
|
|
@@ -12,21 +12,17 @@ exports.revokePageExtension = revokePageExtension;
|
|
|
12
12
|
exports.clearPageMetadata = clearPageMetadata;
|
|
13
13
|
exports.RootCategory = RootCategory;
|
|
14
14
|
const interface_core_1 = require("@antelopejs/interface-core");
|
|
15
|
+
const component_1 = require("../../component");
|
|
15
16
|
const permissions_1 = require("../../permissions");
|
|
16
|
-
//
|
|
17
|
-
// metadata module registers pages through the proxies declared in
|
|
18
|
-
// ../categories: the cycle stays safe because none of these modules
|
|
19
|
-
// dereferences another while it evaluates — only from inside function bodies.
|
|
20
|
-
// oxlint-disable-next-line import/no-cycle
|
|
17
|
+
// oxlint-disable-next-line import/no-cycle -- Category resolution reads PageMetadata inside functions; page registration uses the proxies declared in categories.
|
|
21
18
|
const metadata_1 = require("../metadata");
|
|
22
19
|
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
23
20
|
const fire_and_forget_1 = require("../../utils/fire-and-forget");
|
|
24
21
|
const registry_1 = require("./registry");
|
|
22
|
+
const category_permission_1 = require("./category-permission");
|
|
25
23
|
const member_access_1 = require("./member-access");
|
|
26
24
|
const types_1 = require("./types");
|
|
27
|
-
//
|
|
28
|
-
// the matching import in ../categories.
|
|
29
|
-
// oxlint-disable-next-line import/no-cycle
|
|
25
|
+
// oxlint-disable-next-line import/no-cycle -- Category proxies and isInsideModule are read inside functions, after module evaluation.
|
|
30
26
|
const categories_1 = require("../categories");
|
|
31
27
|
/**
|
|
32
28
|
* Resolve a category to CategoryInfo
|
|
@@ -39,6 +35,7 @@ function resolveCategoryInfo(category) {
|
|
|
39
35
|
if (!category) {
|
|
40
36
|
return undefined;
|
|
41
37
|
}
|
|
38
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- The published category union distinguishes controller constructors from CategoryInfo objects by callability.
|
|
42
39
|
if (typeof category === "function") {
|
|
43
40
|
const meta = (0, interface_core_1.GetMetadata)(category, metadata_1.PageMetadata);
|
|
44
41
|
if (!meta.pageInfo) {
|
|
@@ -66,10 +63,8 @@ function resolveInheritedLayout(category) {
|
|
|
66
63
|
}
|
|
67
64
|
return undefined;
|
|
68
65
|
}
|
|
69
|
-
// Unlike resolveCategoryInfo, a parent class that is not a registered page
|
|
70
|
-
// ends the walk instead of throwing: the page declaring it reports that when
|
|
71
|
-
// it registers, not while its layout is being chosen.
|
|
72
66
|
function findCategoryInfo(category) {
|
|
67
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- The category union represents a controller constructor or resolved metadata, not unparsed input.
|
|
73
68
|
if (typeof category !== "function")
|
|
74
69
|
return category;
|
|
75
70
|
return (0, interface_core_1.GetMetadata)(category, metadata_1.PageMetadata).pageInfo;
|
|
@@ -117,9 +112,6 @@ function resolveCategoryFromOptions(id, options) {
|
|
|
117
112
|
if (!moduleRoot) {
|
|
118
113
|
throw new Error(`"${id}" references unknown module "${options.module}". Make sure RegisterModule was called before registration.`);
|
|
119
114
|
}
|
|
120
|
-
// Loose pages attach to the module's default category when one is declared,
|
|
121
|
-
// so they render under a controllable heading instead of the generic
|
|
122
|
-
// "Pages" group. Otherwise they sit directly under the module root.
|
|
123
115
|
return registry_1.moduleDefaultCategories.get(options.module) ?? moduleRoot;
|
|
124
116
|
}
|
|
125
117
|
return undefined;
|
|
@@ -134,10 +126,6 @@ function validateExplicitCategoryMatchesModule(id, category, moduleId) {
|
|
|
134
126
|
throw new Error(`Page "${id}" declares module "${moduleId}" but its explicit category is not a descendant of that module's root.`);
|
|
135
127
|
}
|
|
136
128
|
}
|
|
137
|
-
// The settings root is compared by its stable fullId, not through the
|
|
138
|
-
// `settingsCategory` object: that object lives in the bootstrap module, which
|
|
139
|
-
// this module underpins — importing it back would make the graph circular for
|
|
140
|
-
// a check that only needs the id.
|
|
141
129
|
const SETTINGS_ROOT_FULL_ID = "settings";
|
|
142
130
|
/** @internal */
|
|
143
131
|
function validateNotInsideSettings(moduleId, resolved) {
|
|
@@ -172,34 +160,24 @@ function createCategoryFunction(id, options) {
|
|
|
172
160
|
resolvedCategory?.bypassTenantAccessGate,
|
|
173
161
|
};
|
|
174
162
|
categories_1.internal.RegisterCategory.register(categoryInfo);
|
|
175
|
-
// Left exactly as it was, and it is wrong: when `permission` is an Action,
|
|
176
|
-
// the spread copies the action's `id` and `definition` over the category's
|
|
177
|
-
// own and leaves the permission with no title, so the category registers
|
|
178
|
-
// under the action's short id while `resolvePagePermissionId` later looks it
|
|
179
|
-
// up under the full one.
|
|
180
|
-
//
|
|
181
|
-
// Not fixed here. registerPagePermission converts through `toPermission()`
|
|
182
|
-
// and skips registration when it succeeds, but it runs at page-registration
|
|
183
|
-
// time; a category is built at import time, before `permissionMap` holds the
|
|
184
|
-
// component, so `toPermission()` returns undefined and the same spread runs
|
|
185
|
-
// anyway. Making this right means deciding when a category's permission is
|
|
186
|
-
// resolved, which is a design question and not a lint pass.
|
|
187
163
|
const categoryPermission = {
|
|
188
164
|
id: categoryInfo.fullId,
|
|
189
165
|
title: categoryInfo.displayName,
|
|
190
166
|
icon: categoryInfo.icon,
|
|
191
167
|
defaultGranted: categoryInfo.publicAccess || (0, member_access_1.opensToMembers)(categoryInfo.memberAccess),
|
|
192
|
-
|
|
193
|
-
...categoryInfo.permission,
|
|
168
|
+
...ownPermission(categoryInfo.permission),
|
|
194
169
|
};
|
|
195
170
|
if ((0, categories_1.isInsideModule)(categoryInfo)) {
|
|
196
|
-
(0, permissions_1.MarkModuleScopedPermission)(
|
|
171
|
+
(0, permissions_1.MarkModuleScopedPermission)((0, category_permission_1.categoryOwnPermissionId)(categoryInfo));
|
|
197
172
|
}
|
|
198
|
-
else {
|
|
173
|
+
else if (!(categoryInfo.permission instanceof component_1.Action)) {
|
|
199
174
|
(0, permissions_1.RegisterPermission)(categoryPermission.id, categoryPermission);
|
|
200
175
|
}
|
|
201
176
|
return categoryInfo;
|
|
202
177
|
}
|
|
178
|
+
function ownPermission(permission) {
|
|
179
|
+
return permission instanceof component_1.Action ? undefined : permission;
|
|
180
|
+
}
|
|
203
181
|
/** @internal */
|
|
204
182
|
function applyModuleResolution(id, options) {
|
|
205
183
|
const resolvedReference = resolveCategoryFromOptions(id, options);
|
|
@@ -225,8 +203,6 @@ function revokePageExtension(info) {
|
|
|
225
203
|
const registered = registry_1.pageExtensions.get(info.targetFullId);
|
|
226
204
|
if (!registered)
|
|
227
205
|
return;
|
|
228
|
-
// By token: the implementation hands the extension back as a view of
|
|
229
|
-
// itself, and dropping it by reference would revoke nothing.
|
|
230
206
|
const remaining = registered.filter((entry) => !registry_1.pageExtensionIdentity.isSame(entry, info));
|
|
231
207
|
if (remaining.length === 0) {
|
|
232
208
|
registry_1.pageExtensions.delete(info.targetFullId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../src/page/internal/categories.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../../src/page/internal/categories.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CategoryInfo } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* The permission id a category owns: its own `fullId` unless it overrides it
|
|
4
|
+
* with a permission object. A category whose permission is an `Action` owns
|
|
5
|
+
* none, since the Action's permission belongs to its component and is only
|
|
6
|
+
* known once that component sits on a page.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare function categoryOwnPermissionId(category: CategoryInfo): string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.categoryOwnPermissionId = categoryOwnPermissionId;
|
|
4
|
+
/** @internal */
|
|
5
|
+
const component_1 = require("../../component");
|
|
6
|
+
/**
|
|
7
|
+
* The permission id a category owns: its own `fullId` unless it overrides it
|
|
8
|
+
* with a permission object. A category whose permission is an `Action` owns
|
|
9
|
+
* none, since the Action's permission belongs to its component and is only
|
|
10
|
+
* known once that component sits on a page.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
function categoryOwnPermissionId(category) {
|
|
15
|
+
const permission = category.permission;
|
|
16
|
+
if (permission instanceof component_1.Action)
|
|
17
|
+
return category.fullId;
|
|
18
|
+
return permission?.id || category.fullId;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=category-permission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-permission.js","sourceRoot":"","sources":["../../../src/page/internal/category-permission.ts"],"names":[],"mappings":";;AAYA,0DAIC;AAhBD,gBAAgB;AAChB,+CAAyC;AAGzC;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,QAAsB;IAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,IAAI,UAAU,YAAY,kBAAM;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzD,OAAO,UAAU,EAAE,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC;AAC3C,CAAC"}
|
|
@@ -12,10 +12,10 @@ const component_1 = require("../../component");
|
|
|
12
12
|
*/
|
|
13
13
|
function getDeclaredComponentChildren(component) {
|
|
14
14
|
const info = component.componentInfo;
|
|
15
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Preserve duck-typed thenable exclusion.
|
|
15
16
|
if (!info || typeof info.then === "function")
|
|
16
17
|
return [];
|
|
17
|
-
return
|
|
18
|
-
[]);
|
|
18
|
+
return info.children ?? [];
|
|
19
19
|
}
|
|
20
20
|
function targetParts(target) {
|
|
21
21
|
return target instanceof component_1.ComponentTarget
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-target.js","sourceRoot":"","sources":["../../../src/page/internal/component-target.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"component-target.js","sourceRoot":"","sources":["../../../src/page/internal/component-target.ts"],"names":[],"mappings":";;AAwBA,oEAQC;AAmCD,wDAUC;AAQD,wDAKC;AAOD,0DAIC;AArGD,+CAKyB;AAczB;;;;GAIG;AACH,SAAgB,4BAA4B,CAC1C,SAAoB;IAEpB,MAAM,IAAI,GACoB,SAAS,CAAC,aAAa,CAAC;IACtD,kGAAkG;IAClG,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,CAAC;IACxD,OAAO,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,MAA4B;IAC/C,OAAO,MAAM,YAAY,2BAAe;QACtC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,IAAI,2BAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAOD,SAAS,iBAAiB,CACxB,IAAe,EACf,IAAuB;IAEvB,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,MAA6B,CAAC;IAClC,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC,IAAI,CACxD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAC3B,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,MAAM,GAAG,SAAS,CAAC;QACnB,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,MAA4B,EAC5B,KAA6B;IAE7B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IACzE,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CACpC,cAAsB,EACtB,OAAe;IAEf,OAAO,GAAG,cAAc,UAAU,OAAO,EAAE,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CACrC,MAA+B;IAE/B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -33,8 +33,6 @@ function collectComponentTree(root, rootPermissionId) {
|
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
nodes.push(node);
|
|
36
|
-
// Recorded, so the filter knows to withhold it, but not walked: nothing
|
|
37
|
-
// below a position that is never served can be reached either.
|
|
38
36
|
if (node.access === "withheld") {
|
|
39
37
|
logging_1.Logging.Error(`[dms] "${node.permissionId}" is claimed by both an action and a child of the same name; the child and everything below it is withheld. Rename one of them.`);
|
|
40
38
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-tree.js","sourceRoot":"","sources":["../../../src/page/internal/component-tree.ts"],"names":[],"mappings":";;AA0BA,
|
|
1
|
+
{"version":3,"file":"component-tree.js","sourceRoot":"","sources":["../../../src/page/internal/component-tree.ts"],"names":[],"mappings":";;AA0BA,oDAyCC;AAnED,gEAA6D;AAE7D,yDAAkE;AAGlE;;;;;GAKG;AACH,SAAS,WAAW,CAAC,MAAiB,EAAE,OAAe;IACrD,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,UAAU,CAAC;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,oBAAoB,CAClC,IAAe,EACf,gBAAwB;IAExB,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAa,CAAC;IAEvC,MAAM,IAAI,GAAG,CAAC,IAAuB,EAAQ,EAAE;QAC7C,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,iBAAO,CAAC,IAAI,CACV,oBAAoB,IAAI,CAAC,YAAY,kDAAkD,CACxF,CAAC;YACF,OAAO;QACT,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,iBAAO,CAAC,KAAK,CACX,UAAU,IAAI,CAAC,YAAY,iIAAiI,CAC7J,CAAC;YACF,OAAO;QACT,CAAC;QAED,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,IAAA,+CAA4B,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC;gBACH,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,EAAE,EAAE;gBAChD,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;gBACrB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,gBAAgB;QAC9B,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
import type { MenuOptions } from "../types";
|
|
3
|
+
/** @internal */
|
|
4
|
+
export declare function assertHasCategoryOrModule(id: string, options: MenuOptions, kind: "Page" | "Category"): void;
|
|
5
|
+
/** @internal */
|
|
6
|
+
export declare function assertValidLiveOptions(id: string, options: MenuOptions): void;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertHasCategoryOrModule = assertHasCategoryOrModule;
|
|
4
|
+
exports.assertValidLiveOptions = assertValidLiveOptions;
|
|
5
|
+
/** @internal */
|
|
6
|
+
function assertHasCategoryOrModule(id, options, kind) {
|
|
7
|
+
if (!options.category && !options.module) {
|
|
8
|
+
throw new Error(`${kind} "${id}" must declare either "category" or "module" in its options.`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
const LIVE_PERIOD_PATTERN = /^[1-9]\d*[mhd]$/;
|
|
12
|
+
function assertPositiveRate(id, name, rate) {
|
|
13
|
+
// oxlint-disable-next-line anti-slop/no-runtime-typeof -- Page option validation deliberately rejects invalid JavaScript callers as well as nonpositive rates without changing declaration types.
|
|
14
|
+
if (typeof rate === "number" && Number.isFinite(rate) && rate > 0)
|
|
15
|
+
return;
|
|
16
|
+
throw new Error(`Page "${id}" declares ${name} ${String(rate)}: it must be a positive number of seconds.`);
|
|
17
|
+
}
|
|
18
|
+
function assertValidSlowRate(id, live) {
|
|
19
|
+
const slow = live.slowRateAfter;
|
|
20
|
+
if (slow === undefined)
|
|
21
|
+
return;
|
|
22
|
+
assertPositiveRate(id, "live.slowRateAfter.maxRate", slow.maxRate);
|
|
23
|
+
if (!LIVE_PERIOD_PATTERN.test(String(slow.period))) {
|
|
24
|
+
throw new Error(`Page "${id}" declares live.slowRateAfter.period "${String(slow.period)}": it must read like "30m", "24h" or "7d".`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** @internal */
|
|
28
|
+
function assertValidLiveOptions(id, options) {
|
|
29
|
+
const live = options.live;
|
|
30
|
+
if (!live)
|
|
31
|
+
return;
|
|
32
|
+
if (live.maxRate !== undefined) {
|
|
33
|
+
assertPositiveRate(id, "live.maxRate", live.maxRate);
|
|
34
|
+
}
|
|
35
|
+
assertValidSlowRate(id, live);
|
|
36
|
+
if (live.rememberKey !== undefined && live.rememberKey.trim() === "") {
|
|
37
|
+
throw new Error(`Page "${id}" declares an empty live.rememberKey.`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=controller-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller-options.js","sourceRoot":"","sources":["../../../src/page/internal/controller-options.ts"],"names":[],"mappings":";;AAIA,8DAUC;AA4BD,wDAUC;AAjDD,gBAAgB;AAChB,SAAgB,yBAAyB,CACvC,EAAU,EACV,OAAoB,EACpB,IAAyB;IAEzB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,KAAK,EAAE,8DAA8D,CAC7E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAE9C,SAAS,kBAAkB,CACzB,EAAU,EACV,IAAY,EACZ,IAAgC;IAEhC,kMAAkM;IAClM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO;IAC1E,MAAM,IAAI,KAAK,CACb,SAAS,EAAE,cAAc,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAC1F,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAU,EAAE,IAAqB;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;IAChC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAC/B,kBAAkB,CAAC,EAAE,EAAE,4BAA4B,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,SAAS,EAAE,yCAAyC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,4CAA4C,CACpH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,SAAgB,sBAAsB,CAAC,EAAU,EAAE,OAAoB;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IACD,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,uCAAuC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
|