@kestack/web-platform 0.0.0-stage → 0.0.1
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/LICENSE +21 -0
- package/README.md +523 -2
- package/dist/_virtual/_rolldown/runtime.js +27 -0
- package/dist/app/apis/apis.d.ts +55 -0
- package/dist/app/apis/apis.d.ts.map +1 -0
- package/dist/app/apis/apis.js +43 -0
- package/dist/app/apis/apis.js.map +1 -0
- package/dist/app/apis/index.d.ts +2 -0
- package/dist/app/apis/index.js +2 -0
- package/dist/app/app.d.ts +77 -0
- package/dist/app/app.d.ts.map +1 -0
- package/dist/app/app.js +118 -0
- package/dist/app/app.js.map +1 -0
- package/dist/app/assemble/assemble.d.ts +167 -0
- package/dist/app/assemble/assemble.d.ts.map +1 -0
- package/dist/app/assemble/assemble.js +186 -0
- package/dist/app/assemble/assemble.js.map +1 -0
- package/dist/app/assemble/index.d.ts +2 -0
- package/dist/app/assemble/index.js +2 -0
- package/dist/app/assemble/public.d.ts +18 -0
- package/dist/app/assemble/public.d.ts.map +1 -0
- package/dist/app/assemble/public.js +41 -0
- package/dist/app/assemble/public.js.map +1 -0
- package/dist/app/gate/domain/check.d.ts +33 -0
- package/dist/app/gate/domain/check.d.ts.map +1 -0
- package/dist/app/gate/domain/check.js +50 -0
- package/dist/app/gate/domain/check.js.map +1 -0
- package/dist/app/gate/domain/index.d.ts +4 -0
- package/dist/app/gate/domain/index.js +3 -0
- package/dist/app/gate/domain/machine.d.ts +180 -0
- package/dist/app/gate/domain/machine.d.ts.map +1 -0
- package/dist/app/gate/domain/machine.js +383 -0
- package/dist/app/gate/domain/machine.js.map +1 -0
- package/dist/app/gate/domain/services.d.ts +37 -0
- package/dist/app/gate/domain/services.d.ts.map +1 -0
- package/dist/app/gate/domain/services.js +13 -0
- package/dist/app/gate/domain/services.js.map +1 -0
- package/dist/app/gate/domain/types.d.ts +44 -0
- package/dist/app/gate/domain/types.d.ts.map +1 -0
- package/dist/app/gate/domain/types.js +0 -0
- package/dist/app/gate/gate.d.ts +86 -0
- package/dist/app/gate/gate.d.ts.map +1 -0
- package/dist/app/gate/gate.js +351 -0
- package/dist/app/gate/gate.js.map +1 -0
- package/dist/app/gate/index.d.ts +5 -0
- package/dist/app/gate/index.js +3 -0
- package/dist/app/gate/memory.d.ts +97 -0
- package/dist/app/gate/memory.d.ts.map +1 -0
- package/dist/app/gate/memory.js +48 -0
- package/dist/app/gate/memory.js.map +1 -0
- package/dist/app/gate/react.d.ts +74 -0
- package/dist/app/gate/react.d.ts.map +1 -0
- package/dist/app/gate/react.js +107 -0
- package/dist/app/gate/react.js.map +1 -0
- package/dist/app/host/host.d.ts +90 -0
- package/dist/app/host/host.d.ts.map +1 -0
- package/dist/app/host/host.js +75 -0
- package/dist/app/host/host.js.map +1 -0
- package/dist/app/host/index.d.ts +2 -0
- package/dist/app/host/index.js +2 -0
- package/dist/app/index.d.ts +4 -0
- package/dist/app/index.js +2 -0
- package/dist/app/session/define.d.ts +60 -0
- package/dist/app/session/define.d.ts.map +1 -0
- package/dist/app/session/define.js +31 -0
- package/dist/app/session/define.js.map +1 -0
- package/dist/app/session/index.d.ts +6 -0
- package/dist/app/session/index.js +6 -0
- package/dist/app/session/keeper.d.ts +17 -0
- package/dist/app/session/keeper.d.ts.map +1 -0
- package/dist/app/session/keeper.js +21 -0
- package/dist/app/session/keeper.js.map +1 -0
- package/dist/app/session/open.d.ts +44 -0
- package/dist/app/session/open.d.ts.map +1 -0
- package/dist/app/session/open.js +70 -0
- package/dist/app/session/open.js.map +1 -0
- package/dist/app/session/react.d.ts +17 -0
- package/dist/app/session/react.d.ts.map +1 -0
- package/dist/app/session/react.js +28 -0
- package/dist/app/session/react.js.map +1 -0
- package/dist/app/session/status.d.ts +24 -0
- package/dist/app/session/status.d.ts.map +1 -0
- package/dist/app/session/status.js +25 -0
- package/dist/app/session/status.js.map +1 -0
- package/dist/app/web-host.d.ts +16 -0
- package/dist/app/web-host.d.ts.map +1 -0
- package/dist/app/web-host.js +85 -0
- package/dist/app/web-host.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.js +2 -0
- package/dist/client/root/index.d.ts +2 -0
- package/dist/client/root/index.js +2 -0
- package/dist/client/root/root.d.ts +62 -0
- package/dist/client/root/root.d.ts.map +1 -0
- package/dist/client/root/root.js +92 -0
- package/dist/client/root/root.js.map +1 -0
- package/dist/client/server.d.ts +2 -0
- package/dist/client/server.js +2 -0
- package/dist/client/theme/index.d.ts +2 -0
- package/dist/client/theme/index.js +2 -0
- package/dist/client/theme/tanstack-start.d.ts +5 -0
- package/dist/client/theme/tanstack-start.d.ts.map +1 -0
- package/dist/client/theme/tanstack-start.js +9 -0
- package/dist/client/theme/tanstack-start.js.map +1 -0
- package/dist/components/hooks/use-element-width.d.ts +9 -0
- package/dist/components/hooks/use-element-width.d.ts.map +1 -0
- package/dist/components/hooks/use-element-width.js +26 -0
- package/dist/components/hooks/use-element-width.js.map +1 -0
- package/dist/components/hooks/use-mobile.d.ts +6 -0
- package/dist/components/hooks/use-mobile.d.ts.map +1 -0
- package/dist/components/hooks/use-mobile.js +16 -0
- package/dist/components/hooks/use-mobile.js.map +1 -0
- package/dist/components/hooks/use-scroll.d.ts +12 -0
- package/dist/components/hooks/use-scroll.d.ts.map +1 -0
- package/dist/components/hooks/use-scroll.js +198 -0
- package/dist/components/hooks/use-scroll.js.map +1 -0
- package/dist/components/lib/lucide.d.ts +1 -0
- package/dist/components/lib/lucide.js +10 -0
- package/dist/components/lib/lucide.js.map +1 -0
- package/dist/components/lib/motion.d.ts +1 -0
- package/dist/components/lib/motion.js +1 -0
- package/dist/components/lib/scrollStyles.d.ts +13 -0
- package/dist/components/lib/scrollStyles.d.ts.map +1 -0
- package/dist/components/lib/scrollStyles.js +19 -0
- package/dist/components/lib/scrollStyles.js.map +1 -0
- package/dist/components/lib/shadow-dom.d.ts +17 -0
- package/dist/components/lib/shadow-dom.d.ts.map +1 -0
- package/dist/components/lib/shadow-dom.js +50 -0
- package/dist/components/lib/shadow-dom.js.map +1 -0
- package/dist/components/lib/utils.d.ts +5 -0
- package/dist/components/lib/utils.d.ts.map +1 -0
- package/dist/components/lib/utils.js +10 -0
- package/dist/components/lib/utils.js.map +1 -0
- package/dist/components/ui/accordion.d.ts +9 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/accordion.js +55 -0
- package/dist/components/ui/accordion.js.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +21 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +96 -0
- package/dist/components/ui/alert-dialog.js.map +1 -0
- package/dist/components/ui/alert.d.ts +13 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/alert.js +45 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +7 -0
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio.js +15 -0
- package/dist/components/ui/aspect-ratio.js.map +1 -0
- package/dist/components/ui/attachment.d.ts +26 -0
- package/dist/components/ui/attachment.d.ts.map +1 -0
- package/dist/components/ui/attachment.js +106 -0
- package/dist/components/ui/attachment.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +14 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +52 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +31 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +13 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.js +74 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/bubble.d.ts +19 -0
- package/dist/components/ui/bubble.d.ts.map +1 -0
- package/dist/components/ui/bubble.js +75 -0
- package/dist/components/ui/bubble.js.map +1 -0
- package/dist/components/ui/button-group.d.ts +13 -0
- package/dist/components/ui/button-group.d.ts.map +1 -0
- package/dist/components/ui/button-group.js +43 -0
- package/dist/components/ui/button-group.js.map +1 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +46 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/calendar.d.ts +13 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/calendar.js +110 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/components/ui/card.d.ts +14 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +58 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/carousel.d.ts +31 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/carousel.js +133 -0
- package/dist/components/ui/carousel.js.map +1 -0
- package/dist/components/ui/chart.d.ts +47 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/chart.js +150 -0
- package/dist/components/ui/chart.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +6 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +22 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/collapsible.d.ts +8 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +25 -0
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/combobox.d.ts +27 -0
- package/dist/components/ui/combobox.d.ts.map +1 -0
- package/dist/components/ui/combobox.js +163 -0
- package/dist/components/ui/combobox.js.map +1 -0
- package/dist/components/ui/command.d.ts +22 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/command.js +90 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/context-menu.d.ts +32 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -0
- package/dist/components/ui/context-menu.js +135 -0
- package/dist/components/ui/context-menu.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +20 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +94 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/direction.d.ts +2 -0
- package/dist/components/ui/direction.js +2 -0
- package/dist/components/ui/drawer.d.ts +19 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +125 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +35 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +141 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/empty.d.ts +14 -0
- package/dist/components/ui/empty.d.ts.map +1 -0
- package/dist/components/ui/empty.js +61 -0
- package/dist/components/ui/empty.js.map +1 -0
- package/dist/components/ui/field.d.ts +27 -0
- package/dist/components/ui/field.d.ts.map +1 -0
- package/dist/components/ui/field.js +111 -0
- package/dist/components/ui/field.js.map +1 -0
- package/dist/components/ui/file-tree.d.ts +62 -0
- package/dist/components/ui/file-tree.d.ts.map +1 -0
- package/dist/components/ui/file-tree.js +300 -0
- package/dist/components/ui/file-tree.js.map +1 -0
- package/dist/components/ui/google-button.d.ts +9 -0
- package/dist/components/ui/google-button.d.ts.map +1 -0
- package/dist/components/ui/google-button.js +183 -0
- package/dist/components/ui/google-button.js.map +1 -0
- package/dist/components/ui/hover-card.d.ts +8 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -0
- package/dist/components/ui/hover-card.js +38 -0
- package/dist/components/ui/hover-card.js.map +1 -0
- package/dist/components/ui/input-group.d.ts +21 -0
- package/dist/components/ui/input-group.d.ts.map +1 -0
- package/dist/components/ui/input-group.js +81 -0
- package/dist/components/ui/input-group.js.map +1 -0
- package/dist/components/ui/input-otp.d.ts +14 -0
- package/dist/components/ui/input-otp.d.ts.map +1 -0
- package/dist/components/ui/input-otp.js +48 -0
- package/dist/components/ui/input-otp.js.map +1 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +17 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/item.d.ts +25 -0
- package/dist/components/ui/item.d.ts.map +1 -0
- package/dist/components/ui/item.js +123 -0
- package/dist/components/ui/item.js.map +1 -0
- package/dist/components/ui/kbd.d.ts +6 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/kbd.js +21 -0
- package/dist/components/ui/kbd.js.map +1 -0
- package/dist/components/ui/label.d.ts +6 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +16 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/marker.d.ts +13 -0
- package/dist/components/ui/marker.d.ts.map +1 -0
- package/dist/components/ui/marker.js +45 -0
- package/dist/components/ui/marker.js.map +1 -0
- package/dist/components/ui/menubar.d.ts +32 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/menubar.js +138 -0
- package/dist/components/ui/menubar.js.map +1 -0
- package/dist/components/ui/message-scroller.d.ts +13 -0
- package/dist/components/ui/message-scroller.d.ts.map +1 -0
- package/dist/components/ui/message-scroller.js +62 -0
- package/dist/components/ui/message-scroller.js.map +1 -0
- package/dist/components/ui/message.d.ts +13 -0
- package/dist/components/ui/message.d.ts.map +1 -0
- package/dist/components/ui/message.js +51 -0
- package/dist/components/ui/message.js.map +1 -0
- package/dist/components/ui/native-select.d.ts +11 -0
- package/dist/components/ui/native-select.d.ts.map +1 -0
- package/dist/components/ui/native-select.js +40 -0
- package/dist/components/ui/native-select.js.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +14 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.js +84 -0
- package/dist/components/ui/navigation-menu.js.map +1 -0
- package/dist/components/ui/pagination.d.ts +20 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/pagination.js +82 -0
- package/dist/components/ui/pagination.js.map +1 -0
- package/dist/components/ui/popover.d.ts +12 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +56 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/progress.d.ts +10 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/progress.js +46 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/questionnaire.d.ts +22 -0
- package/dist/components/ui/questionnaire.d.ts.map +1 -0
- package/dist/components/ui/questionnaire.js +172 -0
- package/dist/components/ui/questionnaire.js.map +1 -0
- package/dist/components/ui/radio-group.d.ts +8 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/radio-group.js +28 -0
- package/dist/components/ui/radio-group.js.map +1 -0
- package/dist/components/ui/resizable.d.ts +10 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/components/ui/resizable.js +30 -0
- package/dist/components/ui/resizable.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +10 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +38 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +18 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +100 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +6 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/separator.js +16 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +17 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +90 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +5 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +14 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/slider.d.ts +6 -0
- package/dist/components/ui/slider.d.ts.map +1 -0
- package/dist/components/ui/slider.js +35 -0
- package/dist/components/ui/slider.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +6 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/sonner.js +28 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/spinner.d.ts +5 -0
- package/dist/components/ui/spinner.d.ts.map +1 -0
- package/dist/components/ui/spinner.js +17 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +8 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +21 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +13 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +68 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +13 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +47 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +6 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +15 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/toast.d.ts +19 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +125 -0
- package/dist/components/ui/toast.js.map +1 -0
- package/dist/components/ui/toggle-group.d.ts +14 -0
- package/dist/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/toggle-group.js +53 -0
- package/dist/components/ui/toggle-group.js.map +1 -0
- package/dist/components/ui/toggle.d.ts +11 -0
- package/dist/components/ui/toggle.d.ts.map +1 -0
- package/dist/components/ui/toggle.js +37 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +9 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +43 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/components/viewers/diff-viewer/align.d.ts +23 -0
- package/dist/components/viewers/diff-viewer/align.d.ts.map +1 -0
- package/dist/components/viewers/diff-viewer/align.js +68 -0
- package/dist/components/viewers/diff-viewer/align.js.map +1 -0
- package/dist/components/viewers/diff-viewer/collapse.d.ts +20 -0
- package/dist/components/viewers/diff-viewer/collapse.d.ts.map +1 -0
- package/dist/components/viewers/diff-viewer/collapse.js +84 -0
- package/dist/components/viewers/diff-viewer/collapse.js.map +1 -0
- package/dist/components/viewers/diff-viewer/diff-viewer.d.ts +34 -0
- package/dist/components/viewers/diff-viewer/diff-viewer.d.ts.map +1 -0
- package/dist/components/viewers/diff-viewer/diff-viewer.js +373 -0
- package/dist/components/viewers/diff-viewer/diff-viewer.js.map +1 -0
- package/dist/components/viewers/diff-viewer/index.d.ts +2 -0
- package/dist/components/viewers/diff-viewer/index.js +2 -0
- package/dist/components/viewers/diff-viewer/render-model.d.ts +27 -0
- package/dist/components/viewers/diff-viewer/render-model.d.ts.map +1 -0
- package/dist/components/viewers/diff-viewer/render-model.js +83 -0
- package/dist/components/viewers/diff-viewer/render-model.js.map +1 -0
- package/dist/components/viewers/diff-viewer/sync-rows.d.ts +8 -0
- package/dist/components/viewers/diff-viewer/sync-rows.d.ts.map +1 -0
- package/dist/components/viewers/diff-viewer/sync-rows.js +32 -0
- package/dist/components/viewers/diff-viewer/sync-rows.js.map +1 -0
- package/dist/components/viewers/file-tree/expand.d.ts +7 -0
- package/dist/components/viewers/file-tree/expand.d.ts.map +1 -0
- package/dist/components/viewers/file-tree/expand.js +37 -0
- package/dist/components/viewers/file-tree/expand.js.map +1 -0
- package/dist/components/viewers/file-tree/file-tree.d.ts +20 -0
- package/dist/components/viewers/file-tree/file-tree.d.ts.map +1 -0
- package/dist/components/viewers/file-tree/file-tree.js +116 -0
- package/dist/components/viewers/file-tree/file-tree.js.map +1 -0
- package/dist/components/viewers/file-tree/index.d.ts +3 -0
- package/dist/components/viewers/file-tree/index.js +3 -0
- package/dist/components/viewers/git-changes/git-changes.d.ts +40 -0
- package/dist/components/viewers/git-changes/git-changes.d.ts.map +1 -0
- package/dist/components/viewers/git-changes/git-changes.js +170 -0
- package/dist/components/viewers/git-changes/git-changes.js.map +1 -0
- package/dist/components/viewers/git-changes/index.d.ts +2 -0
- package/dist/components/viewers/git-changes/index.js +2 -0
- package/dist/components/viewers/json/index.d.ts +4 -0
- package/dist/components/viewers/json/index.js +4 -0
- package/dist/components/viewers/json/json-editor.d.ts +14 -0
- package/dist/components/viewers/json/json-editor.d.ts.map +1 -0
- package/dist/components/viewers/json/json-editor.js +84 -0
- package/dist/components/viewers/json/json-editor.js.map +1 -0
- package/dist/components/viewers/json/json-tree.d.ts +11 -0
- package/dist/components/viewers/json/json-tree.d.ts.map +1 -0
- package/dist/components/viewers/json/json-tree.js +88 -0
- package/dist/components/viewers/json/json-tree.js.map +1 -0
- package/dist/components/viewers/json/json-viewer.d.ts +10 -0
- package/dist/components/viewers/json/json-viewer.d.ts.map +1 -0
- package/dist/components/viewers/json/json-viewer.js +48 -0
- package/dist/components/viewers/json/json-viewer.js.map +1 -0
- package/dist/components/viewers/markdown-viewer/index.d.ts +2 -0
- package/dist/components/viewers/markdown-viewer/index.js +2 -0
- package/dist/components/viewers/markdown-viewer/markdown-viewer.d.ts +8 -0
- package/dist/components/viewers/markdown-viewer/markdown-viewer.d.ts.map +1 -0
- package/dist/components/viewers/markdown-viewer/markdown-viewer.js +65 -0
- package/dist/components/viewers/markdown-viewer/markdown-viewer.js.map +1 -0
- package/dist/components/viewers/source-explorer/index.d.ts +2 -0
- package/dist/components/viewers/source-explorer/index.js +2 -0
- package/dist/components/viewers/source-explorer/initial-selection.d.ts +6 -0
- package/dist/components/viewers/source-explorer/initial-selection.d.ts.map +1 -0
- package/dist/components/viewers/source-explorer/initial-selection.js +13 -0
- package/dist/components/viewers/source-explorer/initial-selection.js.map +1 -0
- package/dist/components/viewers/source-explorer/snapshot-tree.d.ts +11 -0
- package/dist/components/viewers/source-explorer/snapshot-tree.d.ts.map +1 -0
- package/dist/components/viewers/source-explorer/snapshot-tree.js +21 -0
- package/dist/components/viewers/source-explorer/snapshot-tree.js.map +1 -0
- package/dist/components/viewers/source-explorer/source-explorer.d.ts +49 -0
- package/dist/components/viewers/source-explorer/source-explorer.d.ts.map +1 -0
- package/dist/components/viewers/source-explorer/source-explorer.js +364 -0
- package/dist/components/viewers/source-explorer/source-explorer.js.map +1 -0
- package/dist/components/viewers/source-viewer/index.d.ts +2 -0
- package/dist/components/viewers/source-viewer/index.js +2 -0
- package/dist/components/viewers/source-viewer/source-viewer.d.ts +33 -0
- package/dist/components/viewers/source-viewer/source-viewer.d.ts.map +1 -0
- package/dist/components/viewers/source-viewer/source-viewer.js +224 -0
- package/dist/components/viewers/source-viewer/source-viewer.js.map +1 -0
- package/dist/define/index.d.ts +10 -0
- package/dist/define/index.js +4 -0
- package/dist/feedback/index.d.ts +2 -0
- package/dist/feedback/index.js +2 -0
- package/dist/feedback/sound.d.ts +28 -0
- package/dist/feedback/sound.d.ts.map +1 -0
- package/dist/feedback/sound.js +150 -0
- package/dist/feedback/sound.js.map +1 -0
- package/dist/form/components/submit-button.d.ts +11 -0
- package/dist/form/components/submit-button.d.ts.map +1 -0
- package/dist/form/components/submit-button.js +26 -0
- package/dist/form/components/submit-button.js.map +1 -0
- package/dist/form/context.d.ts +8 -0
- package/dist/form/context.d.ts.map +1 -0
- package/dist/form/context.js +11 -0
- package/dist/form/context.js.map +1 -0
- package/dist/form/create-form-hook.d.ts +62 -0
- package/dist/form/create-form-hook.d.ts.map +1 -0
- package/dist/form/create-form-hook.js +51 -0
- package/dist/form/create-form-hook.js.map +1 -0
- package/dist/form/fields/date-picker-field.d.ts +9 -0
- package/dist/form/fields/date-picker-field.d.ts.map +1 -0
- package/dist/form/fields/date-picker-field.js +84 -0
- package/dist/form/fields/date-picker-field.js.map +1 -0
- package/dist/form/fields/select-field.d.ts +15 -0
- package/dist/form/fields/select-field.d.ts.map +1 -0
- package/dist/form/fields/select-field.js +65 -0
- package/dist/form/fields/select-field.js.map +1 -0
- package/dist/form/fields/switch-field.d.ts +9 -0
- package/dist/form/fields/switch-field.d.ts.map +1 -0
- package/dist/form/fields/switch-field.js +56 -0
- package/dist/form/fields/switch-field.js.map +1 -0
- package/dist/form/fields/text-field.d.ts +10 -0
- package/dist/form/fields/text-field.d.ts.map +1 -0
- package/dist/form/fields/text-field.js +58 -0
- package/dist/form/fields/text-field.js.map +1 -0
- package/dist/form/fields/textarea-field.d.ts +10 -0
- package/dist/form/fields/textarea-field.d.ts.map +1 -0
- package/dist/form/fields/textarea-field.js +58 -0
- package/dist/form/fields/textarea-field.js.map +1 -0
- package/dist/form/index.d.ts +10 -0
- package/dist/form/index.js +3 -0
- package/dist/form/types.d.ts +51 -0
- package/dist/form/types.d.ts.map +1 -0
- package/dist/form/types.js +23 -0
- package/dist/form/types.js.map +1 -0
- package/dist/input/device/device.d.ts +21 -0
- package/dist/input/device/device.d.ts.map +1 -0
- package/dist/input/device/device.js +61 -0
- package/dist/input/device/device.js.map +1 -0
- package/dist/input/device/index.d.ts +2 -0
- package/dist/input/device/index.js +2 -0
- package/dist/input/gesture/index.d.ts +9 -0
- package/dist/input/gesture/index.js +5 -0
- package/dist/input/gesture/patterns/index.d.ts +5 -0
- package/dist/input/gesture/patterns/index.js +3 -0
- package/dist/input/gesture/patterns/pull-to-refresh/index.d.ts +2 -0
- package/dist/input/gesture/patterns/pull-to-refresh/index.js +2 -0
- package/dist/input/gesture/patterns/pull-to-refresh/use-pull-to-refresh.d.ts +32 -0
- package/dist/input/gesture/patterns/pull-to-refresh/use-pull-to-refresh.d.ts.map +1 -0
- package/dist/input/gesture/patterns/pull-to-refresh/use-pull-to-refresh.js +75 -0
- package/dist/input/gesture/patterns/pull-to-refresh/use-pull-to-refresh.js.map +1 -0
- package/dist/input/gesture/patterns/sidebar/index.d.ts +2 -0
- package/dist/input/gesture/patterns/sidebar/index.js +2 -0
- package/dist/input/gesture/patterns/sidebar/use-sidebar.d.ts +41 -0
- package/dist/input/gesture/patterns/sidebar/use-sidebar.d.ts.map +1 -0
- package/dist/input/gesture/patterns/sidebar/use-sidebar.js +131 -0
- package/dist/input/gesture/patterns/sidebar/use-sidebar.js.map +1 -0
- package/dist/input/gesture/recognizers/index.d.ts +3 -0
- package/dist/input/gesture/recognizers/index.js +2 -0
- package/dist/input/gesture/recognizers/swipe/index.d.ts +2 -0
- package/dist/input/gesture/recognizers/swipe/index.js +2 -0
- package/dist/input/gesture/recognizers/swipe/use-swipe.d.ts +56 -0
- package/dist/input/gesture/recognizers/swipe/use-swipe.d.ts.map +1 -0
- package/dist/input/gesture/recognizers/swipe/use-swipe.js +150 -0
- package/dist/input/gesture/recognizers/swipe/use-swipe.js.map +1 -0
- package/dist/input/gesture/zones/index.d.ts +4 -0
- package/dist/input/gesture/zones/index.js +2 -0
- package/dist/input/gesture/zones/touch-input/index.d.ts +3 -0
- package/dist/input/gesture/zones/touch-input/index.js +3 -0
- package/dist/input/gesture/zones/touch-input/native-scroll.d.ts +28 -0
- package/dist/input/gesture/zones/touch-input/native-scroll.d.ts.map +1 -0
- package/dist/input/gesture/zones/touch-input/native-scroll.js +61 -0
- package/dist/input/gesture/zones/touch-input/native-scroll.js.map +1 -0
- package/dist/input/gesture/zones/touch-input/touch-input.d.ts +54 -0
- package/dist/input/gesture/zones/touch-input/touch-input.d.ts.map +1 -0
- package/dist/input/gesture/zones/touch-input/touch-input.js +243 -0
- package/dist/input/gesture/zones/touch-input/touch-input.js.map +1 -0
- package/dist/input/gesture/zones/zone/index.d.ts +3 -0
- package/dist/input/gesture/zones/zone/index.js +2 -0
- package/dist/input/gesture/zones/zone/motion-pointers.d.ts +33 -0
- package/dist/input/gesture/zones/zone/motion-pointers.d.ts.map +1 -0
- package/dist/input/gesture/zones/zone/motion-pointers.js +52 -0
- package/dist/input/gesture/zones/zone/motion-pointers.js.map +1 -0
- package/dist/input/gesture/zones/zone/zone.d.ts +93 -0
- package/dist/input/gesture/zones/zone/zone.d.ts.map +1 -0
- package/dist/input/gesture/zones/zone/zone.js +169 -0
- package/dist/input/gesture/zones/zone/zone.js.map +1 -0
- package/dist/input/index.d.ts +8 -0
- package/dist/input/index.js +6 -0
- package/dist/pwa/browser/dom-events.d.ts +9 -0
- package/dist/pwa/browser/dom-events.d.ts.map +1 -0
- package/dist/pwa/browser/dom-events.js +10 -0
- package/dist/pwa/browser/dom-events.js.map +1 -0
- package/dist/pwa/browser/subscription-ref.d.ts +6 -0
- package/dist/pwa/browser/subscription-ref.d.ts.map +1 -0
- package/dist/pwa/browser/subscription-ref.js +19 -0
- package/dist/pwa/browser/subscription-ref.js.map +1 -0
- package/dist/pwa/client/client.d.ts +32 -0
- package/dist/pwa/client/client.d.ts.map +1 -0
- package/dist/pwa/client/client.js +36 -0
- package/dist/pwa/client/client.js.map +1 -0
- package/dist/pwa/client/commands/commands.d.ts +9 -0
- package/dist/pwa/client/commands/commands.d.ts.map +1 -0
- package/dist/pwa/client/commands/commands.js +21 -0
- package/dist/pwa/client/commands/commands.js.map +1 -0
- package/dist/pwa/client/commands/index.d.ts +2 -0
- package/dist/pwa/client/commands/index.js +2 -0
- package/dist/pwa/client/index.d.ts +3 -0
- package/dist/pwa/client/index.js +3 -0
- package/dist/pwa/client/registration.d.ts +14 -0
- package/dist/pwa/client/registration.d.ts.map +1 -0
- package/dist/pwa/client/registration.js +36 -0
- package/dist/pwa/client/registration.js.map +1 -0
- package/dist/pwa/client/runtime-cache.d.ts +9 -0
- package/dist/pwa/client/runtime-cache.d.ts.map +1 -0
- package/dist/pwa/client/runtime-cache.js +15 -0
- package/dist/pwa/client/runtime-cache.js.map +1 -0
- package/dist/pwa/client/status/index.d.ts +2 -0
- package/dist/pwa/client/status/index.js +2 -0
- package/dist/pwa/client/status/status.d.ts +136 -0
- package/dist/pwa/client/status/status.d.ts.map +1 -0
- package/dist/pwa/client/status/status.js +83 -0
- package/dist/pwa/client/status/status.js.map +1 -0
- package/dist/pwa/extras/display-mode/display-mode.d.ts +18 -0
- package/dist/pwa/extras/display-mode/display-mode.d.ts.map +1 -0
- package/dist/pwa/extras/display-mode/display-mode.js +42 -0
- package/dist/pwa/extras/display-mode/display-mode.js.map +1 -0
- package/dist/pwa/extras/display-mode/index.d.ts +2 -0
- package/dist/pwa/extras/display-mode/index.js +2 -0
- package/dist/pwa/extras/index.d.ts +13 -0
- package/dist/pwa/extras/index.js +9 -0
- package/dist/pwa/extras/install/index.d.ts +5 -0
- package/dist/pwa/extras/install/index.js +5 -0
- package/dist/pwa/extras/install/install-content.d.ts +12 -0
- package/dist/pwa/extras/install/install-content.d.ts.map +1 -0
- package/dist/pwa/extras/install/install-content.js +57 -0
- package/dist/pwa/extras/install/install-content.js.map +1 -0
- package/dist/pwa/extras/install/install-dismissal.d.ts +5 -0
- package/dist/pwa/extras/install/install-dismissal.d.ts.map +1 -0
- package/dist/pwa/extras/install/install-dismissal.js +20 -0
- package/dist/pwa/extras/install/install-dismissal.js.map +1 -0
- package/dist/pwa/extras/install/install-prompt.d.ts +12 -0
- package/dist/pwa/extras/install/install-prompt.d.ts.map +1 -0
- package/dist/pwa/extras/install/install-prompt.js +66 -0
- package/dist/pwa/extras/install/install-prompt.js.map +1 -0
- package/dist/pwa/extras/install/install.d.ts +125 -0
- package/dist/pwa/extras/install/install.d.ts.map +1 -0
- package/dist/pwa/extras/install/install.js +80 -0
- package/dist/pwa/extras/install/install.js.map +1 -0
- package/dist/pwa/extras/install/ios.d.ts +8 -0
- package/dist/pwa/extras/install/ios.d.ts.map +1 -0
- package/dist/pwa/extras/install/ios.js +10 -0
- package/dist/pwa/extras/install/ios.js.map +1 -0
- package/dist/pwa/extras/install/media-query.d.ts +5 -0
- package/dist/pwa/extras/install/media-query.d.ts.map +1 -0
- package/dist/pwa/extras/install/media-query.js +15 -0
- package/dist/pwa/extras/install/media-query.js.map +1 -0
- package/dist/pwa/extras/lazy-service/index.d.ts +2 -0
- package/dist/pwa/extras/lazy-service/index.js +2 -0
- package/dist/pwa/extras/lazy-service/lazy-service.d.ts +11 -0
- package/dist/pwa/extras/lazy-service/lazy-service.d.ts.map +1 -0
- package/dist/pwa/extras/lazy-service/lazy-service.js +30 -0
- package/dist/pwa/extras/lazy-service/lazy-service.js.map +1 -0
- package/dist/pwa/extras/online/index.d.ts +3 -0
- package/dist/pwa/extras/online/index.js +3 -0
- package/dist/pwa/extras/online/offline-indicator.d.ts +11 -0
- package/dist/pwa/extras/online/offline-indicator.d.ts.map +1 -0
- package/dist/pwa/extras/online/offline-indicator.js +26 -0
- package/dist/pwa/extras/online/offline-indicator.js.map +1 -0
- package/dist/pwa/extras/online/online.d.ts +15 -0
- package/dist/pwa/extras/online/online.d.ts.map +1 -0
- package/dist/pwa/extras/online/online.js +27 -0
- package/dist/pwa/extras/online/online.js.map +1 -0
- package/dist/pwa/extras/storage/index.d.ts +2 -0
- package/dist/pwa/extras/storage/index.js +2 -0
- package/dist/pwa/extras/storage/storage.d.ts +28 -0
- package/dist/pwa/extras/storage/storage.d.ts.map +1 -0
- package/dist/pwa/extras/storage/storage.js +51 -0
- package/dist/pwa/extras/storage/storage.js.map +1 -0
- package/dist/pwa/index.d.ts +8 -0
- package/dist/pwa/index.js +5 -0
- package/dist/pwa/react/head.d.ts +33 -0
- package/dist/pwa/react/head.d.ts.map +1 -0
- package/dist/pwa/react/head.js +43 -0
- package/dist/pwa/react/head.js.map +1 -0
- package/dist/pwa/react/index.d.ts +4 -0
- package/dist/pwa/react/index.js +3 -0
- package/dist/pwa/react/react.d.ts +33 -0
- package/dist/pwa/react/react.d.ts.map +1 -0
- package/dist/pwa/react/react.js +67 -0
- package/dist/pwa/react/react.js.map +1 -0
- package/dist/pwa/react/update-prompt.d.ts +12 -0
- package/dist/pwa/react/update-prompt.d.ts.map +1 -0
- package/dist/pwa/react/update-prompt.js +23 -0
- package/dist/pwa/react/update-prompt.js.map +1 -0
- package/dist/pwa/react/update-toast.d.ts +15 -0
- package/dist/pwa/react/update-toast.d.ts.map +1 -0
- package/dist/pwa/react/update-toast.js +52 -0
- package/dist/pwa/react/update-toast.js.map +1 -0
- package/dist/pwa/root/index.d.ts +2 -0
- package/dist/pwa/root/index.js +2 -0
- package/dist/pwa/root/root.d.ts +14 -0
- package/dist/pwa/root/root.d.ts.map +1 -0
- package/dist/pwa/root/root.js +35 -0
- package/dist/pwa/root/root.js.map +1 -0
- package/dist/pwa/rpc/client/client.d.ts +49 -0
- package/dist/pwa/rpc/client/client.d.ts.map +1 -0
- package/dist/pwa/rpc/client/client.js +55 -0
- package/dist/pwa/rpc/client/client.js.map +1 -0
- package/dist/pwa/rpc/client/index.d.ts +3 -0
- package/dist/pwa/rpc/client/index.js +3 -0
- package/dist/pwa/rpc/client/page-environment.d.ts +25 -0
- package/dist/pwa/rpc/client/page-environment.d.ts.map +1 -0
- package/dist/pwa/rpc/client/page-environment.js +46 -0
- package/dist/pwa/rpc/client/page-environment.js.map +1 -0
- package/dist/pwa/rpc/client/platform.d.ts +26 -0
- package/dist/pwa/rpc/client/platform.d.ts.map +1 -0
- package/dist/pwa/rpc/client/platform.js +144 -0
- package/dist/pwa/rpc/client/platform.js.map +1 -0
- package/dist/pwa/rpc/client/version-skew.d.ts +24 -0
- package/dist/pwa/rpc/client/version-skew.d.ts.map +1 -0
- package/dist/pwa/rpc/client/version-skew.js +63 -0
- package/dist/pwa/rpc/client/version-skew.js.map +1 -0
- package/dist/pwa/rpc/handshake/handshake.d.ts +74 -0
- package/dist/pwa/rpc/handshake/handshake.d.ts.map +1 -0
- package/dist/pwa/rpc/handshake/handshake.js +104 -0
- package/dist/pwa/rpc/handshake/handshake.js.map +1 -0
- package/dist/pwa/rpc/handshake/index.d.ts +2 -0
- package/dist/pwa/rpc/handshake/index.js +2 -0
- package/dist/pwa/rpc/worker/connections.d.ts +31 -0
- package/dist/pwa/rpc/worker/connections.d.ts.map +1 -0
- package/dist/pwa/rpc/worker/connections.js +48 -0
- package/dist/pwa/rpc/worker/connections.js.map +1 -0
- package/dist/pwa/rpc/worker/index.d.ts +2 -0
- package/dist/pwa/rpc/worker/index.js +2 -0
- package/dist/pwa/rpc/worker/keep-alive.d.ts +11 -0
- package/dist/pwa/rpc/worker/keep-alive.d.ts.map +1 -0
- package/dist/pwa/rpc/worker/keep-alive.js +30 -0
- package/dist/pwa/rpc/worker/keep-alive.js.map +1 -0
- package/dist/pwa/rpc/worker/runner-platform.d.ts +18 -0
- package/dist/pwa/rpc/worker/runner-platform.d.ts.map +1 -0
- package/dist/pwa/rpc/worker/runner-platform.js +113 -0
- package/dist/pwa/rpc/worker/runner-platform.js.map +1 -0
- package/dist/pwa/rpc/worker/worker.d.ts +22 -0
- package/dist/pwa/rpc/worker/worker.d.ts.map +1 -0
- package/dist/pwa/rpc/worker/worker.js +23 -0
- package/dist/pwa/rpc/worker/worker.js.map +1 -0
- package/dist/pwa/shared/build/build.d.ts +55 -0
- package/dist/pwa/shared/build/build.d.ts.map +1 -0
- package/dist/pwa/shared/build/build.js +55 -0
- package/dist/pwa/shared/build/build.js.map +1 -0
- package/dist/pwa/shared/build/canonical-json.d.ts +5 -0
- package/dist/pwa/shared/build/canonical-json.d.ts.map +1 -0
- package/dist/pwa/shared/build/canonical-json.js +7 -0
- package/dist/pwa/shared/build/canonical-json.js.map +1 -0
- package/dist/pwa/shared/build/fnv1a.d.ts +5 -0
- package/dist/pwa/shared/build/fnv1a.d.ts.map +1 -0
- package/dist/pwa/shared/build/fnv1a.js +17 -0
- package/dist/pwa/shared/build/fnv1a.js.map +1 -0
- package/dist/pwa/shared/build/index.d.ts +2 -0
- package/dist/pwa/shared/build/index.js +2 -0
- package/dist/pwa/shared/commands/commands.d.ts +39 -0
- package/dist/pwa/shared/commands/commands.d.ts.map +1 -0
- package/dist/pwa/shared/commands/commands.js +51 -0
- package/dist/pwa/shared/commands/commands.js.map +1 -0
- package/dist/pwa/shared/commands/index.d.ts +2 -0
- package/dist/pwa/shared/commands/index.js +2 -0
- package/dist/pwa/shared/config/config.d.ts +231 -0
- package/dist/pwa/shared/config/config.d.ts.map +1 -0
- package/dist/pwa/shared/config/config.js +136 -0
- package/dist/pwa/shared/config/config.js.map +1 -0
- package/dist/pwa/shared/config/index.d.ts +2 -0
- package/dist/pwa/shared/config/index.js +2 -0
- package/dist/pwa/shared/config/presets.d.ts +19 -0
- package/dist/pwa/shared/config/presets.d.ts.map +1 -0
- package/dist/pwa/shared/config/presets.js +45 -0
- package/dist/pwa/shared/config/presets.js.map +1 -0
- package/dist/pwa/shared/manifest/index.d.ts +2 -0
- package/dist/pwa/shared/manifest/index.js +2 -0
- package/dist/pwa/shared/manifest/manifest.d.ts +53 -0
- package/dist/pwa/shared/manifest/manifest.d.ts.map +1 -0
- package/dist/pwa/shared/manifest/manifest.js +87 -0
- package/dist/pwa/shared/manifest/manifest.js.map +1 -0
- package/dist/pwa/shared/strategy/index.d.ts +2 -0
- package/dist/pwa/shared/strategy/index.js +2 -0
- package/dist/pwa/shared/strategy/pattern.d.ts +6 -0
- package/dist/pwa/shared/strategy/pattern.d.ts.map +1 -0
- package/dist/pwa/shared/strategy/pattern.js +23 -0
- package/dist/pwa/shared/strategy/pattern.js.map +1 -0
- package/dist/pwa/shared/strategy/strategy.d.ts +41 -0
- package/dist/pwa/shared/strategy/strategy.d.ts.map +1 -0
- package/dist/pwa/shared/strategy/strategy.js +60 -0
- package/dist/pwa/shared/strategy/strategy.js.map +1 -0
- package/dist/pwa/shared/worker-host/index.d.ts +2 -0
- package/dist/pwa/shared/worker-host/index.js +2 -0
- package/dist/pwa/shared/worker-host/worker-host.d.ts +22 -0
- package/dist/pwa/shared/worker-host/worker-host.d.ts.map +1 -0
- package/dist/pwa/shared/worker-host/worker-host.js +11 -0
- package/dist/pwa/shared/worker-host/worker-host.js.map +1 -0
- package/dist/pwa/splash/devices.d.ts +85 -0
- package/dist/pwa/splash/devices.d.ts.map +1 -0
- package/dist/pwa/splash/devices.js +109 -0
- package/dist/pwa/splash/devices.js.map +1 -0
- package/dist/pwa/splash/index.d.ts +2 -0
- package/dist/pwa/splash/index.js +2 -0
- package/dist/pwa/splash/splash.d.ts +29 -0
- package/dist/pwa/splash/splash.d.ts.map +1 -0
- package/dist/pwa/splash/splash.js +38 -0
- package/dist/pwa/splash/splash.js.map +1 -0
- package/dist/pwa/vite/build/build-plugin.d.ts +15 -0
- package/dist/pwa/vite/build/build-plugin.d.ts.map +1 -0
- package/dist/pwa/vite/build/build-plugin.js +105 -0
- package/dist/pwa/vite/build/build-plugin.js.map +1 -0
- package/dist/pwa/vite/build/build-state.d.ts +17 -0
- package/dist/pwa/vite/build/build-state.d.ts.map +1 -0
- package/dist/pwa/vite/build/build-state.js +9 -0
- package/dist/pwa/vite/build/build-state.js.map +1 -0
- package/dist/pwa/vite/build/headers.d.ts +10 -0
- package/dist/pwa/vite/build/headers.d.ts.map +1 -0
- package/dist/pwa/vite/build/headers.js +26 -0
- package/dist/pwa/vite/build/headers.js.map +1 -0
- package/dist/pwa/vite/build/index.d.ts +3 -0
- package/dist/pwa/vite/build/index.js +3 -0
- package/dist/pwa/vite/build/output-files.d.ts +12 -0
- package/dist/pwa/vite/build/output-files.d.ts.map +1 -0
- package/dist/pwa/vite/build/output-files.js +35 -0
- package/dist/pwa/vite/build/output-files.js.map +1 -0
- package/dist/pwa/vite/build/start-setup.d.ts +19 -0
- package/dist/pwa/vite/build/start-setup.d.ts.map +1 -0
- package/dist/pwa/vite/build/start-setup.js +27 -0
- package/dist/pwa/vite/build/start-setup.js.map +1 -0
- package/dist/pwa/vite/client-module/build-version.d.ts +15 -0
- package/dist/pwa/vite/client-module/build-version.d.ts.map +1 -0
- package/dist/pwa/vite/client-module/build-version.js +45 -0
- package/dist/pwa/vite/client-module/build-version.js.map +1 -0
- package/dist/pwa/vite/client-module/client-info.d.ts +22 -0
- package/dist/pwa/vite/client-module/client-info.d.ts.map +1 -0
- package/dist/pwa/vite/client-module/client-info.js +38 -0
- package/dist/pwa/vite/client-module/client-info.js.map +1 -0
- package/dist/pwa/vite/client-module/client-module.d.ts +16 -0
- package/dist/pwa/vite/client-module/client-module.d.ts.map +1 -0
- package/dist/pwa/vite/client-module/client-module.js +47 -0
- package/dist/pwa/vite/client-module/client-module.js.map +1 -0
- package/dist/pwa/vite/client-module/index.d.ts +2 -0
- package/dist/pwa/vite/client-module/index.js +2 -0
- package/dist/pwa/vite/dev/dev-plugin.d.ts +13 -0
- package/dist/pwa/vite/dev/dev-plugin.d.ts.map +1 -0
- package/dist/pwa/vite/dev/dev-plugin.js +61 -0
- package/dist/pwa/vite/dev/dev-plugin.js.map +1 -0
- package/dist/pwa/vite/dev/index.d.ts +2 -0
- package/dist/pwa/vite/dev/index.js +2 -0
- package/dist/pwa/vite/index.d.ts +2 -0
- package/dist/pwa/vite/index.js +2 -0
- package/dist/pwa/vite/precache/asset-kind.d.ts +7 -0
- package/dist/pwa/vite/precache/asset-kind.d.ts.map +1 -0
- package/dist/pwa/vite/precache/asset-kind.js +24 -0
- package/dist/pwa/vite/precache/asset-kind.js.map +1 -0
- package/dist/pwa/vite/precache/index.d.ts +2 -0
- package/dist/pwa/vite/precache/index.js +2 -0
- package/dist/pwa/vite/precache/precache.d.ts +39 -0
- package/dist/pwa/vite/precache/precache.d.ts.map +1 -0
- package/dist/pwa/vite/precache/precache.js +60 -0
- package/dist/pwa/vite/precache/precache.js.map +1 -0
- package/dist/pwa/vite/precache/revision.d.ts +5 -0
- package/dist/pwa/vite/precache/revision.d.ts.map +1 -0
- package/dist/pwa/vite/precache/revision.js +8 -0
- package/dist/pwa/vite/precache/revision.js.map +1 -0
- package/dist/pwa/vite/precache/url-path.d.ts +12 -0
- package/dist/pwa/vite/precache/url-path.d.ts.map +1 -0
- package/dist/pwa/vite/precache/url-path.js +23 -0
- package/dist/pwa/vite/precache/url-path.js.map +1 -0
- package/dist/pwa/vite/vite.d.ts +14 -0
- package/dist/pwa/vite/vite.d.ts.map +1 -0
- package/dist/pwa/vite/vite.js +27 -0
- package/dist/pwa/vite/vite.js.map +1 -0
- package/dist/pwa/vite/worker-bundle/build-module.d.ts +11 -0
- package/dist/pwa/vite/worker-bundle/build-module.d.ts.map +1 -0
- package/dist/pwa/vite/worker-bundle/build-module.js +23 -0
- package/dist/pwa/vite/worker-bundle/build-module.js.map +1 -0
- package/dist/pwa/vite/worker-bundle/entry.d.ts +10 -0
- package/dist/pwa/vite/worker-bundle/entry.d.ts.map +1 -0
- package/dist/pwa/vite/worker-bundle/entry.js +25 -0
- package/dist/pwa/vite/worker-bundle/entry.js.map +1 -0
- package/dist/pwa/vite/worker-bundle/index.d.ts +2 -0
- package/dist/pwa/vite/worker-bundle/index.js +2 -0
- package/dist/pwa/vite/worker-bundle/kill-switch.d.ts +9 -0
- package/dist/pwa/vite/worker-bundle/kill-switch.d.ts.map +1 -0
- package/dist/pwa/vite/worker-bundle/kill-switch.js +27 -0
- package/dist/pwa/vite/worker-bundle/kill-switch.js.map +1 -0
- package/dist/pwa/vite/worker-bundle/worker-bundle.d.ts +25 -0
- package/dist/pwa/vite/worker-bundle/worker-bundle.d.ts.map +1 -0
- package/dist/pwa/vite/worker-bundle/worker-bundle.js +49 -0
- package/dist/pwa/vite/worker-bundle/worker-bundle.js.map +1 -0
- package/dist/pwa/worker/commands/commands.d.ts +13 -0
- package/dist/pwa/worker/commands/commands.d.ts.map +1 -0
- package/dist/pwa/worker/commands/commands.js +23 -0
- package/dist/pwa/worker/commands/commands.js.map +1 -0
- package/dist/pwa/worker/commands/index.d.ts +2 -0
- package/dist/pwa/worker/commands/index.js +2 -0
- package/dist/pwa/worker/global-scope/global-scope.d.ts +35 -0
- package/dist/pwa/worker/global-scope/global-scope.d.ts.map +1 -0
- package/dist/pwa/worker/global-scope/global-scope.js +45 -0
- package/dist/pwa/worker/global-scope/global-scope.js.map +1 -0
- package/dist/pwa/worker/global-scope/index.d.ts +2 -0
- package/dist/pwa/worker/global-scope/index.js +2 -0
- package/dist/pwa/worker/index.d.ts +3 -0
- package/dist/pwa/worker/index.js +3 -0
- package/dist/pwa/worker/lifecycle/index.d.ts +2 -0
- package/dist/pwa/worker/lifecycle/index.js +2 -0
- package/dist/pwa/worker/lifecycle/lifecycle.d.ts +19 -0
- package/dist/pwa/worker/lifecycle/lifecycle.d.ts.map +1 -0
- package/dist/pwa/worker/lifecycle/lifecycle.js +32 -0
- package/dist/pwa/worker/lifecycle/lifecycle.js.map +1 -0
- package/dist/pwa/worker/messages/index.d.ts +2 -0
- package/dist/pwa/worker/messages/index.js +2 -0
- package/dist/pwa/worker/messages/messages.d.ts +16 -0
- package/dist/pwa/worker/messages/messages.d.ts.map +1 -0
- package/dist/pwa/worker/messages/messages.js +59 -0
- package/dist/pwa/worker/messages/messages.js.map +1 -0
- package/dist/pwa/worker/precache/download.d.ts +11 -0
- package/dist/pwa/worker/precache/download.d.ts.map +1 -0
- package/dist/pwa/worker/precache/download.js +26 -0
- package/dist/pwa/worker/precache/download.js.map +1 -0
- package/dist/pwa/worker/precache/index.d.ts +2 -0
- package/dist/pwa/worker/precache/index.js +2 -0
- package/dist/pwa/worker/precache/precache.d.ts +21 -0
- package/dist/pwa/worker/precache/precache.d.ts.map +1 -0
- package/dist/pwa/worker/precache/precache.js +35 -0
- package/dist/pwa/worker/precache/precache.js.map +1 -0
- package/dist/pwa/worker/requests/index.d.ts +2 -0
- package/dist/pwa/worker/requests/index.js +2 -0
- package/dist/pwa/worker/requests/pages/index.d.ts +2 -0
- package/dist/pwa/worker/requests/pages/index.js +2 -0
- package/dist/pwa/worker/requests/pages/pages.d.ts +25 -0
- package/dist/pwa/worker/requests/pages/pages.d.ts.map +1 -0
- package/dist/pwa/worker/requests/pages/pages.js +74 -0
- package/dist/pwa/worker/requests/pages/pages.js.map +1 -0
- package/dist/pwa/worker/requests/requests.d.ts +17 -0
- package/dist/pwa/worker/requests/requests.d.ts.map +1 -0
- package/dist/pwa/worker/requests/requests.js +28 -0
- package/dist/pwa/worker/requests/requests.js.map +1 -0
- package/dist/pwa/worker/requests/strategies/cache-store.d.ts +19 -0
- package/dist/pwa/worker/requests/strategies/cache-store.d.ts.map +1 -0
- package/dist/pwa/worker/requests/strategies/cache-store.js +50 -0
- package/dist/pwa/worker/requests/strategies/cache-store.js.map +1 -0
- package/dist/pwa/worker/requests/strategies/index.d.ts +3 -0
- package/dist/pwa/worker/requests/strategies/index.js +3 -0
- package/dist/pwa/worker/requests/strategies/kinds.d.ts +11 -0
- package/dist/pwa/worker/requests/strategies/kinds.d.ts.map +1 -0
- package/dist/pwa/worker/requests/strategies/kinds.js +35 -0
- package/dist/pwa/worker/requests/strategies/kinds.js.map +1 -0
- package/dist/pwa/worker/requests/strategies/network-first.d.ts +18 -0
- package/dist/pwa/worker/requests/strategies/network-first.d.ts.map +1 -0
- package/dist/pwa/worker/requests/strategies/network-first.js +30 -0
- package/dist/pwa/worker/requests/strategies/network-first.js.map +1 -0
- package/dist/pwa/worker/requests/strategies/strategies.d.ts +16 -0
- package/dist/pwa/worker/requests/strategies/strategies.d.ts.map +1 -0
- package/dist/pwa/worker/requests/strategies/strategies.js +22 -0
- package/dist/pwa/worker/requests/strategies/strategies.js.map +1 -0
- package/dist/pwa/worker/worker.d.ts +23 -0
- package/dist/pwa/worker/worker.d.ts.map +1 -0
- package/dist/pwa/worker/worker.js +53 -0
- package/dist/pwa/worker/worker.js.map +1 -0
- package/dist/recipes/account-lost/account-lost.d.ts +24 -0
- package/dist/recipes/account-lost/account-lost.d.ts.map +1 -0
- package/dist/recipes/account-lost/account-lost.js +35 -0
- package/dist/recipes/account-lost/account-lost.js.map +1 -0
- package/dist/recipes/account-lost/index.d.ts +2 -0
- package/dist/recipes/account-lost/index.js +2 -0
- package/dist/recipes/account-switcher/account-switcher.d.ts +25 -0
- package/dist/recipes/account-switcher/account-switcher.d.ts.map +1 -0
- package/dist/recipes/account-switcher/account-switcher.js +124 -0
- package/dist/recipes/account-switcher/account-switcher.js.map +1 -0
- package/dist/recipes/account-switcher/index.d.ts +2 -0
- package/dist/recipes/account-switcher/index.js +2 -0
- package/dist/recipes/frame/app-shell.d.ts +37 -0
- package/dist/recipes/frame/app-shell.d.ts.map +1 -0
- package/dist/recipes/frame/app-shell.js +46 -0
- package/dist/recipes/frame/app-shell.js.map +1 -0
- package/dist/recipes/frame/frame/frame.d.ts +32 -0
- package/dist/recipes/frame/frame/frame.d.ts.map +1 -0
- package/dist/recipes/frame/frame/frame.js +135 -0
- package/dist/recipes/frame/frame/frame.js.map +1 -0
- package/dist/recipes/frame/frame/geometry.d.ts +22 -0
- package/dist/recipes/frame/frame/geometry.d.ts.map +1 -0
- package/dist/recipes/frame/frame/geometry.js +36 -0
- package/dist/recipes/frame/frame/geometry.js.map +1 -0
- package/dist/recipes/frame/frame/index.d.ts +2 -0
- package/dist/recipes/frame/frame/index.js +2 -0
- package/dist/recipes/frame/frame/motion.d.ts +20 -0
- package/dist/recipes/frame/frame/motion.d.ts.map +1 -0
- package/dist/recipes/frame/frame/motion.js +58 -0
- package/dist/recipes/frame/frame/motion.js.map +1 -0
- package/dist/recipes/frame/frame/state.d.ts +17 -0
- package/dist/recipes/frame/frame/state.d.ts.map +1 -0
- package/dist/recipes/frame/frame/state.js +27 -0
- package/dist/recipes/frame/frame/state.js.map +1 -0
- package/dist/recipes/frame/header.d.ts +18 -0
- package/dist/recipes/frame/header.d.ts.map +1 -0
- package/dist/recipes/frame/header.js +43 -0
- package/dist/recipes/frame/header.js.map +1 -0
- package/dist/recipes/frame/index.d.ts +4 -0
- package/dist/recipes/frame/index.js +4 -0
- package/dist/recipes/frame/sidebar/blocks.d.ts +31 -0
- package/dist/recipes/frame/sidebar/blocks.d.ts.map +1 -0
- package/dist/recipes/frame/sidebar/blocks.js +126 -0
- package/dist/recipes/frame/sidebar/blocks.js.map +1 -0
- package/dist/recipes/frame/sidebar/index.d.ts +4 -0
- package/dist/recipes/frame/sidebar/index.js +4 -0
- package/dist/recipes/frame/sidebar/nav.d.ts +22 -0
- package/dist/recipes/frame/sidebar/nav.d.ts.map +1 -0
- package/dist/recipes/frame/sidebar/nav.js +14 -0
- package/dist/recipes/frame/sidebar/nav.js.map +1 -0
- package/dist/recipes/frame/sidebar/resize-handle.d.ts +12 -0
- package/dist/recipes/frame/sidebar/resize-handle.d.ts.map +1 -0
- package/dist/recipes/frame/sidebar/resize-handle.js +90 -0
- package/dist/recipes/frame/sidebar/resize-handle.js.map +1 -0
- package/dist/recipes/frame/sidebar/sidebar.d.ts +24 -0
- package/dist/recipes/frame/sidebar/sidebar.d.ts.map +1 -0
- package/dist/recipes/frame/sidebar/sidebar.js +30 -0
- package/dist/recipes/frame/sidebar/sidebar.js.map +1 -0
- package/dist/recipes/frame/sidebar/width.d.ts +9 -0
- package/dist/recipes/frame/sidebar/width.d.ts.map +1 -0
- package/dist/recipes/frame/sidebar/width.js +22 -0
- package/dist/recipes/frame/sidebar/width.js.map +1 -0
- package/dist/recipes/gate-screens/gate-screens.d.ts +52 -0
- package/dist/recipes/gate-screens/gate-screens.d.ts.map +1 -0
- package/dist/recipes/gate-screens/gate-screens.js +192 -0
- package/dist/recipes/gate-screens/gate-screens.js.map +1 -0
- package/dist/recipes/gate-screens/index.d.ts +2 -0
- package/dist/recipes/gate-screens/index.js +2 -0
- package/dist/recipes/kabuki-devtools/index.d.ts +2 -0
- package/dist/recipes/kabuki-devtools/index.js +2 -0
- package/dist/recipes/kabuki-devtools/ink/index.d.ts +2 -0
- package/dist/recipes/kabuki-devtools/ink/index.js +2 -0
- package/dist/recipes/kabuki-devtools/ink/ink.d.ts +37 -0
- package/dist/recipes/kabuki-devtools/ink/ink.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/ink/ink.js +37 -0
- package/dist/recipes/kabuki-devtools/ink/ink.js.map +1 -0
- package/dist/recipes/kabuki-devtools/kabuki-devtools.d.ts +40 -0
- package/dist/recipes/kabuki-devtools/kabuki-devtools.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/kabuki-devtools.js +279 -0
- package/dist/recipes/kabuki-devtools/kabuki-devtools.js.map +1 -0
- package/dist/recipes/kabuki-devtools/map/beat/beat.d.ts +13 -0
- package/dist/recipes/kabuki-devtools/map/beat/beat.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/map/beat/beat.js +223 -0
- package/dist/recipes/kabuki-devtools/map/beat/beat.js.map +1 -0
- package/dist/recipes/kabuki-devtools/map/beat/index.d.ts +2 -0
- package/dist/recipes/kabuki-devtools/map/beat/index.js +2 -0
- package/dist/recipes/kabuki-devtools/map/canvas/canvas.d.ts +29 -0
- package/dist/recipes/kabuki-devtools/map/canvas/canvas.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/map/canvas/canvas.js +221 -0
- package/dist/recipes/kabuki-devtools/map/canvas/canvas.js.map +1 -0
- package/dist/recipes/kabuki-devtools/map/canvas/index.d.ts +2 -0
- package/dist/recipes/kabuki-devtools/map/canvas/index.js +2 -0
- package/dist/recipes/kabuki-devtools/map/index.d.ts +2 -0
- package/dist/recipes/kabuki-devtools/map/index.js +2 -0
- package/dist/recipes/kabuki-devtools/map/link/index.d.ts +2 -0
- package/dist/recipes/kabuki-devtools/map/link/index.js +2 -0
- package/dist/recipes/kabuki-devtools/map/link/link.d.ts +22 -0
- package/dist/recipes/kabuki-devtools/map/link/link.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/map/link/link.js +72 -0
- package/dist/recipes/kabuki-devtools/map/link/link.js.map +1 -0
- package/dist/recipes/kabuki-devtools/map/map.d.ts +26 -0
- package/dist/recipes/kabuki-devtools/map/map.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/map/map.js +362 -0
- package/dist/recipes/kabuki-devtools/map/map.js.map +1 -0
- package/dist/recipes/kabuki-devtools/map/node/index.d.ts +2 -0
- package/dist/recipes/kabuki-devtools/map/node/index.js +2 -0
- package/dist/recipes/kabuki-devtools/map/node/node.d.ts +25 -0
- package/dist/recipes/kabuki-devtools/map/node/node.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/map/node/node.js +251 -0
- package/dist/recipes/kabuki-devtools/map/node/node.js.map +1 -0
- package/dist/recipes/kabuki-devtools/map/popup/index.d.ts +2 -0
- package/dist/recipes/kabuki-devtools/map/popup/index.js +2 -0
- package/dist/recipes/kabuki-devtools/map/popup/popup.d.ts +12 -0
- package/dist/recipes/kabuki-devtools/map/popup/popup.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/map/popup/popup.js +72 -0
- package/dist/recipes/kabuki-devtools/map/popup/popup.js.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/beats.d.ts +36 -0
- package/dist/recipes/kabuki-devtools/scene/beats.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/beats.js +46 -0
- package/dist/recipes/kabuki-devtools/scene/beats.js.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/index.d.ts +5 -0
- package/dist/recipes/kabuki-devtools/scene/index.js +3 -0
- package/dist/recipes/kabuki-devtools/scene/layout/index.d.ts +3 -0
- package/dist/recipes/kabuki-devtools/scene/layout/index.js +2 -0
- package/dist/recipes/kabuki-devtools/scene/layout/layout.d.ts +6 -0
- package/dist/recipes/kabuki-devtools/scene/layout/layout.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/layout/layout.js +8 -0
- package/dist/recipes/kabuki-devtools/scene/layout/layout.js.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/layout/outline.d.ts +5 -0
- package/dist/recipes/kabuki-devtools/scene/layout/outline.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/layout/outline.js +84 -0
- package/dist/recipes/kabuki-devtools/scene/layout/outline.js.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/layout/shapes.d.ts +57 -0
- package/dist/recipes/kabuki-devtools/scene/layout/shapes.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/layout/shapes.js +38 -0
- package/dist/recipes/kabuki-devtools/scene/layout/shapes.js.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/layout/tree.d.ts +5 -0
- package/dist/recipes/kabuki-devtools/scene/layout/tree.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/layout/tree.js +146 -0
- package/dist/recipes/kabuki-devtools/scene/layout/tree.js.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/nodes.d.ts +67 -0
- package/dist/recipes/kabuki-devtools/scene/nodes.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/nodes.js +39 -0
- package/dist/recipes/kabuki-devtools/scene/nodes.js.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/scene.d.ts +78 -0
- package/dist/recipes/kabuki-devtools/scene/scene.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/scene.js +128 -0
- package/dist/recipes/kabuki-devtools/scene/scene.js.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/tree.d.ts +20 -0
- package/dist/recipes/kabuki-devtools/scene/tree.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/scene/tree.js +85 -0
- package/dist/recipes/kabuki-devtools/scene/tree.js.map +1 -0
- package/dist/recipes/kabuki-devtools/sheet/index.d.ts +2 -0
- package/dist/recipes/kabuki-devtools/sheet/index.js +2 -0
- package/dist/recipes/kabuki-devtools/sheet/sheet.d.ts +33 -0
- package/dist/recipes/kabuki-devtools/sheet/sheet.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/sheet/sheet.js +129 -0
- package/dist/recipes/kabuki-devtools/sheet/sheet.js.map +1 -0
- package/dist/recipes/kabuki-devtools/timeline/index.d.ts +2 -0
- package/dist/recipes/kabuki-devtools/timeline/index.js +2 -0
- package/dist/recipes/kabuki-devtools/timeline/timeline.d.ts +25 -0
- package/dist/recipes/kabuki-devtools/timeline/timeline.d.ts.map +1 -0
- package/dist/recipes/kabuki-devtools/timeline/timeline.js +122 -0
- package/dist/recipes/kabuki-devtools/timeline/timeline.js.map +1 -0
- package/dist/recipes/key-bindings/index.d.ts +2 -0
- package/dist/recipes/key-bindings/index.js +2 -0
- package/dist/recipes/key-bindings/key-bindings.d.ts +19 -0
- package/dist/recipes/key-bindings/key-bindings.d.ts.map +1 -0
- package/dist/recipes/key-bindings/key-bindings.js +61 -0
- package/dist/recipes/key-bindings/key-bindings.js.map +1 -0
- package/dist/recipes/local-sign-in/index.d.ts +2 -0
- package/dist/recipes/local-sign-in/index.js +2 -0
- package/dist/recipes/local-sign-in/local-sign-in.d.ts +18 -0
- package/dist/recipes/local-sign-in/local-sign-in.d.ts.map +1 -0
- package/dist/recipes/local-sign-in/local-sign-in.js +109 -0
- package/dist/recipes/local-sign-in/local-sign-in.js.map +1 -0
- package/dist/recipes/parts/email-privacy/email-privacy.d.ts +24 -0
- package/dist/recipes/parts/email-privacy/email-privacy.d.ts.map +1 -0
- package/dist/recipes/parts/email-privacy/email-privacy.js +35 -0
- package/dist/recipes/parts/email-privacy/email-privacy.js.map +1 -0
- package/dist/recipes/parts/email-privacy/index.d.ts +2 -0
- package/dist/recipes/parts/email-privacy/index.js +2 -0
- package/dist/recipes/swipe-row/index.d.ts +2 -0
- package/dist/recipes/swipe-row/index.js +2 -0
- package/dist/recipes/swipe-row/swipe-row.d.ts +16 -0
- package/dist/recipes/swipe-row/swipe-row.d.ts.map +1 -0
- package/dist/recipes/swipe-row/swipe-row.js +96 -0
- package/dist/recipes/swipe-row/swipe-row.js.map +1 -0
- package/dist/recipes/thumb-picker/choice.d.ts +18 -0
- package/dist/recipes/thumb-picker/choice.d.ts.map +1 -0
- package/dist/recipes/thumb-picker/choice.js +0 -0
- package/dist/recipes/thumb-picker/index.d.ts +3 -0
- package/dist/recipes/thumb-picker/index.js +2 -0
- package/dist/recipes/thumb-picker/list.d.ts +18 -0
- package/dist/recipes/thumb-picker/list.d.ts.map +1 -0
- package/dist/recipes/thumb-picker/list.js +48 -0
- package/dist/recipes/thumb-picker/list.js.map +1 -0
- package/dist/recipes/thumb-picker/lock.d.ts +18 -0
- package/dist/recipes/thumb-picker/lock.d.ts.map +1 -0
- package/dist/recipes/thumb-picker/lock.js +71 -0
- package/dist/recipes/thumb-picker/lock.js.map +1 -0
- package/dist/recipes/thumb-picker/menu.d.ts +19 -0
- package/dist/recipes/thumb-picker/menu.d.ts.map +1 -0
- package/dist/recipes/thumb-picker/menu.js +127 -0
- package/dist/recipes/thumb-picker/menu.js.map +1 -0
- package/dist/recipes/thumb-picker/thumb-picker.d.ts +31 -0
- package/dist/recipes/thumb-picker/thumb-picker.d.ts.map +1 -0
- package/dist/recipes/thumb-picker/thumb-picker.js +65 -0
- package/dist/recipes/thumb-picker/thumb-picker.js.map +1 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.js +5 -0
- package/dist/server/live/index.d.ts +2 -0
- package/dist/server/live/index.js +2 -0
- package/dist/server/live/live.d.ts +56 -0
- package/dist/server/live/live.d.ts.map +1 -0
- package/dist/server/live/live.js +98 -0
- package/dist/server/live/live.js.map +1 -0
- package/dist/server/serve/index.d.ts +2 -0
- package/dist/server/serve/index.js +2 -0
- package/dist/server/serve/serve.d.ts +48 -0
- package/dist/server/serve/serve.d.ts.map +1 -0
- package/dist/server/serve/serve.js +47 -0
- package/dist/server/serve/serve.js.map +1 -0
- package/dist/server/stage/index.d.ts +2 -0
- package/dist/server/stage/index.js +2 -0
- package/dist/server/stage/stage.d.ts +14 -0
- package/dist/server/stage/stage.d.ts.map +1 -0
- package/dist/server/stage/stage.js +28 -0
- package/dist/server/stage/stage.js.map +1 -0
- package/dist/server/worker/index.d.ts +2 -0
- package/dist/server/worker/index.js +2 -0
- package/dist/server/worker/worker.d.ts +19 -0
- package/dist/server/worker/worker.d.ts.map +1 -0
- package/dist/server/worker/worker.js +18 -0
- package/dist/server/worker/worker.js.map +1 -0
- package/dist/theme/cookie.d.ts +6 -0
- package/dist/theme/cookie.d.ts.map +1 -0
- package/dist/theme/cookie.js +21 -0
- package/dist/theme/cookie.js.map +1 -0
- package/dist/theme/css/font-inter.css +2 -0
- package/dist/theme/css/global.css +62 -0
- package/dist/theme/css/shiki.css +71 -0
- package/dist/theme/css/sources.css +6 -0
- package/dist/theme/css/theme.css +170 -0
- package/dist/theme/css/typography.css +1 -0
- package/dist/theme/document.d.ts +6 -0
- package/dist/theme/document.d.ts.map +1 -0
- package/dist/theme/document.js +26 -0
- package/dist/theme/document.js.map +1 -0
- package/dist/theme/index.d.ts +4 -0
- package/dist/theme/index.js +4 -0
- package/dist/theme/model.d.ts +9 -0
- package/dist/theme/model.d.ts.map +1 -0
- package/dist/theme/model.js +13 -0
- package/dist/theme/model.js.map +1 -0
- package/dist/theme/status-bar.d.ts +10 -0
- package/dist/theme/status-bar.d.ts.map +1 -0
- package/dist/theme/status-bar.js +19 -0
- package/dist/theme/status-bar.js.map +1 -0
- package/dist/theme/store.d.ts +6 -0
- package/dist/theme/store.d.ts.map +1 -0
- package/dist/theme/store.js +45 -0
- package/dist/theme/store.js.map +1 -0
- package/dist/theme/theme.d.ts +22 -0
- package/dist/theme/theme.d.ts.map +1 -0
- package/dist/theme/theme.js +37 -0
- package/dist/theme/theme.js.map +1 -0
- package/package.json +255 -3
- package/src/app/apis/apis.ts +109 -0
- package/src/app/apis/index.ts +13 -0
- package/src/app/app.tsx +232 -0
- package/src/app/assemble/assemble.tsx +339 -0
- package/src/app/assemble/index.ts +7 -0
- package/src/app/assemble/public.ts +98 -0
- package/src/app/gate/domain/check.ts +76 -0
- package/src/app/gate/domain/index.ts +3 -0
- package/src/app/gate/domain/machine.ts +439 -0
- package/src/app/gate/domain/services.ts +46 -0
- package/src/app/gate/domain/types.ts +36 -0
- package/src/app/gate/gate.ts +501 -0
- package/src/app/gate/index.ts +3 -0
- package/src/app/gate/memory.ts +56 -0
- package/src/app/gate/react.tsx +139 -0
- package/src/app/host/host.ts +166 -0
- package/src/app/host/index.ts +10 -0
- package/src/app/index.ts +10 -0
- package/src/app/session/define.ts +75 -0
- package/src/app/session/index.ts +17 -0
- package/src/app/session/keeper.ts +34 -0
- package/src/app/session/open.ts +207 -0
- package/src/app/session/react.tsx +38 -0
- package/src/app/session/status.ts +46 -0
- package/src/app/web-host.ts +104 -0
- package/src/client/index.ts +9 -0
- package/src/client/root/index.ts +7 -0
- package/src/client/root/root.tsx +149 -0
- package/src/client/server.ts +3 -0
- package/src/client/theme/index.ts +1 -0
- package/src/client/theme/tanstack-start.ts +5 -0
- package/src/components/hooks/use-element-width.ts +24 -0
- package/src/components/hooks/use-mobile.ts +21 -0
- package/src/components/hooks/use-scroll.ts +292 -0
- package/src/components/lib/lucide.ts +1 -0
- package/src/components/lib/motion.ts +1 -0
- package/src/components/lib/scrollStyles.ts +44 -0
- package/src/components/lib/shadow-dom.tsx +86 -0
- package/src/components/lib/utils.ts +6 -0
- package/src/components/ui/accordion.tsx +71 -0
- package/src/components/ui/alert-dialog.tsx +185 -0
- package/src/components/ui/alert.tsx +75 -0
- package/src/components/ui/aspect-ratio.tsx +22 -0
- package/src/components/ui/attachment.tsx +207 -0
- package/src/components/ui/avatar.tsx +106 -0
- package/src/components/ui/badge.tsx +51 -0
- package/src/components/ui/breadcrumb.tsx +124 -0
- package/src/components/ui/bubble.tsx +127 -0
- package/src/components/ui/button-group.tsx +87 -0
- package/src/components/ui/button.tsx +57 -0
- package/src/components/ui/calendar.tsx +221 -0
- package/src/components/ui/card.tsx +102 -0
- package/src/components/ui/carousel.tsx +240 -0
- package/src/components/ui/chart.tsx +370 -0
- package/src/components/ui/checkbox.tsx +28 -0
- package/src/components/ui/collapsible.tsx +19 -0
- package/src/components/ui/combobox.tsx +295 -0
- package/src/components/ui/command.tsx +196 -0
- package/src/components/ui/context-menu.tsx +270 -0
- package/src/components/ui/dialog.tsx +157 -0
- package/src/components/ui/direction.tsx +4 -0
- package/src/components/ui/drawer.tsx +224 -0
- package/src/components/ui/dropdown-menu.tsx +275 -0
- package/src/components/ui/empty.tsx +103 -0
- package/src/components/ui/field.tsx +236 -0
- package/src/components/ui/file-tree.tsx +619 -0
- package/src/components/ui/google-button.tsx +194 -0
- package/src/components/ui/hover-card.tsx +50 -0
- package/src/components/ui/input-group.tsx +158 -0
- package/src/components/ui/input-otp.tsx +84 -0
- package/src/components/ui/input.tsx +19 -0
- package/src/components/ui/item.tsx +201 -0
- package/src/components/ui/kbd.tsx +26 -0
- package/src/components/ui/label.tsx +19 -0
- package/src/components/ui/marker.tsx +70 -0
- package/src/components/ui/menubar.tsx +280 -0
- package/src/components/ui/message-scroller.tsx +129 -0
- package/src/components/ui/message.tsx +91 -0
- package/src/components/ui/native-select.tsx +60 -0
- package/src/components/ui/navigation-menu.tsx +167 -0
- package/src/components/ui/pagination.tsx +130 -0
- package/src/components/ui/popover.tsx +87 -0
- package/src/components/ui/progress.tsx +82 -0
- package/src/components/ui/questionnaire.tsx +324 -0
- package/src/components/ui/radio-group.tsx +35 -0
- package/src/components/ui/resizable.tsx +49 -0
- package/src/components/ui/scroll-area.tsx +60 -0
- package/src/components/ui/select.tsx +200 -0
- package/src/components/ui/separator.tsx +22 -0
- package/src/components/ui/sheet.tsx +133 -0
- package/src/components/ui/skeleton.tsx +13 -0
- package/src/components/ui/slider.tsx +51 -0
- package/src/components/ui/sonner.tsx +43 -0
- package/src/components/ui/spinner.tsx +10 -0
- package/src/components/ui/switch.tsx +31 -0
- package/src/components/ui/table.tsx +113 -0
- package/src/components/ui/tabs.tsx +81 -0
- package/src/components/ui/textarea.tsx +17 -0
- package/src/components/ui/toast.tsx +234 -0
- package/src/components/ui/toggle-group.tsx +87 -0
- package/src/components/ui/toggle.tsx +42 -0
- package/src/components/ui/tooltip.tsx +65 -0
- package/src/components/viewers/diff-viewer/align.ts +83 -0
- package/src/components/viewers/diff-viewer/collapse.ts +102 -0
- package/src/components/viewers/diff-viewer/diff-viewer.tsx +605 -0
- package/src/components/viewers/diff-viewer/index.ts +8 -0
- package/src/components/viewers/diff-viewer/render-model.ts +123 -0
- package/src/components/viewers/diff-viewer/sync-rows.ts +41 -0
- package/src/components/viewers/file-tree/expand.ts +58 -0
- package/src/components/viewers/file-tree/file-tree.tsx +199 -0
- package/src/components/viewers/file-tree/index.ts +2 -0
- package/src/components/viewers/git-changes/git-changes.tsx +287 -0
- package/src/components/viewers/git-changes/index.ts +11 -0
- package/src/components/viewers/json/index.ts +3 -0
- package/src/components/viewers/json/json-editor.tsx +94 -0
- package/src/components/viewers/json/json-tree.tsx +110 -0
- package/src/components/viewers/json/json-viewer.tsx +61 -0
- package/src/components/viewers/markdown-viewer/index.ts +1 -0
- package/src/components/viewers/markdown-viewer/markdown-viewer.tsx +83 -0
- package/src/components/viewers/source-explorer/index.ts +11 -0
- package/src/components/viewers/source-explorer/initial-selection.ts +21 -0
- package/src/components/viewers/source-explorer/snapshot-tree.ts +39 -0
- package/src/components/viewers/source-explorer/source-explorer.tsx +598 -0
- package/src/components/viewers/source-viewer/index.ts +7 -0
- package/src/components/viewers/source-viewer/source-viewer.tsx +437 -0
- package/src/cosmos.decorator.tsx +38 -0
- package/src/css.d.ts +1 -0
- package/src/define/index.ts +26 -0
- package/src/feedback/index.ts +1 -0
- package/src/feedback/sound.ts +167 -0
- package/src/form/components/submit-button.tsx +52 -0
- package/src/form/context.ts +8 -0
- package/src/form/create-form-hook.ts +50 -0
- package/src/form/fields/date-picker-field.tsx +125 -0
- package/src/form/fields/select-field.tsx +110 -0
- package/src/form/fields/switch-field.tsx +72 -0
- package/src/form/fields/text-field.tsx +82 -0
- package/src/form/fields/textarea-field.tsx +82 -0
- package/src/form/index.ts +56 -0
- package/src/form/types.ts +76 -0
- package/src/input/device/device.ts +83 -0
- package/src/input/device/index.ts +1 -0
- package/src/input/gesture/index.ts +26 -0
- package/src/input/gesture/patterns/index.ts +3 -0
- package/src/input/gesture/patterns/pull-to-refresh/index.ts +6 -0
- package/src/input/gesture/patterns/pull-to-refresh/use-pull-to-refresh.ts +101 -0
- package/src/input/gesture/patterns/sidebar/index.ts +2 -0
- package/src/input/gesture/patterns/sidebar/use-sidebar.ts +201 -0
- package/src/input/gesture/recognizers/index.ts +12 -0
- package/src/input/gesture/recognizers/swipe/index.ts +12 -0
- package/src/input/gesture/recognizers/swipe/use-swipe.ts +224 -0
- package/src/input/gesture/zones/index.ts +11 -0
- package/src/input/gesture/zones/touch-input/index.ts +10 -0
- package/src/input/gesture/zones/touch-input/native-scroll.ts +74 -0
- package/src/input/gesture/zones/touch-input/touch-input.ts +322 -0
- package/src/input/gesture/zones/zone/index.ts +11 -0
- package/src/input/gesture/zones/zone/motion-pointers.ts +74 -0
- package/src/input/gesture/zones/zone/zone.tsx +291 -0
- package/src/input/index.ts +4 -0
- package/src/pwa/browser/dom-events.ts +17 -0
- package/src/pwa/browser/subscription-ref.ts +29 -0
- package/src/pwa/client/client.ts +43 -0
- package/src/pwa/client/commands/commands.ts +28 -0
- package/src/pwa/client/commands/index.ts +1 -0
- package/src/pwa/client/index.ts +1 -0
- package/src/pwa/client/registration.ts +63 -0
- package/src/pwa/client/runtime-cache.ts +24 -0
- package/src/pwa/client/status/index.ts +1 -0
- package/src/pwa/client/status/status.ts +155 -0
- package/src/pwa/extras/display-mode/display-mode.ts +64 -0
- package/src/pwa/extras/display-mode/index.ts +6 -0
- package/src/pwa/extras/index.ts +15 -0
- package/src/pwa/extras/install/index.ts +4 -0
- package/src/pwa/extras/install/install-content.tsx +45 -0
- package/src/pwa/extras/install/install-dismissal.ts +20 -0
- package/src/pwa/extras/install/install-prompt.tsx +93 -0
- package/src/pwa/extras/install/install.ts +134 -0
- package/src/pwa/extras/install/ios.ts +13 -0
- package/src/pwa/extras/install/media-query.ts +18 -0
- package/src/pwa/extras/lazy-service/index.ts +1 -0
- package/src/pwa/extras/lazy-service/lazy-service.ts +38 -0
- package/src/pwa/extras/online/index.ts +2 -0
- package/src/pwa/extras/online/offline-indicator.tsx +26 -0
- package/src/pwa/extras/online/online.ts +35 -0
- package/src/pwa/extras/storage/index.ts +1 -0
- package/src/pwa/extras/storage/storage.ts +101 -0
- package/src/pwa/index.ts +5 -0
- package/src/pwa/react/head.ts +69 -0
- package/src/pwa/react/index.ts +3 -0
- package/src/pwa/react/react.tsx +98 -0
- package/src/pwa/react/update-prompt.tsx +26 -0
- package/src/pwa/react/update-toast.ts +57 -0
- package/src/pwa/root/index.ts +1 -0
- package/src/pwa/root/root.tsx +39 -0
- package/src/pwa/rpc/client/client.ts +105 -0
- package/src/pwa/rpc/client/index.ts +1 -0
- package/src/pwa/rpc/client/page-environment.ts +88 -0
- package/src/pwa/rpc/client/platform.ts +213 -0
- package/src/pwa/rpc/client/version-skew.ts +71 -0
- package/src/pwa/rpc/handshake/handshake.ts +125 -0
- package/src/pwa/rpc/handshake/index.ts +11 -0
- package/src/pwa/rpc/worker/connections.ts +62 -0
- package/src/pwa/rpc/worker/index.ts +1 -0
- package/src/pwa/rpc/worker/keep-alive.ts +26 -0
- package/src/pwa/rpc/worker/runner-platform.ts +200 -0
- package/src/pwa/rpc/worker/worker.ts +44 -0
- package/src/pwa/shared/build/build.ts +78 -0
- package/src/pwa/shared/build/canonical-json.ts +11 -0
- package/src/pwa/shared/build/fnv1a.ts +13 -0
- package/src/pwa/shared/build/index.ts +19 -0
- package/src/pwa/shared/commands/commands.ts +60 -0
- package/src/pwa/shared/commands/index.ts +11 -0
- package/src/pwa/shared/config/config.ts +185 -0
- package/src/pwa/shared/config/index.ts +11 -0
- package/src/pwa/shared/config/presets.ts +45 -0
- package/src/pwa/shared/manifest/index.ts +5 -0
- package/src/pwa/shared/manifest/manifest.ts +102 -0
- package/src/pwa/shared/strategy/index.ts +8 -0
- package/src/pwa/shared/strategy/pattern.ts +20 -0
- package/src/pwa/shared/strategy/strategy.ts +107 -0
- package/src/pwa/shared/worker-host/index.ts +1 -0
- package/src/pwa/shared/worker-host/worker-host.ts +22 -0
- package/src/pwa/splash/devices.ts +28 -0
- package/src/pwa/splash/index.ts +1 -0
- package/src/pwa/splash/splash.ts +44 -0
- package/src/pwa/virtual.d.ts +13 -0
- package/src/pwa/vite/build/build-plugin.ts +153 -0
- package/src/pwa/vite/build/build-state.ts +17 -0
- package/src/pwa/vite/build/headers.ts +34 -0
- package/src/pwa/vite/build/index.ts +2 -0
- package/src/pwa/vite/build/output-files.ts +49 -0
- package/src/pwa/vite/build/start-setup.ts +50 -0
- package/src/pwa/vite/client-module/build-version.ts +43 -0
- package/src/pwa/vite/client-module/client-info.ts +58 -0
- package/src/pwa/vite/client-module/client-module.ts +67 -0
- package/src/pwa/vite/client-module/index.ts +1 -0
- package/src/pwa/vite/dev/dev-plugin.ts +72 -0
- package/src/pwa/vite/dev/index.ts +1 -0
- package/src/pwa/vite/index.ts +1 -0
- package/src/pwa/vite/precache/asset-kind.ts +25 -0
- package/src/pwa/vite/precache/index.ts +6 -0
- package/src/pwa/vite/precache/precache.ts +97 -0
- package/src/pwa/vite/precache/revision.ts +5 -0
- package/src/pwa/vite/precache/url-path.ts +21 -0
- package/src/pwa/vite/vite.ts +25 -0
- package/src/pwa/vite/worker-bundle/build-module.ts +28 -0
- package/src/pwa/vite/worker-bundle/entry.ts +29 -0
- package/src/pwa/vite/worker-bundle/index.ts +1 -0
- package/src/pwa/vite/worker-bundle/kill-switch.ts +23 -0
- package/src/pwa/vite/worker-bundle/worker-bundle.ts +71 -0
- package/src/pwa/worker/commands/commands.ts +31 -0
- package/src/pwa/worker/commands/index.ts +1 -0
- package/src/pwa/worker/global-scope/global-scope.ts +99 -0
- package/src/pwa/worker/global-scope/index.ts +9 -0
- package/src/pwa/worker/index.ts +1 -0
- package/src/pwa/worker/lifecycle/index.ts +1 -0
- package/src/pwa/worker/lifecycle/lifecycle.ts +52 -0
- package/src/pwa/worker/messages/index.ts +1 -0
- package/src/pwa/worker/messages/messages.ts +67 -0
- package/src/pwa/worker/precache/download.ts +38 -0
- package/src/pwa/worker/precache/index.ts +7 -0
- package/src/pwa/worker/precache/precache.ts +72 -0
- package/src/pwa/worker/requests/index.ts +1 -0
- package/src/pwa/worker/requests/pages/index.ts +1 -0
- package/src/pwa/worker/requests/pages/pages.ts +116 -0
- package/src/pwa/worker/requests/requests.ts +39 -0
- package/src/pwa/worker/requests/strategies/cache-store.ts +82 -0
- package/src/pwa/worker/requests/strategies/index.ts +2 -0
- package/src/pwa/worker/requests/strategies/kinds.ts +63 -0
- package/src/pwa/worker/requests/strategies/network-first.ts +40 -0
- package/src/pwa/worker/requests/strategies/strategies.ts +40 -0
- package/src/pwa/worker/worker.ts +99 -0
- package/src/recipes/account-lost/account-lost.tsx +66 -0
- package/src/recipes/account-lost/index.ts +5 -0
- package/src/recipes/account-switcher/account-switcher.tsx +199 -0
- package/src/recipes/account-switcher/index.ts +5 -0
- package/src/recipes/frame/app-shell.tsx +74 -0
- package/src/recipes/frame/frame/frame.tsx +204 -0
- package/src/recipes/frame/frame/geometry.ts +60 -0
- package/src/recipes/frame/frame/index.ts +1 -0
- package/src/recipes/frame/frame/motion.ts +85 -0
- package/src/recipes/frame/frame/state.ts +29 -0
- package/src/recipes/frame/header.tsx +54 -0
- package/src/recipes/frame/index.ts +16 -0
- package/src/recipes/frame/sidebar/blocks.tsx +214 -0
- package/src/recipes/frame/sidebar/index.ts +15 -0
- package/src/recipes/frame/sidebar/nav.tsx +46 -0
- package/src/recipes/frame/sidebar/resize-handle.tsx +94 -0
- package/src/recipes/frame/sidebar/sidebar.tsx +44 -0
- package/src/recipes/frame/sidebar/width.ts +23 -0
- package/src/recipes/gate-screens/gate-screens.tsx +213 -0
- package/src/recipes/gate-screens/index.ts +5 -0
- package/src/recipes/kabuki-devtools/index.ts +1 -0
- package/src/recipes/kabuki-devtools/ink/index.ts +2 -0
- package/src/recipes/kabuki-devtools/ink/ink.ts +53 -0
- package/src/recipes/kabuki-devtools/kabuki-devtools.tsx +419 -0
- package/src/recipes/kabuki-devtools/map/beat/beat.tsx +243 -0
- package/src/recipes/kabuki-devtools/map/beat/index.ts +1 -0
- package/src/recipes/kabuki-devtools/map/canvas/canvas.tsx +320 -0
- package/src/recipes/kabuki-devtools/map/canvas/index.ts +2 -0
- package/src/recipes/kabuki-devtools/map/index.ts +2 -0
- package/src/recipes/kabuki-devtools/map/link/index.ts +1 -0
- package/src/recipes/kabuki-devtools/map/link/link.tsx +107 -0
- package/src/recipes/kabuki-devtools/map/map.tsx +474 -0
- package/src/recipes/kabuki-devtools/map/node/index.ts +2 -0
- package/src/recipes/kabuki-devtools/map/node/node.tsx +437 -0
- package/src/recipes/kabuki-devtools/map/popup/index.ts +1 -0
- package/src/recipes/kabuki-devtools/map/popup/popup.tsx +73 -0
- package/src/recipes/kabuki-devtools/scene/beats.ts +110 -0
- package/src/recipes/kabuki-devtools/scene/index.ts +11 -0
- package/src/recipes/kabuki-devtools/scene/layout/index.ts +3 -0
- package/src/recipes/kabuki-devtools/scene/layout/layout.ts +14 -0
- package/src/recipes/kabuki-devtools/scene/layout/outline.ts +80 -0
- package/src/recipes/kabuki-devtools/scene/layout/shapes.ts +93 -0
- package/src/recipes/kabuki-devtools/scene/layout/tree.ts +181 -0
- package/src/recipes/kabuki-devtools/scene/nodes.ts +116 -0
- package/src/recipes/kabuki-devtools/scene/scene.ts +268 -0
- package/src/recipes/kabuki-devtools/scene/tree.ts +191 -0
- package/src/recipes/kabuki-devtools/sheet/index.ts +1 -0
- package/src/recipes/kabuki-devtools/sheet/sheet.tsx +193 -0
- package/src/recipes/kabuki-devtools/timeline/index.ts +2 -0
- package/src/recipes/kabuki-devtools/timeline/timeline.tsx +206 -0
- package/src/recipes/key-bindings/index.ts +1 -0
- package/src/recipes/key-bindings/key-bindings.tsx +80 -0
- package/src/recipes/local-sign-in/index.ts +5 -0
- package/src/recipes/local-sign-in/local-sign-in.tsx +148 -0
- package/src/recipes/parts/email-privacy/email-privacy.tsx +52 -0
- package/src/recipes/parts/email-privacy/index.ts +1 -0
- package/src/recipes/swipe-row/index.ts +1 -0
- package/src/recipes/swipe-row/swipe-row.tsx +97 -0
- package/src/recipes/thumb-picker/choice.ts +14 -0
- package/src/recipes/thumb-picker/index.ts +1 -0
- package/src/recipes/thumb-picker/list.tsx +73 -0
- package/src/recipes/thumb-picker/lock.ts +86 -0
- package/src/recipes/thumb-picker/menu.tsx +105 -0
- package/src/recipes/thumb-picker/thumb-picker.tsx +84 -0
- package/src/server/index.ts +21 -0
- package/src/server/live/index.ts +9 -0
- package/src/server/live/live.ts +219 -0
- package/src/server/serve/index.ts +6 -0
- package/src/server/serve/serve.ts +115 -0
- package/src/server/stage/index.ts +6 -0
- package/src/server/stage/stage.ts +43 -0
- package/src/server/worker/index.ts +1 -0
- package/src/server/worker/worker.ts +26 -0
- package/src/theme/cookie.ts +22 -0
- package/src/theme/css/font-inter.css +2 -0
- package/src/theme/css/global.css +62 -0
- package/src/theme/css/shiki.css +71 -0
- package/src/theme/css/sources.css +6 -0
- package/src/theme/css/theme.css +170 -0
- package/src/theme/css/typography.css +1 -0
- package/src/theme/document.ts +37 -0
- package/src/theme/index.ts +3 -0
- package/src/theme/model.ts +12 -0
- package/src/theme/status-bar.ts +28 -0
- package/src/theme/store.ts +66 -0
- package/src/theme/theme.ts +45 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { List } from "./list.js";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { AnimatePresence, motion, useReducedMotion } from "motion/react";
|
|
5
|
+
import { createPortal } from "react-dom";
|
|
6
|
+
//#region src/recipes/thumb-picker/menu.tsx
|
|
7
|
+
const EASE = [
|
|
8
|
+
.23,
|
|
9
|
+
1,
|
|
10
|
+
.32,
|
|
11
|
+
1
|
|
12
|
+
];
|
|
13
|
+
const SPRING = {
|
|
14
|
+
type: "spring",
|
|
15
|
+
duration: .18,
|
|
16
|
+
bounce: .15
|
|
17
|
+
};
|
|
18
|
+
const SLIDE = {
|
|
19
|
+
type: "spring",
|
|
20
|
+
duration: .28,
|
|
21
|
+
bounce: .1
|
|
22
|
+
};
|
|
23
|
+
const FADE = {
|
|
24
|
+
duration: .16,
|
|
25
|
+
ease: EASE
|
|
26
|
+
};
|
|
27
|
+
const AT_ONCE = { duration: 0 };
|
|
28
|
+
const BEHIND = {
|
|
29
|
+
x: -104,
|
|
30
|
+
y: -28
|
|
31
|
+
};
|
|
32
|
+
const SHAKE = [
|
|
33
|
+
0,
|
|
34
|
+
-6,
|
|
35
|
+
5,
|
|
36
|
+
-3,
|
|
37
|
+
2,
|
|
38
|
+
0
|
|
39
|
+
].map((x) => `translateX(${x}px)`);
|
|
40
|
+
/**
|
|
41
|
+
* Where letting go will take you, at the top centre of the screen and
|
|
42
|
+
* never under the fingers, over everything else dimmed and blurred: the
|
|
43
|
+
* open list in the middle, and each list it was opened from drawn back to
|
|
44
|
+
* the top left, smaller and fainter. It zooms in as it shows; an opened
|
|
45
|
+
* list slides in from the right and slides back out as the swipe goes
|
|
46
|
+
* back. Each time `shakes` counts up, the menu shakes once. None of it
|
|
47
|
+
* moves for those who ask for less motion.
|
|
48
|
+
*/
|
|
49
|
+
function Menu(props) {
|
|
50
|
+
const still = useReducedMotion() === true;
|
|
51
|
+
const shaking = useRef(null);
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (props.shakes === 0 || still) return;
|
|
54
|
+
shaking.current?.animate({ transform: SHAKE }, {
|
|
55
|
+
duration: 320,
|
|
56
|
+
easing: "ease-out"
|
|
57
|
+
});
|
|
58
|
+
}, [props.shakes, still]);
|
|
59
|
+
if (typeof document === "undefined") return null;
|
|
60
|
+
const columns = props.columns ?? [];
|
|
61
|
+
const last = columns.length - 1;
|
|
62
|
+
return createPortal(/* @__PURE__ */ jsxs(AnimatePresence, { children: [props.columns !== void 0 && /* @__PURE__ */ jsx(motion.div, {
|
|
63
|
+
"aria-hidden": "true",
|
|
64
|
+
initial: { opacity: 0 },
|
|
65
|
+
animate: { opacity: 1 },
|
|
66
|
+
exit: { opacity: 0 },
|
|
67
|
+
transition: still ? AT_ONCE : FADE,
|
|
68
|
+
className: "pointer-events-none fixed inset-0 z-[99] bg-black/40 backdrop-blur-sm"
|
|
69
|
+
}, "scrim"), props.columns !== void 0 && /* @__PURE__ */ jsx(motion.div, {
|
|
70
|
+
"aria-live": "polite",
|
|
71
|
+
initial: {
|
|
72
|
+
opacity: 0,
|
|
73
|
+
scale: .94
|
|
74
|
+
},
|
|
75
|
+
animate: {
|
|
76
|
+
opacity: 1,
|
|
77
|
+
scale: 1
|
|
78
|
+
},
|
|
79
|
+
exit: {
|
|
80
|
+
opacity: 0,
|
|
81
|
+
scale: .97
|
|
82
|
+
},
|
|
83
|
+
transition: still ? AT_ONCE : FADE,
|
|
84
|
+
className: "pointer-events-none fixed top-[calc(env(safe-area-inset-top)+6rem)] left-1/2 z-[100] origin-top text-sm text-popover-foreground",
|
|
85
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
86
|
+
ref: shaking,
|
|
87
|
+
children: /* @__PURE__ */ jsx(AnimatePresence, {
|
|
88
|
+
initial: false,
|
|
89
|
+
children: columns.map((column, depth) => {
|
|
90
|
+
const back = last - depth;
|
|
91
|
+
return /* @__PURE__ */ jsx(motion.div, {
|
|
92
|
+
style: { zIndex: depth },
|
|
93
|
+
initial: {
|
|
94
|
+
opacity: 0,
|
|
95
|
+
x: 56,
|
|
96
|
+
scale: .96
|
|
97
|
+
},
|
|
98
|
+
animate: {
|
|
99
|
+
opacity: back === 0 ? 1 : .5,
|
|
100
|
+
x: back * BEHIND.x,
|
|
101
|
+
y: back * BEHIND.y,
|
|
102
|
+
scale: 1 - back * .1
|
|
103
|
+
},
|
|
104
|
+
exit: {
|
|
105
|
+
opacity: 0,
|
|
106
|
+
x: 56,
|
|
107
|
+
scale: .96
|
|
108
|
+
},
|
|
109
|
+
transition: still ? AT_ONCE : SLIDE,
|
|
110
|
+
className: "absolute top-0 left-0 origin-top-left -translate-x-1/2 rounded-2xl border bg-popover shadow-lg",
|
|
111
|
+
children: /* @__PURE__ */ jsx(List, {
|
|
112
|
+
id: column.id,
|
|
113
|
+
choices: column.choices,
|
|
114
|
+
marked: column.marked,
|
|
115
|
+
here: column.here,
|
|
116
|
+
move: still ? AT_ONCE : SPRING
|
|
117
|
+
})
|
|
118
|
+
}, column.id);
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
})
|
|
122
|
+
}, "menu")] }), document.body);
|
|
123
|
+
}
|
|
124
|
+
//#endregion
|
|
125
|
+
export { Menu };
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.js","names":[],"sources":["../../../src/recipes/thumb-picker/menu.tsx"],"sourcesContent":["import { AnimatePresence, motion, useReducedMotion } from 'motion/react';\nimport { useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport type { TreeWalk } from '@kestack/use-gesture';\nimport type { Choice } from './choice.ts';\nimport { List } from './list.tsx';\n\nconst EASE = [0.23, 1, 0.32, 1] as const;\nconst SPRING = { type: 'spring', duration: 0.18, bounce: 0.15 } as const;\nconst SLIDE = { type: 'spring', duration: 0.28, bounce: 0.1 } as const;\nconst FADE = { duration: 0.16, ease: EASE } as const;\nconst AT_ONCE = { duration: 0 } as const;\n// How far, in px, each list behind the open one sits to the top left.\nconst BEHIND = { x: -104, y: -28 } as const;\n// A Wrong Way: the menu shakes side to side, once.\nconst SHAKE = [0, -6, 5, -3, 2, 0].map((x) => `translateX(${x}px)`);\n\ntype Column = TreeWalk.Column<Choice>;\n\n/**\n * Where letting go will take you, at the top centre of the screen and\n * never under the fingers, over everything else dimmed and blurred: the\n * open list in the middle, and each list it was opened from drawn back to\n * the top left, smaller and fainter. It zooms in as it shows; an opened\n * list slides in from the right and slides back out as the swipe goes\n * back. Each time `shakes` counts up, the menu shakes once. None of it\n * moves for those who ask for less motion.\n */\nexport function Menu(props: {\n readonly columns: ReadonlyArray<Column> | undefined;\n readonly shakes: number;\n}) {\n const still = useReducedMotion() === true;\n const shaking = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (props.shakes === 0 || still) return;\n shaking.current?.animate(\n { transform: SHAKE },\n { duration: 320, easing: 'ease-out' },\n );\n }, [props.shakes, still]);\n if (typeof document === 'undefined') return null;\n const columns = props.columns ?? [];\n const last = columns.length - 1;\n return createPortal(\n <AnimatePresence>\n {props.columns !== undefined && (\n <motion.div\n key=\"scrim\"\n aria-hidden=\"true\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={still ? AT_ONCE : FADE}\n className=\"pointer-events-none fixed inset-0 z-[99] bg-black/40 backdrop-blur-sm\"\n />\n )}\n {props.columns !== undefined && (\n <motion.div\n key=\"menu\"\n aria-live=\"polite\"\n initial={{ opacity: 0, scale: 0.94 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.97 }}\n transition={still ? AT_ONCE : FADE}\n className=\"pointer-events-none fixed top-[calc(env(safe-area-inset-top)+6rem)] left-1/2 z-[100] origin-top text-sm text-popover-foreground\"\n >\n <div ref={shaking}>\n <AnimatePresence initial={false}>\n {columns.map((column, depth) => {\n const back = last - depth;\n return (\n <motion.div\n key={column.id}\n style={{ zIndex: depth }}\n initial={{ opacity: 0, x: 56, scale: 0.96 }}\n animate={{\n opacity: back === 0 ? 1 : 0.5,\n x: back * BEHIND.x,\n y: back * BEHIND.y,\n scale: 1 - back * 0.1,\n }}\n exit={{ opacity: 0, x: 56, scale: 0.96 }}\n transition={still ? AT_ONCE : SLIDE}\n // Centred by `translate`, apart from the motion's `transform`.\n className=\"absolute top-0 left-0 origin-top-left -translate-x-1/2 rounded-2xl border bg-popover shadow-lg\"\n >\n <List\n id={column.id}\n choices={column.choices}\n marked={column.marked}\n here={column.here}\n move={still ? AT_ONCE : SPRING}\n />\n </motion.div>\n );\n })}\n </AnimatePresence>\n </div>\n </motion.div>\n )}\n </AnimatePresence>,\n document.body,\n );\n}\n"],"mappings":";;;;;;AAOA,MAAM,OAAO;CAAC;CAAM;CAAG;CAAM;AAAC;AAC9B,MAAM,SAAS;CAAE,MAAM;CAAU,UAAU;CAAM,QAAQ;AAAK;AAC9D,MAAM,QAAQ;CAAE,MAAM;CAAU,UAAU;CAAM,QAAQ;AAAI;AAC5D,MAAM,OAAO;CAAE,UAAU;CAAM,MAAM;AAAK;AAC1C,MAAM,UAAU,EAAE,UAAU,EAAE;AAE9B,MAAM,SAAS;CAAE,GAAG;CAAM,GAAG;AAAI;AAEjC,MAAM,QAAQ;CAAC;CAAG;CAAI;CAAG;CAAI;CAAG;AAAC,CAAC,CAAC,KAAK,MAAM,cAAc,EAAE,IAAI;;;;;;;;;;AAalE,SAAgB,KAAK,OAGlB;CACD,MAAM,QAAQ,iBAAiB,MAAM;CACrC,MAAM,UAAU,OAAuB,IAAI;CAC3C,gBAAgB;EACd,IAAI,MAAM,WAAW,KAAK,OAAO;EACjC,QAAQ,SAAS,QACf,EAAE,WAAW,MAAM,GACnB;GAAE,UAAU;GAAK,QAAQ;EAAW,CACtC;CACF,GAAG,CAAC,MAAM,QAAQ,KAAK,CAAC;CACxB,IAAI,OAAO,aAAa,aAAa,OAAO;CAC5C,MAAM,UAAU,MAAM,WAAW,CAAC;CAClC,MAAM,OAAO,QAAQ,SAAS;CAC9B,OAAO,aACL,qBAAC,iBAAD,EAAA,UAAA,CACG,MAAM,YAAY,KAAA,KACjB,oBAAC,OAAO,KAAR;EAEE,eAAY;EACZ,SAAS,EAAE,SAAS,EAAE;EACtB,SAAS,EAAE,SAAS,EAAE;EACtB,MAAM,EAAE,SAAS,EAAE;EACnB,YAAY,QAAQ,UAAU;EAC9B,WAAU;CACX,GAPK,OAOL,GAEF,MAAM,YAAY,KAAA,KACjB,oBAAC,OAAO,KAAR;EAEE,aAAU;EACV,SAAS;GAAE,SAAS;GAAG,OAAO;EAAK;EACnC,SAAS;GAAE,SAAS;GAAG,OAAO;EAAE;EAChC,MAAM;GAAE,SAAS;GAAG,OAAO;EAAK;EAChC,YAAY,QAAQ,UAAU;EAC9B,WAAU;EAEV,UAAA,oBAAC,OAAD;GAAK,KAAK;GACR,UAAA,oBAAC,iBAAD;IAAiB,SAAS;IACvB,UAAA,QAAQ,KAAK,QAAQ,UAAU;KAC9B,MAAM,OAAO,OAAO;KACpB,OACE,oBAAC,OAAO,KAAR;MAEE,OAAO,EAAE,QAAQ,MAAM;MACvB,SAAS;OAAE,SAAS;OAAG,GAAG;OAAI,OAAO;MAAK;MAC1C,SAAS;OACP,SAAS,SAAS,IAAI,IAAI;OAC1B,GAAG,OAAO,OAAO;OACjB,GAAG,OAAO,OAAO;OACjB,OAAO,IAAI,OAAO;MACpB;MACA,MAAM;OAAE,SAAS;OAAG,GAAG;OAAI,OAAO;MAAK;MACvC,YAAY,QAAQ,UAAU;MAE9B,WAAU;MAEV,UAAA,oBAAC,MAAD;OACE,IAAI,OAAO;OACX,SAAS,OAAO;OAChB,QAAQ,OAAO;OACf,MAAM,OAAO;OACb,MAAM,QAAQ,UAAU;MACzB,CAAA;KACS,GArBL,OAAO,EAqBF;IAEhB,CAAC;GACc,CAAA;EACd,CAAA;CACK,GAxCN,MAwCM,CAEC,EAAA,CAAA,GACjB,SAAS,IACX;AACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Choice } from "./choice.js";
|
|
2
|
+
import { TreeWalk } from "@kestack/use-gesture";
|
|
3
|
+
//#region src/recipes/thumb-picker/thumb-picker.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* A Thumb Lock that picks from a tree of choices: the left thumb resting
|
|
6
|
+
* still while another finger swipes. The walk starts on the choice `start`
|
|
7
|
+
* names; nothing shows until the finger has gone `reveal` px, then the
|
|
8
|
+
* choices show over everything else, dimmed and blurred. Each `step` px
|
|
9
|
+
* the finger goes from where it last moved something makes one move. Up and down Step
|
|
10
|
+
* through a list; right opens the marked choice's own choices, starting
|
|
11
|
+
* on the one last marked there in this swipe, and left goes back. Lifting
|
|
12
|
+
* the finger chooses the marked choice, unless it is where the swipe began
|
|
13
|
+
* or on the way to it; lifting the thumb first chooses nothing. A Wrong
|
|
14
|
+
* Way shakes the menu. Each Lock, Step, opening, going back and Wrong Way
|
|
15
|
+
* is told, for sound
|
|
16
|
+
* and touch to follow.
|
|
17
|
+
*/
|
|
18
|
+
export declare function ThumbPicker(props: {
|
|
19
|
+
readonly tree: ReadonlyArray<Choice>;
|
|
20
|
+
/** The ids of the choices the swipe begins at, top to bottom. */
|
|
21
|
+
readonly start: ReadonlyArray<string>;
|
|
22
|
+
readonly onFeedback?: (feedback: 'lock' | TreeWalk.Event) => void;
|
|
23
|
+
readonly enabled?: boolean;
|
|
24
|
+
/** How far, in px, the finger goes before anything shows: 14 unless told. */
|
|
25
|
+
readonly reveal?: number;
|
|
26
|
+
/** How far, in px, the finger goes for each move: 30 unless told. */
|
|
27
|
+
readonly step?: number;
|
|
28
|
+
}): import("react").JSX.Element;
|
|
29
|
+
//#endregion
|
|
30
|
+
export type { Choice };
|
|
31
|
+
//# sourceMappingURL=thumb-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thumb-picker.d.ts","names":[],"sources":["../../../src/recipes/thumb-picker/thumb-picker.tsx"],"mappings":";;;;;;;;;;;;;;;;;wBAsBgB,YAAY;WACjB,MAAM,cAAc;;WAEpB,OAAO;WACP,cAAc,mBAAmB,SAAS;WAC1C;;WAEA;;WAEA;oBACV,IAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { useThumbLock } from "./lock.js";
|
|
2
|
+
import { Menu } from "./menu.js";
|
|
3
|
+
import { useRef, useState } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { TreeWalk } from "@kestack/use-gesture";
|
|
6
|
+
//#region src/recipes/thumb-picker/thumb-picker.tsx
|
|
7
|
+
/**
|
|
8
|
+
* A Thumb Lock that picks from a tree of choices: the left thumb resting
|
|
9
|
+
* still while another finger swipes. The walk starts on the choice `start`
|
|
10
|
+
* names; nothing shows until the finger has gone `reveal` px, then the
|
|
11
|
+
* choices show over everything else, dimmed and blurred. Each `step` px
|
|
12
|
+
* the finger goes from where it last moved something makes one move. Up and down Step
|
|
13
|
+
* through a list; right opens the marked choice's own choices, starting
|
|
14
|
+
* on the one last marked there in this swipe, and left goes back. Lifting
|
|
15
|
+
* the finger chooses the marked choice, unless it is where the swipe began
|
|
16
|
+
* or on the way to it; lifting the thumb first chooses nothing. A Wrong
|
|
17
|
+
* Way shakes the menu. Each Lock, Step, opening, going back and Wrong Way
|
|
18
|
+
* is told, for sound
|
|
19
|
+
* and touch to follow.
|
|
20
|
+
*/
|
|
21
|
+
function ThumbPicker(props) {
|
|
22
|
+
const [walk, setWalk] = useState();
|
|
23
|
+
const [shakes, setShakes] = useState(0);
|
|
24
|
+
const walking = useRef(void 0);
|
|
25
|
+
const latest = useRef(props);
|
|
26
|
+
latest.current = props;
|
|
27
|
+
const show = (next) => {
|
|
28
|
+
walking.current = next;
|
|
29
|
+
setWalk(next);
|
|
30
|
+
};
|
|
31
|
+
useThumbLock({
|
|
32
|
+
enabled: props.enabled !== false,
|
|
33
|
+
onLock: () => {
|
|
34
|
+
const { tree, start, onFeedback } = latest.current;
|
|
35
|
+
show(TreeWalk.begin(tree, start));
|
|
36
|
+
onFeedback?.("lock");
|
|
37
|
+
},
|
|
38
|
+
onMove: (finger) => {
|
|
39
|
+
const { tree, start, onFeedback, reveal, step } = latest.current;
|
|
40
|
+
if (walking.current === void 0) return;
|
|
41
|
+
const after = TreeWalk.move(walking.current, tree, start, finger, {
|
|
42
|
+
reveal: reveal ?? TreeWalk.DISTANCES.reveal,
|
|
43
|
+
step: step ?? TreeWalk.DISTANCES.step
|
|
44
|
+
});
|
|
45
|
+
for (const event of after.events) onFeedback?.(event);
|
|
46
|
+
if (after.events.includes("wrong")) setShakes((count) => count + 1);
|
|
47
|
+
if (after.walk !== walking.current) show(after.walk);
|
|
48
|
+
},
|
|
49
|
+
onEnd: (lifted) => {
|
|
50
|
+
const last = walking.current;
|
|
51
|
+
show(void 0);
|
|
52
|
+
if (!lifted || last === void 0) return;
|
|
53
|
+
const { tree, start } = latest.current;
|
|
54
|
+
TreeWalk.chosen(last, tree, start)?.onSelect?.();
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return /* @__PURE__ */ jsx(Menu, {
|
|
58
|
+
shakes,
|
|
59
|
+
columns: walk === void 0 || !walk.shown ? void 0 : TreeWalk.columns(walk, props.tree, props.start)
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
//#endregion
|
|
63
|
+
export { ThumbPicker };
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=thumb-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thumb-picker.js","names":[],"sources":["../../../src/recipes/thumb-picker/thumb-picker.tsx"],"sourcesContent":["import { TreeWalk } from '@kestack/use-gesture';\nimport { useRef, useState } from 'react';\nimport type { Choice } from './choice.ts';\nimport { useThumbLock } from './lock.ts';\nimport { Menu } from './menu.tsx';\n\nexport type { Choice } from './choice.ts';\n\n/**\n * A Thumb Lock that picks from a tree of choices: the left thumb resting\n * still while another finger swipes. The walk starts on the choice `start`\n * names; nothing shows until the finger has gone `reveal` px, then the\n * choices show over everything else, dimmed and blurred. Each `step` px\n * the finger goes from where it last moved something makes one move. Up and down Step\n * through a list; right opens the marked choice's own choices, starting\n * on the one last marked there in this swipe, and left goes back. Lifting\n * the finger chooses the marked choice, unless it is where the swipe began\n * or on the way to it; lifting the thumb first chooses nothing. A Wrong\n * Way shakes the menu. Each Lock, Step, opening, going back and Wrong Way\n * is told, for sound\n * and touch to follow.\n */\nexport function ThumbPicker(props: {\n readonly tree: ReadonlyArray<Choice>;\n /** The ids of the choices the swipe begins at, top to bottom. */\n readonly start: ReadonlyArray<string>;\n readonly onFeedback?: (feedback: 'lock' | TreeWalk.Event) => void;\n readonly enabled?: boolean;\n /** How far, in px, the finger goes before anything shows: 14 unless told. */\n readonly reveal?: number;\n /** How far, in px, the finger goes for each move: 30 unless told. */\n readonly step?: number;\n}) {\n const [walk, setWalk] = useState<TreeWalk.Walk>();\n // How many Wrong Ways the menu has shaken for.\n const [shakes, setShakes] = useState(0);\n // The walk as the finger left it, ahead of the next render.\n const walking = useRef<TreeWalk.Walk>(undefined);\n const latest = useRef(props);\n latest.current = props;\n\n const show = (next: TreeWalk.Walk | undefined) => {\n walking.current = next;\n setWalk(next);\n };\n\n useThumbLock({\n enabled: props.enabled !== false,\n onLock: () => {\n const { tree, start, onFeedback } = latest.current;\n show(TreeWalk.begin(tree, start));\n onFeedback?.('lock');\n },\n onMove: (finger) => {\n const { tree, start, onFeedback, reveal, step } = latest.current;\n if (walking.current === undefined) return;\n const after = TreeWalk.move(walking.current, tree, start, finger, {\n reveal: reveal ?? TreeWalk.DISTANCES.reveal,\n step: step ?? TreeWalk.DISTANCES.step,\n });\n for (const event of after.events) onFeedback?.(event);\n if (after.events.includes('wrong')) setShakes((count) => count + 1);\n if (after.walk !== walking.current) show(after.walk);\n },\n onEnd: (lifted) => {\n const last = walking.current;\n show(undefined);\n if (!lifted || last === undefined) return;\n const { tree, start } = latest.current;\n TreeWalk.chosen(last, tree, start)?.onSelect?.();\n },\n });\n\n return (\n <Menu\n shakes={shakes}\n columns={\n walk === undefined || !walk.shown\n ? undefined\n : TreeWalk.columns(walk, props.tree, props.start)\n }\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsBA,SAAgB,YAAY,OAUzB;CACD,MAAM,CAAC,MAAM,WAAW,SAAwB;CAEhD,MAAM,CAAC,QAAQ,aAAa,SAAS,CAAC;CAEtC,MAAM,UAAU,OAAsB,KAAA,CAAS;CAC/C,MAAM,SAAS,OAAO,KAAK;CAC3B,OAAO,UAAU;CAEjB,MAAM,QAAQ,SAAoC;EAChD,QAAQ,UAAU;EAClB,QAAQ,IAAI;CACd;CAEA,aAAa;EACX,SAAS,MAAM,YAAY;EAC3B,cAAc;GACZ,MAAM,EAAE,MAAM,OAAO,eAAe,OAAO;GAC3C,KAAK,SAAS,MAAM,MAAM,KAAK,CAAC;GAChC,aAAa,MAAM;EACrB;EACA,SAAS,WAAW;GAClB,MAAM,EAAE,MAAM,OAAO,YAAY,QAAQ,SAAS,OAAO;GACzD,IAAI,QAAQ,YAAY,KAAA,GAAW;GACnC,MAAM,QAAQ,SAAS,KAAK,QAAQ,SAAS,MAAM,OAAO,QAAQ;IAChE,QAAQ,UAAU,SAAS,UAAU;IACrC,MAAM,QAAQ,SAAS,UAAU;GACnC,CAAC;GACD,KAAK,MAAM,SAAS,MAAM,QAAQ,aAAa,KAAK;GACpD,IAAI,MAAM,OAAO,SAAS,OAAO,GAAG,WAAW,UAAU,QAAQ,CAAC;GAClE,IAAI,MAAM,SAAS,QAAQ,SAAS,KAAK,MAAM,IAAI;EACrD;EACA,QAAQ,WAAW;GACjB,MAAM,OAAO,QAAQ;GACrB,KAAK,KAAA,CAAS;GACd,IAAI,CAAC,UAAU,SAAS,KAAA,GAAW;GACnC,MAAM,EAAE,MAAM,UAAU,OAAO;GAC/B,SAAS,OAAO,MAAM,MAAM,KAAK,CAAC,EAAE,WAAW;EACjD;CACF,CAAC;CAED,OACE,oBAAC,MAAD;EACU;EACR,SACE,SAAS,KAAA,KAAa,CAAC,KAAK,QACxB,KAAA,IACA,SAAS,QAAQ,MAAM,MAAM,MAAM,MAAM,KAAK;CAErD,CAAA;AAEL"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CloudBackend, LiveNamespace, ServerConfig, createServer } from "./serve/serve.js";
|
|
2
|
+
import "./serve/index.js";
|
|
3
|
+
import { LiveAuth, LiveBackend, LiveObject, liveObject } from "./live/live.js";
|
|
4
|
+
import "./live/index.js";
|
|
5
|
+
import { assertStageIsSafe, devConfigFor, domainFor, isDeployedStage } from "./stage/stage.js";
|
|
6
|
+
import { Handle, webServer } from "./worker/worker.js";
|
|
7
|
+
export { type CloudBackend, type Handle, type LiveAuth, type LiveBackend, type LiveNamespace, type LiveObject, type ServerConfig, assertStageIsSafe, createServer, devConfigFor, domainFor, isDeployedStage, liveObject, webServer };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { liveObject } from "./live/live.js";
|
|
2
|
+
import { webServer } from "./worker/worker.js";
|
|
3
|
+
import { createServer } from "./serve/serve.js";
|
|
4
|
+
import { assertStageIsSafe, devConfigFor, domainFor, isDeployedStage } from "./stage/stage.js";
|
|
5
|
+
export { assertStageIsSafe, createServer, devConfigFor, domainFor, isDeployedStage, liveObject, webServer };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Api } from "../../app/apis/apis.js";
|
|
2
|
+
import "../../define/index.js";
|
|
3
|
+
import { Context, Layer } from "effect";
|
|
4
|
+
import { Rpc } from "@kestack/rpc-toolkit/rpc";
|
|
5
|
+
import { Rpc as Rpc$1 } from "effect/rpc";
|
|
6
|
+
import { Authz } from "@kestack/auth-toolkit/guard";
|
|
7
|
+
import * as cf from "@cloudflare/workers-types";
|
|
8
|
+
//#region src/server/live/live.d.ts
|
|
9
|
+
/** The shared sign-in service, as a cloud API checks each call with it. */
|
|
10
|
+
export interface LiveAuth {
|
|
11
|
+
readonly url: string;
|
|
12
|
+
readonly resource?: string | undefined;
|
|
13
|
+
}
|
|
14
|
+
/** One API's handlers in a Live Object, with the services they stand on
|
|
15
|
+
* given: made once each time the object wakes, from its own storage. */
|
|
16
|
+
export type LiveBackend<Rpcs extends Rpc$1.Any> = Layer.Layer<Rpc$1.ToHandler<Rpcs> | Rpc$1.Middleware<Rpcs>, unknown, any>;
|
|
17
|
+
/**
|
|
18
|
+
* Who a WebSocket opening at the cloud is for: the token in its address, as
|
|
19
|
+
* a browser sets no headers on one, checked as a call's would be. Null
|
|
20
|
+
* when it names nobody; `unavailable` when the sign-in service could not
|
|
21
|
+
* be asked.
|
|
22
|
+
*/
|
|
23
|
+
export declare const liveUser: (request: Request, auth: LiveAuth) => Promise<string | null | 'unavailable'>;
|
|
24
|
+
/** The header `createServer` names a Live Object's owner by, set on every
|
|
25
|
+
* request it forwards there, whatever the caller sent. */
|
|
26
|
+
export declare const LIVE_OWNER = "x-kstack-live-owner";
|
|
27
|
+
/** `request` as forwarded to the Live Object of `owner`. */
|
|
28
|
+
export declare const forOwner: (request: Request, owner: string) => Request;
|
|
29
|
+
type Resolver = Context.Service.Identifier<typeof Authz.Resolver>;
|
|
30
|
+
/** `found`, narrowed to calls signed by `owner`: any other user's is
|
|
31
|
+
* signed by nobody. */
|
|
32
|
+
export declare const ownedBy: (owner: () => Promise<string | undefined>) => Layer.Layer<Resolver, never, Resolver>;
|
|
33
|
+
/** What the runtime calls on a Live Object. */
|
|
34
|
+
export interface LiveObject {
|
|
35
|
+
fetch(request: Request): Promise<Response>;
|
|
36
|
+
webSocketMessage(ws: cf.WebSocket, data: string | ArrayBuffer): Promise<void>;
|
|
37
|
+
webSocketClose(ws: cf.WebSocket, code: number, reason: string): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A Live Object: a Durable Object class serving one API over hibernatable
|
|
41
|
+
* WebSockets, one object per user, its storage theirs alone. It keeps whom
|
|
42
|
+
* it was first opened for, and refuses a socket opened for anyone else;
|
|
43
|
+
* every call is still checked, by the token it carries, and refused unless
|
|
44
|
+
* that token is the same user's. `backend` makes the API's
|
|
45
|
+
* handlers from the object's own storage, and `streams` where open streams
|
|
46
|
+
* are kept while it sleeps (in the sockets' own notes, about 2 KB each,
|
|
47
|
+
* when not given). Export it from the Worker by the name its binding has.
|
|
48
|
+
*/
|
|
49
|
+
export declare const liveObject: <Rpcs extends Rpc$1.Any, Env>(options: {
|
|
50
|
+
readonly api: Api<Rpcs>;
|
|
51
|
+
readonly backend: (env: Env, storage: cf.DurableObjectStorage) => LiveBackend<Rpcs>;
|
|
52
|
+
readonly auth: LiveAuth;
|
|
53
|
+
readonly streams?: (state: cf.DurableObjectState) => Rpc.StreamStore;
|
|
54
|
+
}) => new (state: cf.DurableObjectState, env: Env) => LiveObject;
|
|
55
|
+
//#endregion
|
|
56
|
+
//# sourceMappingURL=live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.d.ts","names":["EffectRpc"],"sources":["../../../src/server/live/live.ts"],"mappings":";;;;;;;;;iBAUiB;WACN;WACA;;;;YAKC,YAAY,aAAaA,MAAU,OAAO,MAAM,MAC1DA,MAAU,UAAU,QAAQA,MAAU,WAAW;;;;;;;qBAmCtC,WAAQ,SACV,SAAO,MACV,aACL;;;qBAiBU;;qBAGA,WAAQ,SAAa,SAAO,kBAAkB;KAMtD,WAAW,QAAQ,QAAQ,kBAAkB,MAAM;;;qBAO3C,UAAO,aACL,gCACZ,MAAM,MAAM,iBAAiB;;iBAkBf;EACf,MAAM,SAAS,UAAU,QAAQ;EACjC,iBAAiB,IAAI,GAAG,WAAW,eAAe,cAAc;EAChE,eAAe,IAAI,GAAG,WAAW,cAAc,iBAAiB;;;;;;;;;;;;qBAarD,aAAc,aAAaA,MAAU,KAAK,KAAG;WAC/C,KAAK,IAAI;WACT,UACP,KAAK,KACL,SAAS,GAAG,yBACT,YAAY;WACR,MAAM;WACN,WAAW,OAAO,GAAG,uBAAuB,IAAI;WAClD,OAAO,GAAG,oBAAoB,KAAK,QAAQ"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Effect, Layer } from "effect";
|
|
2
|
+
import { Rpc } from "@kestack/rpc-toolkit/rpc";
|
|
3
|
+
import { Authz } from "@kestack/auth-toolkit/guard";
|
|
4
|
+
import { authz } from "@kestack/auth-toolkit/server/cloud";
|
|
5
|
+
import { HttpServerRequest, HttpServerResponse } from "effect/http";
|
|
6
|
+
//#region src/server/live/live.ts
|
|
7
|
+
const resolver = (auth) => authz.cloud({
|
|
8
|
+
authWorkerUrl: auth.url,
|
|
9
|
+
...auth.resource !== void 0 && { resource: auth.resource }
|
|
10
|
+
});
|
|
11
|
+
const toWeb = (response) => {
|
|
12
|
+
const { body } = response;
|
|
13
|
+
return body._tag === "Raw" && body.body instanceof Response ? body.body : HttpServerResponse.toWeb(response);
|
|
14
|
+
};
|
|
15
|
+
const socketOf = (ws) => ({
|
|
16
|
+
ws,
|
|
17
|
+
close: (code, reason) => Effect.sync(() => ws.close(code, reason)),
|
|
18
|
+
serializeAttachment: (value) => ws.serializeAttachment(value),
|
|
19
|
+
deserializeAttachment: () => ws.deserializeAttachment()
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Who a WebSocket opening at the cloud is for: the token in its address, as
|
|
23
|
+
* a browser sets no headers on one, checked as a call's would be. Null
|
|
24
|
+
* when it names nobody; `unavailable` when the sign-in service could not
|
|
25
|
+
* be asked.
|
|
26
|
+
*/
|
|
27
|
+
const liveUser = (request, auth) => {
|
|
28
|
+
const token = new URL(request.url).searchParams.get("access_token");
|
|
29
|
+
if (token === null) return Promise.resolve(null);
|
|
30
|
+
const signed = new Request(request.url, { headers: { authorization: `Bearer ${token}` } });
|
|
31
|
+
return Effect.runPromise(Authz.Resolver.use((found) => found.resolve(signed)).pipe(Effect.map((resolution) => resolution?.current.user.id ?? null), Effect.catch(() => Effect.succeed("unavailable")), Effect.provide(resolver(auth))));
|
|
32
|
+
};
|
|
33
|
+
/** The header `createServer` names a Live Object's owner by, set on every
|
|
34
|
+
* request it forwards there, whatever the caller sent. */
|
|
35
|
+
const LIVE_OWNER = "x-kstack-live-owner";
|
|
36
|
+
/** `request` as forwarded to the Live Object of `owner`. */
|
|
37
|
+
const forOwner = (request, owner) => {
|
|
38
|
+
const headers = new Headers(request.headers);
|
|
39
|
+
headers.set(LIVE_OWNER, owner);
|
|
40
|
+
return new Request(request, { headers });
|
|
41
|
+
};
|
|
42
|
+
const OWNER_KEY = "@kestack/web-platform/live/owner";
|
|
43
|
+
/** `found`, narrowed to calls signed by `owner`: any other user's is
|
|
44
|
+
* signed by nobody. */
|
|
45
|
+
const ownedBy = (owner) => Layer.effect(Authz.Resolver, Effect.map(Authz.Resolver, (found) => Authz.Resolver.of({ resolve: (request) => Effect.flatMap(found.resolve(request), (resolution) => resolution === null ? Effect.succeed(null) : Effect.map(Effect.promise(owner), (pinned) => pinned === resolution.current.user.id ? resolution : null)) })));
|
|
46
|
+
/**
|
|
47
|
+
* A Live Object: a Durable Object class serving one API over hibernatable
|
|
48
|
+
* WebSockets, one object per user, its storage theirs alone. It keeps whom
|
|
49
|
+
* it was first opened for, and refuses a socket opened for anyone else;
|
|
50
|
+
* every call is still checked, by the token it carries, and refused unless
|
|
51
|
+
* that token is the same user's. `backend` makes the API's
|
|
52
|
+
* handlers from the object's own storage, and `streams` where open streams
|
|
53
|
+
* are kept while it sleeps (in the sockets' own notes, about 2 KB each,
|
|
54
|
+
* when not given). Export it from the Worker by the name its binding has.
|
|
55
|
+
*/
|
|
56
|
+
const liveObject = (options) => class {
|
|
57
|
+
#served;
|
|
58
|
+
#storage;
|
|
59
|
+
#owner;
|
|
60
|
+
constructor(state, env) {
|
|
61
|
+
this.#storage = state.storage;
|
|
62
|
+
const { state: hibernation, upgrade } = Rpc.websocket.fromDurableObjectState(state);
|
|
63
|
+
const handlers = options.backend(env, state.storage).pipe(Layer.provide(ownedBy(this.#pinned).pipe(Layer.provide(resolver(options.auth)))));
|
|
64
|
+
this.#served = Effect.runPromise(Effect.gen(function* () {
|
|
65
|
+
const rpc = yield* Rpc.websocket.server(options.api.group, handlers, {
|
|
66
|
+
state: hibernation,
|
|
67
|
+
upgrade,
|
|
68
|
+
...options.streams !== void 0 && { streams: options.streams(state) }
|
|
69
|
+
});
|
|
70
|
+
return {
|
|
71
|
+
accept: (request) => Effect.runPromise(rpc.accept.pipe(Effect.provideService(HttpServerRequest.HttpServerRequest, HttpServerRequest.fromWeb(request)), Effect.map(toWeb))),
|
|
72
|
+
message: (ws, data) => Effect.runPromise(rpc.message(socketOf(ws), data)),
|
|
73
|
+
close: (ws, code, reason) => Effect.runPromise(rpc.close(socketOf(ws), code, reason))
|
|
74
|
+
};
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
#pinned = () => this.#owner ??= this.#storage.get(OWNER_KEY);
|
|
78
|
+
async fetch(request) {
|
|
79
|
+
const owner = request.headers.get(LIVE_OWNER);
|
|
80
|
+
if (owner === null) return new Response("Forbidden", { status: 403 });
|
|
81
|
+
const pinned = await this.#pinned();
|
|
82
|
+
if (pinned === void 0) {
|
|
83
|
+
await this.#storage.put(OWNER_KEY, owner);
|
|
84
|
+
this.#owner = Promise.resolve(owner);
|
|
85
|
+
} else if (pinned !== owner) return new Response("Forbidden", { status: 403 });
|
|
86
|
+
return (await this.#served).accept(request);
|
|
87
|
+
}
|
|
88
|
+
async webSocketMessage(ws, data) {
|
|
89
|
+
await (await this.#served).message(ws, data);
|
|
90
|
+
}
|
|
91
|
+
async webSocketClose(ws, code, reason) {
|
|
92
|
+
await (await this.#served).close(ws, code, reason);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
//#endregion
|
|
96
|
+
export { LIVE_OWNER, forOwner, liveObject, liveUser, ownedBy };
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=live.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.js","names":[],"sources":["../../../src/server/live/live.ts"],"sourcesContent":["import type * as cf from '@cloudflare/workers-types';\nimport { Context, Effect, Layer } from 'effect';\nimport { HttpServerRequest, HttpServerResponse } from 'effect/http';\nimport type { Rpc as EffectRpc } from 'effect/rpc';\nimport type { Api } from '../../define/index.ts';\nimport { authz } from '@kestack/auth-toolkit/server/cloud';\nimport { Authz } from '@kestack/auth-toolkit/guard';\nimport { Rpc } from '@kestack/rpc-toolkit/rpc';\n\n/** The shared sign-in service, as a cloud API checks each call with it. */\nexport interface LiveAuth {\n readonly url: string;\n readonly resource?: string | undefined;\n}\n\n/** One API's handlers in a Live Object, with the services they stand on\n * given: made once each time the object wakes, from its own storage. */\nexport type LiveBackend<Rpcs extends EffectRpc.Any> = Layer.Layer<\n EffectRpc.ToHandler<Rpcs> | EffectRpc.Middleware<Rpcs>,\n unknown,\n // oxlint-disable-next-line no-explicit-any\n any\n>;\n\nconst resolver = (auth: LiveAuth) =>\n authz.cloud({\n authWorkerUrl: auth.url,\n ...(auth.resource !== undefined && { resource: auth.resource }),\n });\n\n// An Effect response as the runtime sends it: an upgrade is the raw\n// Response carrying its socket, which converting would lose.\nconst toWeb = (response: HttpServerResponse.HttpServerResponse): Response => {\n const { body } = response;\n return body._tag === 'Raw' && body.body instanceof Response\n ? body.body\n : HttpServerResponse.toWeb(response);\n};\n\n// A socket the runtime hands the object, as the RPC server reads it.\nconst socketOf = (ws: cf.WebSocket): Rpc.websocket.HibernatingSocket => ({\n ws,\n close: (code, reason) => Effect.sync(() => ws.close(code, reason)),\n serializeAttachment: (value) => ws.serializeAttachment(value),\n deserializeAttachment: <T>() => ws.deserializeAttachment() as T | null,\n});\n\n/**\n * Who a WebSocket opening at the cloud is for: the token in its address, as\n * a browser sets no headers on one, checked as a call's would be. Null\n * when it names nobody; `unavailable` when the sign-in service could not\n * be asked.\n */\nexport const liveUser = (\n request: Request,\n auth: LiveAuth,\n): Promise<string | null | 'unavailable'> => {\n const token = new URL(request.url).searchParams.get('access_token');\n if (token === null) return Promise.resolve(null);\n const signed = new Request(request.url, {\n headers: { authorization: `Bearer ${token}` },\n });\n return Effect.runPromise(\n Authz.Resolver.use((found) => found.resolve(signed)).pipe(\n Effect.map((resolution) => resolution?.current.user.id ?? null),\n Effect.catch(() => Effect.succeed('unavailable' as const)),\n Effect.provide(resolver(auth)),\n ),\n );\n};\n\n/** The header `createServer` names a Live Object's owner by, set on every\n * request it forwards there, whatever the caller sent. */\nexport const LIVE_OWNER = 'x-kstack-live-owner';\n\n/** `request` as forwarded to the Live Object of `owner`. */\nexport const forOwner = (request: Request, owner: string): Request => {\n const headers = new Headers(request.headers);\n headers.set(LIVE_OWNER, owner);\n return new Request(request, { headers });\n};\n\ntype Resolver = Context.Service.Identifier<typeof Authz.Resolver>;\n\n// Where the object keeps whom it was opened for, beside the app's own keys.\nconst OWNER_KEY = '@kestack/web-platform/live/owner';\n\n/** `found`, narrowed to calls signed by `owner`: any other user's is\n * signed by nobody. */\nexport const ownedBy = (\n owner: () => Promise<string | undefined>,\n): Layer.Layer<Resolver, never, Resolver> =>\n Layer.effect(\n Authz.Resolver,\n Effect.map(Authz.Resolver, (found) =>\n Authz.Resolver.of({\n resolve: (request) =>\n Effect.flatMap(found.resolve(request), (resolution) =>\n resolution === null\n ? Effect.succeed(null)\n : Effect.map(Effect.promise(owner), (pinned) =>\n pinned === resolution.current.user.id ? resolution : null,\n ),\n ),\n }),\n ),\n );\n\n/** What the runtime calls on a Live Object. */\nexport interface LiveObject {\n fetch(request: Request): Promise<Response>;\n webSocketMessage(ws: cf.WebSocket, data: string | ArrayBuffer): Promise<void>;\n webSocketClose(ws: cf.WebSocket, code: number, reason: string): Promise<void>;\n}\n\n/**\n * A Live Object: a Durable Object class serving one API over hibernatable\n * WebSockets, one object per user, its storage theirs alone. It keeps whom\n * it was first opened for, and refuses a socket opened for anyone else;\n * every call is still checked, by the token it carries, and refused unless\n * that token is the same user's. `backend` makes the API's\n * handlers from the object's own storage, and `streams` where open streams\n * are kept while it sleeps (in the sockets' own notes, about 2 KB each,\n * when not given). Export it from the Worker by the name its binding has.\n */\nexport const liveObject = <Rpcs extends EffectRpc.Any, Env>(options: {\n readonly api: Api<Rpcs>;\n readonly backend: (\n env: Env,\n storage: cf.DurableObjectStorage,\n ) => LiveBackend<Rpcs>;\n readonly auth: LiveAuth;\n readonly streams?: (state: cf.DurableObjectState) => Rpc.StreamStore;\n}): new (state: cf.DurableObjectState, env: Env) => LiveObject =>\n class implements LiveObject {\n readonly #served: Promise<{\n readonly accept: (request: Request) => Promise<Response>;\n readonly message: (\n socket: cf.WebSocket,\n data: string | ArrayBuffer,\n ) => Promise<void>;\n readonly close: (\n socket: cf.WebSocket,\n code: number,\n reason: string,\n ) => Promise<void>;\n }>;\n\n readonly #storage: cf.DurableObjectStorage;\n #owner: Promise<string | undefined> | undefined;\n\n constructor(state: cf.DurableObjectState, env: Env) {\n this.#storage = state.storage;\n const { state: hibernation, upgrade } =\n Rpc.websocket.fromDurableObjectState(state);\n const handlers = options\n .backend(env, state.storage)\n .pipe(\n Layer.provide(\n ownedBy(this.#pinned).pipe(Layer.provide(resolver(options.auth))),\n ),\n ) as Layer.Layer<\n | EffectRpc.ToHandler<Rpcs>\n | EffectRpc.Middleware<Rpcs>\n | EffectRpc.ServicesServer<Rpcs>\n >;\n this.#served = Effect.runPromise(\n Effect.gen(function* () {\n const rpc = yield* Rpc.websocket.server(options.api.group, handlers, {\n state: hibernation,\n upgrade,\n ...(options.streams !== undefined && {\n streams: options.streams(state),\n }),\n });\n return {\n accept: (request: Request) =>\n Effect.runPromise(\n rpc.accept.pipe(\n Effect.provideService(\n HttpServerRequest.HttpServerRequest,\n HttpServerRequest.fromWeb(request),\n ),\n Effect.map(toWeb),\n ),\n ),\n message: (ws: cf.WebSocket, data: string | ArrayBuffer) =>\n Effect.runPromise(rpc.message(socketOf(ws), data)),\n close: (ws: cf.WebSocket, code: number, reason: string) =>\n Effect.runPromise(rpc.close(socketOf(ws), code, reason)),\n };\n }),\n );\n }\n\n // Whom the object was first opened for, read once per wake.\n readonly #pinned = () =>\n (this.#owner ??= this.#storage.get<string>(OWNER_KEY));\n\n async fetch(request: Request): Promise<Response> {\n const owner = request.headers.get(LIVE_OWNER);\n if (owner === null) return new Response('Forbidden', { status: 403 });\n const pinned = await this.#pinned();\n if (pinned === undefined) {\n await this.#storage.put(OWNER_KEY, owner);\n this.#owner = Promise.resolve(owner);\n } else if (pinned !== owner)\n return new Response('Forbidden', { status: 403 });\n return (await this.#served).accept(request);\n }\n\n async webSocketMessage(ws: cf.WebSocket, data: string | ArrayBuffer) {\n await (await this.#served).message(ws, data);\n }\n\n async webSocketClose(ws: cf.WebSocket, code: number, reason: string) {\n await (await this.#served).close(ws, code, reason);\n }\n };\n"],"mappings":";;;;;;AAwBA,MAAM,YAAY,SAChB,MAAM,MAAM;CACV,eAAe,KAAK;CACpB,GAAI,KAAK,aAAa,KAAA,KAAa,EAAE,UAAU,KAAK,SAAS;AAC/D,CAAC;AAIH,MAAM,SAAS,aAA8D;CAC3E,MAAM,EAAE,SAAS;CACjB,OAAO,KAAK,SAAS,SAAS,KAAK,gBAAgB,WAC/C,KAAK,OACL,mBAAmB,MAAM,QAAQ;AACvC;AAGA,MAAM,YAAY,QAAuD;CACvE;CACA,QAAQ,MAAM,WAAW,OAAO,WAAW,GAAG,MAAM,MAAM,MAAM,CAAC;CACjE,sBAAsB,UAAU,GAAG,oBAAoB,KAAK;CAC5D,6BAAgC,GAAG,sBAAsB;AAC3D;;;;;;;AAQA,MAAa,YACX,SACA,SAC2C;CAC3C,MAAM,QAAQ,IAAI,IAAI,QAAQ,GAAG,CAAC,CAAC,aAAa,IAAI,cAAc;CAClE,IAAI,UAAU,MAAM,OAAO,QAAQ,QAAQ,IAAI;CAC/C,MAAM,SAAS,IAAI,QAAQ,QAAQ,KAAK,EACtC,SAAS,EAAE,eAAe,UAAU,QAAQ,EAC9C,CAAC;CACD,OAAO,OAAO,WACZ,MAAM,SAAS,KAAK,UAAU,MAAM,QAAQ,MAAM,CAAC,CAAC,CAAC,KACnD,OAAO,KAAK,eAAe,YAAY,QAAQ,KAAK,MAAM,IAAI,GAC9D,OAAO,YAAY,OAAO,QAAQ,aAAsB,CAAC,GACzD,OAAO,QAAQ,SAAS,IAAI,CAAC,CAC/B,CACF;AACF;;;AAIA,MAAa,aAAa;;AAG1B,MAAa,YAAY,SAAkB,UAA2B;CACpE,MAAM,UAAU,IAAI,QAAQ,QAAQ,OAAO;CAC3C,QAAQ,IAAI,YAAY,KAAK;CAC7B,OAAO,IAAI,QAAQ,SAAS,EAAE,QAAQ,CAAC;AACzC;AAKA,MAAM,YAAY;;;AAIlB,MAAa,WACX,UAEA,MAAM,OACJ,MAAM,UACN,OAAO,IAAI,MAAM,WAAW,UAC1B,MAAM,SAAS,GAAG,EAChB,UAAU,YACR,OAAO,QAAQ,MAAM,QAAQ,OAAO,IAAI,eACtC,eAAe,OACX,OAAO,QAAQ,IAAI,IACnB,OAAO,IAAI,OAAO,QAAQ,KAAK,IAAI,WACjC,WAAW,WAAW,QAAQ,KAAK,KAAK,aAAa,IACvD,CACN,EACJ,CAAC,CACH,CACF;;;;;;;;;;;AAmBF,MAAa,cAA+C,YAS1D,MAA4B;CAC1B;CAaA;CACA;CAEA,YAAY,OAA8B,KAAU;EAClD,KAAK,WAAW,MAAM;EACtB,MAAM,EAAE,OAAO,aAAa,YAC1B,IAAI,UAAU,uBAAuB,KAAK;EAC5C,MAAM,WAAW,QACd,QAAQ,KAAK,MAAM,OAAO,CAAC,CAC3B,KACC,MAAM,QACJ,QAAQ,KAAK,OAAO,CAAC,CAAC,KAAK,MAAM,QAAQ,SAAS,QAAQ,IAAI,CAAC,CAAC,CAClE,CACF;EAKF,KAAK,UAAU,OAAO,WACpB,OAAO,IAAI,aAAa;GACtB,MAAM,MAAM,OAAO,IAAI,UAAU,OAAO,QAAQ,IAAI,OAAO,UAAU;IACnE,OAAO;IACP;IACA,GAAI,QAAQ,YAAY,KAAA,KAAa,EACnC,SAAS,QAAQ,QAAQ,KAAK,EAChC;GACF,CAAC;GACD,OAAO;IACL,SAAS,YACP,OAAO,WACL,IAAI,OAAO,KACT,OAAO,eACL,kBAAkB,mBAClB,kBAAkB,QAAQ,OAAO,CACnC,GACA,OAAO,IAAI,KAAK,CAClB,CACF;IACF,UAAU,IAAkB,SAC1B,OAAO,WAAW,IAAI,QAAQ,SAAS,EAAE,GAAG,IAAI,CAAC;IACnD,QAAQ,IAAkB,MAAc,WACtC,OAAO,WAAW,IAAI,MAAM,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC;GAC3D;EACF,CAAC,CACH;CACF;CAGA,gBACG,KAAK,WAAW,KAAK,SAAS,IAAY,SAAS;CAEtD,MAAM,MAAM,SAAqC;EAC/C,MAAM,QAAQ,QAAQ,QAAQ,IAAI,UAAU;EAC5C,IAAI,UAAU,MAAM,OAAO,IAAI,SAAS,aAAa,EAAE,QAAQ,IAAI,CAAC;EACpE,MAAM,SAAS,MAAM,KAAK,QAAQ;EAClC,IAAI,WAAW,KAAA,GAAW;GACxB,MAAM,KAAK,SAAS,IAAI,WAAW,KAAK;GACxC,KAAK,SAAS,QAAQ,QAAQ,KAAK;EACrC,OAAO,IAAI,WAAW,OACpB,OAAO,IAAI,SAAS,aAAa,EAAE,QAAQ,IAAI,CAAC;EAClD,QAAQ,MAAM,KAAK,QAAA,CAAS,OAAO,OAAO;CAC5C;CAEA,MAAM,iBAAiB,IAAkB,MAA4B;EACnE,OAAO,MAAM,KAAK,QAAA,CAAS,QAAQ,IAAI,IAAI;CAC7C;CAEA,MAAM,eAAe,IAAkB,MAAc,QAAgB;EACnE,OAAO,MAAM,KAAK,QAAA,CAAS,MAAM,IAAI,MAAM,MAAM;CACnD;AACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Apis, RpcsOf } from "../../app/apis/apis.js";
|
|
2
|
+
import "../../define/index.js";
|
|
3
|
+
import { Layer } from "effect";
|
|
4
|
+
import { Rpc } from "effect/rpc";
|
|
5
|
+
//#region src/server/serve/serve.d.ts
|
|
6
|
+
/** One API's handlers on the cloud Backend, with the services they stand
|
|
7
|
+
* on given; who signed a call is given by `createServer` when the app has
|
|
8
|
+
* auth. */
|
|
9
|
+
export type CloudBackend<Rpcs extends Rpc.Any> = Layer.Layer<Rpc.ToHandler<Rpcs> | Rpc.Middleware<Rpcs>, unknown, any>;
|
|
10
|
+
/** Where a Worker reaches its Live Objects, one per name: a Durable
|
|
11
|
+
* Object namespace binding. */
|
|
12
|
+
export interface LiveNamespace {
|
|
13
|
+
readonly getByName: (name: string) => {
|
|
14
|
+
readonly fetch: (request: Request) => Promise<Response>;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export interface ServerConfig<A extends Apis, Env> {
|
|
18
|
+
/** The app's APIs, as its client names them. Each served here is at a
|
|
19
|
+
* path: an `http` API by `backend`, a `websocket` one by the caller's own
|
|
20
|
+
* Live Object in `live`. One at a full URL is served elsewhere. */
|
|
21
|
+
readonly apis: A;
|
|
22
|
+
/** Every `http` API's handlers on the cloud Backend, made for one request
|
|
23
|
+
* from the platform's own context, such as a Worker's `env`. */
|
|
24
|
+
readonly backend?: (env: Env) => { readonly [K in keyof A]?: CloudBackend<RpcsOf<A[K]>>; };
|
|
25
|
+
/** Every `websocket` API's Live Objects, from the Worker's `env`. A socket
|
|
26
|
+
* opens at the object named for whoever its token names, so needs `auth`. */
|
|
27
|
+
readonly live?: (env: Env) => { readonly [K in keyof A]?: LiveNamespace; };
|
|
28
|
+
/** The shared sign-in service, for an app with auth: each call is
|
|
29
|
+
* checked for the Account its token or cookie names, and the sign-in
|
|
30
|
+
* cookies refreshed while checking go back on the answer. `resource` is
|
|
31
|
+
* the audience an Access Token must be for, as a phone's is. */
|
|
32
|
+
readonly auth?: {
|
|
33
|
+
readonly url: string;
|
|
34
|
+
readonly resource?: string | undefined;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* A web app's server: each of its `http` APIs at its path, on the cloud
|
|
39
|
+
* Backend, each `websocket` one at its path in the caller's own Live
|
|
40
|
+
* Object, and everything else the app's pages, from TanStack Start. A
|
|
41
|
+
* plain fetch handler, so it is a Cloudflare Worker's default export as it
|
|
42
|
+
* is.
|
|
43
|
+
*/
|
|
44
|
+
export declare const createServer: <A extends Apis, Env>(config: ServerConfig<A, Env>) => {
|
|
45
|
+
fetch: (request: Request, env: Env) => Promise<Response>;
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.d.ts","names":["EffectRpc"],"sources":["../../../src/server/serve/serve.ts"],"mappings":";;;;;;;;YAWY,aAAa,aAAaA,IAAU,OAAO,MAAM,MAC3DA,IAAU,UAAU,QAAQA,IAAU,WAAW;;;iBAQlC;WACN,YAAY;aACV,QAAQ,SAAS,YAAY,QAAQ;;;iBAIjC,aAAa,UAAU,MAAM;;;;WAInC,MAAM;;;WAGN,WAAW,KAAK,oBACb,WAAW,KAAK,aAAa,OAAO,EAAE;;;WAIzC,QAAQ,KAAK,oBAAoB,WAAW,KAAK;;;;;WAKjD;aACE;aACA;;;;;;;;;;qBAcA,eAAgB,UAAU,MAAM,KAAG,QACtC,aAAa,GAAG"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { forOwner, liveUser } from "../live/live.js";
|
|
2
|
+
import { webServer } from "../worker/worker.js";
|
|
3
|
+
import { Layer } from "effect";
|
|
4
|
+
import { Rpc } from "@kestack/rpc-toolkit/rpc";
|
|
5
|
+
import { authz } from "@kestack/auth-toolkit/server/cloud";
|
|
6
|
+
//#region src/server/serve/serve.ts
|
|
7
|
+
const isUrl = (path) => /^[a-z][a-z0-9+.-]*:\/\//i.test(path);
|
|
8
|
+
const normal = (path) => `/${path.replace(/^\/+|\/+$/g, "")}`;
|
|
9
|
+
/**
|
|
10
|
+
* A web app's server: each of its `http` APIs at its path, on the cloud
|
|
11
|
+
* Backend, each `websocket` one at its path in the caller's own Live
|
|
12
|
+
* Object, and everything else the app's pages, from TanStack Start. A
|
|
13
|
+
* plain fetch handler, so it is a Cloudflare Worker's default export as it
|
|
14
|
+
* is.
|
|
15
|
+
*/
|
|
16
|
+
const createServer = (config) => {
|
|
17
|
+
const served = Object.entries(config.apis).filter(([, api]) => !isUrl(api.path));
|
|
18
|
+
const { auth } = config;
|
|
19
|
+
const openLive = async (request, objects) => {
|
|
20
|
+
if (auth === void 0) return new Response("A Live Object needs auth", { status: 500 });
|
|
21
|
+
const user = await liveUser(request, auth);
|
|
22
|
+
if (user === null) return new Response("Unauthorized", { status: 401 });
|
|
23
|
+
if (user === "unavailable") return new Response("The sign-in service could not be asked", { status: 503 });
|
|
24
|
+
return objects.getByName(user).fetch(forOwner(request, user));
|
|
25
|
+
};
|
|
26
|
+
return webServer({ route: (request, env) => {
|
|
27
|
+
const path = normal(new URL(request.url).pathname);
|
|
28
|
+
const found = served.find(([, api]) => normal(api.path) === path);
|
|
29
|
+
if (found === void 0) return null;
|
|
30
|
+
const [name, api] = found;
|
|
31
|
+
if (api.transport === "websocket") {
|
|
32
|
+
const objects = config.live?.(env)[name];
|
|
33
|
+
return objects === void 0 ? Promise.resolve(new Response("Not found", { status: 404 })) : openLive(request, objects);
|
|
34
|
+
}
|
|
35
|
+
const handlers = config.backend?.(env)[name];
|
|
36
|
+
if (handlers === void 0) return Promise.resolve(new Response("Not found", { status: 404 }));
|
|
37
|
+
const layer = auth === void 0 ? handlers : handlers.pipe(Layer.provide(authz.cloud({
|
|
38
|
+
authWorkerUrl: auth.url,
|
|
39
|
+
...auth.resource !== void 0 && { resource: auth.resource }
|
|
40
|
+
})));
|
|
41
|
+
return Rpc.http.server(api.group, layer, ...auth === void 0 ? [] : [{ wrap: authz.cookies }])(request);
|
|
42
|
+
} });
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { createServer };
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=serve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.js","names":[],"sources":["../../../src/server/serve/serve.ts"],"sourcesContent":["import { Layer } from 'effect';\nimport type { Apis, RpcsOf } from '../../define/index.ts';\nimport type { Rpc as EffectRpc } from 'effect/rpc';\nimport { authz } from '@kestack/auth-toolkit/server/cloud';\nimport { Rpc } from '@kestack/rpc-toolkit/rpc';\nimport { forOwner, liveUser } from '../live/index.ts';\nimport { webServer } from '../worker/index.ts';\n\n/** One API's handlers on the cloud Backend, with the services they stand\n * on given; who signed a call is given by `createServer` when the app has\n * auth. */\nexport type CloudBackend<Rpcs extends EffectRpc.Any> = Layer.Layer<\n EffectRpc.ToHandler<Rpcs> | EffectRpc.Middleware<Rpcs>,\n unknown,\n // oxlint-disable-next-line no-explicit-any\n any\n>;\n\n/** Where a Worker reaches its Live Objects, one per name: a Durable\n * Object namespace binding. */\nexport interface LiveNamespace {\n readonly getByName: (name: string) => {\n readonly fetch: (request: Request) => Promise<Response>;\n };\n}\n\nexport interface ServerConfig<A extends Apis, Env> {\n /** The app's APIs, as its client names them. Each served here is at a\n * path: an `http` API by `backend`, a `websocket` one by the caller's own\n * Live Object in `live`. One at a full URL is served elsewhere. */\n readonly apis: A;\n /** Every `http` API's handlers on the cloud Backend, made for one request\n * from the platform's own context, such as a Worker's `env`. */\n readonly backend?: (env: Env) => {\n readonly [K in keyof A]?: CloudBackend<RpcsOf<A[K]>>;\n };\n /** Every `websocket` API's Live Objects, from the Worker's `env`. A socket\n * opens at the object named for whoever its token names, so needs `auth`. */\n readonly live?: (env: Env) => { readonly [K in keyof A]?: LiveNamespace };\n /** The shared sign-in service, for an app with auth: each call is\n * checked for the Account its token or cookie names, and the sign-in\n * cookies refreshed while checking go back on the answer. `resource` is\n * the audience an Access Token must be for, as a phone's is. */\n readonly auth?: {\n readonly url: string;\n readonly resource?: string | undefined;\n };\n}\n\nconst isUrl = (path: string) => /^[a-z][a-z0-9+.-]*:\\/\\//i.test(path);\nconst normal = (path: string) => `/${path.replace(/^\\/+|\\/+$/g, '')}`;\n\n/**\n * A web app's server: each of its `http` APIs at its path, on the cloud\n * Backend, each `websocket` one at its path in the caller's own Live\n * Object, and everything else the app's pages, from TanStack Start. A\n * plain fetch handler, so it is a Cloudflare Worker's default export as it\n * is.\n */\nexport const createServer = <A extends Apis, Env>(\n config: ServerConfig<A, Env>,\n) => {\n const served = Object.entries(config.apis).filter(\n ([, api]) => !isUrl(api.path),\n );\n const { auth } = config;\n // A socket for the object of whoever its token names.\n const openLive = async (request: Request, objects: LiveNamespace) => {\n if (auth === undefined)\n return new Response('A Live Object needs auth', { status: 500 });\n const user = await liveUser(request, auth);\n if (user === null) return new Response('Unauthorized', { status: 401 });\n if (user === 'unavailable')\n return new Response('The sign-in service could not be asked', {\n status: 503,\n });\n return objects.getByName(user).fetch(forOwner(request, user));\n };\n return webServer<Env>({\n route: (request, env) => {\n const path = normal(new URL(request.url).pathname);\n const found = served.find(([, api]) => normal(api.path) === path);\n if (found === undefined) return null;\n const [name, api] = found;\n if (api.transport === 'websocket') {\n const objects = config.live?.(env)[name as keyof A];\n return objects === undefined\n ? Promise.resolve(new Response('Not found', { status: 404 }))\n : openLive(request, objects);\n }\n const handlers = config.backend?.(env)[name as keyof A];\n if (handlers === undefined)\n return Promise.resolve(new Response('Not found', { status: 404 }));\n const layer = (\n auth === undefined\n ? handlers\n : handlers.pipe(\n Layer.provide(\n authz.cloud({\n authWorkerUrl: auth.url,\n ...(auth.resource !== undefined && {\n resource: auth.resource,\n }),\n }),\n ),\n )\n ) as never;\n return Rpc.http.server(\n api.group,\n layer,\n ...(auth === undefined ? [] : [{ wrap: authz.cookies }]),\n )(request);\n },\n });\n};\n"],"mappings":";;;;;;AAiDA,MAAM,SAAS,SAAiB,2BAA2B,KAAK,IAAI;AACpE,MAAM,UAAU,SAAiB,IAAI,KAAK,QAAQ,cAAc,EAAE;;;;;;;;AASlE,MAAa,gBACX,WACG;CACH,MAAM,SAAS,OAAO,QAAQ,OAAO,IAAI,CAAC,CAAC,QACxC,GAAG,SAAS,CAAC,MAAM,IAAI,IAAI,CAC9B;CACA,MAAM,EAAE,SAAS;CAEjB,MAAM,WAAW,OAAO,SAAkB,YAA2B;EACnE,IAAI,SAAS,KAAA,GACX,OAAO,IAAI,SAAS,4BAA4B,EAAE,QAAQ,IAAI,CAAC;EACjE,MAAM,OAAO,MAAM,SAAS,SAAS,IAAI;EACzC,IAAI,SAAS,MAAM,OAAO,IAAI,SAAS,gBAAgB,EAAE,QAAQ,IAAI,CAAC;EACtE,IAAI,SAAS,eACX,OAAO,IAAI,SAAS,0CAA0C,EAC5D,QAAQ,IACV,CAAC;EACH,OAAO,QAAQ,UAAU,IAAI,CAAC,CAAC,MAAM,SAAS,SAAS,IAAI,CAAC;CAC9D;CACA,OAAO,UAAe,EACpB,QAAQ,SAAS,QAAQ;EACvB,MAAM,OAAO,OAAO,IAAI,IAAI,QAAQ,GAAG,CAAC,CAAC,QAAQ;EACjD,MAAM,QAAQ,OAAO,MAAM,GAAG,SAAS,OAAO,IAAI,IAAI,MAAM,IAAI;EAChE,IAAI,UAAU,KAAA,GAAW,OAAO;EAChC,MAAM,CAAC,MAAM,OAAO;EACpB,IAAI,IAAI,cAAc,aAAa;GACjC,MAAM,UAAU,OAAO,OAAO,GAAG,CAAC,CAAC;GACnC,OAAO,YAAY,KAAA,IACf,QAAQ,QAAQ,IAAI,SAAS,aAAa,EAAE,QAAQ,IAAI,CAAC,CAAC,IAC1D,SAAS,SAAS,OAAO;EAC/B;EACA,MAAM,WAAW,OAAO,UAAU,GAAG,CAAC,CAAC;EACvC,IAAI,aAAa,KAAA,GACf,OAAO,QAAQ,QAAQ,IAAI,SAAS,aAAa,EAAE,QAAQ,IAAI,CAAC,CAAC;EACnE,MAAM,QACJ,SAAS,KAAA,IACL,WACA,SAAS,KACP,MAAM,QACJ,MAAM,MAAM;GACV,eAAe,KAAK;GACpB,GAAI,KAAK,aAAa,KAAA,KAAa,EACjC,UAAU,KAAK,SACjB;EACF,CAAC,CACH,CACF;EAEN,OAAO,IAAI,KAAK,OACd,IAAI,OACJ,OACA,GAAI,SAAS,KAAA,IAAY,CAAC,IAAI,CAAC,EAAE,MAAM,MAAM,QAAQ,CAAC,CACxD,CAAC,CAAC,OAAO;CACX,EACF,CAAC;AACH"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/server/stage/stage.d.ts
|
|
2
|
+
export declare const isDeployedStage: (stage: string) => boolean;
|
|
3
|
+
/** Refuses a deployed stage unless the deploy says so on purpose, as CI and
|
|
4
|
+
* a deploy script do with ALLOW_DEPLOY=true. */
|
|
5
|
+
export declare const assertStageIsSafe: (stage: string) => void;
|
|
6
|
+
/** Where a stage is served: `domain` for prod, `prN-domain` for a pull
|
|
7
|
+
* request, and nowhere public for anyone's own stage. */
|
|
8
|
+
export declare const domainFor: (stage: string, domain: string) => string | undefined;
|
|
9
|
+
/** A local stage's dev server, on the PORT `portless run` hands it. */
|
|
10
|
+
export declare const devConfigFor: (isLocal: boolean) => {
|
|
11
|
+
port: number;
|
|
12
|
+
} | undefined;
|
|
13
|
+
//#endregion
|
|
14
|
+
//# sourceMappingURL=stage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stage.d.ts","names":[],"sources":["../../../src/server/stage/stage.ts"],"mappings":";qBAQa,kBAAe;;;qBAKf,oBAAiB;;;qBAUjB,YAAS,eAAiB;;qBAQ1B,eAAY;EAEpB"}
|