@hkdigital/lib-core 0.3.10 → 0.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -12
- package/dist/assets/autospuiten/car-paint-picker.d.ts +7 -7
- package/dist/classes/data/IterableTree.d.ts +13 -6
- package/dist/classes/data/IterableTree.js +18 -5
- package/dist/classes/promise/HkPromise.d.ts +18 -17
- package/dist/classes/promise/HkPromise.js +135 -128
- package/dist/classes/streams/ServerEventsStore.d.ts +2 -3
- package/dist/classes/streams/ServerEventsStore.js +5 -4
- package/dist/classes/svelte/index.d.ts +0 -8
- package/dist/classes/svelte/index.js +0 -13
- package/dist/config/README.md +197 -0
- package/dist/config/generators/vite.d.ts +47 -0
- package/dist/config/generators/vite.js +148 -0
- package/dist/config/imagetools.d.ts +2 -2
- package/dist/config/vite.d.ts +1 -0
- package/dist/config/vite.js +5 -0
- package/dist/constants/regexp/README.md +96 -0
- package/dist/constants/regexp/index.d.ts +1 -1
- package/dist/constants/regexp/index.js +2 -2
- package/dist/constants/regexp/text.d.ts +6 -6
- package/dist/constants/regexp/text.js +6 -6
- package/dist/constants/regexp/url.d.ts +1 -0
- package/dist/constants/regexp/url.js +3 -0
- package/dist/constants/regexp/user.d.ts +0 -1
- package/dist/constants/regexp/user.js +6 -10
- package/dist/design/README.md +405 -0
- package/dist/design/index.d.ts +8 -0
- package/dist/design/index.js +97 -0
- package/dist/design/tailwind-theme-extend.js +4 -4
- package/dist/design/themes/README.md +103 -0
- package/dist/{themes → design/themes}/hkdev/theme-ext.js +1 -1
- package/dist/{util/design-system/css → design/utils}/clamp.js +1 -1
- package/dist/{util/design-system/css/root-design-vars.d.ts → design/utils/root-vars.d.ts} +2 -2
- package/dist/{util/design-system/css/root-design-vars.js → design/utils/root-vars.js} +3 -3
- package/dist/{util/design-system/layout → design/utils}/scaling.js +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/errors/promise.d.ts +27 -0
- package/dist/errors/promise.js +26 -0
- package/dist/logging/README.md +158 -0
- package/dist/logging/index.d.ts +3 -1
- package/dist/logging/index.js +6 -2
- package/dist/logging/internal/adapters/console.js +1 -1
- package/dist/logging/internal/adapters/pino.js +29 -11
- package/dist/logging/internal/factories/client.d.ts +1 -1
- package/dist/logging/internal/factories/client.js +2 -2
- package/dist/logging/internal/factories/server.d.ts +1 -1
- package/dist/logging/internal/factories/server.js +2 -2
- package/dist/logging/internal/factories/universal.d.ts +2 -2
- package/dist/logging/internal/factories/universal.js +1 -1
- package/dist/logging/internal/{unified-logger → logger}/Logger.d.ts +2 -2
- package/dist/logging/internal/{unified-logger → logger}/Logger.js +3 -3
- package/dist/logging/internal/logger/index.d.ts +1 -0
- package/dist/logging/internal/logger/index.js +1 -0
- package/dist/logging/internal/{unified-logger/typedef.d.ts → typedef.d.ts} +2 -1
- package/dist/logging/internal/{unified-logger/typedef.js → typedef.js} +5 -1
- package/dist/network/README.md +173 -0
- package/dist/network/cache.d.ts +3 -0
- package/dist/network/cache.js +4 -0
- package/dist/{util → network}/http/caching.js +3 -5
- package/dist/{util → network}/http/errors.js +1 -1
- package/dist/{util → network}/http/headers.js +1 -1
- package/dist/{util → network}/http/http-request.js +2 -2
- package/dist/{util → network}/http/json-request.js +1 -1
- package/dist/{util → network}/http/response.js +1 -1
- package/dist/network/http.d.ts +6 -0
- package/dist/network/http.js +6 -0
- package/dist/network/loaders/README.md +255 -0
- package/dist/{classes/svelte → network/loaders}/audio/AudioLoader.svelte.d.ts +1 -1
- package/dist/{classes/svelte → network/loaders}/audio/AudioLoader.svelte.js +1 -1
- package/dist/{classes/svelte → network/loaders}/audio/AudioScene.svelte.js +1 -1
- package/dist/network/loaders/audio.d.ts +2 -0
- package/dist/network/loaders/audio.js +2 -0
- package/dist/{classes/svelte → network/loaders}/image/ImageLoader.svelte.d.ts +3 -6
- package/dist/{classes/svelte → network/loaders}/image/ImageLoader.svelte.js +5 -6
- package/dist/{classes/svelte → network/loaders}/image/ImageScene.svelte.d.ts +5 -7
- package/dist/{classes/svelte → network/loaders}/image/ImageScene.svelte.js +8 -9
- package/dist/{classes/svelte → network/loaders}/image/ImageVariantsLoader.svelte.d.ts +4 -4
- package/dist/{classes/svelte → network/loaders}/image/ImageVariantsLoader.svelte.js +3 -5
- package/dist/{util/image → network/loaders/image/utils}/index.d.ts +2 -2
- package/dist/{util/image → network/loaders/image/utils}/index.js +10 -10
- package/dist/network/loaders/image.d.ts +5 -0
- package/dist/network/loaders/image.js +8 -0
- package/dist/network/loaders.d.ts +2 -0
- package/dist/network/loaders.js +2 -0
- package/dist/{classes/svelte/network-loader → network/states}/NetworkLoader.svelte.d.ts +1 -1
- package/dist/{classes/svelte/network-loader → network/states}/NetworkLoader.svelte.js +4 -4
- package/dist/{classes/svelte/network-loader → network/states}/mocks.js +2 -2
- package/dist/network/typedef.d.ts +4 -0
- package/dist/network/typedef.js +10 -0
- package/dist/services/README.md +200 -0
- package/dist/services/index.d.ts +6 -1
- package/dist/services/index.js +8 -1
- package/dist/services/{internal/service-base → service-base}/ServiceBase.d.ts +2 -2
- package/dist/services/{internal/service-base → service-base}/ServiceBase.js +2 -2
- package/dist/services/{internal/service-base → service-base}/constants.d.ts +0 -12
- package/dist/services/{internal/service-base → service-base}/constants.js +0 -12
- package/dist/services/{internal/service-base → service-base}/typedef.d.ts +1 -1
- package/dist/services/{internal/service-base → service-base}/typedef.js +1 -1
- package/dist/services/{internal/service-manager → service-manager}/ServiceManager.d.ts +2 -2
- package/dist/services/{internal/service-manager → service-manager}/ServiceManager.js +2 -2
- package/dist/typedef/index.d.ts +0 -1
- package/dist/typedef/index.js +1 -1
- package/dist/{components → ui/components}/button-group/ButtonGroup.svelte +1 -1
- package/dist/{components → ui/components}/game-box/GameBox.svelte +1 -1
- package/dist/ui/components/hk-app-layout/HkAppLayout.state.svelte.d.ts +6 -0
- package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.state.svelte.js +1 -1
- package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.svelte +1 -1
- package/dist/{components → ui/components}/image-box/ImageBox.svelte +14 -14
- package/dist/{components → ui/components}/image-box/ImageBox.svelte.d.ts +6 -6
- package/dist/{components → ui/components}/image-box/index.js +1 -1
- package/dist/{components → ui/components}/presenter/ImageSlide.svelte +2 -2
- package/dist/{components → ui/components}/presenter/ImageSlide.svelte.d.ts +2 -2
- package/dist/{components → ui/components}/presenter/Presenter.state.svelte.d.ts +1 -1
- package/dist/{components → ui/components}/presenter/Presenter.state.svelte.js +2 -2
- package/dist/{components → ui/components}/presenter/util.js +2 -2
- package/dist/{components → ui/components}/virtual-viewport/VirtualViewport.svelte +1 -1
- package/dist/{primitives → ui/primitives}/buttons/button/Button.svelte +1 -1
- package/dist/{primitives → ui/primitives}/buttons/button/Button.svelte.d.ts +1 -1
- package/dist/{primitives → ui/primitives}/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +2 -2
- package/dist/{primitives → ui/primitives}/drag-drop/DragDropContext.svelte +1 -1
- package/dist/{primitives → ui/primitives}/drag-drop/DragDropContext.svelte.d.ts +1 -1
- package/dist/{primitives → ui/primitives}/drag-drop/Draggable.svelte +4 -4
- package/dist/{primitives → ui/primitives}/drag-drop/Draggable.svelte.d.ts +1 -1
- package/dist/{primitives → ui/primitives}/drag-drop/DropZone.svelte +6 -6
- package/dist/{primitives → ui/primitives}/drag-drop/DropZone.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneArea.svelte +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneArea.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneList.svelte +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneList.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/drag-state.svelte.d.ts +11 -11
- package/dist/{primitives → ui/primitives}/drag-drop/drag-state.svelte.js +5 -5
- package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte +1 -1
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.state.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.state.svelte.js +2 -2
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.state.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.state.svelte.js +2 -2
- package/dist/util/exceptions/index.d.ts +4 -3
- package/dist/util/exceptions/index.js +9 -6
- package/dist/util/expect/url.d.ts +6 -6
- package/dist/util/expect/url.js +17 -17
- package/dist/util/iterate/index.d.ts +4 -4
- package/dist/util/iterate/index.js +2 -2
- package/dist/valibot/README.md +61 -0
- package/dist/valibot/index.d.ts +4 -4
- package/dist/valibot/index.js +4 -5
- package/dist/valibot/parsers/email.d.ts +12 -0
- package/dist/valibot/parsers/email.js +34 -0
- package/dist/valibot/{url.d.ts → parsers/url.d.ts} +13 -5
- package/dist/valibot/{url.js → parsers/url.js} +22 -6
- package/dist/valibot/{user.js → parsers/user.js} +2 -2
- package/dist/valibot/parsers.d.ts +2 -0
- package/dist/valibot/parsers.js +4 -0
- package/package.json +3 -5
- package/dist/components/hk-app-layout/HkAppLayout.state.svelte.d.ts +0 -6
- package/dist/constants/regexp/web.d.ts +0 -1
- package/dist/constants/regexp/web.js +0 -3
- package/dist/logging/internal/unified-logger/index.d.ts +0 -3
- package/dist/logging/internal/unified-logger/index.js +0 -6
- package/dist/schemas/index.d.ts +0 -1
- package/dist/schemas/index.js +0 -1
- package/dist/schemas/validate-url.d.ts +0 -30
- package/dist/schemas/validate-url.js +0 -180
- package/dist/services/internal/index.d.ts +0 -6
- package/dist/services/internal/index.js +0 -8
- package/dist/themes/index.d.ts +0 -1
- package/dist/themes/index.js +0 -1
- package/dist/util/design-system/index.d.ts +0 -5
- package/dist/util/design-system/index.js +0 -5
- package/dist/zod/all.d.ts +0 -6
- package/dist/zod/all.js +0 -33
- package/dist/zod/generic.d.ts +0 -6
- package/dist/zod/generic.js +0 -11
- package/dist/zod/javascript.d.ts +0 -8
- package/dist/zod/javascript.js +0 -32
- package/dist/zod/user.d.ts +0 -9
- package/dist/zod/user.js +0 -16
- package/dist/zod/web.d.ts +0 -21
- package/dist/zod/web.js +0 -52
- /package/dist/config/{imagetools-config.d.ts → generators/imagetools.d.ts} +0 -0
- /package/dist/config/{imagetools-config.js → generators/imagetools.js} +0 -0
- /package/dist/design/{design-config.d.ts → config/design-config.d.ts} +0 -0
- /package/dist/design/{design-config.js → config/design-config.js} +0 -0
- /package/dist/{util/design-system/tailwind.d.ts → design/generators/index.d.ts} +0 -0
- /package/dist/{util/design-system/tailwind.js → design/generators/index.js} +0 -0
- /package/dist/{util/design-system → design/plugins}/skeleton.d.ts +0 -0
- /package/dist/{util/design-system → design/plugins}/skeleton.js +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/blocks/text-block.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/boxes/game-box.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/buttons/button-icon-steeze.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/buttons/button-text.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/buttons/button.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/buttons/skip-button.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/drag-drop/draggable.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/drag-drop/drop-zone.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/icons/icon-steeze.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/inputs/text-input.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/panels/panel.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/rows/panel-grid-row.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components/rows/panel-row-2.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/components.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/debug.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/global/layout.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/global/on-colors.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/globals.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/responsive.css +0 -0
- /package/dist/{themes → design/themes}/hkdev/theme-ext.d.ts +0 -0
- /package/dist/{themes → design/themes}/hkdev/theme.css +0 -0
- /package/dist/{util/design-system/css → design/utils}/clamp.d.ts +0 -0
- /package/dist/{util/design-system/layout → design/utils}/scaling.d.ts +0 -0
- /package/dist/{util/design-system/components → design/utils}/states.d.ts +0 -0
- /package/dist/{util/design-system/components → design/utils}/states.js +0 -0
- /package/dist/logging/internal/{unified-logger/constants.d.ts → constants.d.ts} +0 -0
- /package/dist/logging/internal/{unified-logger/constants.js → constants.js} +0 -0
- /package/dist/{classes → network}/cache/IndexedDbCache.d.ts +0 -0
- /package/dist/{classes → network}/cache/IndexedDbCache.js +0 -0
- /package/dist/{classes → network}/cache/MemoryResponseCache.d.ts +0 -0
- /package/dist/{classes → network}/cache/MemoryResponseCache.js +0 -0
- /package/dist/{classes → network}/cache/index.d.ts +0 -0
- /package/dist/{classes → network}/cache/index.js +0 -0
- /package/dist/{classes → network}/cache/typedef.d.ts +0 -0
- /package/dist/{classes → network}/cache/typedef.js +0 -0
- /package/dist/{util → network}/http/caching.d.ts +0 -0
- /package/dist/{util → network}/http/errors.d.ts +0 -0
- /package/dist/{util → network}/http/headers.d.ts +0 -0
- /package/dist/{util → network}/http/http-request.d.ts +0 -0
- /package/dist/{util → network}/http/index.d.ts +0 -0
- /package/dist/{util → network}/http/index.js +0 -0
- /package/dist/{util → network}/http/json-request.d.ts +0 -0
- /package/dist/{util → network}/http/mocks.d.ts +0 -0
- /package/dist/{util → network}/http/mocks.js +0 -0
- /package/dist/{util → network}/http/response.d.ts +0 -0
- /package/dist/{util → network}/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
- /package/dist/{util → network}/http/typedef.d.ts +0 -0
- /package/dist/{util → network}/http/typedef.js +0 -0
- /package/dist/{util → network}/http/url.d.ts +0 -0
- /package/dist/{util → network}/http/url.js +0 -0
- /package/dist/{classes/svelte → network/loaders}/audio/AudioScene.svelte.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/audio/mocks.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/audio/mocks.js +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/index.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/index.js +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/mocks.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/mocks.js +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/typedef.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/typedef.js +0 -0
- /package/dist/{typedef/image.d.ts → network/loaders/typedef.d.ts} +0 -0
- /package/dist/{typedef/image.js → network/loaders/typedef.js} +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/constants.d.ts +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/constants.js +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/index.d.ts +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/index.js +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/mocks.d.ts +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/typedef.d.ts +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/typedef.js +0 -0
- /package/dist/services/{internal/service-base → service-base}/index.d.ts +0 -0
- /package/dist/services/{internal/service-base → service-base}/index.js +0 -0
- /package/dist/services/{internal/service-manager → service-manager}/constants.d.ts +0 -0
- /package/dist/services/{internal/service-manager → service-manager}/constants.js +0 -0
- /package/dist/services/{internal/service-manager → service-manager}/typedef.d.ts +0 -0
- /package/dist/services/{internal/service-manager → service-manager}/typedef.js +0 -0
- /package/dist/{components → ui/components}/button-group/ButtonGroup.svelte.d.ts +0 -0
- /package/dist/{components → ui/components}/button-group/typedef.d.ts +0 -0
- /package/dist/{components → ui/components}/button-group/typedef.js +0 -0
- /package/dist/{components → ui/components}/compare-left-right/CompareLeftRight.svelte +0 -0
- /package/dist/{components → ui/components}/compare-left-right/CompareLeftRight.svelte.d.ts +0 -0
- /package/dist/{components → ui/components}/compare-left-right/index.d.ts +0 -0
- /package/dist/{components → ui/components}/compare-left-right/index.js +0 -0
- /package/dist/{components → ui/components}/game-box/GameBox.svelte.d.ts +0 -0
- /package/dist/{components → ui/components}/game-box/gamebox.util.d.ts +0 -0
- /package/dist/{components → ui/components}/game-box/gamebox.util.js +0 -0
- /package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.svelte.d.ts +0 -0
- /package/dist/{components → ui/components}/image-box/index.d.ts +0 -0
- /package/dist/{components → ui/components}/image-box/typedef.d.ts +0 -0
- /package/dist/{components → ui/components}/image-box/typedef.js +0 -0
- /package/dist/{components → ui/components}/index.d.ts +0 -0
- /package/dist/{components → ui/components}/index.js +0 -0
- /package/dist/{components → ui/components}/presenter/Presenter.svelte +0 -0
- /package/dist/{components → ui/components}/presenter/Presenter.svelte.d.ts +0 -0
- /package/dist/{components → ui/components}/presenter/constants.d.ts +0 -0
- /package/dist/{components → ui/components}/presenter/constants.js +0 -0
- /package/dist/{components → ui/components}/presenter/index.d.ts +0 -0
- /package/dist/{components → ui/components}/presenter/index.js +0 -0
- /package/dist/{components → ui/components}/presenter/typedef.d.ts +0 -0
- /package/dist/{components → ui/components}/presenter/typedef.js +0 -0
- /package/dist/{components → ui/components}/presenter/util.d.ts +0 -0
- /package/dist/{components → ui/components}/virtual-viewport/VirtualViewport.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/area/HkArea.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/area/HkArea.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/area/HkGridArea.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/area/HkGridArea.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/area/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/area/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/buttons/button-icon-steeze/SteezeIconButton.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/buttons/button-icon-steeze/SteezeIconButton.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/buttons/button-text/TextButton.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/buttons/button-text/TextButton.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/buttons/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/buttons/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/debug/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/debug/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/DragController.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/DragController.js +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/actions.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/actions.js +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/util.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/util.js +0 -0
- /package/dist/{primitives → ui/primitives}/hkdev/blocks/TextBlock.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/hkdev/blocks/TextBlock.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/hkdev/buttons/CheckButton.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/hkdev/buttons/CheckButton.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/HkIcon.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/icons/HkIcon.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/HkTabIcon.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/icons/HkTabIcon.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/SteezeIcon.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/icons/SteezeIcon.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/icons/typedef.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/typedef.js +0 -0
- /package/dist/{primitives → ui/primitives}/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/TestTextInput.svelte__ +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte___ +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconInvalid.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconInvalid.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconValid.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconValid.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte__heightFrom__ +0 -0
- /package/dist/{primitives → ui/primitives}/layout/grid-layers/util.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/layout/grid-layers/util.js +0 -0
- /package/dist/{primitives → ui/primitives}/layout/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/layout/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/panels/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/panels/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/panels/panel/Panel.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/panels/panel/Panel.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/rows/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/rows/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/rows/panel-grid-row/PanelGridRow.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/rows/panel-grid-row/PanelGridRow.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/rows/panel-row-2/PanelRow2.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/rows/panel-row-2/PanelRow2.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.svelte +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/index.js +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/typedef.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/typedef.js +0 -0
- /package/dist/valibot/{date.js__ → parsers/date.js__} +0 -0
- /package/dist/valibot/{user.d.ts → parsers/user.d.ts} +0 -0
package/dist/errors/index.d.ts
CHANGED
package/dist/errors/index.js
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Promise-related error classes
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Error class specifically for HkPromise operations
|
|
6
|
+
* Provides timeout and cancelled properties with proper type safety
|
|
7
|
+
*/
|
|
8
|
+
export class PromiseError extends Error {
|
|
9
|
+
/**
|
|
10
|
+
* @param {string} message - Error message
|
|
11
|
+
* @param {object} [options] - Error options
|
|
12
|
+
* @param {boolean} [options.timeout=false] - Whether this is a timeout error
|
|
13
|
+
* @param {boolean} [options.cancelled=false] - Whether this is a cancellation error
|
|
14
|
+
* @param {Error|*} [options.cause] - Original error or cause
|
|
15
|
+
* @param {*} [options.details] - Additional details object
|
|
16
|
+
*/
|
|
17
|
+
constructor(message: string, options?: {
|
|
18
|
+
timeout?: boolean;
|
|
19
|
+
cancelled?: boolean;
|
|
20
|
+
cause?: Error | any;
|
|
21
|
+
details?: any;
|
|
22
|
+
});
|
|
23
|
+
timeout: boolean;
|
|
24
|
+
cancelled: boolean;
|
|
25
|
+
cause: any;
|
|
26
|
+
details: any;
|
|
27
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Promise-related error classes
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Error class specifically for HkPromise operations
|
|
7
|
+
* Provides timeout and cancelled properties with proper type safety
|
|
8
|
+
*/
|
|
9
|
+
export class PromiseError extends Error {
|
|
10
|
+
/**
|
|
11
|
+
* @param {string} message - Error message
|
|
12
|
+
* @param {object} [options] - Error options
|
|
13
|
+
* @param {boolean} [options.timeout=false] - Whether this is a timeout error
|
|
14
|
+
* @param {boolean} [options.cancelled=false] - Whether this is a cancellation error
|
|
15
|
+
* @param {Error|*} [options.cause] - Original error or cause
|
|
16
|
+
* @param {*} [options.details] - Additional details object
|
|
17
|
+
*/
|
|
18
|
+
constructor(message, options = {}) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.name = 'PromiseError';
|
|
21
|
+
this.timeout = options.timeout ?? false;
|
|
22
|
+
this.cancelled = options.cancelled ?? false;
|
|
23
|
+
this.cause = options.cause;
|
|
24
|
+
this.details = options.details;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Logging
|
|
2
|
+
|
|
3
|
+
Universal logging utilities for SvelteKit applications with server/client/universal logger factories.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add -D pino-pretty
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```javascript
|
|
14
|
+
import { createServerLogger,
|
|
15
|
+
createClientLogger,
|
|
16
|
+
createLogger } from '@hkdigital/lib-core/logging/index.js';
|
|
17
|
+
|
|
18
|
+
// Server-side logging (uses pino)
|
|
19
|
+
const serverLogger = createServerLogger('app');
|
|
20
|
+
|
|
21
|
+
// Client-side logging (uses console)
|
|
22
|
+
const clientLogger = createClientLogger('app');
|
|
23
|
+
|
|
24
|
+
// Universal logger (works on both server and client)
|
|
25
|
+
const logger = createLogger('app');
|
|
26
|
+
|
|
27
|
+
// Log at different levels
|
|
28
|
+
logger.debug('Debug info', { data: 'details' });
|
|
29
|
+
logger.info('Info message');
|
|
30
|
+
logger.warn('Warning message');
|
|
31
|
+
logger.error('Error message', { error: new Error('Something went wrong') });
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## SvelteKit Integration
|
|
35
|
+
|
|
36
|
+
### Server-side logging (src/hooks.server.js)
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
import { createServerLogger } from '@hkdigital/lib-core/logging/index.js';
|
|
40
|
+
|
|
41
|
+
let logger;
|
|
42
|
+
|
|
43
|
+
// Initialize server logging and services
|
|
44
|
+
export async function init() {
|
|
45
|
+
logger = createServerLogger('server');
|
|
46
|
+
|
|
47
|
+
try {
|
|
48
|
+
logger.info('Initializing server');
|
|
49
|
+
|
|
50
|
+
// Initialize your services here
|
|
51
|
+
// const serviceManager = new ServiceManager();
|
|
52
|
+
// await serviceManager.startAll();
|
|
53
|
+
|
|
54
|
+
logger.info('Server initialization complete');
|
|
55
|
+
} catch (error) {
|
|
56
|
+
logger.error('Server initialization failed:', error);
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Graceful shutdown
|
|
62
|
+
export async function destroy() {
|
|
63
|
+
if (logger) {
|
|
64
|
+
logger.info('Shutting down server');
|
|
65
|
+
|
|
66
|
+
// Clean up services here
|
|
67
|
+
// if (serviceManager) {
|
|
68
|
+
// await serviceManager.stopAll();
|
|
69
|
+
// }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** @type {import('@sveltejs/kit').Handle} */
|
|
74
|
+
export async function handle({ event, resolve }) {
|
|
75
|
+
const start = Date.now();
|
|
76
|
+
|
|
77
|
+
logger?.info('Request started', {
|
|
78
|
+
method: event.request.method,
|
|
79
|
+
url: event.url.pathname,
|
|
80
|
+
userAgent: event.request.headers.get('user-agent')
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
try {
|
|
84
|
+
const response = await resolve(event);
|
|
85
|
+
const duration = Date.now() - start;
|
|
86
|
+
|
|
87
|
+
logger?.info('Request completed', {
|
|
88
|
+
method: event.request.method,
|
|
89
|
+
url: event.url.pathname,
|
|
90
|
+
status: response.status,
|
|
91
|
+
duration: `${duration}ms`
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
return response;
|
|
95
|
+
} catch (error) {
|
|
96
|
+
logger?.error('Request failed', {
|
|
97
|
+
method: event.request.method,
|
|
98
|
+
url: event.url.pathname,
|
|
99
|
+
error: error.message,
|
|
100
|
+
stack: error.stack
|
|
101
|
+
});
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Client-side logging (src/hooks.client.js)
|
|
108
|
+
|
|
109
|
+
```javascript
|
|
110
|
+
import { createClientLogger } from '@hkdigital/lib-core/logging/index.js';
|
|
111
|
+
|
|
112
|
+
const logger = createClientLogger('client');
|
|
113
|
+
|
|
114
|
+
/** @type {import('@sveltejs/kit').HandleClientError} */
|
|
115
|
+
export function handleError({ error, event }) {
|
|
116
|
+
logger.error('Client error occurred', {
|
|
117
|
+
message: error.message,
|
|
118
|
+
stack: error.stack,
|
|
119
|
+
url: event.url?.pathname,
|
|
120
|
+
userAgent: navigator.userAgent
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Initialize client-side logging
|
|
125
|
+
export function init() {
|
|
126
|
+
logger.info('Client application initialized', {
|
|
127
|
+
userAgent: navigator.userAgent,
|
|
128
|
+
viewport: `${window.innerWidth}x${window.innerHeight}`
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
// Log unhandled errors
|
|
132
|
+
window.addEventListener('error', (event) => {
|
|
133
|
+
logger.error('Unhandled error', {
|
|
134
|
+
message: event.error?.message || event.message,
|
|
135
|
+
filename: event.filename,
|
|
136
|
+
lineno: event.lineno,
|
|
137
|
+
colno: event.colno
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
// Log unhandled promise rejections
|
|
142
|
+
window.addEventListener('unhandledrejection', (event) => {
|
|
143
|
+
logger.error('Unhandled promise rejection', {
|
|
144
|
+
reason: event.reason
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Cleanup when app is destroyed
|
|
150
|
+
export function destroy() {
|
|
151
|
+
logger.info('Client application destroyed');
|
|
152
|
+
// Note: Console adapter doesn't require cleanup
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Development
|
|
157
|
+
|
|
158
|
+
Requires `pino-pretty` as peer dependency for development mode formatting.
|
package/dist/logging/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { createServerLogger } from "./internal/factories/server.js";
|
|
2
2
|
export { createClientLogger } from "./internal/factories/client.js";
|
|
3
3
|
export { createLogger } from "./internal/factories/universal.js";
|
|
4
|
-
export
|
|
4
|
+
export { Logger } from "./internal/logger/index.js";
|
|
5
|
+
export * from "./internal/constants.js";
|
|
6
|
+
export * from "./internal/typedef.js";
|
package/dist/logging/index.js
CHANGED
|
@@ -3,5 +3,9 @@ export { createServerLogger } from './internal/factories/server.js';
|
|
|
3
3
|
export { createClientLogger } from './internal/factories/client.js';
|
|
4
4
|
export { createLogger } from './internal/factories/universal.js';
|
|
5
5
|
|
|
6
|
-
// Logger
|
|
7
|
-
export
|
|
6
|
+
// Logger (advanced usage)
|
|
7
|
+
export { Logger } from './internal/logger/index.js';
|
|
8
|
+
|
|
9
|
+
// Constants and typedefs
|
|
10
|
+
export * from './internal/constants.js';
|
|
11
|
+
export * from './internal/typedef.js';
|
|
@@ -55,19 +55,37 @@ export class PinoAdapter {
|
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
// Add error handling for missing pino-pretty in dev
|
|
59
|
+
if (dev) {
|
|
60
|
+
const devOptions = {
|
|
61
|
+
level: 'debug',
|
|
62
|
+
transport: {
|
|
63
|
+
target: 'pino-pretty',
|
|
64
|
+
options: {
|
|
65
|
+
colorize: true
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
this.pino = pino({ ...baseOptions, ...devOptions, ...options });
|
|
72
|
+
} catch (error) {
|
|
73
|
+
if (error.message.includes('pino-pretty')) {
|
|
74
|
+
const errorMessage = `
|
|
75
|
+
╭─────────────────────────────────────────────────────────────╮
|
|
76
|
+
│ Missing Dependency │
|
|
77
|
+
├─────────────────────────────────────────────────────────────┤
|
|
78
|
+
│ 'pino-pretty' is required for development logging │
|
|
79
|
+
│ Install it with: pnpm add -D pino-pretty │
|
|
80
|
+
╰─────────────────────────────────────────────────────────────╯`;
|
|
81
|
+
console.error(errorMessage);
|
|
82
|
+
throw new Error('pino-pretty is required for development mode');
|
|
83
|
+
}
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
} else {
|
|
87
|
+
this.pino = pino({ ...baseOptions, ...options });
|
|
88
|
+
}
|
|
71
89
|
}
|
|
72
90
|
|
|
73
91
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Logger } from '../
|
|
1
|
+
import { Logger } from '../logger/index.js';
|
|
2
2
|
import { ConsoleAdapter } from '../adapters/console.js';
|
|
3
|
-
import { INFO } from '../
|
|
3
|
+
import { INFO } from '../constants.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Create a client-side logger with console adapter
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Logger } from '../
|
|
1
|
+
import { Logger } from '../logger/index.js';
|
|
2
2
|
|
|
3
3
|
import { PinoAdapter } from '../adapters/pino.js';
|
|
4
|
-
import { INFO } from '../
|
|
4
|
+
import { INFO } from '../constants.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Create a server-side logger with pino adapter
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* @param {string} serviceName - Name of the service
|
|
5
5
|
* @param {string} [level] - Initial log level
|
|
6
6
|
* @param {Object} [options] - Additional options
|
|
7
|
-
* @returns {import('../
|
|
7
|
+
* @returns {import('../logger').Logger} Configured logger instance
|
|
8
8
|
*/
|
|
9
|
-
export function createLogger(serviceName: string, level?: string, options?: any): import("../
|
|
9
|
+
export function createLogger(serviceName: string, level?: string, options?: any): import("../logger").Logger;
|
|
@@ -11,7 +11,7 @@ import { createClientLogger } from './client.js';
|
|
|
11
11
|
* @param {string} serviceName - Name of the service
|
|
12
12
|
* @param {string} [level] - Initial log level
|
|
13
13
|
* @param {Object} [options] - Additional options
|
|
14
|
-
* @returns {import('../
|
|
14
|
+
* @returns {import('../logger').Logger} Configured logger instance
|
|
15
15
|
*/
|
|
16
16
|
export function createLogger(serviceName, level, options = {}) {
|
|
17
17
|
if (browser) {
|
|
@@ -70,9 +70,9 @@ export default class Logger extends EventEmitter {
|
|
|
70
70
|
* forwarded to this logger.
|
|
71
71
|
*
|
|
72
72
|
* @param {string} eventName
|
|
73
|
-
* @param {import('
|
|
73
|
+
* @param {import('../typedef.js').LogEventData} eventData
|
|
74
74
|
*/
|
|
75
|
-
logFromEvent(eventName: string, eventData: import("
|
|
75
|
+
logFromEvent(eventName: string, eventData: import("../typedef.js").LogEventData): boolean;
|
|
76
76
|
#private;
|
|
77
77
|
}
|
|
78
78
|
import { EventEmitter } from '../../../classes/event-emitter';
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
ERROR,
|
|
42
42
|
LEVELS,
|
|
43
43
|
LOG
|
|
44
|
-
} from '
|
|
44
|
+
} from '../constants.js';
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* Logger class for consistent logging
|
|
@@ -157,7 +157,7 @@ export default class Logger extends EventEmitter {
|
|
|
157
157
|
* forwarded to this logger.
|
|
158
158
|
*
|
|
159
159
|
* @param {string} eventName
|
|
160
|
-
* @param {import('
|
|
160
|
+
* @param {import('../typedef.js').LogEventData} eventData
|
|
161
161
|
*/
|
|
162
162
|
logFromEvent(eventName, eventData) {
|
|
163
163
|
const level = eventData.level;
|
|
@@ -205,7 +205,7 @@ export default class Logger extends EventEmitter {
|
|
|
205
205
|
/**
|
|
206
206
|
* Internal event loggin method
|
|
207
207
|
*
|
|
208
|
-
* @param {import('
|
|
208
|
+
* @param {import('../typedef.js').LogEvent} logEvent
|
|
209
209
|
*/
|
|
210
210
|
#logEvent(logEvent) {
|
|
211
211
|
// Emit as both specific level event and generic 'log' event
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Logger } from "./Logger.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Logger } from './Logger.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
declare const _default: {};
|
|
2
2
|
export default _default;
|
|
3
|
+
export type LogLevel = "debug" | "info" | "warn" | "error" | "none";
|
|
3
4
|
export type LogEventData = {
|
|
4
5
|
/**
|
|
5
6
|
* - When the log event was created
|
|
@@ -12,7 +13,7 @@ export type LogEventData = {
|
|
|
12
13
|
/**
|
|
13
14
|
* - Log level (DEBUG, INFO, WARN, ERROR)
|
|
14
15
|
*/
|
|
15
|
-
level:
|
|
16
|
+
level: LogLevel;
|
|
16
17
|
/**
|
|
17
18
|
* - The log message
|
|
18
19
|
*/
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {'debug'|'info'|'warn'|'error'|'none'} LogLevel
|
|
3
|
+
*/
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
6
|
* @typedef {Object} LogEventData
|
|
3
7
|
* @property {Date} timestamp - When the log event was created
|
|
4
8
|
* @property {string} source - Name of the source where the event came from
|
|
5
|
-
* @property {
|
|
9
|
+
* @property {LogLevel} level - Log level (DEBUG, INFO, WARN, ERROR)
|
|
6
10
|
* @property {string} message - The log message
|
|
7
11
|
* @property {Object|null} context
|
|
8
12
|
* Default context data from the logger (null if no context)
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Network
|
|
2
|
+
|
|
3
|
+
Network utilities for HTTP requests, responses, caching, and specialized media loaders.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```javascript
|
|
8
|
+
import * as http from '$lib/network/http.js';
|
|
9
|
+
import * as cache from '$lib/network/cache.js';
|
|
10
|
+
import * as loaders from '$lib/network/loaders.js';
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## HTTP Utilities
|
|
14
|
+
|
|
15
|
+
### Making Requests
|
|
16
|
+
|
|
17
|
+
```javascript
|
|
18
|
+
import { httpRequest, jsonRequest } from '$lib/network/http.js';
|
|
19
|
+
|
|
20
|
+
// Basic HTTP request
|
|
21
|
+
const response = await httpRequest('https://api.example.com/data');
|
|
22
|
+
|
|
23
|
+
// JSON request with POST
|
|
24
|
+
const result = await jsonRequest('https://api.example.com/users', {
|
|
25
|
+
method: 'POST',
|
|
26
|
+
body: { name: 'John', email: 'john@example.com' }
|
|
27
|
+
});
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### URL Utilities
|
|
31
|
+
|
|
32
|
+
```javascript
|
|
33
|
+
import { toURL, addSearchParams } from '$lib/network/http.js';
|
|
34
|
+
|
|
35
|
+
const url = toURL('https://example.com', { page: 1, limit: 10 });
|
|
36
|
+
// Result: https://example.com?page=1&limit=10
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Headers and Response Handling
|
|
40
|
+
|
|
41
|
+
```javascript
|
|
42
|
+
import {
|
|
43
|
+
setRequestHeaders,
|
|
44
|
+
waitForAndCheckResponse,
|
|
45
|
+
getErrorFromResponse
|
|
46
|
+
} from '$lib/network/http.js';
|
|
47
|
+
|
|
48
|
+
// Set custom headers
|
|
49
|
+
const headers = setRequestHeaders({ 'Authorization': 'Bearer token' });
|
|
50
|
+
|
|
51
|
+
// Handle response with error checking
|
|
52
|
+
const response = await fetch('/api/data');
|
|
53
|
+
const result = await waitForAndCheckResponse(response);
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Caching
|
|
57
|
+
|
|
58
|
+
### Memory Cache (for temporary storage)
|
|
59
|
+
|
|
60
|
+
```javascript
|
|
61
|
+
import { MemoryResponseCache } from '$lib/network/cache.js';
|
|
62
|
+
|
|
63
|
+
const cache = new MemoryResponseCache();
|
|
64
|
+
|
|
65
|
+
// Store response with 1-hour expiration
|
|
66
|
+
const response = await fetch('https://api.example.com/data');
|
|
67
|
+
await cache.set('api-data', response, { expiresIn: 3600000 });
|
|
68
|
+
|
|
69
|
+
// Retrieve cached response
|
|
70
|
+
const cached = await cache.get('api-data');
|
|
71
|
+
if (cached) {
|
|
72
|
+
console.log('Cached data:', cached.response);
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### IndexedDB Cache (for persistent storage)
|
|
77
|
+
|
|
78
|
+
```javascript
|
|
79
|
+
import { IndexedDbCache } from '$lib/network/cache.js';
|
|
80
|
+
|
|
81
|
+
const cache = new IndexedDbCache('my-app-cache');
|
|
82
|
+
|
|
83
|
+
// Store response persistently
|
|
84
|
+
const response = await fetch('https://api.example.com/users');
|
|
85
|
+
await cache.set('users-list', response, {
|
|
86
|
+
expiresIn: 86400000, // 24 hours
|
|
87
|
+
etag: response.headers.get('etag')
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// Check if cached version is still valid
|
|
91
|
+
const cached = await cache.get('users-list');
|
|
92
|
+
if (cached && !cache.isExpired(cached)) {
|
|
93
|
+
return cached.response;
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Media Loaders
|
|
98
|
+
|
|
99
|
+
Advanced network-based loaders for media assets with loading state management and streaming support. See the [loaders documentation](./loaders/README.md) for detailed usage examples.
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
import { ImageLoader, AudioLoader, ImageScene } from '$lib/network/loaders.js';
|
|
103
|
+
|
|
104
|
+
// Load a single image with progress tracking
|
|
105
|
+
const imageLoader = new ImageLoader({ imageSource: { src: '/image.jpg' } });
|
|
106
|
+
imageLoader.load();
|
|
107
|
+
|
|
108
|
+
// Load multiple images as a scene
|
|
109
|
+
const scene = new ImageScene();
|
|
110
|
+
scene.defineImage({ label: 'hero', imageSource: heroImage });
|
|
111
|
+
scene.load();
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Network State Management
|
|
115
|
+
|
|
116
|
+
For managing loading states across network operations:
|
|
117
|
+
|
|
118
|
+
```javascript
|
|
119
|
+
import { NetworkLoader } from '$lib/network/states/index.js';
|
|
120
|
+
|
|
121
|
+
// Base class for custom network loaders
|
|
122
|
+
class CustomLoader extends NetworkLoader {
|
|
123
|
+
// Implementation
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Available Exports
|
|
128
|
+
|
|
129
|
+
### HTTP (`$lib/network/http.js`)
|
|
130
|
+
- `httpRequest()` - Make HTTP requests with configuration
|
|
131
|
+
- `jsonRequest()` - Make JSON API requests
|
|
132
|
+
- `toURL()` - Convert strings to URL objects with params
|
|
133
|
+
- `setRequestHeaders()` - Set and merge request headers
|
|
134
|
+
- `waitForAndCheckResponse()` - Handle responses with error checking
|
|
135
|
+
- `getErrorFromResponse()` - Extract errors from failed responses
|
|
136
|
+
- HTTP constants and error types
|
|
137
|
+
|
|
138
|
+
### Cache (`$lib/network/cache.js`)
|
|
139
|
+
- `MemoryResponseCache` - In-memory response caching
|
|
140
|
+
- `IndexedDbCache` - Persistent browser storage caching
|
|
141
|
+
- Cache-related type definitions
|
|
142
|
+
|
|
143
|
+
### Loaders (`$lib/network/loaders.js`)
|
|
144
|
+
- `ImageLoader` - Single image loading with progress tracking
|
|
145
|
+
- `ImageVariantsLoader` - Responsive image variants loading
|
|
146
|
+
- `ImageScene` - Multi-image loading and management
|
|
147
|
+
- `AudioLoader` - Audio data loading and processing
|
|
148
|
+
- `AudioScene` - Multi-audio loading and management
|
|
149
|
+
- Media utilities and type definitions
|
|
150
|
+
|
|
151
|
+
### States (`$lib/network/states/`)
|
|
152
|
+
- `NetworkLoader` - Base class for network-based loaders
|
|
153
|
+
- Loading state management and progress tracking
|
|
154
|
+
|
|
155
|
+
## Error Handling
|
|
156
|
+
|
|
157
|
+
All HTTP utilities throw structured errors:
|
|
158
|
+
|
|
159
|
+
```javascript
|
|
160
|
+
import { httpRequest } from '$lib/network/http.js';
|
|
161
|
+
|
|
162
|
+
try {
|
|
163
|
+
const response = await httpRequest('/api/data');
|
|
164
|
+
} catch (error) {
|
|
165
|
+
if (error.name === 'AbortError') {
|
|
166
|
+
console.log('Request was cancelled');
|
|
167
|
+
} else if (error.name === 'TimeoutError') {
|
|
168
|
+
console.log('Request timed out');
|
|
169
|
+
} else {
|
|
170
|
+
console.log('HTTP error:', error.message);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
```
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
IndexedDbCache
|
|
4
|
-
} from '../../classes/cache';
|
|
1
|
+
import MemoryResponseCache from '../cache/MemoryResponseCache.js';
|
|
2
|
+
import IndexedDbCache from '../cache/IndexedDbCache.js';
|
|
5
3
|
|
|
6
4
|
import { browser } from '$app/environment';
|
|
7
5
|
|
|
8
|
-
import { isTestEnv } from '
|
|
6
|
+
import { isTestEnv } from '../../util/env';
|
|
9
7
|
|
|
10
8
|
let defaultCacheStorage = null;
|
|
11
9
|
|
|
@@ -13,7 +13,7 @@ import { CONTENT_TYPE } from '../../constants/http/headers.js';
|
|
|
13
13
|
|
|
14
14
|
import { AbortError, TimeoutError } from '../../errors/api.js';
|
|
15
15
|
|
|
16
|
-
import * as expect from '
|
|
16
|
+
import * as expect from '../../util/expect/index.js';
|
|
17
17
|
|
|
18
18
|
import { toURL } from './url.js';
|
|
19
19
|
import { setRequestHeaders } from './headers.js';
|
|
@@ -21,7 +21,7 @@ import { waitForAndCheckResponse } from './response.js';
|
|
|
21
21
|
|
|
22
22
|
import { getCachedResponse, storeResponseInCache } from './caching.js';
|
|
23
23
|
|
|
24
|
-
import { isTestEnv } from '
|
|
24
|
+
import { isTestEnv } from '../../util/env';
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Default configuration for HTTP requests
|