@miragon/pulse-widget-shell 0.24.1 → 0.25.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/README.md +134 -127
- package/dist/caller.d.ts +3 -0
- package/dist/caller.d.ts.map +1 -0
- package/dist/caller.js +18 -0
- package/dist/caller.js.map +1 -0
- package/dist/composed-server.d.ts +34 -66
- package/dist/composed-server.d.ts.map +1 -1
- package/dist/composed-server.js +130 -137
- package/dist/composed-server.js.map +1 -1
- package/dist/composition.d.ts +61 -111
- package/dist/composition.d.ts.map +1 -1
- package/dist/composition.js +120 -54
- package/dist/composition.js.map +1 -1
- package/dist/font-assets.d.ts +7 -28
- package/dist/font-assets.d.ts.map +1 -1
- package/dist/font-assets.js +11 -43
- package/dist/font-assets.js.map +1 -1
- package/dist/health.d.ts +9 -45
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js +6 -24
- package/dist/health.js.map +1 -1
- package/dist/host-boot.d.ts +8 -38
- package/dist/host-boot.d.ts.map +1 -1
- package/dist/host-boot.js +10 -32
- package/dist/host-boot.js.map +1 -1
- package/dist/http-edge.d.ts +20 -76
- package/dist/http-edge.d.ts.map +1 -1
- package/dist/http-edge.js +17 -60
- package/dist/http-edge.js.map +1 -1
- package/dist/metrics.d.ts +6 -21
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +8 -36
- package/dist/metrics.js.map +1 -1
- package/dist/node-listener.d.ts +7 -39
- package/dist/node-listener.d.ts.map +1 -1
- package/dist/node-listener.js +6 -18
- package/dist/node-listener.js.map +1 -1
- package/dist/oauth-env.d.ts +15 -35
- package/dist/oauth-env.d.ts.map +1 -1
- package/dist/oauth-env.js +122 -62
- package/dist/oauth-env.js.map +1 -1
- package/dist/protocol/bpmn-names.d.ts +19 -0
- package/dist/protocol/bpmn-names.d.ts.map +1 -0
- package/dist/{bpmn-names.js → protocol/bpmn-names.js} +9 -38
- package/dist/protocol/bpmn-names.js.map +1 -0
- package/dist/protocol/served-fonts.d.ts +17 -0
- package/dist/protocol/served-fonts.d.ts.map +1 -0
- package/dist/protocol/served-fonts.js +30 -0
- package/dist/protocol/served-fonts.js.map +1 -0
- package/dist/protocol/tool-result.d.ts +24 -0
- package/dist/protocol/tool-result.d.ts.map +1 -0
- package/dist/protocol/tool-result.js +37 -0
- package/dist/protocol/tool-result.js.map +1 -0
- package/dist/protocol/translator.d.ts +14 -0
- package/dist/protocol/translator.d.ts.map +1 -0
- package/dist/protocol/translator.js +18 -0
- package/dist/protocol/translator.js.map +1 -0
- package/dist/protocol/view-name.d.ts +11 -0
- package/dist/protocol/view-name.d.ts.map +1 -0
- package/dist/protocol/view-name.js +23 -0
- package/dist/protocol/view-name.js.map +1 -0
- package/dist/request-context.d.ts +4 -33
- package/dist/request-context.d.ts.map +1 -1
- package/dist/request-context.js +11 -43
- package/dist/request-context.js.map +1 -1
- package/dist/server.d.ts +19 -39
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +28 -32
- package/dist/server.js.map +1 -1
- package/dist/testing/glossary.d.ts +4 -32
- package/dist/testing/glossary.d.ts.map +1 -1
- package/dist/testing/glossary.js +6 -30
- package/dist/testing/glossary.js.map +1 -1
- package/dist/testing/index.d.ts +1 -38
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -38
- package/dist/testing/index.js.map +1 -1
- package/dist/tool-errors.d.ts +16 -0
- package/dist/tool-errors.d.ts.map +1 -0
- package/dist/tool-errors.js +23 -0
- package/dist/tool-errors.js.map +1 -0
- package/dist/tool-registrar.d.ts +29 -0
- package/dist/tool-registrar.d.ts.map +1 -0
- package/dist/tool-registrar.js +47 -0
- package/dist/tool-registrar.js.map +1 -0
- package/dist/tool-registration.d.ts +35 -0
- package/dist/tool-registration.d.ts.map +1 -0
- package/dist/tool-registration.js +80 -0
- package/dist/tool-registration.js.map +1 -0
- package/dist/tool-schema-trim.d.ts +1 -15
- package/dist/tool-schema-trim.d.ts.map +1 -1
- package/dist/tool-schema-trim.js +1 -16
- package/dist/tool-schema-trim.js.map +1 -1
- package/dist/toolsets.d.ts +10 -56
- package/dist/toolsets.d.ts.map +1 -1
- package/dist/toolsets.js +2 -10
- package/dist/toolsets.js.map +1 -1
- package/dist/ui/action-feedback.d.ts +4 -26
- package/dist/ui/action-feedback.d.ts.map +1 -1
- package/dist/ui/action-feedback.js +5 -19
- package/dist/ui/action-feedback.js.map +1 -1
- package/dist/ui/ask-ai-button.d.ts +6 -43
- package/dist/ui/ask-ai-button.d.ts.map +1 -1
- package/dist/ui/ask-ai-button.js +6 -18
- package/dist/ui/ask-ai-button.js.map +1 -1
- package/dist/ui/ask-ai-prompt.d.ts +6 -82
- package/dist/ui/ask-ai-prompt.d.ts.map +1 -1
- package/dist/ui/ask-ai-prompt.js +10 -77
- package/dist/ui/ask-ai-prompt.js.map +1 -1
- package/dist/ui/bpmn-tokens.d.ts +3 -48
- package/dist/ui/bpmn-tokens.d.ts.map +1 -1
- package/dist/ui/bpmn-tokens.js +3 -46
- package/dist/ui/bpmn-tokens.js.map +1 -1
- package/dist/ui/bpmn-zoom-controls.d.ts +4 -17
- package/dist/ui/bpmn-zoom-controls.d.ts.map +1 -1
- package/dist/ui/bpmn-zoom-controls.js +2 -16
- package/dist/ui/bpmn-zoom-controls.js.map +1 -1
- package/dist/ui/call-observer.d.ts +35 -0
- package/dist/ui/call-observer.d.ts.map +1 -0
- package/dist/ui/call-observer.js +86 -0
- package/dist/ui/call-observer.js.map +1 -0
- package/dist/ui/confirm-dialog.d.ts +4 -31
- package/dist/ui/confirm-dialog.d.ts.map +1 -1
- package/dist/ui/confirm-dialog.js +4 -27
- package/dist/ui/confirm-dialog.js.map +1 -1
- package/dist/ui/count-tone.d.ts +3 -17
- package/dist/ui/count-tone.d.ts.map +1 -1
- package/dist/ui/count-tone.js +2 -16
- package/dist/ui/count-tone.js.map +1 -1
- package/dist/ui/declare-served-fonts.d.ts +4 -10
- package/dist/ui/declare-served-fonts.d.ts.map +1 -1
- package/dist/ui/declare-served-fonts.js +6 -13
- package/dist/ui/declare-served-fonts.js.map +1 -1
- package/dist/ui/describe-error.d.ts +5 -47
- package/dist/ui/describe-error.d.ts.map +1 -1
- package/dist/ui/describe-error.js +8 -45
- package/dist/ui/describe-error.js.map +1 -1
- package/dist/ui/display-mode-toggle.d.ts +3 -16
- package/dist/ui/display-mode-toggle.d.ts.map +1 -1
- package/dist/ui/display-mode-toggle.js +6 -15
- package/dist/ui/display-mode-toggle.js.map +1 -1
- package/dist/ui/error-labels.d.ts +3 -19
- package/dist/ui/error-labels.d.ts.map +1 -1
- package/dist/ui/error-labels.js +0 -1
- package/dist/ui/error-labels.js.map +1 -1
- package/dist/ui/hand-off-button.d.ts +3 -18
- package/dist/ui/hand-off-button.d.ts.map +1 -1
- package/dist/ui/hand-off-button.js +3 -18
- package/dist/ui/hand-off-button.js.map +1 -1
- package/dist/ui/host-context.d.ts +13 -50
- package/dist/ui/host-context.d.ts.map +1 -1
- package/dist/ui/host-context.js +20 -51
- package/dist/ui/host-context.js.map +1 -1
- package/dist/ui/host-contexts.d.ts +19 -0
- package/dist/ui/host-contexts.d.ts.map +1 -0
- package/dist/ui/host-contexts.js +31 -0
- package/dist/ui/host-contexts.js.map +1 -0
- package/dist/ui/host-document.d.ts +3 -18
- package/dist/ui/host-document.d.ts.map +1 -1
- package/dist/ui/host-document.js +7 -25
- package/dist/ui/host-document.js.map +1 -1
- package/dist/ui/host-widgets.d.ts +21 -4
- package/dist/ui/host-widgets.d.ts.map +1 -1
- package/dist/ui/host-widgets.js +19 -11
- package/dist/ui/host-widgets.js.map +1 -1
- package/dist/ui/id-text.d.ts +1 -17
- package/dist/ui/id-text.d.ts.map +1 -1
- package/dist/ui/id-text.js +5 -26
- package/dist/ui/id-text.js.map +1 -1
- package/dist/ui/index.d.ts +24 -43
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +36 -51
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/inline-budget.d.ts +2 -16
- package/dist/ui/inline-budget.d.ts.map +1 -1
- package/dist/ui/inline-budget.js +1 -8
- package/dist/ui/inline-budget.js.map +1 -1
- package/dist/ui/inline-fit-registry.d.ts +4 -31
- package/dist/ui/inline-fit-registry.d.ts.map +1 -1
- package/dist/ui/inline-fit-registry.js +9 -27
- package/dist/ui/inline-fit-registry.js.map +1 -1
- package/dist/ui/inline-fit-solve.d.ts +5 -27
- package/dist/ui/inline-fit-solve.d.ts.map +1 -1
- package/dist/ui/inline-fit-solve.js +4 -23
- package/dist/ui/inline-fit-solve.js.map +1 -1
- package/dist/ui/inline-fit.d.ts +4 -53
- package/dist/ui/inline-fit.d.ts.map +1 -1
- package/dist/ui/inline-fit.js +16 -62
- package/dist/ui/inline-fit.js.map +1 -1
- package/dist/ui/kit-labels.d.ts +12 -51
- package/dist/ui/kit-labels.d.ts.map +1 -1
- package/dist/ui/kit-labels.js +18 -28
- package/dist/ui/kit-labels.js.map +1 -1
- package/dist/ui/list-table.d.ts +15 -69
- package/dist/ui/list-table.d.ts.map +1 -1
- package/dist/ui/list-table.js +11 -69
- package/dist/ui/list-table.js.map +1 -1
- package/dist/ui/locale-gate.d.ts +11 -0
- package/dist/ui/locale-gate.d.ts.map +1 -0
- package/dist/ui/locale-gate.js +53 -0
- package/dist/ui/locale-gate.js.map +1 -0
- package/dist/ui/mcp-use-host.d.ts +20 -0
- package/dist/ui/mcp-use-host.d.ts.map +1 -0
- package/dist/ui/mcp-use-host.js +162 -0
- package/dist/ui/mcp-use-host.js.map +1 -0
- package/dist/ui/open-in-cockpit-link.d.ts +2 -21
- package/dist/ui/open-in-cockpit-link.d.ts.map +1 -1
- package/dist/ui/open-in-cockpit-link.js +5 -20
- package/dist/ui/open-in-cockpit-link.js.map +1 -1
- package/dist/ui/paged-rows.d.ts +3 -14
- package/dist/ui/paged-rows.d.ts.map +1 -1
- package/dist/ui/paged-rows.js +4 -14
- package/dist/ui/paged-rows.js.map +1 -1
- package/dist/ui/query-fallback.d.ts +2 -16
- package/dist/ui/query-fallback.d.ts.map +1 -1
- package/dist/ui/query-fallback.js +2 -14
- package/dist/ui/query-fallback.js.map +1 -1
- package/dist/ui/shell-host.d.ts +13 -23
- package/dist/ui/shell-host.d.ts.map +1 -1
- package/dist/ui/shell-host.js +1 -46
- package/dist/ui/shell-host.js.map +1 -1
- package/dist/ui/test-view-host.d.ts +51 -0
- package/dist/ui/test-view-host.d.ts.map +1 -0
- package/dist/ui/test-view-host.js +72 -0
- package/dist/ui/test-view-host.js.map +1 -0
- package/dist/ui/tool-query.d.ts +41 -0
- package/dist/ui/tool-query.d.ts.map +1 -0
- package/dist/ui/tool-query.js +128 -0
- package/dist/ui/tool-query.js.map +1 -0
- package/dist/ui/use-apply-theme.d.ts +1 -8
- package/dist/ui/use-apply-theme.d.ts.map +1 -1
- package/dist/ui/use-apply-theme.js +1 -8
- package/dist/ui/use-apply-theme.js.map +1 -1
- package/dist/ui/use-bpmn-viewer.d.ts +39 -73
- package/dist/ui/use-bpmn-viewer.d.ts.map +1 -1
- package/dist/ui/use-bpmn-viewer.js +18 -66
- package/dist/ui/use-bpmn-viewer.js.map +1 -1
- package/dist/ui/use-detail-view.d.ts +4 -26
- package/dist/ui/use-detail-view.d.ts.map +1 -1
- package/dist/ui/use-detail-view.js +7 -28
- package/dist/ui/use-detail-view.js.map +1 -1
- package/dist/ui/use-paged-list-view.d.ts +5 -25
- package/dist/ui/use-paged-list-view.d.ts.map +1 -1
- package/dist/ui/use-paged-list-view.js +5 -14
- package/dist/ui/use-paged-list-view.js.map +1 -1
- package/dist/ui/use-paged-view-data.d.ts +11 -66
- package/dist/ui/use-paged-view-data.d.ts.map +1 -1
- package/dist/ui/use-paged-view-data.js +20 -53
- package/dist/ui/use-paged-view-data.js.map +1 -1
- package/dist/ui/view-call.d.ts +66 -0
- package/dist/ui/view-call.d.ts.map +1 -0
- package/dist/ui/view-call.js +63 -0
- package/dist/ui/view-call.js.map +1 -0
- package/dist/ui/view-data-state.d.ts +1 -31
- package/dist/ui/view-data-state.d.ts.map +1 -1
- package/dist/ui/view-data-state.js +3 -32
- package/dist/ui/view-data-state.js.map +1 -1
- package/dist/ui/view-error-boundary.d.ts +24 -0
- package/dist/ui/view-error-boundary.d.ts.map +1 -0
- package/dist/ui/view-error-boundary.js +33 -0
- package/dist/ui/view-error-boundary.js.map +1 -0
- package/dist/ui/view-frame.d.ts +15 -0
- package/dist/ui/view-frame.d.ts.map +1 -0
- package/dist/ui/view-frame.js +72 -0
- package/dist/ui/view-frame.js.map +1 -0
- package/dist/ui/view-host.d.ts +35 -0
- package/dist/ui/view-host.d.ts.map +1 -0
- package/dist/ui/view-host.js +18 -0
- package/dist/ui/view-host.js.map +1 -0
- package/dist/ui/view-meta.d.ts +6 -29
- package/dist/ui/view-meta.d.ts.map +1 -1
- package/dist/ui/view-meta.js +2 -13
- package/dist/ui/view-meta.js.map +1 -1
- package/dist/ui/view-refresh-state.d.ts +4 -18
- package/dist/ui/view-refresh-state.d.ts.map +1 -1
- package/dist/ui/view-refresh-state.js +1 -7
- package/dist/ui/view-refresh-state.js.map +1 -1
- package/dist/ui/view-root.d.ts +26 -0
- package/dist/ui/view-root.d.ts.map +1 -0
- package/dist/ui/view-root.js +48 -0
- package/dist/ui/view-root.js.map +1 -0
- package/dist/ui/views.d.ts +17 -0
- package/dist/ui/views.d.ts.map +1 -0
- package/dist/ui/views.js +11 -0
- package/dist/ui/views.js.map +1 -0
- package/dist/ui/widget-shell.d.ts +1 -13
- package/dist/ui/widget-shell.d.ts.map +1 -1
- package/dist/ui/widget-shell.js +5 -30
- package/dist/ui/widget-shell.js.map +1 -1
- package/dist/view-bundle.d.ts +15 -0
- package/dist/view-bundle.d.ts.map +1 -0
- package/dist/view-bundle.js +23 -0
- package/dist/view-bundle.js.map +1 -0
- package/dist/view-results.d.ts +12 -23
- package/dist/view-results.d.ts.map +1 -1
- package/dist/view-results.js +14 -11
- package/dist/view-results.js.map +1 -1
- package/dist/widget-tool-bindings.d.ts +19 -48
- package/dist/widget-tool-bindings.d.ts.map +1 -1
- package/dist/widget-tool-bindings.js +21 -49
- package/dist/widget-tool-bindings.js.map +1 -1
- package/package.json +24 -36
- package/dist/adapt-data-widget.d.ts +0 -7
- package/dist/adapt-data-widget.d.ts.map +0 -1
- package/dist/adapt-data-widget.js +0 -7
- package/dist/adapt-data-widget.js.map +0 -1
- package/dist/bpmn-names.d.ts +0 -42
- package/dist/bpmn-names.d.ts.map +0 -1
- package/dist/bpmn-names.js.map +0 -1
- package/dist/bpmn-names.test.d.ts +0 -2
- package/dist/bpmn-names.test.d.ts.map +0 -1
- package/dist/bpmn-names.test.js +0 -143
- package/dist/bpmn-names.test.js.map +0 -1
- package/dist/build-data-feed-result.test.d.ts +0 -2
- package/dist/build-data-feed-result.test.d.ts.map +0 -1
- package/dist/build-data-feed-result.test.js +0 -28
- package/dist/build-data-feed-result.test.js.map +0 -1
- package/dist/build-single-widget-view.test.d.ts +0 -2
- package/dist/build-single-widget-view.test.d.ts.map +0 -1
- package/dist/build-single-widget-view.test.js +0 -136
- package/dist/build-single-widget-view.test.js.map +0 -1
- package/dist/builder-texts.d.ts +0 -27
- package/dist/builder-texts.d.ts.map +0 -1
- package/dist/builder-texts.js +0 -32
- package/dist/builder-texts.js.map +0 -1
- package/dist/builder-texts.test.d.ts +0 -2
- package/dist/builder-texts.test.d.ts.map +0 -1
- package/dist/builder-texts.test.js +0 -54
- package/dist/builder-texts.test.js.map +0 -1
- package/dist/catalogue-sync.d.ts +0 -18
- package/dist/catalogue-sync.d.ts.map +0 -1
- package/dist/catalogue-sync.js +0 -31
- package/dist/catalogue-sync.js.map +0 -1
- package/dist/catalogue-sync.test.d.ts +0 -2
- package/dist/catalogue-sync.test.d.ts.map +0 -1
- package/dist/catalogue-sync.test.js +0 -22
- package/dist/catalogue-sync.test.js.map +0 -1
- package/dist/composed-server.edge.test.d.ts +0 -2
- package/dist/composed-server.edge.test.d.ts.map +0 -1
- package/dist/composed-server.edge.test.js +0 -184
- package/dist/composed-server.edge.test.js.map +0 -1
- package/dist/composed-server.fonts.test.d.ts +0 -2
- package/dist/composed-server.fonts.test.d.ts.map +0 -1
- package/dist/composed-server.fonts.test.js +0 -186
- package/dist/composed-server.fonts.test.js.map +0 -1
- package/dist/composed-server.test.d.ts +0 -2
- package/dist/composed-server.test.d.ts.map +0 -1
- package/dist/composed-server.test.js +0 -332
- package/dist/composed-server.test.js.map +0 -1
- package/dist/composition.test.d.ts +0 -2
- package/dist/composition.test.d.ts.map +0 -1
- package/dist/composition.test.js +0 -275
- package/dist/composition.test.js.map +0 -1
- package/dist/dashboard-store-postgres.d.ts +0 -43
- package/dist/dashboard-store-postgres.d.ts.map +0 -1
- package/dist/dashboard-store-postgres.js +0 -225
- package/dist/dashboard-store-postgres.js.map +0 -1
- package/dist/dashboard-store-postgres.test.d.ts +0 -2
- package/dist/dashboard-store-postgres.test.d.ts.map +0 -1
- package/dist/dashboard-store-postgres.test.js +0 -272
- package/dist/dashboard-store-postgres.test.js.map +0 -1
- package/dist/font-assets.test.d.ts +0 -2
- package/dist/font-assets.test.d.ts.map +0 -1
- package/dist/font-assets.test.js +0 -123
- package/dist/font-assets.test.js.map +0 -1
- package/dist/health.test.d.ts +0 -2
- package/dist/health.test.d.ts.map +0 -1
- package/dist/health.test.js +0 -140
- package/dist/health.test.js.map +0 -1
- package/dist/host-boot.test.d.ts +0 -2
- package/dist/host-boot.test.d.ts.map +0 -1
- package/dist/host-boot.test.js +0 -59
- package/dist/host-boot.test.js.map +0 -1
- package/dist/http-edge.test.d.ts +0 -2
- package/dist/http-edge.test.d.ts.map +0 -1
- package/dist/http-edge.test.js +0 -255
- package/dist/http-edge.test.js.map +0 -1
- package/dist/metrics.test.d.ts +0 -2
- package/dist/metrics.test.d.ts.map +0 -1
- package/dist/metrics.test.js +0 -154
- package/dist/metrics.test.js.map +0 -1
- package/dist/node-listener.test.d.ts +0 -2
- package/dist/node-listener.test.d.ts.map +0 -1
- package/dist/node-listener.test.js +0 -331
- package/dist/node-listener.test.js.map +0 -1
- package/dist/oauth-env.test.d.ts +0 -2
- package/dist/oauth-env.test.d.ts.map +0 -1
- package/dist/oauth-env.test.js +0 -76
- package/dist/oauth-env.test.js.map +0 -1
- package/dist/postgres.d.ts +0 -59
- package/dist/postgres.d.ts.map +0 -1
- package/dist/postgres.js +0 -80
- package/dist/postgres.js.map +0 -1
- package/dist/profile-advisory.d.ts +0 -19
- package/dist/profile-advisory.d.ts.map +0 -1
- package/dist/profile-advisory.js +0 -48
- package/dist/profile-advisory.js.map +0 -1
- package/dist/profile-advisory.test.d.ts +0 -2
- package/dist/profile-advisory.test.d.ts.map +0 -1
- package/dist/profile-advisory.test.js +0 -53
- package/dist/profile-advisory.test.js.map +0 -1
- package/dist/profile-constants.d.ts +0 -37
- package/dist/profile-constants.d.ts.map +0 -1
- package/dist/profile-constants.js +0 -37
- package/dist/profile-constants.js.map +0 -1
- package/dist/profile-migrations.d.ts +0 -71
- package/dist/profile-migrations.d.ts.map +0 -1
- package/dist/profile-migrations.js +0 -88
- package/dist/profile-migrations.js.map +0 -1
- package/dist/profile-migrations.test.d.ts +0 -2
- package/dist/profile-migrations.test.d.ts.map +0 -1
- package/dist/profile-migrations.test.js +0 -200
- package/dist/profile-migrations.test.js.map +0 -1
- package/dist/profile-record.d.ts +0 -60
- package/dist/profile-record.d.ts.map +0 -1
- package/dist/profile-record.js +0 -78
- package/dist/profile-record.js.map +0 -1
- package/dist/profile-slice.d.ts +0 -53
- package/dist/profile-slice.d.ts.map +0 -1
- package/dist/profile-slice.js +0 -73
- package/dist/profile-slice.js.map +0 -1
- package/dist/profile-slice.test.d.ts +0 -2
- package/dist/profile-slice.test.d.ts.map +0 -1
- package/dist/profile-slice.test.js +0 -73
- package/dist/profile-slice.test.js.map +0 -1
- package/dist/profile-store-env.d.ts +0 -34
- package/dist/profile-store-env.d.ts.map +0 -1
- package/dist/profile-store-env.js +0 -44
- package/dist/profile-store-env.js.map +0 -1
- package/dist/profile-store-env.test.d.ts +0 -2
- package/dist/profile-store-env.test.d.ts.map +0 -1
- package/dist/profile-store-env.test.js +0 -69
- package/dist/profile-store-env.test.js.map +0 -1
- package/dist/profile-store-postgres.d.ts +0 -33
- package/dist/profile-store-postgres.d.ts.map +0 -1
- package/dist/profile-store-postgres.js +0 -87
- package/dist/profile-store-postgres.js.map +0 -1
- package/dist/profile-store-raw.test.d.ts +0 -2
- package/dist/profile-store-raw.test.d.ts.map +0 -1
- package/dist/profile-store-raw.test.js +0 -185
- package/dist/profile-store-raw.test.js.map +0 -1
- package/dist/profile-store.d.ts +0 -85
- package/dist/profile-store.d.ts.map +0 -1
- package/dist/profile-store.js +0 -182
- package/dist/profile-store.js.map +0 -1
- package/dist/profile-store.test.d.ts +0 -2
- package/dist/profile-store.test.d.ts.map +0 -1
- package/dist/profile-store.test.js +0 -353
- package/dist/profile-store.test.js.map +0 -1
- package/dist/profile.d.ts +0 -75
- package/dist/profile.d.ts.map +0 -1
- package/dist/profile.js +0 -85
- package/dist/profile.js.map +0 -1
- package/dist/profile.test.d.ts +0 -2
- package/dist/profile.test.d.ts.map +0 -1
- package/dist/profile.test.js +0 -71
- package/dist/profile.test.js.map +0 -1
- package/dist/request-context.test.d.ts +0 -2
- package/dist/request-context.test.d.ts.map +0 -1
- package/dist/request-context.test.js +0 -107
- package/dist/request-context.test.js.map +0 -1
- package/dist/served-fonts.d.ts +0 -38
- package/dist/served-fonts.d.ts.map +0 -1
- package/dist/served-fonts.js +0 -51
- package/dist/served-fonts.js.map +0 -1
- package/dist/served-fonts.test.d.ts +0 -2
- package/dist/served-fonts.test.d.ts.map +0 -1
- package/dist/served-fonts.test.js +0 -30
- package/dist/served-fonts.test.js.map +0 -1
- package/dist/server-locale.d.ts +0 -58
- package/dist/server-locale.d.ts.map +0 -1
- package/dist/server-locale.js +0 -64
- package/dist/server-locale.js.map +0 -1
- package/dist/server-locale.test.d.ts +0 -2
- package/dist/server-locale.test.d.ts.map +0 -1
- package/dist/server-locale.test.js +0 -90
- package/dist/server-locale.test.js.map +0 -1
- package/dist/shell-catalogue.d.ts +0 -12
- package/dist/shell-catalogue.d.ts.map +0 -1
- package/dist/shell-catalogue.js +0 -142
- package/dist/shell-catalogue.js.map +0 -1
- package/dist/shell-settings-contract.d.ts +0 -34
- package/dist/shell-settings-contract.d.ts.map +0 -1
- package/dist/shell-settings-contract.js +0 -21
- package/dist/shell-settings-contract.js.map +0 -1
- package/dist/shell-settings.d.ts +0 -24
- package/dist/shell-settings.d.ts.map +0 -1
- package/dist/shell-settings.js +0 -148
- package/dist/shell-settings.js.map +0 -1
- package/dist/shell-settings.test.d.ts +0 -2
- package/dist/shell-settings.test.d.ts.map +0 -1
- package/dist/shell-settings.test.js +0 -115
- package/dist/shell-settings.test.js.map +0 -1
- package/dist/testing/catalog-text.d.ts +0 -53
- package/dist/testing/catalog-text.d.ts.map +0 -1
- package/dist/testing/catalog-text.js +0 -146
- package/dist/testing/catalog-text.js.map +0 -1
- package/dist/testing/catalog-text.test.d.ts +0 -2
- package/dist/testing/catalog-text.test.d.ts.map +0 -1
- package/dist/testing/catalog-text.test.js +0 -137
- package/dist/testing/catalog-text.test.js.map +0 -1
- package/dist/testing/colors.d.ts +0 -34
- package/dist/testing/colors.d.ts.map +0 -1
- package/dist/testing/colors.js +0 -124
- package/dist/testing/colors.js.map +0 -1
- package/dist/testing/colors.test.d.ts +0 -2
- package/dist/testing/colors.test.d.ts.map +0 -1
- package/dist/testing/colors.test.js +0 -166
- package/dist/testing/colors.test.js.map +0 -1
- package/dist/testing/contrast.d.ts +0 -77
- package/dist/testing/contrast.d.ts.map +0 -1
- package/dist/testing/contrast.js +0 -382
- package/dist/testing/contrast.js.map +0 -1
- package/dist/testing/contrast.test.d.ts +0 -2
- package/dist/testing/contrast.test.d.ts.map +0 -1
- package/dist/testing/contrast.test.js +0 -230
- package/dist/testing/contrast.test.js.map +0 -1
- package/dist/testing/display-texts.d.ts +0 -23
- package/dist/testing/display-texts.d.ts.map +0 -1
- package/dist/testing/display-texts.js +0 -88
- package/dist/testing/display-texts.js.map +0 -1
- package/dist/testing/display-texts.test.d.ts +0 -2
- package/dist/testing/display-texts.test.d.ts.map +0 -1
- package/dist/testing/display-texts.test.js +0 -169
- package/dist/testing/display-texts.test.js.map +0 -1
- package/dist/testing/glossary.test.d.ts +0 -2
- package/dist/testing/glossary.test.d.ts.map +0 -1
- package/dist/testing/glossary.test.js +0 -78
- package/dist/testing/glossary.test.js.map +0 -1
- package/dist/testing/glyphs.d.ts +0 -27
- package/dist/testing/glyphs.d.ts.map +0 -1
- package/dist/testing/glyphs.js +0 -130
- package/dist/testing/glyphs.js.map +0 -1
- package/dist/testing/glyphs.test.d.ts +0 -2
- package/dist/testing/glyphs.test.d.ts.map +0 -1
- package/dist/testing/glyphs.test.js +0 -146
- package/dist/testing/glyphs.test.js.map +0 -1
- package/dist/testing/icon-sizes.d.ts +0 -22
- package/dist/testing/icon-sizes.d.ts.map +0 -1
- package/dist/testing/icon-sizes.js +0 -39
- package/dist/testing/icon-sizes.js.map +0 -1
- package/dist/testing/icon-sizes.test.d.ts +0 -2
- package/dist/testing/icon-sizes.test.d.ts.map +0 -1
- package/dist/testing/icon-sizes.test.js +0 -36
- package/dist/testing/icon-sizes.test.js.map +0 -1
- package/dist/testing/source-scan.d.ts +0 -16
- package/dist/testing/source-scan.d.ts.map +0 -1
- package/dist/testing/source-scan.js +0 -57
- package/dist/testing/source-scan.js.map +0 -1
- package/dist/testing/tone-pairs.d.ts +0 -20
- package/dist/testing/tone-pairs.d.ts.map +0 -1
- package/dist/testing/tone-pairs.js +0 -154
- package/dist/testing/tone-pairs.js.map +0 -1
- package/dist/testing/type-scale.d.ts +0 -40
- package/dist/testing/type-scale.d.ts.map +0 -1
- package/dist/testing/type-scale.js +0 -55
- package/dist/testing/type-scale.js.map +0 -1
- package/dist/testing/type-scale.test.d.ts +0 -2
- package/dist/testing/type-scale.test.d.ts.map +0 -1
- package/dist/testing/type-scale.test.js +0 -61
- package/dist/testing/type-scale.test.js.map +0 -1
- package/dist/tool-schema-trim.test.d.ts +0 -2
- package/dist/tool-schema-trim.test.d.ts.map +0 -1
- package/dist/tool-schema-trim.test.js +0 -53
- package/dist/tool-schema-trim.test.js.map +0 -1
- package/dist/toolsets.test.d.ts +0 -2
- package/dist/toolsets.test.d.ts.map +0 -1
- package/dist/toolsets.test.js +0 -86
- package/dist/toolsets.test.js.map +0 -1
- package/dist/ui/action-feedback.test.d.ts +0 -2
- package/dist/ui/action-feedback.test.d.ts.map +0 -1
- package/dist/ui/action-feedback.test.js +0 -77
- package/dist/ui/action-feedback.test.js.map +0 -1
- package/dist/ui/app-shell-providers.d.ts +0 -18
- package/dist/ui/app-shell-providers.d.ts.map +0 -1
- package/dist/ui/app-shell-providers.js +0 -19
- package/dist/ui/app-shell-providers.js.map +0 -1
- package/dist/ui/app-shell-providers.test.d.ts +0 -2
- package/dist/ui/app-shell-providers.test.d.ts.map +0 -1
- package/dist/ui/app-shell-providers.test.js +0 -249
- package/dist/ui/app-shell-providers.test.js.map +0 -1
- package/dist/ui/ask-ai-button.test.d.ts +0 -2
- package/dist/ui/ask-ai-button.test.d.ts.map +0 -1
- package/dist/ui/ask-ai-button.test.js +0 -103
- package/dist/ui/ask-ai-button.test.js.map +0 -1
- package/dist/ui/ask-ai-prompt.test.d.ts +0 -2
- package/dist/ui/ask-ai-prompt.test.d.ts.map +0 -1
- package/dist/ui/ask-ai-prompt.test.js +0 -240
- package/dist/ui/ask-ai-prompt.test.js.map +0 -1
- package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts +0 -2
- package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts.map +0 -1
- package/dist/ui/bpmn-heatmap/heat-ramp.test.js +0 -174
- package/dist/ui/bpmn-heatmap/heat-ramp.test.js.map +0 -1
- package/dist/ui/bpmn-heatmap/heat-utils.d.ts +0 -119
- package/dist/ui/bpmn-heatmap/heat-utils.d.ts.map +0 -1
- package/dist/ui/bpmn-heatmap/heat-utils.js +0 -231
- package/dist/ui/bpmn-heatmap/heat-utils.js.map +0 -1
- package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts +0 -2
- package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts.map +0 -1
- package/dist/ui/bpmn-heatmap/heat-utils.test.js +0 -59
- package/dist/ui/bpmn-heatmap/heat-utils.test.js.map +0 -1
- package/dist/ui/bpmn-heatmap-labels.d.ts +0 -46
- package/dist/ui/bpmn-heatmap-labels.d.ts.map +0 -1
- package/dist/ui/bpmn-heatmap-labels.js +0 -16
- package/dist/ui/bpmn-heatmap-labels.js.map +0 -1
- package/dist/ui/bpmn-heatmap-widget.d.ts +0 -38
- package/dist/ui/bpmn-heatmap-widget.d.ts.map +0 -1
- package/dist/ui/bpmn-heatmap-widget.js +0 -65
- package/dist/ui/bpmn-heatmap-widget.js.map +0 -1
- package/dist/ui/bpmn-heatmap-widget.test.d.ts +0 -2
- package/dist/ui/bpmn-heatmap-widget.test.d.ts.map +0 -1
- package/dist/ui/bpmn-heatmap-widget.test.js +0 -173
- package/dist/ui/bpmn-heatmap-widget.test.js.map +0 -1
- package/dist/ui/bpmn-heatmap.d.ts +0 -61
- package/dist/ui/bpmn-heatmap.d.ts.map +0 -1
- package/dist/ui/bpmn-heatmap.js +0 -119
- package/dist/ui/bpmn-heatmap.js.map +0 -1
- package/dist/ui/bpmn-tokens.test.d.ts +0 -2
- package/dist/ui/bpmn-tokens.test.d.ts.map +0 -1
- package/dist/ui/bpmn-tokens.test.js +0 -98
- package/dist/ui/bpmn-tokens.test.js.map +0 -1
- package/dist/ui/brand-gates.test.d.ts +0 -2
- package/dist/ui/brand-gates.test.d.ts.map +0 -1
- package/dist/ui/brand-gates.test.js +0 -131
- package/dist/ui/brand-gates.test.js.map +0 -1
- package/dist/ui/brand-mark.d.ts +0 -37
- package/dist/ui/brand-mark.d.ts.map +0 -1
- package/dist/ui/brand-mark.js +0 -33
- package/dist/ui/brand-mark.js.map +0 -1
- package/dist/ui/brand-mark.test.d.ts +0 -2
- package/dist/ui/brand-mark.test.d.ts.map +0 -1
- package/dist/ui/brand-mark.test.js +0 -111
- package/dist/ui/brand-mark.test.js.map +0 -1
- package/dist/ui/confirm-dialog.test.d.ts +0 -2
- package/dist/ui/confirm-dialog.test.d.ts.map +0 -1
- package/dist/ui/confirm-dialog.test.js +0 -115
- package/dist/ui/confirm-dialog.test.js.map +0 -1
- package/dist/ui/count-tone.test.d.ts +0 -2
- package/dist/ui/count-tone.test.d.ts.map +0 -1
- package/dist/ui/count-tone.test.js +0 -27
- package/dist/ui/count-tone.test.js.map +0 -1
- package/dist/ui/create-use-t.d.ts +0 -15
- package/dist/ui/create-use-t.d.ts.map +0 -1
- package/dist/ui/create-use-t.js +0 -17
- package/dist/ui/create-use-t.js.map +0 -1
- package/dist/ui/declare-served-fonts.test.d.ts +0 -2
- package/dist/ui/declare-served-fonts.test.d.ts.map +0 -1
- package/dist/ui/declare-served-fonts.test.js +0 -44
- package/dist/ui/declare-served-fonts.test.js.map +0 -1
- package/dist/ui/describe-error.test.d.ts +0 -2
- package/dist/ui/describe-error.test.d.ts.map +0 -1
- package/dist/ui/describe-error.test.js +0 -274
- package/dist/ui/describe-error.test.js.map +0 -1
- package/dist/ui/format.d.ts +0 -81
- package/dist/ui/format.d.ts.map +0 -1
- package/dist/ui/format.js +0 -189
- package/dist/ui/format.js.map +0 -1
- package/dist/ui/format.test.d.ts +0 -2
- package/dist/ui/format.test.d.ts.map +0 -1
- package/dist/ui/format.test.js +0 -181
- package/dist/ui/format.test.js.map +0 -1
- package/dist/ui/generic-widgets.d.ts +0 -15
- package/dist/ui/generic-widgets.d.ts.map +0 -1
- package/dist/ui/generic-widgets.js +0 -122
- package/dist/ui/generic-widgets.js.map +0 -1
- package/dist/ui/generic-widgets.test.d.ts +0 -2
- package/dist/ui/generic-widgets.test.d.ts.map +0 -1
- package/dist/ui/generic-widgets.test.js +0 -139
- package/dist/ui/generic-widgets.test.js.map +0 -1
- package/dist/ui/hand-off-button.test.d.ts +0 -2
- package/dist/ui/hand-off-button.test.d.ts.map +0 -1
- package/dist/ui/hand-off-button.test.js +0 -78
- package/dist/ui/hand-off-button.test.js.map +0 -1
- package/dist/ui/host-context.test.d.ts +0 -2
- package/dist/ui/host-context.test.d.ts.map +0 -1
- package/dist/ui/host-context.test.js +0 -160
- package/dist/ui/host-context.test.js.map +0 -1
- package/dist/ui/host-document.test.d.ts +0 -2
- package/dist/ui/host-document.test.d.ts.map +0 -1
- package/dist/ui/host-document.test.js +0 -112
- package/dist/ui/host-document.test.js.map +0 -1
- package/dist/ui/humanize-key.d.ts +0 -11
- package/dist/ui/humanize-key.d.ts.map +0 -1
- package/dist/ui/humanize-key.js +0 -26
- package/dist/ui/humanize-key.js.map +0 -1
- package/dist/ui/humanize-key.test.d.ts +0 -2
- package/dist/ui/humanize-key.test.d.ts.map +0 -1
- package/dist/ui/humanize-key.test.js +0 -42
- package/dist/ui/humanize-key.test.js.map +0 -1
- package/dist/ui/icon.d.ts +0 -37
- package/dist/ui/icon.d.ts.map +0 -1
- package/dist/ui/icon.js +0 -32
- package/dist/ui/icon.js.map +0 -1
- package/dist/ui/id-breaks.d.ts +0 -17
- package/dist/ui/id-breaks.d.ts.map +0 -1
- package/dist/ui/id-breaks.js +0 -36
- package/dist/ui/id-breaks.js.map +0 -1
- package/dist/ui/id-breaks.test.d.ts +0 -2
- package/dist/ui/id-breaks.test.d.ts.map +0 -1
- package/dist/ui/id-breaks.test.js +0 -37
- package/dist/ui/id-breaks.test.js.map +0 -1
- package/dist/ui/id-text.test.d.ts +0 -2
- package/dist/ui/id-text.test.d.ts.map +0 -1
- package/dist/ui/id-text.test.js +0 -122
- package/dist/ui/id-text.test.js.map +0 -1
- package/dist/ui/index.test.d.ts +0 -2
- package/dist/ui/index.test.d.ts.map +0 -1
- package/dist/ui/index.test.js +0 -34
- package/dist/ui/index.test.js.map +0 -1
- package/dist/ui/inline-fit-solve.test.d.ts +0 -2
- package/dist/ui/inline-fit-solve.test.d.ts.map +0 -1
- package/dist/ui/inline-fit-solve.test.js +0 -108
- package/dist/ui/inline-fit-solve.test.js.map +0 -1
- package/dist/ui/inline-fit-time.test.d.ts +0 -2
- package/dist/ui/inline-fit-time.test.d.ts.map +0 -1
- package/dist/ui/inline-fit-time.test.js +0 -110
- package/dist/ui/inline-fit-time.test.js.map +0 -1
- package/dist/ui/inline-fit.test-support.d.ts +0 -26
- package/dist/ui/inline-fit.test-support.d.ts.map +0 -1
- package/dist/ui/inline-fit.test-support.js +0 -34
- package/dist/ui/inline-fit.test-support.js.map +0 -1
- package/dist/ui/inline-fit.test.d.ts +0 -2
- package/dist/ui/inline-fit.test.d.ts.map +0 -1
- package/dist/ui/inline-fit.test.js +0 -159
- package/dist/ui/inline-fit.test.js.map +0 -1
- package/dist/ui/kit-labels.test.d.ts +0 -2
- package/dist/ui/kit-labels.test.d.ts.map +0 -1
- package/dist/ui/kit-labels.test.js +0 -98
- package/dist/ui/kit-labels.test.js.map +0 -1
- package/dist/ui/kit-type-roles.test.d.ts +0 -2
- package/dist/ui/kit-type-roles.test.d.ts.map +0 -1
- package/dist/ui/kit-type-roles.test.js +0 -122
- package/dist/ui/kit-type-roles.test.js.map +0 -1
- package/dist/ui/komet-svg.d.ts +0 -15
- package/dist/ui/komet-svg.d.ts.map +0 -1
- package/dist/ui/komet-svg.js +0 -21
- package/dist/ui/komet-svg.js.map +0 -1
- package/dist/ui/list-table.test.d.ts +0 -2
- package/dist/ui/list-table.test.d.ts.map +0 -1
- package/dist/ui/list-table.test.js +0 -169
- package/dist/ui/list-table.test.js.map +0 -1
- package/dist/ui/localized-app-view.d.ts +0 -40
- package/dist/ui/localized-app-view.d.ts.map +0 -1
- package/dist/ui/localized-app-view.js +0 -71
- package/dist/ui/localized-app-view.js.map +0 -1
- package/dist/ui/log-text.d.ts +0 -24
- package/dist/ui/log-text.d.ts.map +0 -1
- package/dist/ui/log-text.js +0 -31
- package/dist/ui/log-text.js.map +0 -1
- package/dist/ui/menu-item.d.ts +0 -12
- package/dist/ui/menu-item.d.ts.map +0 -1
- package/dist/ui/menu-item.js +0 -13
- package/dist/ui/menu-item.js.map +0 -1
- package/dist/ui/named-id.d.ts +0 -23
- package/dist/ui/named-id.d.ts.map +0 -1
- package/dist/ui/named-id.js +0 -21
- package/dist/ui/named-id.js.map +0 -1
- package/dist/ui/named-id.test.d.ts +0 -2
- package/dist/ui/named-id.test.d.ts.map +0 -1
- package/dist/ui/named-id.test.js +0 -57
- package/dist/ui/named-id.test.js.map +0 -1
- package/dist/ui/native-select.d.ts +0 -17
- package/dist/ui/native-select.d.ts.map +0 -1
- package/dist/ui/native-select.js +0 -20
- package/dist/ui/native-select.js.map +0 -1
- package/dist/ui/navigation-focus.d.ts +0 -20
- package/dist/ui/navigation-focus.d.ts.map +0 -1
- package/dist/ui/navigation-focus.js +0 -25
- package/dist/ui/navigation-focus.js.map +0 -1
- package/dist/ui/navigation-focus.test.d.ts +0 -2
- package/dist/ui/navigation-focus.test.d.ts.map +0 -1
- package/dist/ui/navigation-focus.test.js +0 -28
- package/dist/ui/navigation-focus.test.js.map +0 -1
- package/dist/ui/paged-list-footer.test.d.ts +0 -2
- package/dist/ui/paged-list-footer.test.d.ts.map +0 -1
- package/dist/ui/paged-list-footer.test.js +0 -128
- package/dist/ui/paged-list-footer.test.js.map +0 -1
- package/dist/ui/parse-tool-result.test.d.ts +0 -2
- package/dist/ui/parse-tool-result.test.d.ts.map +0 -1
- package/dist/ui/parse-tool-result.test.js +0 -88
- package/dist/ui/parse-tool-result.test.js.map +0 -1
- package/dist/ui/profile-gate.d.ts +0 -37
- package/dist/ui/profile-gate.d.ts.map +0 -1
- package/dist/ui/profile-gate.js +0 -126
- package/dist/ui/profile-gate.js.map +0 -1
- package/dist/ui/profile-gate.test.d.ts +0 -2
- package/dist/ui/profile-gate.test.d.ts.map +0 -1
- package/dist/ui/profile-gate.test.js +0 -246
- package/dist/ui/profile-gate.test.js.map +0 -1
- package/dist/ui/query-fallback.test.d.ts +0 -2
- package/dist/ui/query-fallback.test.d.ts.map +0 -1
- package/dist/ui/query-fallback.test.js +0 -49
- package/dist/ui/query-fallback.test.js.map +0 -1
- package/dist/ui/row-card.d.ts +0 -13
- package/dist/ui/row-card.d.ts.map +0 -1
- package/dist/ui/row-card.js +0 -11
- package/dist/ui/row-card.js.map +0 -1
- package/dist/ui/section.d.ts +0 -18
- package/dist/ui/section.d.ts.map +0 -1
- package/dist/ui/section.js +0 -14
- package/dist/ui/section.js.map +0 -1
- package/dist/ui/segmented-control.d.ts +0 -25
- package/dist/ui/segmented-control.d.ts.map +0 -1
- package/dist/ui/segmented-control.js +0 -22
- package/dist/ui/segmented-control.js.map +0 -1
- package/dist/ui/settings-labels.d.ts +0 -33
- package/dist/ui/settings-labels.d.ts.map +0 -1
- package/dist/ui/settings-labels.js +0 -50
- package/dist/ui/settings-labels.js.map +0 -1
- package/dist/ui/settings-layout.d.ts +0 -29
- package/dist/ui/settings-layout.d.ts.map +0 -1
- package/dist/ui/settings-layout.js +0 -49
- package/dist/ui/settings-layout.js.map +0 -1
- package/dist/ui/settings-layout.test.d.ts +0 -2
- package/dist/ui/settings-layout.test.d.ts.map +0 -1
- package/dist/ui/settings-layout.test.js +0 -73
- package/dist/ui/settings-layout.test.js.map +0 -1
- package/dist/ui/settings.d.ts +0 -47
- package/dist/ui/settings.d.ts.map +0 -1
- package/dist/ui/settings.js +0 -48
- package/dist/ui/settings.js.map +0 -1
- package/dist/ui/settings.test.d.ts +0 -2
- package/dist/ui/settings.test.d.ts.map +0 -1
- package/dist/ui/settings.test.js +0 -38
- package/dist/ui/settings.test.js.map +0 -1
- package/dist/ui/shell-settings.d.ts +0 -31
- package/dist/ui/shell-settings.d.ts.map +0 -1
- package/dist/ui/shell-settings.js +0 -97
- package/dist/ui/shell-settings.js.map +0 -1
- package/dist/ui/shell-settings.test.d.ts +0 -2
- package/dist/ui/shell-settings.test.d.ts.map +0 -1
- package/dist/ui/shell-settings.test.js +0 -108
- package/dist/ui/shell-settings.test.js.map +0 -1
- package/dist/ui/shell-widgets.d.ts +0 -14
- package/dist/ui/shell-widgets.d.ts.map +0 -1
- package/dist/ui/shell-widgets.js +0 -18
- package/dist/ui/shell-widgets.js.map +0 -1
- package/dist/ui/table.d.ts +0 -61
- package/dist/ui/table.d.ts.map +0 -1
- package/dist/ui/table.js +0 -43
- package/dist/ui/table.js.map +0 -1
- package/dist/ui/tone-components.test.d.ts +0 -2
- package/dist/ui/tone-components.test.d.ts.map +0 -1
- package/dist/ui/tone-components.test.js +0 -145
- package/dist/ui/tone-components.test.js.map +0 -1
- package/dist/ui/tone-contrast.test.d.ts +0 -2
- package/dist/ui/tone-contrast.test.d.ts.map +0 -1
- package/dist/ui/tone-contrast.test.js +0 -66
- package/dist/ui/tone-contrast.test.js.map +0 -1
- package/dist/ui/toolkit-overlap.test.d.ts +0 -2
- package/dist/ui/toolkit-overlap.test.d.ts.map +0 -1
- package/dist/ui/toolkit-overlap.test.js +0 -86
- package/dist/ui/toolkit-overlap.test.js.map +0 -1
- package/dist/ui/use-apply-theme.test.d.ts +0 -2
- package/dist/ui/use-apply-theme.test.d.ts.map +0 -1
- package/dist/ui/use-apply-theme.test.js +0 -102
- package/dist/ui/use-apply-theme.test.js.map +0 -1
- package/dist/ui/use-bpmn-viewer.test.d.ts +0 -2
- package/dist/ui/use-bpmn-viewer.test.d.ts.map +0 -1
- package/dist/ui/use-bpmn-viewer.test.js +0 -239
- package/dist/ui/use-bpmn-viewer.test.js.map +0 -1
- package/dist/ui/use-detail-view.test.d.ts +0 -2
- package/dist/ui/use-detail-view.test.d.ts.map +0 -1
- package/dist/ui/use-detail-view.test.js +0 -178
- package/dist/ui/use-detail-view.test.js.map +0 -1
- package/dist/ui/use-paged-list-view.test.d.ts +0 -2
- package/dist/ui/use-paged-list-view.test.d.ts.map +0 -1
- package/dist/ui/use-paged-list-view.test.js +0 -136
- package/dist/ui/use-paged-list-view.test.js.map +0 -1
- package/dist/ui/use-paged-view-data.seeded.test.d.ts +0 -2
- package/dist/ui/use-paged-view-data.seeded.test.d.ts.map +0 -1
- package/dist/ui/use-paged-view-data.seeded.test.js +0 -144
- package/dist/ui/use-paged-view-data.seeded.test.js.map +0 -1
- package/dist/ui/use-paged-view-data.test.d.ts +0 -2
- package/dist/ui/use-paged-view-data.test.d.ts.map +0 -1
- package/dist/ui/use-paged-view-data.test.js +0 -330
- package/dist/ui/use-paged-view-data.test.js.map +0 -1
- package/dist/ui/use-reset-on-change.d.ts +0 -22
- package/dist/ui/use-reset-on-change.d.ts.map +0 -1
- package/dist/ui/use-reset-on-change.js +0 -29
- package/dist/ui/use-reset-on-change.js.map +0 -1
- package/dist/ui/use-reset-on-change.test.d.ts +0 -2
- package/dist/ui/use-reset-on-change.test.d.ts.map +0 -1
- package/dist/ui/use-reset-on-change.test.js +0 -61
- package/dist/ui/use-reset-on-change.test.js.map +0 -1
- package/dist/ui/use-view-data.seeded.test.d.ts +0 -2
- package/dist/ui/use-view-data.seeded.test.d.ts.map +0 -1
- package/dist/ui/use-view-data.seeded.test.js +0 -168
- package/dist/ui/use-view-data.seeded.test.js.map +0 -1
- package/dist/ui/view-data-state.test.d.ts +0 -2
- package/dist/ui/view-data-state.test.d.ts.map +0 -1
- package/dist/ui/view-data-state.test.js +0 -62
- package/dist/ui/view-data-state.test.js.map +0 -1
- package/dist/ui/view-meta.test.d.ts +0 -2
- package/dist/ui/view-meta.test.d.ts.map +0 -1
- package/dist/ui/view-meta.test.js +0 -92
- package/dist/ui/view-meta.test.js.map +0 -1
- package/dist/ui/widget-shell.test.d.ts +0 -2
- package/dist/ui/widget-shell.test.d.ts.map +0 -1
- package/dist/ui/widget-shell.test.js +0 -41
- package/dist/ui/widget-shell.test.js.map +0 -1
- package/dist/widget-meta-defaults.d.ts +0 -48
- package/dist/widget-meta-defaults.d.ts.map +0 -1
- package/dist/widget-meta-defaults.js +0 -80
- package/dist/widget-meta-defaults.js.map +0 -1
- package/dist/widget-meta-defaults.test.d.ts +0 -2
- package/dist/widget-meta-defaults.test.d.ts.map +0 -1
- package/dist/widget-meta-defaults.test.js +0 -196
- package/dist/widget-meta-defaults.test.js.map +0 -1
- package/dist/widget-tool-bindings.test.d.ts +0 -2
- package/dist/widget-tool-bindings.test.d.ts.map +0 -1
- package/dist/widget-tool-bindings.test.js +0 -83
- package/dist/widget-tool-bindings.test.js.map +0 -1
- package/dist/with-tool-errors.test.d.ts +0 -2
- package/dist/with-tool-errors.test.d.ts.map +0 -1
- package/dist/with-tool-errors.test.js +0 -38
- package/dist/with-tool-errors.test.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile-migrations.js","sourceRoot":"","sources":["../src/profile-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAsB,MAAM,qBAAqB,CAAA;AAK9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAA;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA+C,EAAE,CAAA;AAShF,MAAM,eAAe,GAA4B;IAC/C,QAAQ,EAAE,0BAA0B;IACpC,OAAO,EAAE,sBAAsB;IAC/B,UAAU,EAAE,kBAAkB;CAC/B,CAAA;AASD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAa,EACb,UAAmC,eAAe;IAElD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IACtF,MAAM,GAAG,GAA4B,EAAE,GAAI,IAAgC,EAAE,CAAA;IAE7E,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IACjD,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAA;IACpC,kEAAkE;IAClE,IAAI,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IAChG,GAAG,CAAC,aAAa,GAAG,OAAO,CAAA;IAE3B,OAAO,OAAO,GAAG,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,oDAAoD,OAAO,qEAAqE,CACjI,CAAA;YACD,MAAK;QACP,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,CAAA;QACZ,OAAO,IAAI,CAAC,CAAA;QACZ,GAAG,CAAC,aAAa,GAAG,OAAO,CAAA;IAC7B,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;AACzB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAa,EAAE,GAAY;IAC5D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/B,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACrF,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC9E,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile-migrations.test.d.ts","sourceRoot":"","sources":["../src/profile-migrations.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
-
import { PROFILE_MIGRATION_BASELINE, PROFILE_MIGRATIONS, migrateStoredProfile, parseStoredProfile, } from "./profile-migrations.js";
|
|
3
|
-
import { PROFILE_SCHEMA_VERSION } from "./profile-constants.js";
|
|
4
|
-
afterEach(() => {
|
|
5
|
-
vi.restoreAllMocks();
|
|
6
|
-
});
|
|
7
|
-
const CURRENT = {
|
|
8
|
-
id: "user-1",
|
|
9
|
-
language: "de",
|
|
10
|
-
modules: { analytics: { defaultPeriod: "14d" }, camunda7: { defaultEngineId: "prod-a" } },
|
|
11
|
-
createdAt: "2026-01-01T00:00:00.000Z",
|
|
12
|
-
updatedAt: "2026-01-02T00:00:00.000Z",
|
|
13
|
-
schemaVersion: PROFILE_SCHEMA_VERSION,
|
|
14
|
-
};
|
|
15
|
-
/** Shapes the pre-production builds persisted before the baseline: flat module fields. */
|
|
16
|
-
const V1_RECORD = {
|
|
17
|
-
id: "user-1",
|
|
18
|
-
language: "de",
|
|
19
|
-
theme: "dark",
|
|
20
|
-
pinnedDashboardIds: ["d1"],
|
|
21
|
-
analyticsDefaultPeriod: "30d",
|
|
22
|
-
analyticsMinBucketSize: 25,
|
|
23
|
-
createdAt: "2026-01-01T00:00:00.000Z",
|
|
24
|
-
updatedAt: "2026-01-02T00:00:00.000Z",
|
|
25
|
-
schemaVersion: 1,
|
|
26
|
-
};
|
|
27
|
-
const V2_RECORD = {
|
|
28
|
-
id: "user-1",
|
|
29
|
-
language: "de",
|
|
30
|
-
theme: "dark",
|
|
31
|
-
defaultEngineId: "prod-a",
|
|
32
|
-
allowedEngineIds: ["prod-a"],
|
|
33
|
-
modules: { analytics: { defaultPeriod: "14d" } },
|
|
34
|
-
createdAt: "2026-01-01T00:00:00.000Z",
|
|
35
|
-
updatedAt: "2026-01-02T00:00:00.000Z",
|
|
36
|
-
schemaVersion: 2,
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* The baseline as shipped, pinned HERE rather than read from the export: the
|
|
40
|
-
* completeness range below starts at it, so a baseline raised in step with a
|
|
41
|
-
* `PROFILE_SCHEMA_VERSION` bump would empty that range and let the bump pass
|
|
42
|
-
* without its migration — every stored record of the old version would then
|
|
43
|
-
* be adopted at the new one without its reshape. Moving the baseline drops
|
|
44
|
-
* migration history, which is an owner decision of its own, never part of a
|
|
45
|
-
* schema bump.
|
|
46
|
-
*/
|
|
47
|
-
const SHIPPED_BASELINE = 3;
|
|
48
|
-
describe("PROFILE_MIGRATIONS completeness", () => {
|
|
49
|
-
it("keeps the migration baseline where it shipped", () => {
|
|
50
|
-
expect(PROFILE_MIGRATION_BASELINE).toBe(SHIPPED_BASELINE);
|
|
51
|
-
});
|
|
52
|
-
it("carries an entry for every version from the baseline up to PROFILE_SCHEMA_VERSION", () => {
|
|
53
|
-
// The failure mode this guards: a PROFILE_SCHEMA_VERSION bump without its
|
|
54
|
-
// migration entry ships, and every stored record reads un-migrated.
|
|
55
|
-
const expected = Array.from({ length: PROFILE_SCHEMA_VERSION - SHIPPED_BASELINE }, (_, i) => SHIPPED_BASELINE + i);
|
|
56
|
-
const actual = Object.keys(PROFILE_MIGRATIONS)
|
|
57
|
-
.map(Number)
|
|
58
|
-
.sort((a, b) => a - b);
|
|
59
|
-
expect(actual).toEqual(expected);
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
describe("parseStoredProfile", () => {
|
|
63
|
-
it("passes a current-version record through unchanged", () => {
|
|
64
|
-
expect(parseStoredProfile(CURRENT)).toEqual(CURRENT);
|
|
65
|
-
});
|
|
66
|
-
// No migration history predates the baseline (#322): an older record is
|
|
67
|
-
// adopted, never upgraded — and must still read without an error.
|
|
68
|
-
it.each([
|
|
69
|
-
["v1", V1_RECORD, {}],
|
|
70
|
-
["v2", V2_RECORD, V2_RECORD.modules],
|
|
71
|
-
])("reads a %s record from before the baseline fail-soft: its flat fields drop to the defaults", (_, stored, modules) => {
|
|
72
|
-
const error = vi.spyOn(console, "error").mockImplementation(() => { });
|
|
73
|
-
expect(parseStoredProfile(stored)).toEqual({
|
|
74
|
-
id: "user-1",
|
|
75
|
-
language: "de",
|
|
76
|
-
modules,
|
|
77
|
-
createdAt: stored.createdAt,
|
|
78
|
-
updatedAt: stored.updatedAt,
|
|
79
|
-
schemaVersion: PROFILE_SCHEMA_VERSION,
|
|
80
|
-
});
|
|
81
|
-
expect(error).not.toHaveBeenCalled();
|
|
82
|
-
});
|
|
83
|
-
it("reads a missing or out-of-range schemaVersion as the baseline", () => {
|
|
84
|
-
const versionless = { ...CURRENT };
|
|
85
|
-
delete versionless.schemaVersion;
|
|
86
|
-
expect(parseStoredProfile(versionless)).toEqual(CURRENT);
|
|
87
|
-
expect(parseStoredProfile({ ...CURRENT, schemaVersion: 0 })).toEqual(CURRENT);
|
|
88
|
-
expect(parseStoredProfile({ ...CURRENT, schemaVersion: 2.5 })).toEqual(CURRENT);
|
|
89
|
-
});
|
|
90
|
-
it("reads a record from a NEWER build best-effort, without running any migration", () => {
|
|
91
|
-
const parsed = parseStoredProfile({
|
|
92
|
-
...CURRENT,
|
|
93
|
-
newCoreField: true,
|
|
94
|
-
schemaVersion: PROFILE_SCHEMA_VERSION + 1,
|
|
95
|
-
});
|
|
96
|
-
// Untouched: a newer build's document is never reshaped by an older one.
|
|
97
|
-
expect(parsed).toEqual(CURRENT);
|
|
98
|
-
});
|
|
99
|
-
it("reads a record with the retired theme preference: the key never reaches the view", () => {
|
|
100
|
-
// Widgets follow the host's theme; a `theme` an earlier build saved is
|
|
101
|
-
// an unknown key now — no migration, no error, no reset of the rest.
|
|
102
|
-
expect(parseStoredProfile({ ...CURRENT, theme: "dark" })).toEqual(CURRENT);
|
|
103
|
-
expect(parseStoredProfile({ ...CURRENT, theme: 42 })).toEqual(CURRENT);
|
|
104
|
-
});
|
|
105
|
-
it("keeps the system language preference — following the host is a stored choice", () => {
|
|
106
|
-
expect(parseStoredProfile({ ...CURRENT, language: "system" })?.language).toBe("system");
|
|
107
|
-
});
|
|
108
|
-
it("degrades an invalid field to ITS default and keeps every other field", () => {
|
|
109
|
-
// The language default is `system` (follow the host), never a forced locale.
|
|
110
|
-
expect(parseStoredProfile({ ...CURRENT, language: "fr" })).toMatchObject({
|
|
111
|
-
language: "system",
|
|
112
|
-
modules: CURRENT.modules,
|
|
113
|
-
});
|
|
114
|
-
expect(parseStoredProfile({ ...CURRENT, userId: 7 })).toMatchObject({
|
|
115
|
-
language: "de",
|
|
116
|
-
modules: CURRENT.modules,
|
|
117
|
-
userId: undefined,
|
|
118
|
-
});
|
|
119
|
-
expect(parseStoredProfile({ ...CURRENT, modules: "garbage" })?.modules).toEqual({});
|
|
120
|
-
});
|
|
121
|
-
it("prefers the store key over the stored id and repairs missing timestamps", () => {
|
|
122
|
-
expect(parseStoredProfile(CURRENT, "other-key")?.id).toBe("other-key");
|
|
123
|
-
const sparse = parseStoredProfile({ schemaVersion: 3 }, "k");
|
|
124
|
-
expect(sparse).toMatchObject({ id: "k", language: "system", modules: {} });
|
|
125
|
-
expect(sparse?.createdAt).toBe(sparse?.updatedAt);
|
|
126
|
-
expect(parseStoredProfile({ schemaVersion: 3, updatedAt: "2026-02-02T00:00:00.000Z" }, "k")).toMatchObject({
|
|
127
|
-
createdAt: "2026-02-02T00:00:00.000Z",
|
|
128
|
-
updatedAt: "2026-02-02T00:00:00.000Z",
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
it("reads garbage as absent", () => {
|
|
132
|
-
expect(parseStoredProfile(null)).toBeUndefined();
|
|
133
|
-
expect(parseStoredProfile("nope")).toBeUndefined();
|
|
134
|
-
expect(parseStoredProfile(["an", "array"])).toBeUndefined();
|
|
135
|
-
// No id stored (or none that is a string) and no store key to fall back to.
|
|
136
|
-
expect(parseStoredProfile({ schemaVersion: 0 })).toBeUndefined();
|
|
137
|
-
expect(parseStoredProfile({ ...CURRENT, id: 42 })).toBeUndefined();
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
describe("migrateStoredProfile", () => {
|
|
141
|
-
it("adopts a pre-baseline document at the baseline, keeping its unknown keys raw", () => {
|
|
142
|
-
expect(migrateStoredProfile(V1_RECORD)).toEqual({
|
|
143
|
-
doc: { ...V1_RECORD, schemaVersion: PROFILE_MIGRATION_BASELINE },
|
|
144
|
-
version: PROFILE_MIGRATION_BASELINE,
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
it("reports the version the document ends at", () => {
|
|
148
|
-
expect(migrateStoredProfile(CURRENT)?.version).toBe(PROFILE_SCHEMA_VERSION);
|
|
149
|
-
expect(migrateStoredProfile({ ...CURRENT, schemaVersion: 42 })?.version).toBe(42);
|
|
150
|
-
// Anything but an integer number reads as the baseline — never NaN.
|
|
151
|
-
for (const schemaVersion of [undefined, "4", 4.5, null]) {
|
|
152
|
-
expect(migrateStoredProfile({ ...CURRENT, schemaVersion })?.version).toBe(PROFILE_MIGRATION_BASELINE);
|
|
153
|
-
}
|
|
154
|
-
expect(migrateStoredProfile(undefined)).toBeUndefined();
|
|
155
|
-
expect(migrateStoredProfile(null)).toBeUndefined();
|
|
156
|
-
expect(migrateStoredProfile([CURRENT])).toBeUndefined();
|
|
157
|
-
});
|
|
158
|
-
it("never mutates the stored JSON it was handed", () => {
|
|
159
|
-
const stored = { ...V1_RECORD };
|
|
160
|
-
const snapshot = structuredClone(stored);
|
|
161
|
-
migrateStoredProfile(stored);
|
|
162
|
-
expect(stored).toEqual(snapshot);
|
|
163
|
-
});
|
|
164
|
-
// The walk itself, against a synthetic history: the shipped one has no
|
|
165
|
-
// step yet (the baseline IS the current version), but the next
|
|
166
|
-
// PROFILE_SCHEMA_VERSION bump runs exactly this loop.
|
|
167
|
-
const history = {
|
|
168
|
-
baseline: 1,
|
|
169
|
-
current: 3,
|
|
170
|
-
migrations: {
|
|
171
|
-
1: (raw) => {
|
|
172
|
-
raw.steps = [...(raw.steps ?? []), 1];
|
|
173
|
-
},
|
|
174
|
-
2: (raw) => {
|
|
175
|
-
raw.steps = [...(raw.steps ?? []), 2];
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
};
|
|
179
|
-
it("upgrades step by step from the stored version, stamping each step", () => {
|
|
180
|
-
expect(migrateStoredProfile({ schemaVersion: 1 }, history)).toEqual({
|
|
181
|
-
doc: { schemaVersion: 3, steps: [1, 2] },
|
|
182
|
-
version: 3,
|
|
183
|
-
});
|
|
184
|
-
expect(migrateStoredProfile({ schemaVersion: 2 }, history)).toEqual({
|
|
185
|
-
doc: { schemaVersion: 3, steps: [2] },
|
|
186
|
-
version: 3,
|
|
187
|
-
});
|
|
188
|
-
});
|
|
189
|
-
it("stops at a version without its step (a build bug) and keeps the document there", () => {
|
|
190
|
-
const error = vi.spyOn(console, "error").mockImplementation(() => { });
|
|
191
|
-
const gap = { ...history, migrations: { 1: history.migrations[1] } };
|
|
192
|
-
expect(migrateStoredProfile({ schemaVersion: 1 }, gap)).toEqual({
|
|
193
|
-
doc: { schemaVersion: 2, steps: [1] },
|
|
194
|
-
version: 2,
|
|
195
|
-
});
|
|
196
|
-
expect(error).toHaveBeenCalledTimes(1);
|
|
197
|
-
expect(error).toHaveBeenCalledWith(expect.stringContaining("No profile migration from schema v2"));
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
//# sourceMappingURL=profile-migrations.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile-migrations.test.js","sourceRoot":"","sources":["../src/profile-migrations.test.ts"],"names":[],"mappings":"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"}
|
package/dist/profile-record.d.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { type LanguagePref } from "./profile-constants.js";
|
|
3
|
-
/**
|
|
4
|
-
* The persisted profile record — deliberately connector-free: the
|
|
5
|
-
* cross-module preference every module may read (`language`), the per-module
|
|
6
|
-
* `modules.<module>` slice transport, and server-managed metadata. There is
|
|
7
|
-
* no theme preference: widgets follow the host's theme. A record an earlier
|
|
8
|
-
* build saved with a `theme` still reads — the key is unknown here, stays in
|
|
9
|
-
* the raw document and never reaches the typed view.
|
|
10
|
-
* Everything a connector wants to persist lives in ITS slice (validated
|
|
11
|
-
* fail-soft by the owning module), never as a new top-level field here.
|
|
12
|
-
*
|
|
13
|
-
* `id` is the profile key (the OAuth caller's id, or `anonymous` for an
|
|
14
|
-
* explicitly declared local caller — see `resolveProfileKey` in `profile.ts`);
|
|
15
|
-
* `userId` is the owner a save stamped (absent on the anonymous record).
|
|
16
|
-
*/
|
|
17
|
-
export declare const profileRecordSchema: z.ZodObject<{
|
|
18
|
-
language: z.ZodDefault<z.ZodEnum<{
|
|
19
|
-
en: "en";
|
|
20
|
-
de: "de";
|
|
21
|
-
system: "system";
|
|
22
|
-
}>>;
|
|
23
|
-
modules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
24
|
-
id: z.ZodString;
|
|
25
|
-
userId: z.ZodOptional<z.ZodString>;
|
|
26
|
-
createdAt: z.ZodString;
|
|
27
|
-
updatedAt: z.ZodString;
|
|
28
|
-
schemaVersion: z.ZodDefault<z.ZodLiteral<3>>;
|
|
29
|
-
}, z.core.$strip>;
|
|
30
|
-
export type ProfileRecord = z.infer<typeof profileRecordSchema>;
|
|
31
|
-
/**
|
|
32
|
-
* Save input: any subset of the record's user-settable fields. Omitted fields
|
|
33
|
-
* keep their current value (the store merges over the existing record);
|
|
34
|
-
* `modules` slices merge per module key, one level deep — a save carrying
|
|
35
|
-
* `modules.analytics` spreads over the stored analytics slice (explicit
|
|
36
|
-
* `undefined` clears a field) and leaves other modules' slices untouched.
|
|
37
|
-
*
|
|
38
|
-
* A plain type, not a zod schema: validation happens at each module's TOOL
|
|
39
|
-
* boundary (with a default-free schema — see `withoutDefaults` in
|
|
40
|
-
* `profile.ts`), not in the store.
|
|
41
|
-
*/
|
|
42
|
-
export interface ProfileRecordSaveInput {
|
|
43
|
-
language?: LanguagePref;
|
|
44
|
-
modules?: Record<string, unknown>;
|
|
45
|
-
}
|
|
46
|
-
/** A fully-defaulted record for a key that has never been saved. */
|
|
47
|
-
export declare function defaultProfileRecord(key: string): ProfileRecord;
|
|
48
|
-
/**
|
|
49
|
-
* The typed VIEW of a stored profile document (current-shape, or written by a
|
|
50
|
-
* NEWER build), degrading per FIELD: a value this build cannot validate — a
|
|
51
|
-
* locale added later, a non-object `modules` — falls back to that field's
|
|
52
|
-
* default while everything else survives. Keys this build does not know are
|
|
53
|
-
* not part of the view, but they stay in the stored document: saves merge over
|
|
54
|
-
* the RAW document (`mergeStoredProfile` in `profile-store.ts`), never over
|
|
55
|
-
* this projection. Timestamps a hand-edited document lacks fall back to each
|
|
56
|
-
* other, then to `""` (the next save stamps both). `id` is the caller's (the
|
|
57
|
-
* store key wins).
|
|
58
|
-
*/
|
|
59
|
-
export declare function projectProfileRecord(doc: Record<string, unknown>, id: string): ProfileRecord;
|
|
60
|
-
//# sourceMappingURL=profile-record.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile-record.d.ts","sourceRoot":"","sources":["../src/profile-record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE7F;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;iBAoB9B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAS/D;AAWD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAc5F"}
|
package/dist/profile-record.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { LANGUAGES, PROFILE_SCHEMA_VERSION } from "./profile-constants.js";
|
|
3
|
-
/**
|
|
4
|
-
* The persisted profile record — deliberately connector-free: the
|
|
5
|
-
* cross-module preference every module may read (`language`), the per-module
|
|
6
|
-
* `modules.<module>` slice transport, and server-managed metadata. There is
|
|
7
|
-
* no theme preference: widgets follow the host's theme. A record an earlier
|
|
8
|
-
* build saved with a `theme` still reads — the key is unknown here, stays in
|
|
9
|
-
* the raw document and never reaches the typed view.
|
|
10
|
-
* Everything a connector wants to persist lives in ITS slice (validated
|
|
11
|
-
* fail-soft by the owning module), never as a new top-level field here.
|
|
12
|
-
*
|
|
13
|
-
* `id` is the profile key (the OAuth caller's id, or `anonymous` for an
|
|
14
|
-
* explicitly declared local caller — see `resolveProfileKey` in `profile.ts`);
|
|
15
|
-
* `userId` is the owner a save stamped (absent on the anonymous record).
|
|
16
|
-
*/
|
|
17
|
-
export const profileRecordSchema = z.object({
|
|
18
|
-
language: z
|
|
19
|
-
.enum(LANGUAGES)
|
|
20
|
-
.default("system")
|
|
21
|
-
.describe('UI + summary language; "system" follows the host locale (summaries then stay English).'),
|
|
22
|
-
modules: z
|
|
23
|
-
.record(z.string(), z.unknown())
|
|
24
|
-
.default({})
|
|
25
|
-
.describe("Per-module settings slices, keyed by module name (e.g. `analytics`, `camunda7`). Each " +
|
|
26
|
-
"module owns its slice's schema, validates it fail-soft on read, and writes it through " +
|
|
27
|
-
"its own save tool — this record only transports the slices."),
|
|
28
|
-
id: z.string(),
|
|
29
|
-
userId: z.string().optional(),
|
|
30
|
-
createdAt: z.string(),
|
|
31
|
-
updatedAt: z.string(),
|
|
32
|
-
schemaVersion: z.literal(PROFILE_SCHEMA_VERSION).default(PROFILE_SCHEMA_VERSION),
|
|
33
|
-
});
|
|
34
|
-
/** A fully-defaulted record for a key that has never been saved. */
|
|
35
|
-
export function defaultProfileRecord(key) {
|
|
36
|
-
const now = new Date().toISOString();
|
|
37
|
-
return {
|
|
38
|
-
...profileRecordSchema.omit({ id: true, createdAt: true, updatedAt: true }).parse({}),
|
|
39
|
-
id: key,
|
|
40
|
-
userId: undefined,
|
|
41
|
-
createdAt: now,
|
|
42
|
-
updatedAt: now,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
const nonEmptyString = (value) => typeof value === "string" && value.length > 0 ? value : undefined;
|
|
46
|
-
/** The field's own value when it validates, else the field's default. */
|
|
47
|
-
function fieldOrDefault(schema, value) {
|
|
48
|
-
const parsed = schema.safeParse(value);
|
|
49
|
-
return parsed.success ? parsed.data : schema.parse(undefined);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* The typed VIEW of a stored profile document (current-shape, or written by a
|
|
53
|
-
* NEWER build), degrading per FIELD: a value this build cannot validate — a
|
|
54
|
-
* locale added later, a non-object `modules` — falls back to that field's
|
|
55
|
-
* default while everything else survives. Keys this build does not know are
|
|
56
|
-
* not part of the view, but they stay in the stored document: saves merge over
|
|
57
|
-
* the RAW document (`mergeStoredProfile` in `profile-store.ts`), never over
|
|
58
|
-
* this projection. Timestamps a hand-edited document lacks fall back to each
|
|
59
|
-
* other, then to `""` (the next save stamps both). `id` is the caller's (the
|
|
60
|
-
* store key wins).
|
|
61
|
-
*/
|
|
62
|
-
export function projectProfileRecord(doc, id) {
|
|
63
|
-
const whole = profileRecordSchema.safeParse(doc);
|
|
64
|
-
if (whole.success)
|
|
65
|
-
return { ...whole.data, id };
|
|
66
|
-
const { shape } = profileRecordSchema;
|
|
67
|
-
const updatedAt = nonEmptyString(doc.updatedAt) ?? nonEmptyString(doc.createdAt) ?? "";
|
|
68
|
-
return {
|
|
69
|
-
language: fieldOrDefault(shape.language, doc.language),
|
|
70
|
-
modules: fieldOrDefault(shape.modules, doc.modules),
|
|
71
|
-
id,
|
|
72
|
-
userId: fieldOrDefault(shape.userId, doc.userId),
|
|
73
|
-
createdAt: nonEmptyString(doc.createdAt) ?? updatedAt,
|
|
74
|
-
updatedAt,
|
|
75
|
-
schemaVersion: PROFILE_SCHEMA_VERSION,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=profile-record.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile-record.js","sourceRoot":"","sources":["../src/profile-record.ts"],"names":[],"mappings":"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"}
|
package/dist/profile-slice.d.ts
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { z } from "zod";
|
|
2
|
-
import type { ProfileSource } from "./profile.js";
|
|
3
|
-
/**
|
|
4
|
-
* The `profile.modules.<module>` slice contract, shared by every module so
|
|
5
|
-
* the subtle rules cannot drift: WHOSE record a save touches (the canonical
|
|
6
|
-
* keyless refusal), HOW a slice patch is saved (the patch alone, merged by
|
|
7
|
-
* the store over the RAW stored slice under its lock, so foreign and
|
|
8
|
-
* concurrently saved fields survive), and HOW a slice reads (fail-soft per
|
|
9
|
-
* FIELD, so one bad value cannot reset the rest).
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* Fail-soft slice read: absent slices and garbage degrade to the schema's
|
|
13
|
-
* defaults — and degradation is per FIELD, not per slice: a single invalid
|
|
14
|
-
* value (say, one written by a newer build and then rolled back) drops to its
|
|
15
|
-
* own default while every other saved preference survives. Fields the schema
|
|
16
|
-
* doesn't know stay out of the VIEW but are preserved in storage: a save
|
|
17
|
-
* ({@link saveModuleSlice}) merges over the raw stored slice.
|
|
18
|
-
*
|
|
19
|
-
* Read-side only — save inputs keep validating loudly at the tool boundary;
|
|
20
|
-
* a write must never silently coerce.
|
|
21
|
-
*/
|
|
22
|
-
export declare function parseModuleSlice<T extends z.ZodRawShape>(schema: z.ZodObject<T>, slice: unknown): z.output<z.ZodObject<T>>;
|
|
23
|
-
/**
|
|
24
|
-
* Resolve the profile key for a durable write, refusing without one. Settings
|
|
25
|
-
* are saved per signed-in user: a request without OAuth resolves no key (see
|
|
26
|
-
* `resolveProfileKey`) — writing anyway would silently share one record across
|
|
27
|
-
* unrelated callers, so every module's save tool throws this same,
|
|
28
|
-
* operator-actionable error instead.
|
|
29
|
-
*/
|
|
30
|
-
export declare function requireProfileKey(ctx?: unknown): string;
|
|
31
|
-
/**
|
|
32
|
-
* Persist a partial update of `module`'s slice: hand the store the PATCH
|
|
33
|
-
* alone, never a slice pre-read outside the store's lock. Every
|
|
34
|
-
* `ProfileStore` merges a `modules.<module>` patch one level deep over the
|
|
35
|
-
* RAW stored slice INSIDE its per-key serialization (the postgres
|
|
36
|
-
* transaction lock, the filesystem store's per-key mutex, the in-memory
|
|
37
|
-
* store's synchronous merge), so a concurrent save of another field in the
|
|
38
|
-
* same slice (or of another module's slice) survives, fields a newer build
|
|
39
|
-
* wrote survive, and no defaults are materialized into storage. A field set
|
|
40
|
-
* to `undefined` in the patch CLEARS the stored value; an absent field keeps
|
|
41
|
-
* it.
|
|
42
|
-
*
|
|
43
|
-
* Returns the saved slice, raw (the caller parses it fail-soft for its
|
|
44
|
-
* report): read off the record `save` returns (every shipped store returns
|
|
45
|
-
* it), or read back when a custom port implementation returns nothing.
|
|
46
|
-
*/
|
|
47
|
-
export declare function saveModuleSlice(store: {
|
|
48
|
-
get: ProfileSource["get"];
|
|
49
|
-
save: NonNullable<ProfileSource["save"]>;
|
|
50
|
-
}, key: string, module: string, patch: Record<string, unknown>, opts?: {
|
|
51
|
-
userId?: string;
|
|
52
|
-
}): Promise<unknown>;
|
|
53
|
-
//# sourceMappingURL=profile-slice.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile-slice.d.ts","sourceRoot":"","sources":["../src/profile-slice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,cAAc,CAAA;AAE/D;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EACtD,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,KAAK,EAAE,OAAO,GACb,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAY1B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAQvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE;IAAE,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,EAC9E,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACzB,OAAO,CAAC,OAAO,CAAC,CAIlB"}
|
package/dist/profile-slice.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { resolveProfileKey } from "./profile.js";
|
|
2
|
-
/**
|
|
3
|
-
* The `profile.modules.<module>` slice contract, shared by every module so
|
|
4
|
-
* the subtle rules cannot drift: WHOSE record a save touches (the canonical
|
|
5
|
-
* keyless refusal), HOW a slice patch is saved (the patch alone, merged by
|
|
6
|
-
* the store over the RAW stored slice under its lock, so foreign and
|
|
7
|
-
* concurrently saved fields survive), and HOW a slice reads (fail-soft per
|
|
8
|
-
* FIELD, so one bad value cannot reset the rest).
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Fail-soft slice read: absent slices and garbage degrade to the schema's
|
|
12
|
-
* defaults — and degradation is per FIELD, not per slice: a single invalid
|
|
13
|
-
* value (say, one written by a newer build and then rolled back) drops to its
|
|
14
|
-
* own default while every other saved preference survives. Fields the schema
|
|
15
|
-
* doesn't know stay out of the VIEW but are preserved in storage: a save
|
|
16
|
-
* ({@link saveModuleSlice}) merges over the raw stored slice.
|
|
17
|
-
*
|
|
18
|
-
* Read-side only — save inputs keep validating loudly at the tool boundary;
|
|
19
|
-
* a write must never silently coerce.
|
|
20
|
-
*/
|
|
21
|
-
export function parseModuleSlice(schema, slice) {
|
|
22
|
-
const whole = schema.safeParse(slice ?? {});
|
|
23
|
-
if (whole.success)
|
|
24
|
-
return whole.data;
|
|
25
|
-
const raw = typeof slice === "object" && slice !== null ? slice : {};
|
|
26
|
-
const kept = {};
|
|
27
|
-
for (const [key, field] of Object.entries(schema.shape)) {
|
|
28
|
-
const value = raw[key];
|
|
29
|
-
if (value === undefined)
|
|
30
|
-
continue;
|
|
31
|
-
if (field.safeParse(value).success)
|
|
32
|
-
kept[key] = value;
|
|
33
|
-
}
|
|
34
|
-
const recovered = schema.safeParse(kept);
|
|
35
|
-
return recovered.success ? recovered.data : schema.parse({});
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Resolve the profile key for a durable write, refusing without one. Settings
|
|
39
|
-
* are saved per signed-in user: a request without OAuth resolves no key (see
|
|
40
|
-
* `resolveProfileKey`) — writing anyway would silently share one record across
|
|
41
|
-
* unrelated callers, so every module's save tool throws this same,
|
|
42
|
-
* operator-actionable error instead.
|
|
43
|
-
*/
|
|
44
|
-
export function requireProfileKey(ctx) {
|
|
45
|
-
const key = resolveProfileKey(ctx);
|
|
46
|
-
if (!key) {
|
|
47
|
-
throw new Error("No caller identity to save the profile under — settings are saved per signed-in user, so the server needs MCP_OAUTH.");
|
|
48
|
-
}
|
|
49
|
-
return key;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Persist a partial update of `module`'s slice: hand the store the PATCH
|
|
53
|
-
* alone, never a slice pre-read outside the store's lock. Every
|
|
54
|
-
* `ProfileStore` merges a `modules.<module>` patch one level deep over the
|
|
55
|
-
* RAW stored slice INSIDE its per-key serialization (the postgres
|
|
56
|
-
* transaction lock, the filesystem store's per-key mutex, the in-memory
|
|
57
|
-
* store's synchronous merge), so a concurrent save of another field in the
|
|
58
|
-
* same slice (or of another module's slice) survives, fields a newer build
|
|
59
|
-
* wrote survive, and no defaults are materialized into storage. A field set
|
|
60
|
-
* to `undefined` in the patch CLEARS the stored value; an absent field keeps
|
|
61
|
-
* it.
|
|
62
|
-
*
|
|
63
|
-
* Returns the saved slice, raw (the caller parses it fail-soft for its
|
|
64
|
-
* report): read off the record `save` returns (every shipped store returns
|
|
65
|
-
* it), or read back when a custom port implementation returns nothing.
|
|
66
|
-
*/
|
|
67
|
-
export async function saveModuleSlice(store, key, module, patch, opts) {
|
|
68
|
-
const saved = await store.save(key, { modules: { [module]: patch } }, opts);
|
|
69
|
-
const record = isProfileSlice(saved) ? saved : await store.get(key);
|
|
70
|
-
return record?.modules?.[module];
|
|
71
|
-
}
|
|
72
|
-
const isProfileSlice = (value) => typeof value === "object" && value !== null && "modules" in value;
|
|
73
|
-
//# sourceMappingURL=profile-slice.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile-slice.js","sourceRoot":"","sources":["../src/profile-slice.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAGhD;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,KAAc;IAEd,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IAC3C,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC,IAAI,CAAA;IACpC,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAA;IACjG,MAAM,IAAI,GAA4B,EAAE,CAAA;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACtB,IAAI,KAAK,KAAK,SAAS;YAAE,SAAQ;QACjC,IAAK,KAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACtE,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACxC,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAa;IAC7C,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,sHAAsH,CACvH,CAAA;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAA8E,EAC9E,GAAW,EACX,MAAc,EACd,KAA8B,EAC9B,IAA0B;IAE1B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC3E,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACnE,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,KAAc,EAAyB,EAAE,CAC/D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile-slice.test.d.ts","sourceRoot":"","sources":["../src/profile-slice.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it, vi } from "vitest";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
import { parseModuleSlice, requireProfileKey, saveModuleSlice } from "./profile-slice.js";
|
|
4
|
-
import { runWithMcpRequestInfo } from "./request-context.js";
|
|
5
|
-
describe("requireProfileKey", () => {
|
|
6
|
-
it("resolves the anonymous key for an explicitly declared local caller", () => {
|
|
7
|
-
expect(runWithMcpRequestInfo({ anonymousCaller: true }, () => requireProfileKey())).toBe("anonymous");
|
|
8
|
-
});
|
|
9
|
-
it("resolves the auth user id when the request carries one", () => {
|
|
10
|
-
expect(runWithMcpRequestInfo({ authUserId: "user-7" }, () => requireProfileKey())).toBe("user-7");
|
|
11
|
-
});
|
|
12
|
-
it("refuses an identity-less HTTP request with the operator-actionable error", () => {
|
|
13
|
-
expect(() => runWithMcpRequestInfo({}, () => requireProfileKey())).toThrow("No caller identity to save the profile under — settings are saved per signed-in user, so the server needs MCP_OAUTH.");
|
|
14
|
-
});
|
|
15
|
-
it("refuses without any request context (a missing middleware install) — never 'anonymous'", () => {
|
|
16
|
-
expect(() => requireProfileKey()).toThrow(/No caller identity/);
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
describe("saveModuleSlice", () => {
|
|
20
|
-
it("hands the store the patch alone and reports the slice off the saved record", async () => {
|
|
21
|
-
const save = vi.fn(() => Promise.resolve({ modules: { notes: { sortOrder: "desc", futureField: 42 } } }));
|
|
22
|
-
const get = vi.fn();
|
|
23
|
-
const slice = await saveModuleSlice({ get, save }, "k", "notes", { sortOrder: "desc" }, {
|
|
24
|
-
userId: "user-7",
|
|
25
|
-
});
|
|
26
|
-
expect(save).toHaveBeenCalledWith("k", { modules: { notes: { sortOrder: "desc" } } }, { userId: "user-7" });
|
|
27
|
-
// No pre-read: a slice read outside the store's lock would be stale.
|
|
28
|
-
expect(get).not.toHaveBeenCalled();
|
|
29
|
-
expect(slice).toEqual({ sortOrder: "desc", futureField: 42 });
|
|
30
|
-
});
|
|
31
|
-
it("reads the slice back when a custom store's save returns nothing", async () => {
|
|
32
|
-
const save = vi.fn(() => Promise.resolve(undefined));
|
|
33
|
-
const get = vi.fn(() => Promise.resolve({ modules: { notes: { sortOrder: "asc" } } }));
|
|
34
|
-
expect(await saveModuleSlice({ get, save }, "k", "notes", { sortOrder: "asc" })).toEqual({
|
|
35
|
-
sortOrder: "asc",
|
|
36
|
-
});
|
|
37
|
-
expect(get).toHaveBeenCalledWith("k");
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe("parseModuleSlice", () => {
|
|
41
|
-
const schema = z.object({
|
|
42
|
-
sortOrder: z.enum(["asc", "desc"]).default("asc"),
|
|
43
|
-
pageSize: z.number().int().min(1).optional(),
|
|
44
|
-
tags: z.array(z.string()).default([]),
|
|
45
|
-
});
|
|
46
|
-
it("parses a valid slice and applies defaults for absent fields", () => {
|
|
47
|
-
expect(parseModuleSlice(schema, { pageSize: 25 })).toEqual({
|
|
48
|
-
sortOrder: "asc",
|
|
49
|
-
pageSize: 25,
|
|
50
|
-
tags: [],
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
it("degrades absent and garbage slices to the full defaults", () => {
|
|
54
|
-
const defaults = { sortOrder: "asc", tags: [] };
|
|
55
|
-
expect(parseModuleSlice(schema, undefined)).toEqual(defaults);
|
|
56
|
-
expect(parseModuleSlice(schema, "garbage")).toEqual(defaults);
|
|
57
|
-
expect(parseModuleSlice(schema, 42)).toEqual(defaults);
|
|
58
|
-
});
|
|
59
|
-
it("recovers per FIELD: one invalid value keeps every other saved preference", () => {
|
|
60
|
-
// The failure mode this guards: a newer build writes a value this build's
|
|
61
|
-
// schema rejects; resetting the WHOLE slice would silently drop unrelated
|
|
62
|
-
// preferences (e.g. engine curation next to a bad preferredRole).
|
|
63
|
-
expect(parseModuleSlice(schema, { sortOrder: "newest-first", pageSize: 25, tags: ["a"] })).toEqual({ sortOrder: "asc", pageSize: 25, tags: ["a"] });
|
|
64
|
-
});
|
|
65
|
-
it("keeps unknown fields out of the view (the store's raw merge preserves them)", () => {
|
|
66
|
-
expect(parseModuleSlice(schema, { pageSize: 5, futureField: 42 })).toEqual({
|
|
67
|
-
sortOrder: "asc",
|
|
68
|
-
pageSize: 5,
|
|
69
|
-
tags: [],
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
//# sourceMappingURL=profile-slice.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile-slice.test.js","sourceRoot":"","sources":["../src/profile-slice.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAG5D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,CAAC,qBAAqB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CACtF,WAAW,CACZ,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CACrF,QAAQ,CACT,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,OAAO,CACxE,sHAAsH,CACvH,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;QAChG,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAqC,GAAG,EAAE,CAC1D,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAChF,CAAA;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,EAAwB,CAAA;QACzC,MAAM,KAAK,GAAG,MAAM,eAAe,CACjC,EAAE,GAAG,EAAE,IAAI,EAAE,EACb,GAAG,EACH,OAAO,EACP,EAAE,SAAS,EAAE,MAAM,EAAE,EACrB;YACE,MAAM,EAAE,QAAQ;SACjB,CACF,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAC/B,GAAG,EACH,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAC7C,EAAE,MAAM,EAAE,QAAQ,EAAE,CACrB,CAAA;QACD,qEAAqE;QACrE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAqC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QACxF,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAuB,GAAG,EAAE,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC9D,CAAA;QACD,MAAM,CAAC,MAAM,eAAe,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACvF,SAAS,EAAE,KAAK;SACjB,CAAC,CAAA;QACF,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC5C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KACtC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;SACT,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QAC/C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC7D,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC7D,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,0EAA0E;QAC1E,0EAA0E;QAC1E,kEAAkE;QAClE,MAAM,CACJ,gBAAgB,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CACnF,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACzE,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,EAAE;SACT,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|