cursedbelt 0.0.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 +80 -0
- package/dist/client/convertRequest.d.ts +15 -0
- package/dist/client/convertRequest.d.ts.map +1 -0
- package/dist/client/convertRequest.js +94 -0
- package/dist/client/convertRequest.js.map +1 -0
- package/dist/client/ctgrConfig.d.ts +3 -0
- package/dist/client/ctgrConfig.d.ts.map +1 -0
- package/dist/client/ctgrConfig.js +32 -0
- package/dist/client/ctgrConfig.js.map +1 -0
- package/dist/client/ctgrGuard.d.ts +2 -0
- package/dist/client/ctgrGuard.d.ts.map +1 -0
- package/dist/client/ctgrGuard.js +71 -0
- package/dist/client/ctgrGuard.js.map +1 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +12 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/ws.d.ts +37 -0
- package/dist/client/ws.d.ts.map +1 -0
- package/dist/client/ws.js +43 -0
- package/dist/client/ws.js.map +1 -0
- package/dist/core/color.d.ts +15 -0
- package/dist/core/color.d.ts.map +1 -0
- package/dist/core/color.js +33 -0
- package/dist/core/color.js.map +1 -0
- package/dist/core/csv.d.ts +65 -0
- package/dist/core/csv.d.ts.map +1 -0
- package/dist/core/csv.js +55 -0
- package/dist/core/csv.js.map +1 -0
- package/dist/core/ctgr.d.ts +6 -0
- package/dist/core/ctgr.d.ts.map +1 -0
- package/dist/core/ctgr.js +58 -0
- package/dist/core/ctgr.js.map +1 -0
- package/dist/core/layout/aggregate.d.ts +8 -0
- package/dist/core/layout/aggregate.d.ts.map +1 -0
- package/dist/core/layout/aggregate.js +77 -0
- package/dist/core/layout/aggregate.js.map +1 -0
- package/dist/core/layout/field.d.ts +14 -0
- package/dist/core/layout/field.d.ts.map +1 -0
- package/dist/core/layout/field.js +2 -0
- package/dist/core/layout/field.js.map +1 -0
- package/dist/core/layout/grid.d.ts +7 -0
- package/dist/core/layout/grid.d.ts.map +1 -0
- package/dist/core/layout/grid.js +152 -0
- package/dist/core/layout/grid.js.map +1 -0
- package/dist/core/layout/index.d.ts +10 -0
- package/dist/core/layout/index.d.ts.map +1 -0
- package/dist/core/layout/index.js +18 -0
- package/dist/core/layout/index.js.map +1 -0
- package/dist/core/layout/migrate.d.ts +4 -0
- package/dist/core/layout/migrate.d.ts.map +1 -0
- package/dist/core/layout/migrate.js +170 -0
- package/dist/core/layout/migrate.js.map +1 -0
- package/dist/core/layout/resolve.d.ts +23 -0
- package/dist/core/layout/resolve.d.ts.map +1 -0
- package/dist/core/layout/resolve.js +27 -0
- package/dist/core/layout/resolve.js.map +1 -0
- package/dist/core/layout/treeOps.d.ts +11 -0
- package/dist/core/layout/treeOps.d.ts.map +1 -0
- package/dist/core/layout/treeOps.js +68 -0
- package/dist/core/layout/treeOps.js.map +1 -0
- package/dist/core/layout/types.d.ts +97 -0
- package/dist/core/layout/types.d.ts.map +1 -0
- package/dist/core/layout/types.js +21 -0
- package/dist/core/layout/types.js.map +1 -0
- package/dist/core/layout/undoHistory.d.ts +34 -0
- package/dist/core/layout/undoHistory.d.ts.map +1 -0
- package/dist/core/layout/undoHistory.js +53 -0
- package/dist/core/layout/undoHistory.js.map +1 -0
- package/dist/core/layout/version.d.ts +8 -0
- package/dist/core/layout/version.d.ts.map +1 -0
- package/dist/core/layout/version.js +8 -0
- package/dist/core/layout/version.js.map +1 -0
- package/dist/core/media/bgRemoval.d.ts +28 -0
- package/dist/core/media/bgRemoval.d.ts.map +1 -0
- package/dist/core/media/bgRemoval.js +102 -0
- package/dist/core/media/bgRemoval.js.map +1 -0
- package/dist/core/media/format.d.ts +21 -0
- package/dist/core/media/format.d.ts.map +1 -0
- package/dist/core/media/format.js +55 -0
- package/dist/core/media/format.js.map +1 -0
- package/dist/core/media/index.d.ts +8 -0
- package/dist/core/media/index.d.ts.map +1 -0
- package/dist/core/media/index.js +11 -0
- package/dist/core/media/index.js.map +1 -0
- package/dist/core/media/mediaItem.d.ts +16 -0
- package/dist/core/media/mediaItem.d.ts.map +1 -0
- package/dist/core/media/mediaItem.js +35 -0
- package/dist/core/media/mediaItem.js.map +1 -0
- package/dist/core/media/segment.d.ts +80 -0
- package/dist/core/media/segment.d.ts.map +1 -0
- package/dist/core/media/segment.js +248 -0
- package/dist/core/media/segment.js.map +1 -0
- package/dist/core/media/trim.d.ts +29 -0
- package/dist/core/media/trim.d.ts.map +1 -0
- package/dist/core/media/trim.js +58 -0
- package/dist/core/media/trim.js.map +1 -0
- package/dist/core/media/types.d.ts +94 -0
- package/dist/core/media/types.d.ts.map +1 -0
- package/dist/core/media/types.js +12 -0
- package/dist/core/media/types.js.map +1 -0
- package/dist/core/media/validate.d.ts +10 -0
- package/dist/core/media/validate.d.ts.map +1 -0
- package/dist/core/media/validate.js +122 -0
- package/dist/core/media/validate.js.map +1 -0
- package/dist/core/navigation/breadcrumbCompat.d.ts +25 -0
- package/dist/core/navigation/breadcrumbCompat.d.ts.map +1 -0
- package/dist/core/navigation/breadcrumbCompat.js +22 -0
- package/dist/core/navigation/breadcrumbCompat.js.map +1 -0
- package/dist/core/navigation/coverageTest.d.ts +25 -0
- package/dist/core/navigation/coverageTest.d.ts.map +1 -0
- package/dist/core/navigation/coverageTest.js +49 -0
- package/dist/core/navigation/coverageTest.js.map +1 -0
- package/dist/core/navigation/index.d.ts +7 -0
- package/dist/core/navigation/index.d.ts.map +1 -0
- package/dist/core/navigation/index.js +11 -0
- package/dist/core/navigation/index.js.map +1 -0
- package/dist/core/navigation/migrateNavPreferences.d.ts +54 -0
- package/dist/core/navigation/migrateNavPreferences.d.ts.map +1 -0
- package/dist/core/navigation/migrateNavPreferences.js +64 -0
- package/dist/core/navigation/migrateNavPreferences.js.map +1 -0
- package/dist/core/navigation/navigationModel.d.ts +93 -0
- package/dist/core/navigation/navigationModel.d.ts.map +1 -0
- package/dist/core/navigation/navigationModel.js +15 -0
- package/dist/core/navigation/navigationModel.js.map +1 -0
- package/dist/core/navigation/navigationSelectors.d.ts +64 -0
- package/dist/core/navigation/navigationSelectors.d.ts.map +1 -0
- package/dist/core/navigation/navigationSelectors.js +163 -0
- package/dist/core/navigation/navigationSelectors.js.map +1 -0
- package/dist/core/navigation/searchCatalogue.d.ts +24 -0
- package/dist/core/navigation/searchCatalogue.d.ts.map +1 -0
- package/dist/core/navigation/searchCatalogue.js +77 -0
- package/dist/core/navigation/searchCatalogue.js.map +1 -0
- package/dist/core/palette/ShortcutRegistry.d.ts +34 -0
- package/dist/core/palette/ShortcutRegistry.d.ts.map +1 -0
- package/dist/core/palette/ShortcutRegistry.js +53 -0
- package/dist/core/palette/ShortcutRegistry.js.map +1 -0
- package/dist/core/palette/fuzzyRank.d.ts +19 -0
- package/dist/core/palette/fuzzyRank.d.ts.map +1 -0
- package/dist/core/palette/fuzzyRank.js +74 -0
- package/dist/core/palette/fuzzyRank.js.map +1 -0
- package/dist/core/palette/hotkeys.d.ts +29 -0
- package/dist/core/palette/hotkeys.d.ts.map +1 -0
- package/dist/core/palette/hotkeys.js +119 -0
- package/dist/core/palette/hotkeys.js.map +1 -0
- package/dist/core/palette/index.d.ts +4 -0
- package/dist/core/palette/index.d.ts.map +1 -0
- package/dist/core/palette/index.js +9 -0
- package/dist/core/palette/index.js.map +1 -0
- package/dist/core/uiScale/index.d.ts +9 -0
- package/dist/core/uiScale/index.d.ts.map +1 -0
- package/dist/core/uiScale/index.js +9 -0
- package/dist/core/uiScale/index.js.map +1 -0
- package/dist/core/uiScale/scale.d.ts +37 -0
- package/dist/core/uiScale/scale.d.ts.map +1 -0
- package/dist/core/uiScale/scale.js +48 -0
- package/dist/core/uiScale/scale.js.map +1 -0
- package/dist/core/uiScale/uiScaleStore.d.ts +48 -0
- package/dist/core/uiScale/uiScaleStore.d.ts.map +1 -0
- package/dist/core/uiScale/uiScaleStore.js +64 -0
- package/dist/core/uiScale/uiScaleStore.js.map +1 -0
- package/dist/ctgr/base64url.d.ts +9 -0
- package/dist/ctgr/base64url.d.ts.map +1 -0
- package/dist/ctgr/base64url.js +40 -0
- package/dist/ctgr/base64url.js.map +1 -0
- package/dist/ctgr/chunkStore.d.ts +25 -0
- package/dist/ctgr/chunkStore.d.ts.map +1 -0
- package/dist/ctgr/chunkStore.js +126 -0
- package/dist/ctgr/chunkStore.js.map +1 -0
- package/dist/ctgr/codec.d.ts +45 -0
- package/dist/ctgr/codec.d.ts.map +1 -0
- package/dist/ctgr/codec.js +154 -0
- package/dist/ctgr/codec.js.map +1 -0
- package/dist/ctgr/compress.d.ts +3 -0
- package/dist/ctgr/compress.d.ts.map +1 -0
- package/dist/ctgr/compress.js +21 -0
- package/dist/ctgr/compress.js.map +1 -0
- package/dist/ctgr/crc32.d.ts +3 -0
- package/dist/ctgr/crc32.d.ts.map +1 -0
- package/dist/ctgr/crc32.js +24 -0
- package/dist/ctgr/crc32.js.map +1 -0
- package/dist/ctgr/digest.d.ts +2 -0
- package/dist/ctgr/digest.d.ts.map +1 -0
- package/dist/ctgr/digest.js +16 -0
- package/dist/ctgr/digest.js.map +1 -0
- package/dist/ctgr/index.d.ts +9 -0
- package/dist/ctgr/index.d.ts.map +1 -0
- package/dist/ctgr/index.js +14 -0
- package/dist/ctgr/index.js.map +1 -0
- package/dist/ctgr/types.d.ts +65 -0
- package/dist/ctgr/types.d.ts.map +1 -0
- package/dist/ctgr/types.js +22 -0
- package/dist/ctgr/types.js.map +1 -0
- package/dist/ctgr/v0compat.d.ts +28 -0
- package/dist/ctgr/v0compat.d.ts.map +1 -0
- package/dist/ctgr/v0compat.js +129 -0
- package/dist/ctgr/v0compat.js.map +1 -0
- package/dist/data/env/index.d.ts +75 -0
- package/dist/data/env/index.d.ts.map +1 -0
- package/dist/data/env/index.js +149 -0
- package/dist/data/env/index.js.map +1 -0
- package/dist/data/json/index.d.ts +61 -0
- package/dist/data/json/index.d.ts.map +1 -0
- package/dist/data/json/index.js +488 -0
- package/dist/data/json/index.js.map +1 -0
- package/dist/game/core/DisposeRegistry.d.ts +42 -0
- package/dist/game/core/DisposeRegistry.d.ts.map +1 -0
- package/dist/game/core/DisposeRegistry.js +67 -0
- package/dist/game/core/DisposeRegistry.js.map +1 -0
- package/dist/game/core/drawBudget.d.ts +26 -0
- package/dist/game/core/drawBudget.d.ts.map +1 -0
- package/dist/game/core/drawBudget.js +55 -0
- package/dist/game/core/drawBudget.js.map +1 -0
- package/dist/game/core/fixedTimestep.d.ts +38 -0
- package/dist/game/core/fixedTimestep.d.ts.map +1 -0
- package/dist/game/core/fixedTimestep.js +47 -0
- package/dist/game/core/fixedTimestep.js.map +1 -0
- package/dist/game/core/index.d.ts +9 -0
- package/dist/game/core/index.d.ts.map +1 -0
- package/dist/game/core/index.js +8 -0
- package/dist/game/core/index.js.map +1 -0
- package/dist/game/core/inputCollector.d.ts +82 -0
- package/dist/game/core/inputCollector.d.ts.map +1 -0
- package/dist/game/core/inputCollector.js +176 -0
- package/dist/game/core/inputCollector.js.map +1 -0
- package/dist/game/core/resizeCanvas.d.ts +19 -0
- package/dist/game/core/resizeCanvas.d.ts.map +1 -0
- package/dist/game/core/resizeCanvas.js +29 -0
- package/dist/game/core/resizeCanvas.js.map +1 -0
- package/dist/game/react/index.d.ts +3 -0
- package/dist/game/react/index.d.ts.map +1 -0
- package/dist/game/react/index.js +5 -0
- package/dist/game/react/index.js.map +1 -0
- package/dist/game/react/useGameEngine.d.ts +64 -0
- package/dist/game/react/useGameEngine.d.ts.map +1 -0
- package/dist/game/react/useGameEngine.js +77 -0
- package/dist/game/react/useGameEngine.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/ops/test-report/types.d.ts +81 -0
- package/dist/ops/test-report/types.d.ts.map +1 -0
- package/dist/ops/test-report/types.js +13 -0
- package/dist/ops/test-report/types.js.map +1 -0
- package/dist/react/Toast.d.ts +5 -0
- package/dist/react/Toast.d.ts.map +1 -0
- package/dist/react/Toast.js +33 -0
- package/dist/react/Toast.js.map +1 -0
- package/dist/react/charts/AreaChart.d.ts +27 -0
- package/dist/react/charts/AreaChart.d.ts.map +1 -0
- package/dist/react/charts/AreaChart.js +19 -0
- package/dist/react/charts/AreaChart.js.map +1 -0
- package/dist/react/charts/BarChart.d.ts +27 -0
- package/dist/react/charts/BarChart.d.ts.map +1 -0
- package/dist/react/charts/BarChart.js +20 -0
- package/dist/react/charts/BarChart.js.map +1 -0
- package/dist/react/charts/CategoryBars.d.ts +17 -0
- package/dist/react/charts/CategoryBars.d.ts.map +1 -0
- package/dist/react/charts/CategoryBars.js +28 -0
- package/dist/react/charts/CategoryBars.js.map +1 -0
- package/dist/react/charts/CategoryDonut.d.ts +16 -0
- package/dist/react/charts/CategoryDonut.d.ts.map +1 -0
- package/dist/react/charts/CategoryDonut.js +17 -0
- package/dist/react/charts/CategoryDonut.js.map +1 -0
- package/dist/react/charts/ChartFrame.d.ts +19 -0
- package/dist/react/charts/ChartFrame.d.ts.map +1 -0
- package/dist/react/charts/ChartFrame.js +17 -0
- package/dist/react/charts/ChartFrame.js.map +1 -0
- package/dist/react/charts/ChartLegend.d.ts +19 -0
- package/dist/react/charts/ChartLegend.d.ts.map +1 -0
- package/dist/react/charts/ChartLegend.js +11 -0
- package/dist/react/charts/ChartLegend.js.map +1 -0
- package/dist/react/charts/ChartTooltip.d.ts +35 -0
- package/dist/react/charts/ChartTooltip.d.ts.map +1 -0
- package/dist/react/charts/ChartTooltip.js +26 -0
- package/dist/react/charts/ChartTooltip.js.map +1 -0
- package/dist/react/charts/DivergingBars.d.ts +16 -0
- package/dist/react/charts/DivergingBars.d.ts.map +1 -0
- package/dist/react/charts/DivergingBars.js +14 -0
- package/dist/react/charts/DivergingBars.js.map +1 -0
- package/dist/react/charts/DonutChart.d.ts +10 -0
- package/dist/react/charts/DonutChart.d.ts.map +1 -0
- package/dist/react/charts/DonutChart.js +16 -0
- package/dist/react/charts/DonutChart.js.map +1 -0
- package/dist/react/charts/LabeledSeriesChart.d.ts +25 -0
- package/dist/react/charts/LabeledSeriesChart.d.ts.map +1 -0
- package/dist/react/charts/LabeledSeriesChart.js +29 -0
- package/dist/react/charts/LabeledSeriesChart.js.map +1 -0
- package/dist/react/charts/LineChart.d.ts +25 -0
- package/dist/react/charts/LineChart.d.ts.map +1 -0
- package/dist/react/charts/LineChart.js +12 -0
- package/dist/react/charts/LineChart.js.map +1 -0
- package/dist/react/charts/MiniBarChart.d.ts +14 -0
- package/dist/react/charts/MiniBarChart.d.ts.map +1 -0
- package/dist/react/charts/MiniBarChart.js +14 -0
- package/dist/react/charts/MiniBarChart.js.map +1 -0
- package/dist/react/charts/PieChart.d.ts +25 -0
- package/dist/react/charts/PieChart.d.ts.map +1 -0
- package/dist/react/charts/PieChart.js +17 -0
- package/dist/react/charts/PieChart.js.map +1 -0
- package/dist/react/charts/RadialBarChart.d.ts +24 -0
- package/dist/react/charts/RadialBarChart.d.ts.map +1 -0
- package/dist/react/charts/RadialBarChart.js +20 -0
- package/dist/react/charts/RadialBarChart.js.map +1 -0
- package/dist/react/charts/Sparkline.d.ts +20 -0
- package/dist/react/charts/Sparkline.d.ts.map +1 -0
- package/dist/react/charts/Sparkline.js +19 -0
- package/dist/react/charts/Sparkline.js.map +1 -0
- package/dist/react/charts/StackedBars.d.ts +18 -0
- package/dist/react/charts/StackedBars.d.ts.map +1 -0
- package/dist/react/charts/StackedBars.js +15 -0
- package/dist/react/charts/StackedBars.js.map +1 -0
- package/dist/react/charts/StatusDonut.d.ts +7 -0
- package/dist/react/charts/StatusDonut.d.ts.map +1 -0
- package/dist/react/charts/StatusDonut.js +22 -0
- package/dist/react/charts/StatusDonut.js.map +1 -0
- package/dist/react/charts/TimeSeriesChart.d.ts +23 -0
- package/dist/react/charts/TimeSeriesChart.d.ts.map +1 -0
- package/dist/react/charts/TimeSeriesChart.js +26 -0
- package/dist/react/charts/TimeSeriesChart.js.map +1 -0
- package/dist/react/charts/chartTheme.d.ts +21 -0
- package/dist/react/charts/chartTheme.d.ts.map +1 -0
- package/dist/react/charts/chartTheme.js +55 -0
- package/dist/react/charts/chartTheme.js.map +1 -0
- package/dist/react/charts/format.d.ts +12 -0
- package/dist/react/charts/format.d.ts.map +1 -0
- package/dist/react/charts/format.js +111 -0
- package/dist/react/charts/format.js.map +1 -0
- package/dist/react/charts/index.d.ts +13 -0
- package/dist/react/charts/index.d.ts.map +1 -0
- package/dist/react/charts/index.js +23 -0
- package/dist/react/charts/index.js.map +1 -0
- package/dist/react/charts/shared.d.ts +30 -0
- package/dist/react/charts/shared.d.ts.map +1 -0
- package/dist/react/charts/shared.js +13 -0
- package/dist/react/charts/shared.js.map +1 -0
- package/dist/react/charts/tokens.d.ts +56 -0
- package/dist/react/charts/tokens.d.ts.map +1 -0
- package/dist/react/charts/tokens.js +128 -0
- package/dist/react/charts/tokens.js.map +1 -0
- package/dist/react/compat.d.ts +8 -0
- package/dist/react/compat.d.ts.map +1 -0
- package/dist/react/compat.js +31 -0
- package/dist/react/compat.js.map +1 -0
- package/dist/react/components/ActionBar.d.ts +27 -0
- package/dist/react/components/ActionBar.d.ts.map +1 -0
- package/dist/react/components/ActionBar.js +29 -0
- package/dist/react/components/ActionBar.js.map +1 -0
- package/dist/react/components/AddItemsMenu.d.ts +41 -0
- package/dist/react/components/AddItemsMenu.d.ts.map +1 -0
- package/dist/react/components/AddItemsMenu.js +26 -0
- package/dist/react/components/AddItemsMenu.js.map +1 -0
- package/dist/react/components/Alert.d.ts +28 -0
- package/dist/react/components/Alert.d.ts.map +1 -0
- package/dist/react/components/Alert.js +29 -0
- package/dist/react/components/Alert.js.map +1 -0
- package/dist/react/components/AppShell.d.ts +118 -0
- package/dist/react/components/AppShell.d.ts.map +1 -0
- package/dist/react/components/AppShell.js +57 -0
- package/dist/react/components/AppShell.js.map +1 -0
- package/dist/react/components/AutoGrowTextarea.d.ts +31 -0
- package/dist/react/components/AutoGrowTextarea.d.ts.map +1 -0
- package/dist/react/components/AutoGrowTextarea.js +75 -0
- package/dist/react/components/AutoGrowTextarea.js.map +1 -0
- package/dist/react/components/Badge.d.ts +27 -0
- package/dist/react/components/Badge.d.ts.map +1 -0
- package/dist/react/components/Badge.js +41 -0
- package/dist/react/components/Badge.js.map +1 -0
- package/dist/react/components/Button.d.ts +35 -0
- package/dist/react/components/Button.d.ts.map +1 -0
- package/dist/react/components/Button.js +56 -0
- package/dist/react/components/Button.js.map +1 -0
- package/dist/react/components/ButtonGroup.d.ts +11 -0
- package/dist/react/components/ButtonGroup.d.ts.map +1 -0
- package/dist/react/components/ButtonGroup.js +14 -0
- package/dist/react/components/ButtonGroup.js.map +1 -0
- package/dist/react/components/ButtonLink.d.ts +19 -0
- package/dist/react/components/ButtonLink.d.ts.map +1 -0
- package/dist/react/components/ButtonLink.js +13 -0
- package/dist/react/components/ButtonLink.js.map +1 -0
- package/dist/react/components/Card.d.ts +27 -0
- package/dist/react/components/Card.d.ts.map +1 -0
- package/dist/react/components/Card.js +29 -0
- package/dist/react/components/Card.js.map +1 -0
- package/dist/react/components/Checkbox.d.ts +14 -0
- package/dist/react/components/Checkbox.d.ts.map +1 -0
- package/dist/react/components/Checkbox.js +23 -0
- package/dist/react/components/Checkbox.js.map +1 -0
- package/dist/react/components/CodeFieldInput.d.ts +29 -0
- package/dist/react/components/CodeFieldInput.d.ts.map +1 -0
- package/dist/react/components/CodeFieldInput.js +37 -0
- package/dist/react/components/CodeFieldInput.js.map +1 -0
- package/dist/react/components/Collapsible.d.ts +28 -0
- package/dist/react/components/Collapsible.d.ts.map +1 -0
- package/dist/react/components/Collapsible.js +17 -0
- package/dist/react/components/Collapsible.js.map +1 -0
- package/dist/react/components/ColorField.d.ts +21 -0
- package/dist/react/components/ColorField.d.ts.map +1 -0
- package/dist/react/components/ColorField.js +16 -0
- package/dist/react/components/ColorField.js.map +1 -0
- package/dist/react/components/ConfirmDialog.d.ts +25 -0
- package/dist/react/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/react/components/ConfirmDialog.js +29 -0
- package/dist/react/components/ConfirmDialog.js.map +1 -0
- package/dist/react/components/CopyButton.d.ts +40 -0
- package/dist/react/components/CopyButton.d.ts.map +1 -0
- package/dist/react/components/CopyButton.js +33 -0
- package/dist/react/components/CopyButton.js.map +1 -0
- package/dist/react/components/DataTable/CardView.d.ts +18 -0
- package/dist/react/components/DataTable/CardView.d.ts.map +1 -0
- package/dist/react/components/DataTable/CardView.js +23 -0
- package/dist/react/components/DataTable/CardView.js.map +1 -0
- package/dist/react/components/DataTable/DataTable.d.ts +53 -0
- package/dist/react/components/DataTable/DataTable.d.ts.map +1 -0
- package/dist/react/components/DataTable/DataTable.js +86 -0
- package/dist/react/components/DataTable/DataTable.js.map +1 -0
- package/dist/react/components/DataTable/Pagination.d.ts +14 -0
- package/dist/react/components/DataTable/Pagination.d.ts.map +1 -0
- package/dist/react/components/DataTable/Pagination.js +20 -0
- package/dist/react/components/DataTable/Pagination.js.map +1 -0
- package/dist/react/components/DataTable/RowActions.d.ts +13 -0
- package/dist/react/components/DataTable/RowActions.d.ts.map +1 -0
- package/dist/react/components/DataTable/RowActions.js +19 -0
- package/dist/react/components/DataTable/RowActions.js.map +1 -0
- package/dist/react/components/DataTable/SortHeader.d.ts +14 -0
- package/dist/react/components/DataTable/SortHeader.d.ts.map +1 -0
- package/dist/react/components/DataTable/SortHeader.js +15 -0
- package/dist/react/components/DataTable/SortHeader.js.map +1 -0
- package/dist/react/components/DataTable/Toolbar.d.ts +25 -0
- package/dist/react/components/DataTable/Toolbar.d.ts.map +1 -0
- package/dist/react/components/DataTable/Toolbar.js +17 -0
- package/dist/react/components/DataTable/Toolbar.js.map +1 -0
- package/dist/react/components/DataTable/ViewOptionsMenu.d.ts +12 -0
- package/dist/react/components/DataTable/ViewOptionsMenu.d.ts.map +1 -0
- package/dist/react/components/DataTable/ViewOptionsMenu.js +21 -0
- package/dist/react/components/DataTable/ViewOptionsMenu.js.map +1 -0
- package/dist/react/components/DataTable/cells/CellRenderer.d.ts +32 -0
- package/dist/react/components/DataTable/cells/CellRenderer.d.ts.map +1 -0
- package/dist/react/components/DataTable/cells/CellRenderer.js +133 -0
- package/dist/react/components/DataTable/cells/CellRenderer.js.map +1 -0
- package/dist/react/components/DataTable/cells/CodeCell.d.ts +13 -0
- package/dist/react/components/DataTable/cells/CodeCell.d.ts.map +1 -0
- package/dist/react/components/DataTable/cells/CodeCell.js +12 -0
- package/dist/react/components/DataTable/cells/CodeCell.js.map +1 -0
- package/dist/react/components/DataTable/cells/LinkCell.d.ts +12 -0
- package/dist/react/components/DataTable/cells/LinkCell.d.ts.map +1 -0
- package/dist/react/components/DataTable/cells/LinkCell.js +11 -0
- package/dist/react/components/DataTable/cells/LinkCell.js.map +1 -0
- package/dist/react/components/DataTable/cells/PasswordCell.d.ts +12 -0
- package/dist/react/components/DataTable/cells/PasswordCell.d.ts.map +1 -0
- package/dist/react/components/DataTable/cells/PasswordCell.js +21 -0
- package/dist/react/components/DataTable/cells/PasswordCell.js.map +1 -0
- package/dist/react/components/DataTable/index.d.ts +13 -0
- package/dist/react/components/DataTable/index.d.ts.map +1 -0
- package/dist/react/components/DataTable/index.js +12 -0
- package/dist/react/components/DataTable/index.js.map +1 -0
- package/dist/react/components/DataTable/types.d.ts +37 -0
- package/dist/react/components/DataTable/types.d.ts.map +1 -0
- package/dist/react/components/DataTable/types.js +2 -0
- package/dist/react/components/DataTable/types.js.map +1 -0
- package/dist/react/components/DataTable.d.ts +16 -0
- package/dist/react/components/DataTable.d.ts.map +1 -0
- package/dist/react/components/DataTable.js +25 -0
- package/dist/react/components/DataTable.js.map +1 -0
- package/dist/react/components/DiscardConfirmDialog.d.ts +25 -0
- package/dist/react/components/DiscardConfirmDialog.d.ts.map +1 -0
- package/dist/react/components/DiscardConfirmDialog.js +46 -0
- package/dist/react/components/DiscardConfirmDialog.js.map +1 -0
- package/dist/react/components/DiscardConfirmOverlay.d.ts +14 -0
- package/dist/react/components/DiscardConfirmOverlay.d.ts.map +1 -0
- package/dist/react/components/DiscardConfirmOverlay.js +7 -0
- package/dist/react/components/DiscardConfirmOverlay.js.map +1 -0
- package/dist/react/components/DisclosureButton.d.ts +20 -0
- package/dist/react/components/DisclosureButton.d.ts.map +1 -0
- package/dist/react/components/DisclosureButton.js +15 -0
- package/dist/react/components/DisclosureButton.js.map +1 -0
- package/dist/react/components/DismissButton.d.ts +10 -0
- package/dist/react/components/DismissButton.d.ts.map +1 -0
- package/dist/react/components/DismissButton.js +7 -0
- package/dist/react/components/DismissButton.js.map +1 -0
- package/dist/react/components/DragHandle.d.ts +15 -0
- package/dist/react/components/DragHandle.d.ts.map +1 -0
- package/dist/react/components/DragHandle.js +9 -0
- package/dist/react/components/DragHandle.js.map +1 -0
- package/dist/react/components/Drawer.d.ts +34 -0
- package/dist/react/components/Drawer.d.ts.map +1 -0
- package/dist/react/components/Drawer.js +58 -0
- package/dist/react/components/Drawer.js.map +1 -0
- package/dist/react/components/DropIndicator.d.ts +11 -0
- package/dist/react/components/DropIndicator.d.ts.map +1 -0
- package/dist/react/components/DropIndicator.js +18 -0
- package/dist/react/components/DropIndicator.js.map +1 -0
- package/dist/react/components/Dropdown.d.ts +64 -0
- package/dist/react/components/Dropdown.d.ts.map +1 -0
- package/dist/react/components/Dropdown.js +144 -0
- package/dist/react/components/Dropdown.js.map +1 -0
- package/dist/react/components/DropdownMenu.d.ts +34 -0
- package/dist/react/components/DropdownMenu.d.ts.map +1 -0
- package/dist/react/components/DropdownMenu.js +27 -0
- package/dist/react/components/DropdownMenu.js.map +1 -0
- package/dist/react/components/EmojiField.d.ts +17 -0
- package/dist/react/components/EmojiField.d.ts.map +1 -0
- package/dist/react/components/EmojiField.js +18 -0
- package/dist/react/components/EmojiField.js.map +1 -0
- package/dist/react/components/EmptyState.d.ts +18 -0
- package/dist/react/components/EmptyState.d.ts.map +1 -0
- package/dist/react/components/EmptyState.js +11 -0
- package/dist/react/components/EmptyState.js.map +1 -0
- package/dist/react/components/EnvCompare.d.ts +20 -0
- package/dist/react/components/EnvCompare.d.ts.map +1 -0
- package/dist/react/components/EnvCompare.js +31 -0
- package/dist/react/components/EnvCompare.js.map +1 -0
- package/dist/react/components/EnvEditor.d.ts +22 -0
- package/dist/react/components/EnvEditor.d.ts.map +1 -0
- package/dist/react/components/EnvEditor.js +42 -0
- package/dist/react/components/EnvEditor.js.map +1 -0
- package/dist/react/components/Field.d.ts +48 -0
- package/dist/react/components/Field.d.ts.map +1 -0
- package/dist/react/components/Field.js +49 -0
- package/dist/react/components/Field.js.map +1 -0
- package/dist/react/components/FieldInput.d.ts +86 -0
- package/dist/react/components/FieldInput.d.ts.map +1 -0
- package/dist/react/components/FieldInput.js +218 -0
- package/dist/react/components/FieldInput.js.map +1 -0
- package/dist/react/components/FieldLabel.d.ts +23 -0
- package/dist/react/components/FieldLabel.d.ts.map +1 -0
- package/dist/react/components/FieldLabel.js +8 -0
- package/dist/react/components/FieldLabel.js.map +1 -0
- package/dist/react/components/Grid.d.ts +20 -0
- package/dist/react/components/Grid.d.ts.map +1 -0
- package/dist/react/components/Grid.js +15 -0
- package/dist/react/components/Grid.js.map +1 -0
- package/dist/react/components/HoverCard.d.ts +19 -0
- package/dist/react/components/HoverCard.d.ts.map +1 -0
- package/dist/react/components/HoverCard.js +21 -0
- package/dist/react/components/HoverCard.js.map +1 -0
- package/dist/react/components/IconButton.d.ts +14 -0
- package/dist/react/components/IconButton.d.ts.map +1 -0
- package/dist/react/components/IconButton.js +13 -0
- package/dist/react/components/IconButton.js.map +1 -0
- package/dist/react/components/InfoHint.d.ts +24 -0
- package/dist/react/components/InfoHint.d.ts.map +1 -0
- package/dist/react/components/InfoHint.js +43 -0
- package/dist/react/components/InfoHint.js.map +1 -0
- package/dist/react/components/InlineEditableText.d.ts +28 -0
- package/dist/react/components/InlineEditableText.d.ts.map +1 -0
- package/dist/react/components/InlineEditableText.js +65 -0
- package/dist/react/components/InlineEditableText.js.map +1 -0
- package/dist/react/components/Input.d.ts +18 -0
- package/dist/react/components/Input.d.ts.map +1 -0
- package/dist/react/components/Input.js +22 -0
- package/dist/react/components/Input.js.map +1 -0
- package/dist/react/components/JsonEditor.d.ts +59 -0
- package/dist/react/components/JsonEditor.d.ts.map +1 -0
- package/dist/react/components/JsonEditor.js +54 -0
- package/dist/react/components/JsonEditor.js.map +1 -0
- package/dist/react/components/Lightbox.d.ts +17 -0
- package/dist/react/components/Lightbox.d.ts.map +1 -0
- package/dist/react/components/Lightbox.js +18 -0
- package/dist/react/components/Lightbox.js.map +1 -0
- package/dist/react/components/Modal.d.ts +35 -0
- package/dist/react/components/Modal.d.ts.map +1 -0
- package/dist/react/components/Modal.js +54 -0
- package/dist/react/components/Modal.js.map +1 -0
- package/dist/react/components/ModalShell.d.ts +39 -0
- package/dist/react/components/ModalShell.d.ts.map +1 -0
- package/dist/react/components/ModalShell.js +63 -0
- package/dist/react/components/ModalShell.js.map +1 -0
- package/dist/react/components/MultiSelectField.d.ts +28 -0
- package/dist/react/components/MultiSelectField.d.ts.map +1 -0
- package/dist/react/components/MultiSelectField.js +25 -0
- package/dist/react/components/MultiSelectField.js.map +1 -0
- package/dist/react/components/Page.d.ts +23 -0
- package/dist/react/components/Page.d.ts.map +1 -0
- package/dist/react/components/Page.js +24 -0
- package/dist/react/components/Page.js.map +1 -0
- package/dist/react/components/PageBottom.d.ts +62 -0
- package/dist/react/components/PageBottom.d.ts.map +1 -0
- package/dist/react/components/PageBottom.js +87 -0
- package/dist/react/components/PageBottom.js.map +1 -0
- package/dist/react/components/PageContainer.d.ts +8 -0
- package/dist/react/components/PageContainer.d.ts.map +1 -0
- package/dist/react/components/PageContainer.js +12 -0
- package/dist/react/components/PageContainer.js.map +1 -0
- package/dist/react/components/Pagination.d.ts +24 -0
- package/dist/react/components/Pagination.d.ts.map +1 -0
- package/dist/react/components/Pagination.js +48 -0
- package/dist/react/components/Pagination.js.map +1 -0
- package/dist/react/components/Popover.d.ts +23 -0
- package/dist/react/components/Popover.d.ts.map +1 -0
- package/dist/react/components/Popover.js +14 -0
- package/dist/react/components/Popover.js.map +1 -0
- package/dist/react/components/QueryBoundary.d.ts +34 -0
- package/dist/react/components/QueryBoundary.d.ts.map +1 -0
- package/dist/react/components/QueryBoundary.js +28 -0
- package/dist/react/components/QueryBoundary.js.map +1 -0
- package/dist/react/components/RatingField.d.ts +21 -0
- package/dist/react/components/RatingField.d.ts.map +1 -0
- package/dist/react/components/RatingField.js +30 -0
- package/dist/react/components/RatingField.js.map +1 -0
- package/dist/react/components/RenderField.d.ts +16 -0
- package/dist/react/components/RenderField.d.ts.map +1 -0
- package/dist/react/components/RenderField.js +19 -0
- package/dist/react/components/RenderField.js.map +1 -0
- package/dist/react/components/ScrollArea.d.ts +61 -0
- package/dist/react/components/ScrollArea.d.ts.map +1 -0
- package/dist/react/components/ScrollArea.js +67 -0
- package/dist/react/components/ScrollArea.js.map +1 -0
- package/dist/react/components/ScrollToTopButton.d.ts +8 -0
- package/dist/react/components/ScrollToTopButton.d.ts.map +1 -0
- package/dist/react/components/ScrollToTopButton.js +42 -0
- package/dist/react/components/ScrollToTopButton.js.map +1 -0
- package/dist/react/components/SecretInput.d.ts +38 -0
- package/dist/react/components/SecretInput.d.ts.map +1 -0
- package/dist/react/components/SecretInput.js +33 -0
- package/dist/react/components/SecretInput.js.map +1 -0
- package/dist/react/components/Section.d.ts +17 -0
- package/dist/react/components/Section.d.ts.map +1 -0
- package/dist/react/components/Section.js +14 -0
- package/dist/react/components/Section.js.map +1 -0
- package/dist/react/components/SectionHeading.d.ts +12 -0
- package/dist/react/components/SectionHeading.d.ts.map +1 -0
- package/dist/react/components/SectionHeading.js +5 -0
- package/dist/react/components/SectionHeading.js.map +1 -0
- package/dist/react/components/SegmentedControl.d.ts +24 -0
- package/dist/react/components/SegmentedControl.d.ts.map +1 -0
- package/dist/react/components/SegmentedControl.js +14 -0
- package/dist/react/components/SegmentedControl.js.map +1 -0
- package/dist/react/components/Select.d.ts +5 -0
- package/dist/react/components/Select.d.ts.map +1 -0
- package/dist/react/components/Select.js +8 -0
- package/dist/react/components/Select.js.map +1 -0
- package/dist/react/components/SelectField.d.ts +46 -0
- package/dist/react/components/SelectField.d.ts.map +1 -0
- package/dist/react/components/SelectField.js +23 -0
- package/dist/react/components/SelectField.js.map +1 -0
- package/dist/react/components/Skeleton.d.ts +28 -0
- package/dist/react/components/Skeleton.d.ts.map +1 -0
- package/dist/react/components/Skeleton.js +29 -0
- package/dist/react/components/Skeleton.js.map +1 -0
- package/dist/react/components/Spinner.d.ts +14 -0
- package/dist/react/components/Spinner.d.ts.map +1 -0
- package/dist/react/components/Spinner.js +10 -0
- package/dist/react/components/Spinner.js.map +1 -0
- package/dist/react/components/SplitButton.d.ts +36 -0
- package/dist/react/components/SplitButton.d.ts.map +1 -0
- package/dist/react/components/SplitButton.js +24 -0
- package/dist/react/components/SplitButton.js.map +1 -0
- package/dist/react/components/StatTile.d.ts +22 -0
- package/dist/react/components/StatTile.d.ts.map +1 -0
- package/dist/react/components/StatTile.js +27 -0
- package/dist/react/components/StatTile.js.map +1 -0
- package/dist/react/components/Surface.d.ts +37 -0
- package/dist/react/components/Surface.d.ts.map +1 -0
- package/dist/react/components/Surface.js +29 -0
- package/dist/react/components/Surface.js.map +1 -0
- package/dist/react/components/Switch.d.ts +12 -0
- package/dist/react/components/Switch.d.ts.map +1 -0
- package/dist/react/components/Switch.js +13 -0
- package/dist/react/components/Switch.js.map +1 -0
- package/dist/react/components/TagsInput.d.ts +25 -0
- package/dist/react/components/TagsInput.d.ts.map +1 -0
- package/dist/react/components/TagsInput.js +62 -0
- package/dist/react/components/TagsInput.js.map +1 -0
- package/dist/react/components/TextArea.d.ts +10 -0
- package/dist/react/components/TextArea.d.ts.map +1 -0
- package/dist/react/components/TextArea.js +14 -0
- package/dist/react/components/TextArea.js.map +1 -0
- package/dist/react/components/Tooltip.d.ts +32 -0
- package/dist/react/components/Tooltip.d.ts.map +1 -0
- package/dist/react/components/Tooltip.js +32 -0
- package/dist/react/components/Tooltip.js.map +1 -0
- package/dist/react/components/Wizard/ReviewStep.d.ts +26 -0
- package/dist/react/components/Wizard/ReviewStep.d.ts.map +1 -0
- package/dist/react/components/Wizard/ReviewStep.js +42 -0
- package/dist/react/components/Wizard/ReviewStep.js.map +1 -0
- package/dist/react/components/Wizard/Stepper.d.ts +24 -0
- package/dist/react/components/Wizard/Stepper.d.ts.map +1 -0
- package/dist/react/components/Wizard/Stepper.js +24 -0
- package/dist/react/components/Wizard/Stepper.js.map +1 -0
- package/dist/react/components/Wizard/Wizard.d.ts +20 -0
- package/dist/react/components/Wizard/Wizard.d.ts.map +1 -0
- package/dist/react/components/Wizard/Wizard.js +153 -0
- package/dist/react/components/Wizard/Wizard.js.map +1 -0
- package/dist/react/components/Wizard/types.d.ts +71 -0
- package/dist/react/components/Wizard/types.d.ts.map +1 -0
- package/dist/react/components/Wizard/types.js +2 -0
- package/dist/react/components/Wizard/types.js.map +1 -0
- package/dist/react/components/dialog.d.ts +38 -0
- package/dist/react/components/dialog.d.ts.map +1 -0
- package/dist/react/components/dialog.js +38 -0
- package/dist/react/components/dialog.js.map +1 -0
- package/dist/react/components/layout.d.ts +32 -0
- package/dist/react/components/layout.d.ts.map +1 -0
- package/dist/react/components/layout.js +46 -0
- package/dist/react/components/layout.js.map +1 -0
- package/dist/react/components/popoverPlacement.d.ts +40 -0
- package/dist/react/components/popoverPlacement.d.ts.map +1 -0
- package/dist/react/components/popoverPlacement.js +25 -0
- package/dist/react/components/popoverPlacement.js.map +1 -0
- package/dist/react/components/revealOnHover.d.ts +3 -0
- package/dist/react/components/revealOnHover.d.ts.map +1 -0
- package/dist/react/components/revealOnHover.js +3 -0
- package/dist/react/components/revealOnHover.js.map +1 -0
- package/dist/react/confirm.d.ts +25 -0
- package/dist/react/confirm.d.ts.map +1 -0
- package/dist/react/confirm.js +43 -0
- package/dist/react/confirm.js.map +1 -0
- package/dist/react/constants/viewport.d.ts +16 -0
- package/dist/react/constants/viewport.d.ts.map +1 -0
- package/dist/react/constants/viewport.js +16 -0
- package/dist/react/constants/viewport.js.map +1 -0
- package/dist/react/createApiHooks.d.ts +110 -0
- package/dist/react/createApiHooks.d.ts.map +1 -0
- package/dist/react/createApiHooks.js +56 -0
- package/dist/react/createApiHooks.js.map +1 -0
- package/dist/react/emoji/EmojiAutocomplete.d.ts +23 -0
- package/dist/react/emoji/EmojiAutocomplete.d.ts.map +1 -0
- package/dist/react/emoji/EmojiAutocomplete.js +99 -0
- package/dist/react/emoji/EmojiAutocomplete.js.map +1 -0
- package/dist/react/emoji/EmojiPicker.d.ts +32 -0
- package/dist/react/emoji/EmojiPicker.d.ts.map +1 -0
- package/dist/react/emoji/EmojiPicker.js +41 -0
- package/dist/react/emoji/EmojiPicker.js.map +1 -0
- package/dist/react/emoji/emojiSearch.d.ts +22 -0
- package/dist/react/emoji/emojiSearch.d.ts.map +1 -0
- package/dist/react/emoji/emojiSearch.js +49 -0
- package/dist/react/emoji/emojiSearch.js.map +1 -0
- package/dist/react/emoji/index.d.ts +4 -0
- package/dist/react/emoji/index.d.ts.map +1 -0
- package/dist/react/emoji/index.js +4 -0
- package/dist/react/emoji/index.js.map +1 -0
- package/dist/react/hooks/DragHandleIcon.d.ts +12 -0
- package/dist/react/hooks/DragHandleIcon.d.ts.map +1 -0
- package/dist/react/hooks/DragHandleIcon.js +13 -0
- package/dist/react/hooks/DragHandleIcon.js.map +1 -0
- package/dist/react/hooks/dragShared.d.ts +21 -0
- package/dist/react/hooks/dragShared.d.ts.map +1 -0
- package/dist/react/hooks/dragShared.js +2 -0
- package/dist/react/hooks/dragShared.js.map +1 -0
- package/dist/react/hooks/useAutoSizeTextarea.d.ts +19 -0
- package/dist/react/hooks/useAutoSizeTextarea.d.ts.map +1 -0
- package/dist/react/hooks/useAutoSizeTextarea.js +44 -0
- package/dist/react/hooks/useAutoSizeTextarea.js.map +1 -0
- package/dist/react/hooks/useCaretInView.d.ts +22 -0
- package/dist/react/hooks/useCaretInView.d.ts.map +1 -0
- package/dist/react/hooks/useCaretInView.js +32 -0
- package/dist/react/hooks/useCaretInView.js.map +1 -0
- package/dist/react/hooks/useCopyToClipboard.d.ts +11 -0
- package/dist/react/hooks/useCopyToClipboard.d.ts.map +1 -0
- package/dist/react/hooks/useCopyToClipboard.js +31 -0
- package/dist/react/hooks/useCopyToClipboard.js.map +1 -0
- package/dist/react/hooks/useCrossContainerDrag.d.ts +72 -0
- package/dist/react/hooks/useCrossContainerDrag.d.ts.map +1 -0
- package/dist/react/hooks/useCrossContainerDrag.js +202 -0
- package/dist/react/hooks/useCrossContainerDrag.js.map +1 -0
- package/dist/react/hooks/useDebouncedValue.d.ts +7 -0
- package/dist/react/hooks/useDebouncedValue.d.ts.map +1 -0
- package/dist/react/hooks/useDebouncedValue.js +15 -0
- package/dist/react/hooks/useDebouncedValue.js.map +1 -0
- package/dist/react/hooks/useDiscardGuard.d.ts +42 -0
- package/dist/react/hooks/useDiscardGuard.d.ts.map +1 -0
- package/dist/react/hooks/useDiscardGuard.js +44 -0
- package/dist/react/hooks/useDiscardGuard.js.map +1 -0
- package/dist/react/hooks/useDismissibleItems.d.ts +46 -0
- package/dist/react/hooks/useDismissibleItems.d.ts.map +1 -0
- package/dist/react/hooks/useDismissibleItems.js +28 -0
- package/dist/react/hooks/useDismissibleItems.js.map +1 -0
- package/dist/react/hooks/useDndSensors.d.ts +21 -0
- package/dist/react/hooks/useDndSensors.d.ts.map +1 -0
- package/dist/react/hooks/useDndSensors.js +23 -0
- package/dist/react/hooks/useDndSensors.js.map +1 -0
- package/dist/react/hooks/useDragReorder.d.ts +70 -0
- package/dist/react/hooks/useDragReorder.d.ts.map +1 -0
- package/dist/react/hooks/useDragReorder.js +134 -0
- package/dist/react/hooks/useDragReorder.js.map +1 -0
- package/dist/react/hooks/useDragToMove.d.ts +65 -0
- package/dist/react/hooks/useDragToMove.d.ts.map +1 -0
- package/dist/react/hooks/useDragToMove.js +76 -0
- package/dist/react/hooks/useDragToMove.js.map +1 -0
- package/dist/react/hooks/useEscapeKey.d.ts +3 -0
- package/dist/react/hooks/useEscapeKey.d.ts.map +1 -0
- package/dist/react/hooks/useEscapeKey.js +15 -0
- package/dist/react/hooks/useEscapeKey.js.map +1 -0
- package/dist/react/hooks/useHasHover.d.ts +9 -0
- package/dist/react/hooks/useHasHover.d.ts.map +1 -0
- package/dist/react/hooks/useHasHover.js +39 -0
- package/dist/react/hooks/useHasHover.js.map +1 -0
- package/dist/react/hooks/useKeyDown.d.ts +16 -0
- package/dist/react/hooks/useKeyDown.d.ts.map +1 -0
- package/dist/react/hooks/useKeyDown.js +42 -0
- package/dist/react/hooks/useKeyDown.js.map +1 -0
- package/dist/react/hooks/useKeyboardInset.d.ts +12 -0
- package/dist/react/hooks/useKeyboardInset.d.ts.map +1 -0
- package/dist/react/hooks/useKeyboardInset.js +33 -0
- package/dist/react/hooks/useKeyboardInset.js.map +1 -0
- package/dist/react/hooks/useMediaQuery.d.ts +3 -0
- package/dist/react/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/react/hooks/useMediaQuery.js +16 -0
- package/dist/react/hooks/useMediaQuery.js.map +1 -0
- package/dist/react/hooks/useOnlineStatus.d.ts +8 -0
- package/dist/react/hooks/useOnlineStatus.d.ts.map +1 -0
- package/dist/react/hooks/useOnlineStatus.js +27 -0
- package/dist/react/hooks/useOnlineStatus.js.map +1 -0
- package/dist/react/hooks/usePagination.d.ts +49 -0
- package/dist/react/hooks/usePagination.d.ts.map +1 -0
- package/dist/react/hooks/usePagination.js +50 -0
- package/dist/react/hooks/usePagination.js.map +1 -0
- package/dist/react/hooks/useTableSort.d.ts +33 -0
- package/dist/react/hooks/useTableSort.d.ts.map +1 -0
- package/dist/react/hooks/useTableSort.js +72 -0
- package/dist/react/hooks/useTableSort.js.map +1 -0
- package/dist/react/hooks/useWindowResize.d.ts +13 -0
- package/dist/react/hooks/useWindowResize.d.ts.map +1 -0
- package/dist/react/hooks/useWindowResize.js +30 -0
- package/dist/react/hooks/useWindowResize.js.map +1 -0
- package/dist/react/index.d.ts +106 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +110 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/layoutEngine/LayoutCanvas.d.ts +23 -0
- package/dist/react/layoutEngine/LayoutCanvas.d.ts.map +1 -0
- package/dist/react/layoutEngine/LayoutCanvas.js +153 -0
- package/dist/react/layoutEngine/LayoutCanvas.js.map +1 -0
- package/dist/react/layoutEngine/LayoutConfigDialog.d.ts +24 -0
- package/dist/react/layoutEngine/LayoutConfigDialog.d.ts.map +1 -0
- package/dist/react/layoutEngine/LayoutConfigDialog.js +100 -0
- package/dist/react/layoutEngine/LayoutConfigDialog.js.map +1 -0
- package/dist/react/layoutEngine/LayoutRenderer.d.ts +22 -0
- package/dist/react/layoutEngine/LayoutRenderer.d.ts.map +1 -0
- package/dist/react/layoutEngine/LayoutRenderer.js +69 -0
- package/dist/react/layoutEngine/LayoutRenderer.js.map +1 -0
- package/dist/react/layoutEngine/NodeInspector.d.ts +18 -0
- package/dist/react/layoutEngine/NodeInspector.d.ts.map +1 -0
- package/dist/react/layoutEngine/NodeInspector.js +94 -0
- package/dist/react/layoutEngine/NodeInspector.js.map +1 -0
- package/dist/react/layoutEngine/SuggestPanel.d.ts +12 -0
- package/dist/react/layoutEngine/SuggestPanel.d.ts.map +1 -0
- package/dist/react/layoutEngine/SuggestPanel.js +25 -0
- package/dist/react/layoutEngine/SuggestPanel.js.map +1 -0
- package/dist/react/layoutEngine/index.d.ts +9 -0
- package/dist/react/layoutEngine/index.d.ts.map +1 -0
- package/dist/react/layoutEngine/index.js +15 -0
- package/dist/react/layoutEngine/index.js.map +1 -0
- package/dist/react/layoutEngine/registry.d.ts +11 -0
- package/dist/react/layoutEngine/registry.d.ts.map +1 -0
- package/dist/react/layoutEngine/registry.js +46 -0
- package/dist/react/layoutEngine/registry.js.map +1 -0
- package/dist/react/layoutEngine/types.d.ts +81 -0
- package/dist/react/layoutEngine/types.d.ts.map +1 -0
- package/dist/react/layoutEngine/types.js +2 -0
- package/dist/react/layoutEngine/types.js.map +1 -0
- package/dist/react/layoutEngine/useLayoutEditor.d.ts +40 -0
- package/dist/react/layoutEngine/useLayoutEditor.d.ts.map +1 -0
- package/dist/react/layoutEngine/useLayoutEditor.js +98 -0
- package/dist/react/layoutEngine/useLayoutEditor.js.map +1 -0
- package/dist/react/lib/cn.d.ts +4 -0
- package/dist/react/lib/cn.d.ts.map +1 -0
- package/dist/react/lib/cn.js +7 -0
- package/dist/react/lib/cn.js.map +1 -0
- package/dist/react/lib/draftPersistence.d.ts +19 -0
- package/dist/react/lib/draftPersistence.d.ts.map +1 -0
- package/dist/react/lib/draftPersistence.js +50 -0
- package/dist/react/lib/draftPersistence.js.map +1 -0
- package/dist/react/lib/field.d.ts +13 -0
- package/dist/react/lib/field.d.ts.map +1 -0
- package/dist/react/lib/field.js +13 -0
- package/dist/react/lib/field.js.map +1 -0
- package/dist/react/lib/floatingStyles.d.ts +18 -0
- package/dist/react/lib/floatingStyles.d.ts.map +1 -0
- package/dist/react/lib/floatingStyles.js +24 -0
- package/dist/react/lib/floatingStyles.js.map +1 -0
- package/dist/react/lib/form.d.ts +25 -0
- package/dist/react/lib/form.d.ts.map +1 -0
- package/dist/react/lib/form.js +34 -0
- package/dist/react/lib/form.js.map +1 -0
- package/dist/react/lib/store.d.ts +21 -0
- package/dist/react/lib/store.d.ts.map +1 -0
- package/dist/react/lib/store.js +12 -0
- package/dist/react/lib/store.js.map +1 -0
- package/dist/react/media/AutoMaskControls.d.ts +31 -0
- package/dist/react/media/AutoMaskControls.d.ts.map +1 -0
- package/dist/react/media/AutoMaskControls.js +34 -0
- package/dist/react/media/AutoMaskControls.js.map +1 -0
- package/dist/react/media/BrushSizeSlider.d.ts +14 -0
- package/dist/react/media/BrushSizeSlider.d.ts.map +1 -0
- package/dist/react/media/BrushSizeSlider.js +49 -0
- package/dist/react/media/BrushSizeSlider.js.map +1 -0
- package/dist/react/media/ImageEditor.d.ts +14 -0
- package/dist/react/media/ImageEditor.d.ts.map +1 -0
- package/dist/react/media/ImageEditor.js +54 -0
- package/dist/react/media/ImageEditor.js.map +1 -0
- package/dist/react/media/MaskPainter.d.ts +21 -0
- package/dist/react/media/MaskPainter.d.ts.map +1 -0
- package/dist/react/media/MaskPainter.js +599 -0
- package/dist/react/media/MaskPainter.js.map +1 -0
- package/dist/react/media/MediaCatalogueViewer.d.ts +9 -0
- package/dist/react/media/MediaCatalogueViewer.d.ts.map +1 -0
- package/dist/react/media/MediaCatalogueViewer.js +43 -0
- package/dist/react/media/MediaCatalogueViewer.js.map +1 -0
- package/dist/react/media/MediaCell.d.ts +18 -0
- package/dist/react/media/MediaCell.d.ts.map +1 -0
- package/dist/react/media/MediaCell.js +20 -0
- package/dist/react/media/MediaCell.js.map +1 -0
- package/dist/react/media/MediaLightbox.d.ts +22 -0
- package/dist/react/media/MediaLightbox.d.ts.map +1 -0
- package/dist/react/media/MediaLightbox.js +24 -0
- package/dist/react/media/MediaLightbox.js.map +1 -0
- package/dist/react/media/TrimRangeSlider.d.ts +23 -0
- package/dist/react/media/TrimRangeSlider.d.ts.map +1 -0
- package/dist/react/media/TrimRangeSlider.js +59 -0
- package/dist/react/media/TrimRangeSlider.js.map +1 -0
- package/dist/react/media/VideoSlideContent.d.ts +13 -0
- package/dist/react/media/VideoSlideContent.d.ts.map +1 -0
- package/dist/react/media/VideoSlideContent.js +21 -0
- package/dist/react/media/VideoSlideContent.js.map +1 -0
- package/dist/react/media/VideoTrimmer.d.ts +10 -0
- package/dist/react/media/VideoTrimmer.d.ts.map +1 -0
- package/dist/react/media/VideoTrimmer.js +129 -0
- package/dist/react/media/VideoTrimmer.js.map +1 -0
- package/dist/react/media/VirtualizedRows.d.ts +28 -0
- package/dist/react/media/VirtualizedRows.d.ts.map +1 -0
- package/dist/react/media/VirtualizedRows.js +64 -0
- package/dist/react/media/VirtualizedRows.js.map +1 -0
- package/dist/react/media/imageEditorSpec.d.ts +70 -0
- package/dist/react/media/imageEditorSpec.d.ts.map +1 -0
- package/dist/react/media/imageEditorSpec.js +110 -0
- package/dist/react/media/imageEditorSpec.js.map +1 -0
- package/dist/react/media/index.d.ts +11 -0
- package/dist/react/media/index.d.ts.map +1 -0
- package/dist/react/media/index.js +18 -0
- package/dist/react/media/index.js.map +1 -0
- package/dist/react/media/maskGeometry.d.ts +42 -0
- package/dist/react/media/maskGeometry.d.ts.map +1 -0
- package/dist/react/media/maskGeometry.js +66 -0
- package/dist/react/media/maskGeometry.js.map +1 -0
- package/dist/react/media/maskModel.d.ts +65 -0
- package/dist/react/media/maskModel.d.ts.map +1 -0
- package/dist/react/media/maskModel.js +64 -0
- package/dist/react/media/maskModel.js.map +1 -0
- package/dist/react/media/maskRaster.d.ts +40 -0
- package/dist/react/media/maskRaster.d.ts.map +1 -0
- package/dist/react/media/maskRaster.js +126 -0
- package/dist/react/media/maskRaster.js.map +1 -0
- package/dist/react/media/mediaPhoto.d.ts +35 -0
- package/dist/react/media/mediaPhoto.d.ts.map +1 -0
- package/dist/react/media/mediaPhoto.js +53 -0
- package/dist/react/media/mediaPhoto.js.map +1 -0
- package/dist/react/media/types.d.ts +146 -0
- package/dist/react/media/types.d.ts.map +1 -0
- package/dist/react/media/types.js +2 -0
- package/dist/react/media/types.js.map +1 -0
- package/dist/react/media/useIntersectionObserver.d.ts +18 -0
- package/dist/react/media/useIntersectionObserver.d.ts.map +1 -0
- package/dist/react/media/useIntersectionObserver.js +28 -0
- package/dist/react/media/useIntersectionObserver.js.map +1 -0
- package/dist/react/media/videoThumbnailer.d.ts +14 -0
- package/dist/react/media/videoThumbnailer.d.ts.map +1 -0
- package/dist/react/media/videoThumbnailer.js +111 -0
- package/dist/react/media/videoThumbnailer.js.map +1 -0
- package/dist/react/nav/Breadcrumbs.d.ts +44 -0
- package/dist/react/nav/Breadcrumbs.d.ts.map +1 -0
- package/dist/react/nav/Breadcrumbs.js +43 -0
- package/dist/react/nav/Breadcrumbs.js.map +1 -0
- package/dist/react/nav/ColorSwatchGrid.d.ts +19 -0
- package/dist/react/nav/ColorSwatchGrid.d.ts.map +1 -0
- package/dist/react/nav/ColorSwatchGrid.js +21 -0
- package/dist/react/nav/ColorSwatchGrid.js.map +1 -0
- package/dist/react/nav/CommandBar.d.ts +43 -0
- package/dist/react/nav/CommandBar.d.ts.map +1 -0
- package/dist/react/nav/CommandBar.js +19 -0
- package/dist/react/nav/CommandBar.js.map +1 -0
- package/dist/react/nav/HeaderSearch.d.ts +37 -0
- package/dist/react/nav/HeaderSearch.d.ts.map +1 -0
- package/dist/react/nav/HeaderSearch.js +101 -0
- package/dist/react/nav/HeaderSearch.js.map +1 -0
- package/dist/react/nav/HubTileGrid.d.ts +32 -0
- package/dist/react/nav/HubTileGrid.d.ts.map +1 -0
- package/dist/react/nav/HubTileGrid.js +60 -0
- package/dist/react/nav/HubTileGrid.js.map +1 -0
- package/dist/react/nav/NavColorPicker.d.ts +19 -0
- package/dist/react/nav/NavColorPicker.d.ts.map +1 -0
- package/dist/react/nav/NavColorPicker.js +16 -0
- package/dist/react/nav/NavColorPicker.js.map +1 -0
- package/dist/react/nav/NavItemMenu.d.ts +30 -0
- package/dist/react/nav/NavItemMenu.d.ts.map +1 -0
- package/dist/react/nav/NavItemMenu.js +24 -0
- package/dist/react/nav/NavItemMenu.js.map +1 -0
- package/dist/react/nav/PlaceBar.d.ts +36 -0
- package/dist/react/nav/PlaceBar.d.ts.map +1 -0
- package/dist/react/nav/PlaceBar.js +36 -0
- package/dist/react/nav/PlaceBar.js.map +1 -0
- package/dist/react/nav/SearchResults.d.ts +43 -0
- package/dist/react/nav/SearchResults.d.ts.map +1 -0
- package/dist/react/nav/SearchResults.js +26 -0
- package/dist/react/nav/SearchResults.js.map +1 -0
- package/dist/react/nav/SideNav.d.ts +37 -0
- package/dist/react/nav/SideNav.d.ts.map +1 -0
- package/dist/react/nav/SideNav.js +76 -0
- package/dist/react/nav/SideNav.js.map +1 -0
- package/dist/react/nav/SideNavItem.d.ts +28 -0
- package/dist/react/nav/SideNavItem.d.ts.map +1 -0
- package/dist/react/nav/SideNavItem.js +38 -0
- package/dist/react/nav/SideNavItem.js.map +1 -0
- package/dist/react/nav/colors.d.ts +8 -0
- package/dist/react/nav/colors.d.ts.map +1 -0
- package/dist/react/nav/colors.js +31 -0
- package/dist/react/nav/colors.js.map +1 -0
- package/dist/react/nav/filterNavSearch.d.ts +15 -0
- package/dist/react/nav/filterNavSearch.d.ts.map +1 -0
- package/dist/react/nav/filterNavSearch.js +65 -0
- package/dist/react/nav/filterNavSearch.js.map +1 -0
- package/dist/react/nav/index.d.ts +15 -0
- package/dist/react/nav/index.d.ts.map +1 -0
- package/dist/react/nav/index.js +22 -0
- package/dist/react/nav/index.js.map +1 -0
- package/dist/react/nav/navMenuPlacement.d.ts +58 -0
- package/dist/react/nav/navMenuPlacement.d.ts.map +1 -0
- package/dist/react/nav/navMenuPlacement.js +36 -0
- package/dist/react/nav/navMenuPlacement.js.map +1 -0
- package/dist/react/nav/navSearch.d.ts +31 -0
- package/dist/react/nav/navSearch.d.ts.map +1 -0
- package/dist/react/nav/navSearch.js +37 -0
- package/dist/react/nav/navSearch.js.map +1 -0
- package/dist/react/nav/navShared.d.ts +43 -0
- package/dist/react/nav/navShared.d.ts.map +1 -0
- package/dist/react/nav/navShared.js +51 -0
- package/dist/react/nav/navShared.js.map +1 -0
- package/dist/react/nav/partitionAndOrder.d.ts +19 -0
- package/dist/react/nav/partitionAndOrder.d.ts.map +1 -0
- package/dist/react/nav/partitionAndOrder.js +25 -0
- package/dist/react/nav/partitionAndOrder.js.map +1 -0
- package/dist/react/nav/types.d.ts +65 -0
- package/dist/react/nav/types.d.ts.map +1 -0
- package/dist/react/nav/types.js +2 -0
- package/dist/react/nav/types.js.map +1 -0
- package/dist/react/palette/Command.d.ts +25 -0
- package/dist/react/palette/Command.d.ts.map +1 -0
- package/dist/react/palette/Command.js +41 -0
- package/dist/react/palette/Command.js.map +1 -0
- package/dist/react/palette/CommandPalette.d.ts +64 -0
- package/dist/react/palette/CommandPalette.d.ts.map +1 -0
- package/dist/react/palette/CommandPalette.js +205 -0
- package/dist/react/palette/CommandPalette.js.map +1 -0
- package/dist/react/palette/index.d.ts +7 -0
- package/dist/react/palette/index.d.ts.map +1 -0
- package/dist/react/palette/index.js +11 -0
- package/dist/react/palette/index.js.map +1 -0
- package/dist/react/palette/useCommandPalette.d.ts +16 -0
- package/dist/react/palette/useCommandPalette.d.ts.map +1 -0
- package/dist/react/palette/useCommandPalette.js +20 -0
- package/dist/react/palette/useCommandPalette.js.map +1 -0
- package/dist/react/palette/useHotkeys.d.ts +14 -0
- package/dist/react/palette/useHotkeys.d.ts.map +1 -0
- package/dist/react/palette/useHotkeys.js +35 -0
- package/dist/react/palette/useHotkeys.js.map +1 -0
- package/dist/react/palette/useShortcutRegistry.d.ts +4 -0
- package/dist/react/palette/useShortcutRegistry.d.ts.map +1 -0
- package/dist/react/palette/useShortcutRegistry.js +12 -0
- package/dist/react/palette/useShortcutRegistry.js.map +1 -0
- package/dist/react/search/HeaderSearch.d.ts +55 -0
- package/dist/react/search/HeaderSearch.d.ts.map +1 -0
- package/dist/react/search/HeaderSearch.js +107 -0
- package/dist/react/search/HeaderSearch.js.map +1 -0
- package/dist/react/search/SearchResults.d.ts +45 -0
- package/dist/react/search/SearchResults.d.ts.map +1 -0
- package/dist/react/search/SearchResults.js +25 -0
- package/dist/react/search/SearchResults.js.map +1 -0
- package/dist/react/search/index.d.ts +3 -0
- package/dist/react/search/index.d.ts.map +1 -0
- package/dist/react/search/index.js +8 -0
- package/dist/react/search/index.js.map +1 -0
- package/dist/react/spreadsheet/GridCopyPaste.d.ts +28 -0
- package/dist/react/spreadsheet/GridCopyPaste.d.ts.map +1 -0
- package/dist/react/spreadsheet/GridCopyPaste.js +84 -0
- package/dist/react/spreadsheet/GridCopyPaste.js.map +1 -0
- package/dist/react/spreadsheet/SpreadsheetGrid.d.ts +61 -0
- package/dist/react/spreadsheet/SpreadsheetGrid.d.ts.map +1 -0
- package/dist/react/spreadsheet/SpreadsheetGrid.js +31 -0
- package/dist/react/spreadsheet/SpreadsheetGrid.js.map +1 -0
- package/dist/react/spreadsheet/index.d.ts +6 -0
- package/dist/react/spreadsheet/index.d.ts.map +1 -0
- package/dist/react/spreadsheet/index.js +17 -0
- package/dist/react/spreadsheet/index.js.map +1 -0
- package/dist/react/spreadsheet/types.d.ts +42 -0
- package/dist/react/spreadsheet/types.d.ts.map +1 -0
- package/dist/react/spreadsheet/types.js +5 -0
- package/dist/react/spreadsheet/types.js.map +1 -0
- package/dist/react/spreadsheet/useGlideTheme.d.ts +14 -0
- package/dist/react/spreadsheet/useGlideTheme.d.ts.map +1 -0
- package/dist/react/spreadsheet/useGlideTheme.js +113 -0
- package/dist/react/spreadsheet/useGlideTheme.js.map +1 -0
- package/dist/react/spreadsheet/useGridSelection.d.ts +18 -0
- package/dist/react/spreadsheet/useGridSelection.d.ts.map +1 -0
- package/dist/react/spreadsheet/useGridSelection.js +32 -0
- package/dist/react/spreadsheet/useGridSelection.js.map +1 -0
- package/dist/react/styling.d.ts +76 -0
- package/dist/react/styling.d.ts.map +1 -0
- package/dist/react/styling.js +20 -0
- package/dist/react/styling.js.map +1 -0
- package/dist/react/testReport/TestReportViewer.d.ts +25 -0
- package/dist/react/testReport/TestReportViewer.d.ts.map +1 -0
- package/dist/react/testReport/TestReportViewer.js +114 -0
- package/dist/react/testReport/TestReportViewer.js.map +1 -0
- package/dist/react/testReport/index.d.ts +2 -0
- package/dist/react/testReport/index.d.ts.map +1 -0
- package/dist/react/testReport/index.js +2 -0
- package/dist/react/testReport/index.js.map +1 -0
- package/dist/react/toastStore.d.ts +34 -0
- package/dist/react/toastStore.d.ts.map +1 -0
- package/dist/react/toastStore.js +70 -0
- package/dist/react/toastStore.js.map +1 -0
- package/dist/react/uiScale/UiScaleControl.d.ts +15 -0
- package/dist/react/uiScale/UiScaleControl.d.ts.map +1 -0
- package/dist/react/uiScale/UiScaleControl.js +16 -0
- package/dist/react/uiScale/UiScaleControl.js.map +1 -0
- package/dist/react/uiScale/scale.d.ts +37 -0
- package/dist/react/uiScale/scale.d.ts.map +1 -0
- package/dist/react/uiScale/scale.js +48 -0
- package/dist/react/uiScale/scale.js.map +1 -0
- package/dist/react/uiScale/uiScaleStore.d.ts +48 -0
- package/dist/react/uiScale/uiScaleStore.d.ts.map +1 -0
- package/dist/react/uiScale/uiScaleStore.js +64 -0
- package/dist/react/uiScale/uiScaleStore.js.map +1 -0
- package/dist/react/uiScale/useUiScale.d.ts +28 -0
- package/dist/react/uiScale/useUiScale.d.ts.map +1 -0
- package/dist/react/uiScale/useUiScale.js +27 -0
- package/dist/react/uiScale/useUiScale.js.map +1 -0
- package/dist/react/useToasts.d.ts +21 -0
- package/dist/react/useToasts.d.ts.map +1 -0
- package/dist/react/useToasts.js +28 -0
- package/dist/react/useToasts.js.map +1 -0
- package/dist/server/app.d.ts +42 -0
- package/dist/server/app.d.ts.map +1 -0
- package/dist/server/app.js +42 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/auth/cookie.d.ts +23 -0
- package/dist/server/auth/cookie.d.ts.map +1 -0
- package/dist/server/auth/cookie.js +36 -0
- package/dist/server/auth/cookie.js.map +1 -0
- package/dist/server/auth/csrf.d.ts +43 -0
- package/dist/server/auth/csrf.d.ts.map +1 -0
- package/dist/server/auth/csrf.js +37 -0
- package/dist/server/auth/csrf.js.map +1 -0
- package/dist/server/auth/getOnly.d.ts +21 -0
- package/dist/server/auth/getOnly.d.ts.map +1 -0
- package/dist/server/auth/getOnly.js +28 -0
- package/dist/server/auth/getOnly.js.map +1 -0
- package/dist/server/auth/index.d.ts +12 -0
- package/dist/server/auth/index.d.ts.map +1 -0
- package/dist/server/auth/index.js +15 -0
- package/dist/server/auth/index.js.map +1 -0
- package/dist/server/auth/jwt.d.ts +19 -0
- package/dist/server/auth/jwt.d.ts.map +1 -0
- package/dist/server/auth/jwt.js +57 -0
- package/dist/server/auth/jwt.js.map +1 -0
- package/dist/server/auth/loginThrottle.d.ts +34 -0
- package/dist/server/auth/loginThrottle.d.ts.map +1 -0
- package/dist/server/auth/loginThrottle.js +63 -0
- package/dist/server/auth/loginThrottle.js.map +1 -0
- package/dist/server/auth/middleware.d.ts +15 -0
- package/dist/server/auth/middleware.d.ts.map +1 -0
- package/dist/server/auth/middleware.js +48 -0
- package/dist/server/auth/middleware.js.map +1 -0
- package/dist/server/auth/password.d.ts +15 -0
- package/dist/server/auth/password.d.ts.map +1 -0
- package/dist/server/auth/password.js +66 -0
- package/dist/server/auth/password.js.map +1 -0
- package/dist/server/auth/sessionStore.d.ts +20 -0
- package/dist/server/auth/sessionStore.d.ts.map +1 -0
- package/dist/server/auth/sessionStore.js +222 -0
- package/dist/server/auth/sessionStore.js.map +1 -0
- package/dist/server/auth/totp.d.ts +35 -0
- package/dist/server/auth/totp.d.ts.map +1 -0
- package/dist/server/auth/totp.js +82 -0
- package/dist/server/auth/totp.js.map +1 -0
- package/dist/server/auth/types.d.ts +134 -0
- package/dist/server/auth/types.d.ts.map +1 -0
- package/dist/server/auth/types.js +2 -0
- package/dist/server/auth/types.js.map +1 -0
- package/dist/server/auth/vault.d.ts +28 -0
- package/dist/server/auth/vault.d.ts.map +1 -0
- package/dist/server/auth/vault.js +58 -0
- package/dist/server/auth/vault.js.map +1 -0
- package/dist/server/auth.d.ts +20 -0
- package/dist/server/auth.d.ts.map +1 -0
- package/dist/server/auth.js +20 -0
- package/dist/server/auth.js.map +1 -0
- package/dist/server/context.d.ts +36 -0
- package/dist/server/context.d.ts.map +1 -0
- package/dist/server/context.js +2 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/ctgr.d.ts +32 -0
- package/dist/server/ctgr.d.ts.map +1 -0
- package/dist/server/ctgr.js +61 -0
- package/dist/server/ctgr.js.map +1 -0
- package/dist/server/db/kysely.d.ts +15 -0
- package/dist/server/db/kysely.d.ts.map +1 -0
- package/dist/server/db/kysely.js +17 -0
- package/dist/server/db/kysely.js.map +1 -0
- package/dist/server/db/plumbingTypes.d.ts +117 -0
- package/dist/server/db/plumbingTypes.d.ts.map +1 -0
- package/dist/server/db/plumbingTypes.js +13 -0
- package/dist/server/db/plumbingTypes.js.map +1 -0
- package/dist/server/errors.d.ts +52 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/errors.js +52 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/index.d.ts +23 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +46 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/jobs/fireQueue.d.ts +13 -0
- package/dist/server/jobs/fireQueue.d.ts.map +1 -0
- package/dist/server/jobs/fireQueue.js +38 -0
- package/dist/server/jobs/fireQueue.js.map +1 -0
- package/dist/server/jobs/index.d.ts +7 -0
- package/dist/server/jobs/index.d.ts.map +1 -0
- package/dist/server/jobs/index.js +11 -0
- package/dist/server/jobs/index.js.map +1 -0
- package/dist/server/jobs/logger.d.ts +11 -0
- package/dist/server/jobs/logger.d.ts.map +1 -0
- package/dist/server/jobs/logger.js +15 -0
- package/dist/server/jobs/logger.js.map +1 -0
- package/dist/server/jobs/plainjobAdapter.d.ts +20 -0
- package/dist/server/jobs/plainjobAdapter.d.ts.map +1 -0
- package/dist/server/jobs/plainjobAdapter.js +49 -0
- package/dist/server/jobs/plainjobAdapter.js.map +1 -0
- package/dist/server/jobs/polling.d.ts +18 -0
- package/dist/server/jobs/polling.d.ts.map +1 -0
- package/dist/server/jobs/polling.js +63 -0
- package/dist/server/jobs/polling.js.map +1 -0
- package/dist/server/jobs/runner.d.ts +19 -0
- package/dist/server/jobs/runner.d.ts.map +1 -0
- package/dist/server/jobs/runner.js +142 -0
- package/dist/server/jobs/runner.js.map +1 -0
- package/dist/server/jobs/timeout.d.ts +29 -0
- package/dist/server/jobs/timeout.d.ts.map +1 -0
- package/dist/server/jobs/timeout.js +48 -0
- package/dist/server/jobs/timeout.js.map +1 -0
- package/dist/server/jobs/types.d.ts +141 -0
- package/dist/server/jobs/types.d.ts.map +1 -0
- package/dist/server/jobs/types.js +5 -0
- package/dist/server/jobs/types.js.map +1 -0
- package/dist/server/media-bun/ffmpeg.d.ts +58 -0
- package/dist/server/media-bun/ffmpeg.d.ts.map +1 -0
- package/dist/server/media-bun/ffmpeg.js +126 -0
- package/dist/server/media-bun/ffmpeg.js.map +1 -0
- package/dist/server/media-bun/image.d.ts +8 -0
- package/dist/server/media-bun/image.d.ts.map +1 -0
- package/dist/server/media-bun/image.js +97 -0
- package/dist/server/media-bun/image.js.map +1 -0
- package/dist/server/media-bun/index.d.ts +4 -0
- package/dist/server/media-bun/index.d.ts.map +1 -0
- package/dist/server/media-bun/index.js +8 -0
- package/dist/server/media-bun/index.js.map +1 -0
- package/dist/server/media-bun/video.d.ts +17 -0
- package/dist/server/media-bun/video.d.ts.map +1 -0
- package/dist/server/media-bun/video.js +100 -0
- package/dist/server/media-bun/video.js.map +1 -0
- package/dist/server/metrics/metricsBuffer.d.ts +40 -0
- package/dist/server/metrics/metricsBuffer.d.ts.map +1 -0
- package/dist/server/metrics/metricsBuffer.js +37 -0
- package/dist/server/metrics/metricsBuffer.js.map +1 -0
- package/dist/server/metrics/normalizeRoute.d.ts +6 -0
- package/dist/server/metrics/normalizeRoute.d.ts.map +1 -0
- package/dist/server/metrics/normalizeRoute.js +59 -0
- package/dist/server/metrics/normalizeRoute.js.map +1 -0
- package/dist/server/middleware/correlationId.d.ts +10 -0
- package/dist/server/middleware/correlationId.d.ts.map +1 -0
- package/dist/server/middleware/correlationId.js +21 -0
- package/dist/server/middleware/correlationId.js.map +1 -0
- package/dist/server/middleware/errorEnvelope.d.ts +14 -0
- package/dist/server/middleware/errorEnvelope.d.ts.map +1 -0
- package/dist/server/middleware/errorEnvelope.js +30 -0
- package/dist/server/middleware/errorEnvelope.js.map +1 -0
- package/dist/server/middleware/index.d.ts +7 -0
- package/dist/server/middleware/index.d.ts.map +1 -0
- package/dist/server/middleware/index.js +8 -0
- package/dist/server/middleware/index.js.map +1 -0
- package/dist/server/middleware/rateLimit.d.ts +28 -0
- package/dist/server/middleware/rateLimit.d.ts.map +1 -0
- package/dist/server/middleware/rateLimit.js +65 -0
- package/dist/server/middleware/rateLimit.js.map +1 -0
- package/dist/server/middleware/requestLogger.d.ts +30 -0
- package/dist/server/middleware/requestLogger.d.ts.map +1 -0
- package/dist/server/middleware/requestLogger.js +48 -0
- package/dist/server/middleware/requestLogger.js.map +1 -0
- package/dist/server/middleware/securityHeaders.d.ts +30 -0
- package/dist/server/middleware/securityHeaders.d.ts.map +1 -0
- package/dist/server/middleware/securityHeaders.js +45 -0
- package/dist/server/middleware/securityHeaders.js.map +1 -0
- package/dist/server/middleware/zValidator.d.ts +48 -0
- package/dist/server/middleware/zValidator.d.ts.map +1 -0
- package/dist/server/middleware/zValidator.js +76 -0
- package/dist/server/middleware/zValidator.js.map +1 -0
- package/dist/server/migration/runner.d.ts +43 -0
- package/dist/server/migration/runner.d.ts.map +1 -0
- package/dist/server/migration/runner.js +56 -0
- package/dist/server/migration/runner.js.map +1 -0
- package/dist/server/migration/types.d.ts +17 -0
- package/dist/server/migration/types.d.ts.map +1 -0
- package/dist/server/migration/types.js +2 -0
- package/dist/server/migration/types.js.map +1 -0
- package/dist/server/sqlite/backup.d.ts +36 -0
- package/dist/server/sqlite/backup.d.ts.map +1 -0
- package/dist/server/sqlite/backup.js +75 -0
- package/dist/server/sqlite/backup.js.map +1 -0
- package/dist/server/sqlite/fts5.d.ts +105 -0
- package/dist/server/sqlite/fts5.d.ts.map +1 -0
- package/dist/server/sqlite/fts5.js +151 -0
- package/dist/server/sqlite/fts5.js.map +1 -0
- package/dist/server/sqlite/health.d.ts +45 -0
- package/dist/server/sqlite/health.d.ts.map +1 -0
- package/dist/server/sqlite/health.js +53 -0
- package/dist/server/sqlite/health.js.map +1 -0
- package/dist/server/sqlite/index.d.ts +6 -0
- package/dist/server/sqlite/index.d.ts.map +1 -0
- package/dist/server/sqlite/index.js +10 -0
- package/dist/server/sqlite/index.js.map +1 -0
- package/dist/server/sqlite/readonlySql.d.ts +16 -0
- package/dist/server/sqlite/readonlySql.d.ts.map +1 -0
- package/dist/server/sqlite/readonlySql.js +66 -0
- package/dist/server/sqlite/readonlySql.js.map +1 -0
- package/dist/server/sqlite/viewer.d.ts +4 -0
- package/dist/server/sqlite/viewer.d.ts.map +1 -0
- package/dist/server/sqlite/viewer.js +92 -0
- package/dist/server/sqlite/viewer.js.map +1 -0
- package/dist/server/sqlite.d.ts +31 -0
- package/dist/server/sqlite.d.ts.map +1 -0
- package/dist/server/sqlite.js +46 -0
- package/dist/server/sqlite.js.map +1 -0
- package/dist/server/ws/eventBus.d.ts +15 -0
- package/dist/server/ws/eventBus.d.ts.map +1 -0
- package/dist/server/ws/eventBus.js +43 -0
- package/dist/server/ws/eventBus.js.map +1 -0
- package/dist/server/ws/hub.d.ts +21 -0
- package/dist/server/ws/hub.d.ts.map +1 -0
- package/dist/server/ws/hub.js +155 -0
- package/dist/server/ws/hub.js.map +1 -0
- package/dist/server/ws/index.d.ts +6 -0
- package/dist/server/ws/index.d.ts.map +1 -0
- package/dist/server/ws/index.js +8 -0
- package/dist/server/ws/index.js.map +1 -0
- package/dist/server/ws/presence.d.ts +12 -0
- package/dist/server/ws/presence.d.ts.map +1 -0
- package/dist/server/ws/presence.js +21 -0
- package/dist/server/ws/presence.js.map +1 -0
- package/dist/server/ws/room.d.ts +18 -0
- package/dist/server/ws/room.d.ts.map +1 -0
- package/dist/server/ws/room.js +24 -0
- package/dist/server/ws/room.js.map +1 -0
- package/dist/server/ws/types.d.ts +123 -0
- package/dist/server/ws/types.d.ts.map +1 -0
- package/dist/server/ws/types.js +2 -0
- package/dist/server/ws/types.js.map +1 -0
- package/package.json +241 -0
- package/src/styles.css +52 -0
- package/src/theme.css +239 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The UI-scale store: holds the current scale, persists it, applies it to the
|
|
3
|
+
* document root, and notifies subscribers. Split from the React hook so it works
|
|
4
|
+
* before React mounts (call {@link initUiScale} early — like a theme init — to
|
|
5
|
+
* apply the saved size with no flash) and so its logic is testable without a DOM.
|
|
6
|
+
*
|
|
7
|
+
* Side-effects (storage + applying to the page) are injected, so a test drives a
|
|
8
|
+
* real store with fakes; the exported default singleton binds them to
|
|
9
|
+
* `localStorage` + the `<html>` element.
|
|
10
|
+
*/
|
|
11
|
+
/** The slice of the Web Storage API the store needs (so a test can fake it). */
|
|
12
|
+
export interface UiScaleStorage {
|
|
13
|
+
getItem(key: string): string | null;
|
|
14
|
+
setItem(key: string, value: string): void;
|
|
15
|
+
}
|
|
16
|
+
export interface UiScaleStore {
|
|
17
|
+
/** Current scale (lazily hydrated from storage on first read). */
|
|
18
|
+
get(): number;
|
|
19
|
+
/** Set, clamp, persist, apply, and notify. */
|
|
20
|
+
set(scale: number): void;
|
|
21
|
+
/** Nudge up (+1) / down (-1) one step. */
|
|
22
|
+
step(dir: 1 | -1): void;
|
|
23
|
+
/** Back to the default size. */
|
|
24
|
+
reset(): void;
|
|
25
|
+
/** Re-apply the persisted scale to the page (call once on app boot). */
|
|
26
|
+
init(): void;
|
|
27
|
+
subscribe(listener: () => void): () => void;
|
|
28
|
+
}
|
|
29
|
+
export interface UiScaleStoreOptions {
|
|
30
|
+
storage?: UiScaleStorage | null;
|
|
31
|
+
/** Apply a scale to the page. Default writes the root font-size + a CSS var. */
|
|
32
|
+
apply?: (scale: number) => void;
|
|
33
|
+
/** localStorage key. */
|
|
34
|
+
key?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare const UI_SCALE_STORAGE_KEY = "cwip.uiScale";
|
|
37
|
+
export declare function createUiScaleStore(options?: UiScaleStoreOptions): UiScaleStore;
|
|
38
|
+
/** Apply a scale to the document root: scale the rem base + expose a `--cwip-ui-scale`
|
|
39
|
+
* var (for the rare px that wants `calc(... * var(--cwip-ui-scale))`). SSR-safe. */
|
|
40
|
+
export declare function applyUiScaleToDocument(scale: number): void;
|
|
41
|
+
/** The app-wide singleton bound to localStorage + the page. */
|
|
42
|
+
export declare const uiScaleStore: UiScaleStore;
|
|
43
|
+
export declare const getUiScale: () => number;
|
|
44
|
+
export declare const setUiScale: (scale: number) => void;
|
|
45
|
+
export declare const subscribeUiScale: (listener: () => void) => (() => void);
|
|
46
|
+
/** Apply the saved UI size on app boot, before React mounts (no flash). */
|
|
47
|
+
export declare const initUiScale: () => void;
|
|
48
|
+
//# sourceMappingURL=uiScaleStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiScaleStore.d.ts","sourceRoot":"","sources":["../../../src/react/uiScale/uiScaleStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,GAAG,IAAI,MAAM,CAAC;IACd,8CAA8C;IAC9C,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,0CAA0C;IAC1C,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACxB,gCAAgC;IAChC,KAAK,IAAI,IAAI,CAAC;IACd,wEAAwE;IACxE,IAAI,IAAI,IAAI,CAAC;IACb,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,gFAAgF;IAChF,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CA+BlF;AAED;qFACqF;AACrF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1D;AAKD,+DAA+D;AAC/D,eAAO,MAAM,YAAY,cAGvB,CAAC;AAEH,eAAO,MAAM,UAAU,QAAO,MAA4B,CAAC;AAC3D,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,IAA+B,CAAC;AAC3E,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CACjC,CAAC;AACnC,2EAA2E;AAC3E,eAAO,MAAM,WAAW,QAAO,IAA2B,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The UI-scale store: holds the current scale, persists it, applies it to the
|
|
3
|
+
* document root, and notifies subscribers. Split from the React hook so it works
|
|
4
|
+
* before React mounts (call {@link initUiScale} early — like a theme init — to
|
|
5
|
+
* apply the saved size with no flash) and so its logic is testable without a DOM.
|
|
6
|
+
*
|
|
7
|
+
* Side-effects (storage + applying to the page) are injected, so a test drives a
|
|
8
|
+
* real store with fakes; the exported default singleton binds them to
|
|
9
|
+
* `localStorage` + the `<html>` element.
|
|
10
|
+
*/
|
|
11
|
+
import { clampUiScale, DEFAULT_UI_SCALE, stepUiScale, uiScaleToFontSize } from './scale';
|
|
12
|
+
export const UI_SCALE_STORAGE_KEY = 'cwip.uiScale';
|
|
13
|
+
export function createUiScaleStore(options = {}) {
|
|
14
|
+
const { storage = null, apply, key = UI_SCALE_STORAGE_KEY } = options;
|
|
15
|
+
const listeners = new Set();
|
|
16
|
+
let current; // undefined until first hydrate
|
|
17
|
+
const hydrate = () => {
|
|
18
|
+
if (current !== undefined)
|
|
19
|
+
return current;
|
|
20
|
+
const raw = storage?.getItem(key);
|
|
21
|
+
current = raw != null ? clampUiScale(Number.parseFloat(raw)) : DEFAULT_UI_SCALE;
|
|
22
|
+
return current;
|
|
23
|
+
};
|
|
24
|
+
const commit = (next) => {
|
|
25
|
+
const clamped = clampUiScale(next);
|
|
26
|
+
current = clamped;
|
|
27
|
+
storage?.setItem(key, String(clamped));
|
|
28
|
+
apply?.(clamped);
|
|
29
|
+
for (const l of listeners)
|
|
30
|
+
l();
|
|
31
|
+
};
|
|
32
|
+
return {
|
|
33
|
+
get: hydrate,
|
|
34
|
+
set: commit,
|
|
35
|
+
step: (dir) => commit(stepUiScale(hydrate(), dir)),
|
|
36
|
+
reset: () => commit(DEFAULT_UI_SCALE),
|
|
37
|
+
init: () => apply?.(hydrate()),
|
|
38
|
+
subscribe(listener) {
|
|
39
|
+
listeners.add(listener);
|
|
40
|
+
return () => listeners.delete(listener);
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/** Apply a scale to the document root: scale the rem base + expose a `--cwip-ui-scale`
|
|
45
|
+
* var (for the rare px that wants `calc(... * var(--cwip-ui-scale))`). SSR-safe. */
|
|
46
|
+
export function applyUiScaleToDocument(scale) {
|
|
47
|
+
if (typeof document === 'undefined')
|
|
48
|
+
return;
|
|
49
|
+
const root = document.documentElement;
|
|
50
|
+
root.style.fontSize = uiScaleToFontSize(scale);
|
|
51
|
+
root.style.setProperty('--cwip-ui-scale', String(clampUiScale(scale)));
|
|
52
|
+
}
|
|
53
|
+
const defaultStorage = typeof localStorage !== 'undefined' ? localStorage : null;
|
|
54
|
+
/** The app-wide singleton bound to localStorage + the page. */
|
|
55
|
+
export const uiScaleStore = createUiScaleStore({
|
|
56
|
+
storage: defaultStorage,
|
|
57
|
+
apply: applyUiScaleToDocument,
|
|
58
|
+
});
|
|
59
|
+
export const getUiScale = () => uiScaleStore.get();
|
|
60
|
+
export const setUiScale = (scale) => uiScaleStore.set(scale);
|
|
61
|
+
export const subscribeUiScale = (listener) => uiScaleStore.subscribe(listener);
|
|
62
|
+
/** Apply the saved UI size on app boot, before React mounts (no flash). */
|
|
63
|
+
export const initUiScale = () => uiScaleStore.init();
|
|
64
|
+
//# sourceMappingURL=uiScaleStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiScaleStore.js","sourceRoot":"","sources":["../../../src/react/uiScale/uiScaleStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA8BzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAEnD,MAAM,UAAU,kBAAkB,CAAC,UAA+B,EAAE;IAClE,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,oBAAoB,EAAE,GAAG,OAAO,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IACxC,IAAI,OAA2B,CAAC,CAAC,gCAAgC;IAEjE,MAAM,OAAO,GAAG,GAAW,EAAE;QAC3B,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC;QAC1C,MAAM,GAAG,GAAG,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAChF,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAQ,EAAE;QACpC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,GAAG,OAAO,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACvC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,SAAS;YAAE,CAAC,EAAE,CAAC;IACjC,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;QAClD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACrC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9B,SAAS,CAAC,QAAQ;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC;AAED;qFACqF;AACrF,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,cAAc,GAClB,OAAO,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;AAE5D,+DAA+D;AAC/D,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;IAC7C,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,sBAAsB;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAW,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAQ,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAoB,EAAgB,EAAE,CACrE,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACnC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAG,GAAS,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type UiScaleLevel, type UiScaleLevelId } from '../../core/uiScale';
|
|
2
|
+
export interface UseUiScale {
|
|
3
|
+
/** Current scale multiplier (1 = default). */
|
|
4
|
+
scale: number;
|
|
5
|
+
/** The preset closest to `scale` (for an active picker state). */
|
|
6
|
+
level: UiScaleLevel;
|
|
7
|
+
/** The available presets. */
|
|
8
|
+
levels: readonly UiScaleLevel[];
|
|
9
|
+
setScale: (scale: number) => void;
|
|
10
|
+
setLevel: (id: UiScaleLevelId) => void;
|
|
11
|
+
increase: () => void;
|
|
12
|
+
decrease: () => void;
|
|
13
|
+
reset: () => void;
|
|
14
|
+
/** True at the smallest/largest supported size (disable the stepper). */
|
|
15
|
+
atMin: boolean;
|
|
16
|
+
atMax: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Read + control the app-wide UI size. Backed by the shared {@link uiScaleStore}
|
|
20
|
+
* (persisted to localStorage, applied to the document root), so every consumer —
|
|
21
|
+
* the control in Settings and anything else — stays in sync. SSR-safe: renders the
|
|
22
|
+
* default size on the server, hydrates the saved one on the client.
|
|
23
|
+
*
|
|
24
|
+
* Pair with `initUiScale()` at app start so the saved size applies with no flash,
|
|
25
|
+
* and drop a `<UiScaleControl />` wherever you keep accessibility settings.
|
|
26
|
+
*/
|
|
27
|
+
export declare function useUiScale(): UseUiScale;
|
|
28
|
+
//# sourceMappingURL=useUiScale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUiScale.d.ts","sourceRoot":"","sources":["../../../src/react/uiScale/useUiScale.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,cAAc,EAEpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,KAAK,EAAE,YAAY,CAAC;IACpB,6BAA6B;IAC7B,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,yEAAyE;IACzE,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,IAAI,UAAU,CAevC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useSyncExternalStore } from 'react';
|
|
2
|
+
import { DEFAULT_UI_SCALE, getUiScale, MAX_UI_SCALE, MIN_UI_SCALE, nearestUiScaleLevel, setUiScale, subscribeUiScale, UI_SCALE_LEVELS, uiScaleStore, } from '../../core/uiScale';
|
|
3
|
+
/**
|
|
4
|
+
* Read + control the app-wide UI size. Backed by the shared {@link uiScaleStore}
|
|
5
|
+
* (persisted to localStorage, applied to the document root), so every consumer —
|
|
6
|
+
* the control in Settings and anything else — stays in sync. SSR-safe: renders the
|
|
7
|
+
* default size on the server, hydrates the saved one on the client.
|
|
8
|
+
*
|
|
9
|
+
* Pair with `initUiScale()` at app start so the saved size applies with no flash,
|
|
10
|
+
* and drop a `<UiScaleControl />` wherever you keep accessibility settings.
|
|
11
|
+
*/
|
|
12
|
+
export function useUiScale() {
|
|
13
|
+
const scale = useSyncExternalStore(subscribeUiScale, getUiScale, () => DEFAULT_UI_SCALE);
|
|
14
|
+
return {
|
|
15
|
+
scale,
|
|
16
|
+
level: nearestUiScaleLevel(scale),
|
|
17
|
+
levels: UI_SCALE_LEVELS,
|
|
18
|
+
setScale: setUiScale,
|
|
19
|
+
setLevel: (id) => setUiScale((UI_SCALE_LEVELS.find((l) => l.id === id) ?? UI_SCALE_LEVELS[1]).scale),
|
|
20
|
+
increase: () => uiScaleStore.step(1),
|
|
21
|
+
decrease: () => uiScaleStore.step(-1),
|
|
22
|
+
reset: () => uiScaleStore.reset(),
|
|
23
|
+
atMin: scale <= MIN_UI_SCALE,
|
|
24
|
+
atMax: scale >= MAX_UI_SCALE,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=useUiScale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUiScale.js","sourceRoot":"","sources":["../../../src/react/uiScale/useUiScale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,eAAe,EAGf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAmB5B;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACzF,OAAO;QACL,KAAK;QACL,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;QACjC,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CACf,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpF,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE;QACjC,KAAK,EAAE,KAAK,IAAI,YAAY;QAC5B,KAAK,EAAE,KAAK,IAAI,YAAY;KAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type AddToastOptions, type ToastStore } from './toastStore';
|
|
3
|
+
export interface UseToastsResult {
|
|
4
|
+
toasts: ReturnType<ToastStore['getToasts']>;
|
|
5
|
+
add: ToastStore['add'];
|
|
6
|
+
dismiss: ToastStore['dismiss'];
|
|
7
|
+
clear: ToastStore['clear'];
|
|
8
|
+
info: (message: ReactNode, options?: Omit<AddToastOptions, 'variant'>) => string;
|
|
9
|
+
success: (message: ReactNode, options?: Omit<AddToastOptions, 'variant'>) => string;
|
|
10
|
+
warning: (message: ReactNode, options?: Omit<AddToastOptions, 'variant'>) => string;
|
|
11
|
+
error: (message: ReactNode, options?: Omit<AddToastOptions, 'variant'>) => string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Subscribe to a {@link ToastStore} and get ergonomic enqueue helpers. Render
|
|
15
|
+
* `toasts` with `<ToastList toasts={toasts} onDismiss={dismiss} />`.
|
|
16
|
+
*
|
|
17
|
+
* const { success, error } = useToasts();
|
|
18
|
+
* success('Saved'); error('Could not save');
|
|
19
|
+
*/
|
|
20
|
+
export declare const useToasts: (store?: ToastStore) => UseToastsResult;
|
|
21
|
+
//# sourceMappingURL=useToasts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useToasts.d.ts","sourceRoot":"","sources":["../../src/react/useToasts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,KAAK,eAAe,EAAoB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAOvF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,MAAM,CAAC;IACjF,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,MAAM,CAAC;IACpF,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,MAAM,CAAC;IACpF,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,KAAK,MAAM,CAAC;CACnF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,QAAO,UAA8B,KAAG,eAgBjE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useSyncExternalStore } from 'react';
|
|
2
|
+
import { createToastStore } from './toastStore';
|
|
3
|
+
// A lazily-created default store, so `useToasts()` works with zero setup. Pass an
|
|
4
|
+
// explicit store to scope toasts (e.g. tests, or multiple independent stacks).
|
|
5
|
+
let defaultStore;
|
|
6
|
+
const getDefaultStore = () => (defaultStore ??= createToastStore());
|
|
7
|
+
/**
|
|
8
|
+
* Subscribe to a {@link ToastStore} and get ergonomic enqueue helpers. Render
|
|
9
|
+
* `toasts` with `<ToastList toasts={toasts} onDismiss={dismiss} />`.
|
|
10
|
+
*
|
|
11
|
+
* const { success, error } = useToasts();
|
|
12
|
+
* success('Saved'); error('Could not save');
|
|
13
|
+
*/
|
|
14
|
+
export const useToasts = (store = getDefaultStore()) => {
|
|
15
|
+
const toasts = useSyncExternalStore(store.subscribe, store.getToasts, store.getToasts);
|
|
16
|
+
const variant = (v) => (message, options) => store.add(message, { ...options, variant: v });
|
|
17
|
+
return {
|
|
18
|
+
toasts,
|
|
19
|
+
add: store.add,
|
|
20
|
+
dismiss: store.dismiss,
|
|
21
|
+
clear: store.clear,
|
|
22
|
+
info: variant('info'),
|
|
23
|
+
success: variant('success'),
|
|
24
|
+
warning: variant('warning'),
|
|
25
|
+
error: variant('error'),
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=useToasts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useToasts.js","sourceRoot":"","sources":["../../src/react/useToasts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAwB,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAEvF,kFAAkF;AAClF,+EAA+E;AAC/E,IAAI,YAAoC,CAAC;AACzC,MAAM,eAAe,GAAG,GAAe,EAAE,CAAC,CAAC,YAAY,KAAK,gBAAgB,EAAE,CAAC,CAAC;AAahF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAoB,eAAe,EAAE,EAAmB,EAAE;IAClF,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvF,MAAM,OAAO,GACX,CAAC,CAA6B,EAAE,EAAE,CAClC,CAAC,OAAkB,EAAE,OAA0C,EAAE,EAAE,CACjE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO;QACL,MAAM;QACN,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;QAC3B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;KACxB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Database } from 'bun:sqlite';
|
|
2
|
+
import type { Server, TLSOptions, WebSocketHandler } from 'bun';
|
|
3
|
+
import { Hono } from 'hono';
|
|
4
|
+
import type { CursedbeltEnv } from './context';
|
|
5
|
+
import { type RateLimitOpts } from './middleware/rateLimit';
|
|
6
|
+
import { type SecurityHeadersOpts } from './middleware/securityHeaders';
|
|
7
|
+
export interface CreateAppOpts {
|
|
8
|
+
/** When provided, the request logger writes metrics/events to this DB. */
|
|
9
|
+
db?: Database;
|
|
10
|
+
/** Security-header options, or `false` to skip the security-headers middleware. */
|
|
11
|
+
security?: SecurityHeadersOpts | false;
|
|
12
|
+
/** Mount a global rate limiter. (Per-route limiters: use `createRateLimiter` directly.) */
|
|
13
|
+
rateLimit?: RateLimitOpts;
|
|
14
|
+
/** Trust proxy headers (`x-forwarded-for`) for client IP. Default: true (behind nginx). */
|
|
15
|
+
trustProxy?: boolean;
|
|
16
|
+
/** Mount the default `GET /health` liveness route. Default: true. */
|
|
17
|
+
health?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Build the configured cursedbelt Hono app: correlation id → security headers →
|
|
21
|
+
* (optional) rate limit → (optional) request logger, a default `/health`, and the
|
|
22
|
+
* canonical error-envelope `onError`. The caller mounts feature routers on the
|
|
23
|
+
* returned app (`app.route('/api/v1', notesRouter)`).
|
|
24
|
+
*/
|
|
25
|
+
export declare function createApp(opts?: CreateAppOpts): Hono<CursedbeltEnv>;
|
|
26
|
+
export interface ServeBunOpts<T = unknown> {
|
|
27
|
+
/** Listen port. Default: 3000. */
|
|
28
|
+
port?: number;
|
|
29
|
+
/** Bind hostname (e.g. `'127.0.0.1'`). Default: Bun's default (all interfaces). */
|
|
30
|
+
hostname?: string;
|
|
31
|
+
/** WebSocket handler from the WS hub (task 28). Only set when the app upgrades. */
|
|
32
|
+
websocket?: WebSocketHandler<T>;
|
|
33
|
+
/** TLS options for HTTPS. */
|
|
34
|
+
tls?: TLSOptions;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Serve a Hono app on `Bun.serve` (`fetch: app.fetch`, zero adapter). Pass
|
|
38
|
+
* `websocket` only when the app actually calls `server.upgrade()` (task 28) — Bun
|
|
39
|
+
* rejects a `websocket` handler that is never used.
|
|
40
|
+
*/
|
|
41
|
+
export declare function serveBun<T = unknown>(app: Hono<CursedbeltEnv>, opts?: ServeBunOpts<T>): Server<T>;
|
|
42
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE/E,OAAO,EAAE,KAAK,mBAAmB,EAAmB,MAAM,8BAA8B,CAAC;AAEzF,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,mFAAmF;IACnF,QAAQ,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACvC,2FAA2F;IAC3F,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,2FAA2F;IAC3F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,GAAE,aAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,CAcvE;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,SAAS,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAChC,6BAA6B;IAC7B,GAAG,CAAC,EAAE,UAAU,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAClC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,EACxB,IAAI,GAAE,YAAY,CAAC,CAAC,CAAM,GACzB,MAAM,CAAC,CAAC,CAAC,CAQX"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import { correlationId } from './middleware/correlationId';
|
|
3
|
+
import { errorEnvelope } from './middleware/errorEnvelope';
|
|
4
|
+
import { createRateLimiter } from './middleware/rateLimit';
|
|
5
|
+
import { requestLogger } from './middleware/requestLogger';
|
|
6
|
+
import { securityHeaders } from './middleware/securityHeaders';
|
|
7
|
+
/**
|
|
8
|
+
* Build the configured cursedbelt Hono app: correlation id → security headers →
|
|
9
|
+
* (optional) rate limit → (optional) request logger, a default `/health`, and the
|
|
10
|
+
* canonical error-envelope `onError`. The caller mounts feature routers on the
|
|
11
|
+
* returned app (`app.route('/api/v1', notesRouter)`).
|
|
12
|
+
*/
|
|
13
|
+
export function createApp(opts = {}) {
|
|
14
|
+
const app = new Hono();
|
|
15
|
+
app.use('*', correlationId());
|
|
16
|
+
if (opts.security !== false)
|
|
17
|
+
app.use('*', securityHeaders(opts.security ?? {}));
|
|
18
|
+
if (opts.rateLimit) {
|
|
19
|
+
app.use('*', createRateLimiter({ trustProxy: opts.trustProxy ?? true, ...opts.rateLimit }));
|
|
20
|
+
}
|
|
21
|
+
if (opts.db)
|
|
22
|
+
app.use('*', requestLogger(opts.db));
|
|
23
|
+
if (opts.health !== false)
|
|
24
|
+
app.get('/health', (c) => c.json({ status: 'ok' }));
|
|
25
|
+
app.onError(errorEnvelope);
|
|
26
|
+
return app;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Serve a Hono app on `Bun.serve` (`fetch: app.fetch`, zero adapter). Pass
|
|
30
|
+
* `websocket` only when the app actually calls `server.upgrade()` (task 28) — Bun
|
|
31
|
+
* rejects a `websocket` handler that is never used.
|
|
32
|
+
*/
|
|
33
|
+
export function serveBun(app, opts = {}) {
|
|
34
|
+
const port = opts.port ?? 3000;
|
|
35
|
+
const { hostname, tls, websocket } = opts;
|
|
36
|
+
// Two concrete call shapes (not a spread) so Bun.serve picks the right overload.
|
|
37
|
+
if (websocket) {
|
|
38
|
+
return Bun.serve({ port, hostname, fetch: app.fetch, tls, websocket });
|
|
39
|
+
}
|
|
40
|
+
return Bun.serve({ port, hostname, fetch: app.fetch, tls });
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAsB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAA4B,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAezF;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,OAAsB,EAAE;IAChD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAiB,CAAC;IAEtC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;QAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IAChF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAElD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;QAAE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/E,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC;AACb,CAAC;AAaD;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACtB,GAAwB,EACxB,OAAwB,EAAE;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC1C,iFAAiF;IACjF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAc,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Context } from 'hono';
|
|
2
|
+
/**
|
|
3
|
+
* Cookie helpers on `hono/cookie` (replacing `cookie-parser` + Express
|
|
4
|
+
* `res.cookie`). Two cookies, two deliberately-different `sameSite` postures:
|
|
5
|
+
*
|
|
6
|
+
* - `access_token` — httpOnly, **`sameSite: Lax`** so it rides top-level
|
|
7
|
+
* navigations (a returning user lands authenticated). The JWT is the auth
|
|
8
|
+
* credential; JS must never read it.
|
|
9
|
+
* - `csrf_token` — JS-readable (the SPA echoes it in a header), **`sameSite:
|
|
10
|
+
* Strict`** so it is NOT attached to cross-site requests. The two MUST stay
|
|
11
|
+
* separate cookies (see {@link ./csrf}).
|
|
12
|
+
*/
|
|
13
|
+
export declare const AUTH_COOKIE_NAME = "access_token";
|
|
14
|
+
/** Read the httpOnly auth cookie (the access JWT), or undefined. */
|
|
15
|
+
export declare function readAuthCookie(c: Context): string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Write the auth cookie. `maxAge` is seconds (cookie spec) — pass the access
|
|
18
|
+
* token's lifetime. httpOnly + `sameSite: Lax`, secure in production.
|
|
19
|
+
*/
|
|
20
|
+
export declare function writeAuthCookie(c: Context, token: string, maxAge: number): void;
|
|
21
|
+
/** Clear the auth cookie (logout). */
|
|
22
|
+
export declare function clearAuthCookie(c: Context): void;
|
|
23
|
+
//# sourceMappingURL=cookie.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../src/server/auth/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAI/C,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE7D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ/E;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAEhD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { deleteCookie, getCookie, setCookie } from 'hono/cookie';
|
|
2
|
+
/**
|
|
3
|
+
* Cookie helpers on `hono/cookie` (replacing `cookie-parser` + Express
|
|
4
|
+
* `res.cookie`). Two cookies, two deliberately-different `sameSite` postures:
|
|
5
|
+
*
|
|
6
|
+
* - `access_token` — httpOnly, **`sameSite: Lax`** so it rides top-level
|
|
7
|
+
* navigations (a returning user lands authenticated). The JWT is the auth
|
|
8
|
+
* credential; JS must never read it.
|
|
9
|
+
* - `csrf_token` — JS-readable (the SPA echoes it in a header), **`sameSite:
|
|
10
|
+
* Strict`** so it is NOT attached to cross-site requests. The two MUST stay
|
|
11
|
+
* separate cookies (see {@link ./csrf}).
|
|
12
|
+
*/
|
|
13
|
+
export const AUTH_COOKIE_NAME = 'access_token';
|
|
14
|
+
const isProd = () => process.env.NODE_ENV === 'production';
|
|
15
|
+
/** Read the httpOnly auth cookie (the access JWT), or undefined. */
|
|
16
|
+
export function readAuthCookie(c) {
|
|
17
|
+
return getCookie(c, AUTH_COOKIE_NAME);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Write the auth cookie. `maxAge` is seconds (cookie spec) — pass the access
|
|
21
|
+
* token's lifetime. httpOnly + `sameSite: Lax`, secure in production.
|
|
22
|
+
*/
|
|
23
|
+
export function writeAuthCookie(c, token, maxAge) {
|
|
24
|
+
setCookie(c, AUTH_COOKIE_NAME, token, {
|
|
25
|
+
httpOnly: true,
|
|
26
|
+
secure: isProd(),
|
|
27
|
+
sameSite: 'Lax',
|
|
28
|
+
maxAge,
|
|
29
|
+
path: '/',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/** Clear the auth cookie (logout). */
|
|
33
|
+
export function clearAuthCookie(c) {
|
|
34
|
+
deleteCookie(c, AUTH_COOKIE_NAME, { path: '/' });
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=cookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/server/auth/cookie.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjE;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C,MAAM,MAAM,GAAG,GAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AAEpE,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,OAAO,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,CAAU,EAAE,KAAa,EAAE,MAAc;IACvE,SAAS,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE;QACpC,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,MAAM,EAAE;QAChB,QAAQ,EAAE,KAAK;QACf,MAAM;QACN,IAAI,EAAE,GAAG;KACV,CAAC,CAAC;AACL,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,eAAe,CAAC,CAAU;IACxC,YAAY,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { MiddlewareHandler } from 'hono';
|
|
2
|
+
/**
|
|
3
|
+
* Double-submit CSRF guard for the cookie-auth + ctgr GET-tunnel model.
|
|
4
|
+
*
|
|
5
|
+
* Because mutations tunnel through a GET (the ctgr twin) and the auth cookie is
|
|
6
|
+
* `sameSite: Lax`, a cross-site top-level navigation could otherwise trigger a
|
|
7
|
+
* state change. We defend with a JS-readable, `sameSite: Strict` `csrf_token`
|
|
8
|
+
* cookie that the SPA echoes back in the `x-csrf-token` header. A cross-origin page
|
|
9
|
+
* can neither read the victim's cookie nor (Strict) cause it to be sent on a
|
|
10
|
+
* cross-site request, so it cannot forge the header.
|
|
11
|
+
*
|
|
12
|
+
* Behavior:
|
|
13
|
+
* - Safe verbs (GET/HEAD) OUTSIDE the protected prefix: mint the `csrf_token`
|
|
14
|
+
* cookie if absent (so a returning user has it on first paint), then continue.
|
|
15
|
+
* Genuine reads are never CSRF-checked.
|
|
16
|
+
* - ANY request whose path starts with the protected prefix (default `/ctgr`),
|
|
17
|
+
* regardless of HTTP method: require `header === cookie`, else 403. Every ctgr
|
|
18
|
+
* request is a tunneled mutation — and the twin rides a *GET* — so the check must
|
|
19
|
+
* fire even on GET here, or the exact attack CSRF defends against (a cross-site
|
|
20
|
+
* navigation/`<img>` to a `/ctgr*` mutation) slips through. Enforcing on the
|
|
21
|
+
* prefix (not the verb) keeps the guarantee independent of where task-25's
|
|
22
|
+
* `unGETify` sits in the chain. (Invariant #2: ctgr protection may never weaken.)
|
|
23
|
+
* - Mutating verbs OUTSIDE the prefix are NOT checked here (in production all
|
|
24
|
+
* mutations come through ctgr; direct verbs are internal/test traffic).
|
|
25
|
+
*
|
|
26
|
+
* MOUNT GLOBALLY — `app.use('*', createCsrfMiddleware())`. It matches the prefix with
|
|
27
|
+
* a plain `path.startsWith`, so it is immune to Hono's `/ctgr*`-doesn't-match wildcard
|
|
28
|
+
* gotcha; do NOT mount it on `CTGR_ROUTE_PATTERN` (that pattern is for the `unGETify`
|
|
29
|
+
* decode mount) — a prefix-only mount would never run on normal reads and so would
|
|
30
|
+
* never mint the `csrf_token` cookie.
|
|
31
|
+
*/
|
|
32
|
+
export interface CsrfOptions {
|
|
33
|
+
/** Path prefix whose requests are CSRF-checked. Default `/ctgr`. */
|
|
34
|
+
protectedPrefix?: string;
|
|
35
|
+
/** Cookie name. Default `csrf_token`. */
|
|
36
|
+
cookieName?: string;
|
|
37
|
+
/** Request header the SPA echoes the token in. Default `x-csrf-token`. */
|
|
38
|
+
headerName?: string;
|
|
39
|
+
}
|
|
40
|
+
export declare const CSRF_COOKIE_NAME = "csrf_token";
|
|
41
|
+
export declare const CSRF_HEADER_NAME = "x-csrf-token";
|
|
42
|
+
export declare function createCsrfMiddleware(opts?: CsrfOptions): MiddlewareHandler;
|
|
43
|
+
//# sourceMappingURL=csrf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csrf.d.ts","sourceRoot":"","sources":["../../../src/server/auth/csrf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAI9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAI/C,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,WAAgB,GAAG,iBAAiB,CAkC9E"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { getCookie, setCookie } from 'hono/cookie';
|
|
2
|
+
import { ApiError, toErrorEnvelope } from '../errors';
|
|
3
|
+
export const CSRF_COOKIE_NAME = 'csrf_token';
|
|
4
|
+
export const CSRF_HEADER_NAME = 'x-csrf-token';
|
|
5
|
+
const isProd = () => process.env.NODE_ENV === 'production';
|
|
6
|
+
export function createCsrfMiddleware(opts = {}) {
|
|
7
|
+
const prefix = opts.protectedPrefix ?? '/ctgr';
|
|
8
|
+
const cookieName = opts.cookieName ?? CSRF_COOKIE_NAME;
|
|
9
|
+
const headerName = opts.headerName ?? CSRF_HEADER_NAME;
|
|
10
|
+
return async (c, next) => {
|
|
11
|
+
const method = c.req.method;
|
|
12
|
+
const isProtected = c.req.path.startsWith(prefix);
|
|
13
|
+
// Genuine reads (outside the ctgr tunnel): mint the cookie, never enforce.
|
|
14
|
+
if (!isProtected && (method === 'GET' || method === 'HEAD')) {
|
|
15
|
+
if (!getCookie(c, cookieName)) {
|
|
16
|
+
setCookie(c, cookieName, crypto.randomUUID(), {
|
|
17
|
+
httpOnly: false, // the SPA must read it to echo it back
|
|
18
|
+
secure: isProd(),
|
|
19
|
+
sameSite: 'Strict',
|
|
20
|
+
path: '/',
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return next();
|
|
24
|
+
}
|
|
25
|
+
// Every ctgr request is a tunneled mutation (the twin is a GET) — enforce here
|
|
26
|
+
// regardless of verb. Non-ctgr mutating verbs fall through unchecked.
|
|
27
|
+
if (isProtected) {
|
|
28
|
+
const header = c.req.header(headerName);
|
|
29
|
+
const cookie = getCookie(c, cookieName);
|
|
30
|
+
if (!header || header !== cookie) {
|
|
31
|
+
return c.json(toErrorEnvelope(new ApiError(403, 'Invalid CSRF token')), 403);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return next();
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=csrf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csrf.js","sourceRoot":"","sources":["../../../src/server/auth/csrf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAyCtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C,MAAM,MAAM,GAAG,GAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AAEpE,MAAM,UAAU,oBAAoB,CAAC,OAAoB,EAAE;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC;IAEvD,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QAC5B,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAElD,2EAA2E;QAC3E,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC9B,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE;oBAC5C,QAAQ,EAAE,KAAK,EAAE,uCAAuC;oBACxD,MAAM,EAAE,MAAM,EAAE;oBAChB,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,GAAG;iBACV,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,+EAA+E;QAC/E,sEAAsE;QACtE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { MiddlewareHandler } from 'hono';
|
|
2
|
+
import type { AuthEnv } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* `getOnly` enforcement — the server-side half of the `/f` GET-only session
|
|
5
|
+
* guarantee. A getOnly session (the obfuscated `/f` login) may read freely and may
|
|
6
|
+
* mutate ONLY through the ctgr GET-twins (which are GETs at the transport level);
|
|
7
|
+
* any raw non-GET/HEAD verb from such a session is rejected with 403.
|
|
8
|
+
*
|
|
9
|
+
* Mount GLOBALLY (`app.use('*', getOnlyEnforcement())`) AFTER `createAuthMiddleware`
|
|
10
|
+
* — it reads the `user` the auth middleware sets and gates purely on the HTTP verb,
|
|
11
|
+
* so it needs no ctgr path pattern (it must see EVERY mutating request, not only
|
|
12
|
+
* `/ctgr*`). A non-getOnly session — or an unauthenticated request that never reached
|
|
13
|
+
* here — passes through untouched.
|
|
14
|
+
*/
|
|
15
|
+
/** Pure predicate: does this principal+method combination violate the GET-only
|
|
16
|
+
* rule? Exposed for direct unit testing and reuse outside the middleware. */
|
|
17
|
+
export declare function isGetOnlyViolation(user: {
|
|
18
|
+
getOnly?: boolean;
|
|
19
|
+
}, method: string): boolean;
|
|
20
|
+
export declare function getOnlyEnforcement(): MiddlewareHandler<AuthEnv>;
|
|
21
|
+
//# sourceMappingURL=getOnly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOnly.d.ts","sourceRoot":"","sources":["../../../src/server/auth/getOnly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;;GAWG;AAEH;6EAC6E;AAC7E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEvF;AAED,wBAAgB,kBAAkB,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAQ/D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ApiError, toErrorEnvelope } from '../errors';
|
|
2
|
+
/**
|
|
3
|
+
* `getOnly` enforcement — the server-side half of the `/f` GET-only session
|
|
4
|
+
* guarantee. A getOnly session (the obfuscated `/f` login) may read freely and may
|
|
5
|
+
* mutate ONLY through the ctgr GET-twins (which are GETs at the transport level);
|
|
6
|
+
* any raw non-GET/HEAD verb from such a session is rejected with 403.
|
|
7
|
+
*
|
|
8
|
+
* Mount GLOBALLY (`app.use('*', getOnlyEnforcement())`) AFTER `createAuthMiddleware`
|
|
9
|
+
* — it reads the `user` the auth middleware sets and gates purely on the HTTP verb,
|
|
10
|
+
* so it needs no ctgr path pattern (it must see EVERY mutating request, not only
|
|
11
|
+
* `/ctgr*`). A non-getOnly session — or an unauthenticated request that never reached
|
|
12
|
+
* here — passes through untouched.
|
|
13
|
+
*/
|
|
14
|
+
/** Pure predicate: does this principal+method combination violate the GET-only
|
|
15
|
+
* rule? Exposed for direct unit testing and reuse outside the middleware. */
|
|
16
|
+
export function isGetOnlyViolation(user, method) {
|
|
17
|
+
return user.getOnly === true && method !== 'GET' && method !== 'HEAD';
|
|
18
|
+
}
|
|
19
|
+
export function getOnlyEnforcement() {
|
|
20
|
+
return async (c, next) => {
|
|
21
|
+
const user = c.get('user');
|
|
22
|
+
if (user && isGetOnlyViolation(user, c.req.method)) {
|
|
23
|
+
return c.json(toErrorEnvelope(new ApiError(403, 'GET-only session')), 403);
|
|
24
|
+
}
|
|
25
|
+
return next();
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=getOnly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOnly.js","sourceRoot":"","sources":["../../../src/server/auth/getOnly.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGtD;;;;;;;;;;;GAWG;AAEH;6EAC6E;AAC7E,MAAM,UAAU,kBAAkB,CAAC,IAA2B,EAAE,MAAc;IAC5E,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,IAAI,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { AUTH_COOKIE_NAME, clearAuthCookie, readAuthCookie, writeAuthCookie, } from './cookie';
|
|
2
|
+
export { CSRF_COOKIE_NAME, CSRF_HEADER_NAME, type CsrfOptions, createCsrfMiddleware } from './csrf';
|
|
3
|
+
export { getOnlyEnforcement, isGetOnlyViolation } from './getOnly';
|
|
4
|
+
export { signToken, verifyPurposeToken, verifyToken } from './jwt';
|
|
5
|
+
export { createLoginThrottle, type LoginThrottle, type LoginThrottleOptions, } from './loginThrottle';
|
|
6
|
+
export { createAuthMiddleware } from './middleware';
|
|
7
|
+
export { hashPassword, needsRehash, verifyPassword } from './password';
|
|
8
|
+
export { createSessionStore, type SessionStoreOptions, } from './sessionStore';
|
|
9
|
+
export { DEFAULT_TOTP_ISSUER, generateRecoveryCodes, generateTotpSecret, getTotpUri, verifyRecoveryCode, verifyTotpCode, } from './totp';
|
|
10
|
+
export type { AppJwtPayload, AuthEnv, AuthUser, AuthVariables, CreateSessionInput, Session, SessionStore, TokenPurpose, } from './types';
|
|
11
|
+
export { decryptVaultItem, deriveVaultKey, encryptVaultItem } from './vault';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/auth/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,cAAc,GACf,MAAM,QAAQ,CAAC;AAChB,YAAY,EACV,aAAa,EACb,OAAO,EACP,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// cursedbelt server auth toolkit (task 26) — jose JWT, cookies, CSRF, the getOnly
|
|
2
|
+
// gate, a Kysely-backed session store, login throttle, argon2id passwords, TOTP, and
|
|
3
|
+
// Web-Crypto vault item crypto. The *mechanism* lives here; the *model* (roles,
|
|
4
|
+
// sharing, the `/f`-vs-`/login` policy, session semantics) stays in the apps.
|
|
5
|
+
export { AUTH_COOKIE_NAME, clearAuthCookie, readAuthCookie, writeAuthCookie, } from './cookie';
|
|
6
|
+
export { CSRF_COOKIE_NAME, CSRF_HEADER_NAME, createCsrfMiddleware } from './csrf';
|
|
7
|
+
export { getOnlyEnforcement, isGetOnlyViolation } from './getOnly';
|
|
8
|
+
export { signToken, verifyPurposeToken, verifyToken } from './jwt';
|
|
9
|
+
export { createLoginThrottle, } from './loginThrottle';
|
|
10
|
+
export { createAuthMiddleware } from './middleware';
|
|
11
|
+
export { hashPassword, needsRehash, verifyPassword } from './password';
|
|
12
|
+
export { createSessionStore, } from './sessionStore';
|
|
13
|
+
export { DEFAULT_TOTP_ISSUER, generateRecoveryCodes, generateTotpSecret, getTotpUri, verifyRecoveryCode, verifyTotpCode, } from './totp';
|
|
14
|
+
export { decryptVaultItem, deriveVaultKey, encryptVaultItem } from './vault';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/auth/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,qFAAqF;AACrF,gFAAgF;AAChF,8EAA8E;AAE9E,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAoB,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EACL,mBAAmB,GAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EACL,kBAAkB,GAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,cAAc,GACf,MAAM,QAAQ,CAAC;AAWhB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|