@hkdigital/lib-core 0.3.9 → 0.3.11
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 +149 -149
- package/dist/assets/autospuiten/car-paint-picker.d.ts +7 -7
- package/dist/assets/autospuiten/car-paint-picker.js +41 -41
- package/dist/assets/autospuiten/labels.js +7 -7
- package/dist/classes/data/IterableTree.d.ts +15 -24
- package/dist/classes/data/IterableTree.js +242 -243
- package/dist/classes/data/Selector.js +190 -190
- package/dist/classes/data/index.js +2 -2
- package/dist/classes/data/typedef.d.ts +8 -0
- package/dist/classes/data/typedef.js +9 -0
- package/dist/classes/event-emitter/EventEmitter.js +273 -275
- package/dist/classes/event-emitter/index.js +2 -2
- package/dist/classes/index.js +4 -4
- package/dist/classes/promise/HkPromise.d.ts +18 -17
- package/dist/classes/promise/HkPromise.js +384 -377
- package/dist/classes/promise/index.js +1 -1
- package/dist/classes/stores/SubscribersCount.js +107 -107
- package/dist/classes/stores/index.js +1 -1
- package/dist/classes/streams/LogTransformStream.js +19 -19
- package/dist/classes/streams/ServerEventsStore.d.ts +2 -3
- package/dist/classes/streams/ServerEventsStore.js +111 -110
- package/dist/classes/streams/TimeStampSource.js +26 -26
- package/dist/classes/streams/index.js +3 -3
- package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
- package/dist/classes/svelte/finite-state-machine/index.js +1 -1
- package/dist/classes/svelte/index.d.ts +0 -8
- package/dist/classes/svelte/index.js +11 -14
- package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
- package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
- package/dist/classes/svelte/loading-state-machine/index.js +3 -3
- package/dist/config/README.md +196 -0
- package/dist/config/{imagetools-config.js → generators/imagetools.js} +189 -189
- package/dist/config/generators/vite.d.ts +47 -0
- package/dist/config/generators/vite.js +142 -0
- package/dist/config/imagetools.d.ts +72 -72
- package/dist/config/vite.d.ts +1 -0
- package/dist/config/vite.js +5 -0
- package/dist/constants/bases/index.js +13 -13
- package/dist/constants/http/headers.js +6 -6
- package/dist/constants/http/index.js +2 -2
- package/dist/constants/http/methods.js +14 -14
- package/dist/constants/index.js +6 -6
- package/dist/constants/mime/application.js +5 -5
- package/dist/constants/mime/audio.js +13 -13
- package/dist/constants/mime/image.js +3 -3
- package/dist/constants/mime/index.js +4 -4
- package/dist/constants/mime/text.js +2 -2
- package/dist/constants/regexp/README.md +95 -0
- package/dist/constants/regexp/index.d.ts +1 -1
- package/dist/constants/regexp/index.js +31 -31
- package/dist/constants/regexp/inspiratie.js__ +95 -95
- package/dist/constants/regexp/text.d.ts +3 -3
- package/dist/constants/regexp/text.js +49 -49
- 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 +29 -33
- package/dist/constants/states/drag.js +6 -6
- package/dist/constants/states/drop.js +6 -6
- package/dist/constants/states/index.js +4 -4
- package/dist/constants/states/input.js +11 -11
- package/dist/constants/states/submit.js +4 -4
- package/dist/constants/time/index.js +28 -28
- package/dist/css/utilities.css +43 -43
- package/dist/design/README.md +405 -0
- package/dist/design/{design-config.js → config/design-config.js} +73 -73
- package/dist/{util/design-system/tailwind.js → design/generators/index.js} +288 -288
- package/dist/design/index.d.ts +8 -0
- package/dist/design/index.js +97 -0
- package/dist/{util/design-system → design/plugins}/skeleton.js +208 -208
- package/dist/design/tailwind-theme-extend.js +158 -158
- package/dist/design/themes/README.md +103 -0
- package/dist/{themes → design/themes}/hkdev/components/blocks/text-block.css +34 -34
- package/dist/{themes → design/themes}/hkdev/components/boxes/game-box.css +11 -11
- package/dist/{themes → design/themes}/hkdev/components/buttons/button-icon-steeze.css +22 -22
- package/dist/{themes → design/themes}/hkdev/components/buttons/button-text.css +32 -32
- package/dist/{themes → design/themes}/hkdev/components/buttons/button.css +146 -146
- package/dist/{themes → design/themes}/hkdev/components/buttons/skip-button.css +5 -5
- package/dist/{themes → design/themes}/hkdev/components/drag-drop/draggable.css +73 -73
- package/dist/{themes → design/themes}/hkdev/components/drag-drop/drop-zone.css +58 -58
- package/dist/{themes → design/themes}/hkdev/components/icons/icon-steeze.css +15 -15
- package/dist/{themes → design/themes}/hkdev/components/inputs/text-input.css +102 -102
- package/dist/{themes → design/themes}/hkdev/components/panels/panel.css +25 -25
- package/dist/{themes → design/themes}/hkdev/components/rows/panel-grid-row.css +4 -4
- package/dist/{themes → design/themes}/hkdev/components/rows/panel-row-2.css +5 -5
- package/dist/{themes → design/themes}/hkdev/components.css +29 -29
- package/dist/design/themes/hkdev/debug.css +2 -0
- package/dist/{themes → design/themes}/hkdev/global/layout.css +32 -32
- package/dist/{themes → design/themes}/hkdev/global/on-colors.css +32 -32
- package/dist/{themes → design/themes}/hkdev/globals.css +3 -3
- package/dist/{themes → design/themes}/hkdev/responsive.css +12 -12
- package/dist/{themes → design/themes}/hkdev/theme-ext.js +12 -12
- package/dist/{themes → design/themes}/hkdev/theme.css +218 -218
- package/dist/{util/design-system/css → design/utils}/clamp.js +66 -66
- 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} +102 -102
- package/dist/{util/design-system/layout → design/utils}/scaling.js +228 -228
- package/dist/{util/design-system/components → design/utils}/states.js +22 -22
- package/dist/errors/api.js +9 -9
- package/dist/errors/generic.js +20 -20
- package/dist/errors/http.js +16 -16
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +5 -4
- package/dist/errors/jwt.js +5 -5
- package/dist/errors/promise.d.ts +27 -0
- package/dist/errors/promise.js +26 -0
- package/dist/logging/index.js +7 -7
- package/dist/logging/internal/adapters/console.js +114 -114
- package/dist/logging/internal/adapters/index.js +2 -2
- package/dist/logging/internal/adapters/pino.d.ts +1 -0
- package/dist/logging/internal/adapters/pino.js +142 -115
- package/dist/logging/internal/adapters/typedef.d.ts +24 -0
- package/dist/logging/internal/adapters/typedef.js +10 -0
- package/dist/logging/internal/factories/client.js +21 -21
- package/dist/logging/internal/factories/server.js +22 -22
- package/dist/logging/internal/factories/universal.js +22 -22
- package/dist/logging/internal/unified-logger/Logger.js +217 -217
- package/dist/logging/internal/unified-logger/constants.js +22 -22
- package/dist/logging/internal/unified-logger/index.js +6 -6
- package/dist/logging/internal/unified-logger/typedef.js +17 -17
- package/dist/network/README.md +173 -0
- package/dist/{classes → network}/cache/IndexedDbCache.js +1407 -1407
- package/dist/{classes → network}/cache/MemoryResponseCache.js +138 -138
- package/dist/{classes → network}/cache/index.js +5 -5
- package/dist/{classes → network}/cache/typedef.js +41 -41
- package/dist/network/cache.d.ts +3 -0
- package/dist/network/cache.js +4 -0
- package/dist/{util → network}/http/caching.js +261 -263
- package/dist/{util → network}/http/errors.js +97 -97
- package/dist/{util → network}/http/headers.js +75 -75
- package/dist/{util → network}/http/http-request.js +578 -578
- package/dist/{util → network}/http/index.js +22 -22
- package/dist/{util → network}/http/json-request.js +224 -224
- package/dist/{util → network}/http/mocks.js +65 -65
- package/dist/{util → network}/http/response.js +318 -318
- package/dist/{util → network}/http/typedef.js +93 -93
- package/dist/{util → network}/http/url.js +52 -52
- 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 +58 -58
- package/dist/{classes/svelte → network/loaders}/audio/AudioScene.svelte.js +324 -324
- package/dist/{classes/svelte → network/loaders}/audio/mocks.js +35 -35
- 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 +44 -45
- package/dist/{classes/svelte → network/loaders}/image/ImageScene.svelte.d.ts +5 -7
- package/dist/{classes/svelte → network/loaders}/image/ImageScene.svelte.js +248 -249
- package/dist/{classes/svelte → network/loaders}/image/ImageVariantsLoader.svelte.d.ts +4 -4
- package/dist/{classes/svelte → network/loaders}/image/ImageVariantsLoader.svelte.js +150 -152
- package/dist/{classes/svelte → network/loaders}/image/index.js +4 -4
- package/dist/{classes/svelte → network/loaders}/image/mocks.js +35 -35
- package/dist/{classes/svelte → network/loaders}/image/typedef.js +8 -8
- package/dist/{util/image → network/loaders/image/utils}/index.d.ts +2 -2
- package/dist/{util/image → network/loaders/image/utils}/index.js +86 -86
- package/dist/network/loaders/image.d.ts +5 -0
- package/dist/network/loaders/image.js +8 -0
- package/dist/{typedef/image.js → network/loaders/typedef.js} +38 -38
- 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 +338 -338
- package/dist/{classes/svelte/network-loader → network/states}/constants.js +3 -3
- package/dist/{classes/svelte/network-loader → network/states}/index.js +3 -3
- package/dist/{classes/svelte/network-loader → network/states}/mocks.js +30 -30
- package/dist/{classes/svelte/network-loader → network/states}/typedef.js +8 -8
- package/dist/network/typedef.d.ts +4 -0
- package/dist/network/typedef.js +10 -0
- package/dist/services/index.js +1 -1
- package/dist/services/internal/index.js +8 -8
- package/dist/services/internal/service-base/ServiceBase.js +462 -462
- package/dist/services/internal/service-base/constants.js +110 -110
- package/dist/services/internal/service-base/index.js +3 -3
- package/dist/services/internal/service-base/typedef.js +101 -101
- package/dist/services/internal/service-manager/ServiceManager.d.ts +2 -35
- package/dist/services/internal/service-manager/ServiceManager.js +608 -614
- package/dist/services/internal/service-manager/constants.js +6 -6
- package/dist/services/internal/service-manager/typedef.js +90 -90
- package/dist/states/index.js +1 -1
- package/dist/states/navigation.svelte.js +55 -55
- package/dist/stores/index.js +1 -1
- package/dist/stores/theme.js +80 -80
- package/dist/typedef/context.js +6 -6
- package/dist/typedef/drag.js +25 -25
- package/dist/typedef/drop.js +12 -12
- package/dist/typedef/index.d.ts +0 -1
- package/dist/typedef/index.js +4 -4
- package/dist/{components → ui/components}/button-group/ButtonGroup.svelte +82 -82
- package/dist/{components → ui/components}/button-group/typedef.js +10 -10
- package/dist/{components → ui/components}/compare-left-right/CompareLeftRight.svelte +179 -179
- package/dist/{components → ui/components}/compare-left-right/index.js +1 -1
- package/dist/{components → ui/components}/game-box/GameBox.svelte +577 -577
- package/dist/{components → ui/components}/game-box/gamebox.util.js +83 -83
- 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 +25 -25
- package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.svelte +251 -251
- package/dist/{components → ui/components}/image-box/ImageBox.svelte +210 -210
- package/dist/{components → ui/components}/image-box/ImageBox.svelte.d.ts +6 -6
- package/dist/ui/components/image-box/index.js +5 -0
- package/dist/{components → ui/components}/image-box/typedef.js +32 -32
- package/dist/{components → ui/components}/index.js +23 -23
- package/dist/{components → ui/components}/presenter/ImageSlide.svelte +64 -64
- 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 +638 -638
- package/dist/{components → ui/components}/presenter/Presenter.svelte +142 -142
- package/dist/{components → ui/components}/presenter/constants.js +7 -7
- package/dist/{components → ui/components}/presenter/index.js +10 -10
- package/dist/{components → ui/components}/presenter/typedef.js +106 -106
- package/dist/{components → ui/components}/presenter/util.js +210 -210
- package/dist/{components → ui/components}/virtual-viewport/VirtualViewport.svelte +196 -196
- package/dist/{primitives → ui/primitives}/area/HkArea.svelte +49 -49
- package/dist/{primitives → ui/primitives}/area/HkGridArea.svelte +77 -77
- package/dist/{primitives → ui/primitives}/area/index.js +2 -2
- package/dist/{primitives → ui/primitives}/buttons/button/Button.svelte +82 -82
- package/dist/{primitives → ui/primitives}/buttons/button/Button.svelte.d.ts +1 -1
- package/dist/{primitives → ui/primitives}/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
- package/dist/{primitives → ui/primitives}/buttons/button-text/TextButton.svelte +21 -21
- package/dist/{primitives → ui/primitives}/buttons/index.js +3 -3
- package/dist/{primitives → ui/primitives}/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
- package/dist/{primitives → ui/primitives}/debug/index.js +1 -1
- package/dist/{primitives → ui/primitives}/drag-drop/DragController.js +44 -44
- package/dist/{primitives → ui/primitives}/drag-drop/DragDropContext.svelte +111 -111
- package/dist/{primitives → ui/primitives}/drag-drop/DragDropContext.svelte.d.ts +1 -1
- package/dist/{primitives → ui/primitives}/drag-drop/Draggable.svelte +519 -519
- package/dist/{primitives → ui/primitives}/drag-drop/Draggable.svelte.d.ts +1 -1
- package/dist/{primitives → ui/primitives}/drag-drop/DropZone.svelte +258 -258
- package/dist/{primitives → ui/primitives}/drag-drop/DropZone.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneArea.svelte +119 -119
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneArea.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneList.svelte +125 -125
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneList.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/actions.js +26 -26
- 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 +322 -322
- package/dist/{primitives → ui/primitives}/drag-drop/index.js +7 -7
- package/dist/{primitives → ui/primitives}/drag-drop/util.js +85 -85
- package/dist/{primitives → ui/primitives}/hkdev/blocks/TextBlock.svelte +46 -46
- package/dist/{primitives → ui/primitives}/hkdev/buttons/CheckButton.svelte +62 -62
- package/dist/{primitives → ui/primitives}/icons/HkIcon.svelte +86 -86
- package/dist/{primitives → ui/primitives}/icons/HkTabIcon.svelte +116 -116
- package/dist/{primitives → ui/primitives}/icons/SteezeIcon.svelte +97 -97
- package/dist/{primitives → ui/primitives}/icons/index.js +6 -6
- package/dist/{primitives → ui/primitives}/icons/typedef.js +16 -16
- package/dist/{primitives → ui/primitives}/index.js +2 -2
- package/dist/{primitives → ui/primitives}/inputs/index.js +1 -1
- package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte +223 -223
- package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconInvalid.svelte +14 -14
- package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconValid.svelte +12 -12
- package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte +63 -63
- package/dist/{primitives → ui/primitives}/layout/grid-layers/util.js +74 -74
- package/dist/{primitives → ui/primitives}/layout/index.js +1 -1
- package/dist/{primitives → ui/primitives}/panels/index.js +1 -1
- package/dist/{primitives → ui/primitives}/panels/panel/Panel.svelte +43 -43
- package/dist/{primitives → ui/primitives}/rows/index.js +3 -3
- package/dist/{primitives → ui/primitives}/rows/panel-grid-row/PanelGridRow.svelte +104 -104
- package/dist/{primitives → ui/primitives}/rows/panel-row-2/PanelRow2.svelte +40 -40
- 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 +149 -149
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.svelte +74 -74
- 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 +93 -93
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.svelte +49 -49
- package/dist/{primitives → ui/primitives}/tab-bar/index.js +17 -17
- package/dist/{primitives → ui/primitives}/tab-bar/typedef.js +11 -11
- package/dist/util/array/index.js +436 -436
- package/dist/util/bases/base58.js +262 -262
- package/dist/util/bases/index.js +1 -1
- package/dist/util/compare/index.js +247 -247
- package/dist/util/css/css-vars.js +83 -83
- package/dist/util/css/index.js +1 -1
- package/dist/util/env/index.js +9 -9
- package/dist/util/exceptions/index.js +23 -23
- package/dist/util/expect/arrays.js +47 -47
- package/dist/util/expect/index.js +259 -259
- package/dist/util/expect/primitives.js +55 -55
- package/dist/util/expect/url.d.ts +6 -6
- package/dist/util/expect/url.js +60 -60
- package/dist/util/function/index.js +218 -218
- package/dist/util/geo/index.js +26 -26
- package/dist/util/index.d.ts +3 -1
- package/dist/util/index.js +7 -3
- package/dist/util/is/index.d.ts +15 -14
- package/dist/util/is/index.js +147 -140
- package/dist/util/iterate/index.d.ts +37 -69
- package/dist/util/iterate/index.js +204 -234
- package/dist/util/object/index.d.ts +38 -57
- package/dist/util/object/index.js +1345 -1361
- package/dist/util/singleton/index.js +97 -97
- package/dist/util/string/array-path.js +75 -75
- package/dist/util/string/convert.js +54 -54
- package/dist/util/string/fs.js +226 -226
- package/dist/util/string/index.js +5 -5
- package/dist/util/string/interpolate.js +61 -61
- package/dist/util/string/pad.js +10 -10
- package/dist/util/svelte/index.js +4 -4
- package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
- package/dist/util/svelte/observe/index.js +49 -49
- package/dist/util/svelte/state-context/index.js +117 -117
- package/dist/util/svelte/wait/index.js +38 -38
- package/dist/util/sveltekit/index.js +1 -1
- package/dist/util/sveltekit/route-folders/index.js +101 -101
- package/dist/util/time/index.js +328 -323
- package/dist/util/unique/index.js +231 -249
- package/dist/valibot/README.md +50 -0
- package/dist/valibot/index.d.ts +4 -4
- package/dist/valibot/index.js +8 -9
- package/dist/valibot/{url.d.ts → parsers/url.d.ts} +13 -5
- package/dist/valibot/{url.js → parsers/url.js} +111 -95
- package/dist/valibot/{user.js → parsers/user.js} +23 -23
- package/dist/valibot/parsers.d.ts +2 -0
- package/dist/valibot/parsers.js +4 -0
- package/package.json +131 -133
- package/dist/components/hk-app-layout/HkAppLayout.state.svelte.d.ts +0 -6
- package/dist/components/image-box/index.js +0 -5
- package/dist/constants/regexp/web.d.ts +0 -1
- package/dist/constants/regexp/web.js +0 -3
- package/dist/primitives/inputs/text-input/TestTextInput.svelte__ +0 -102
- package/dist/primitives/inputs/text-input/TextInput.svelte___ +0 -83
- package/dist/primitives/layout/grid-layers/GridLayers.svelte__heightFrom__ +0 -372
- 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/themes/hkdev/debug.css +0 -2
- 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/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
- package/dist/valibot/date.js__ +0 -10
- 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/design/{design-config.d.ts → config/design-config.d.ts} +0 -0
- /package/dist/{util/design-system/tailwind.d.ts → design/generators/index.d.ts} +0 -0
- /package/dist/{util/design-system → design/plugins}/skeleton.d.ts +0 -0
- /package/dist/{themes → design/themes}/hkdev/theme-ext.d.ts +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/{classes → network}/cache/IndexedDbCache.d.ts +0 -0
- /package/dist/{classes → network}/cache/MemoryResponseCache.d.ts +0 -0
- /package/dist/{classes → network}/cache/index.d.ts +0 -0
- /package/dist/{classes → network}/cache/typedef.d.ts +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/json-request.d.ts +0 -0
- /package/dist/{util → network}/http/mocks.d.ts +0 -0
- /package/dist/{util → network}/http/response.d.ts +0 -0
- /package/dist/{util → network}/http/typedef.d.ts +0 -0
- /package/dist/{util → network}/http/url.d.ts +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}/image/index.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/mocks.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/typedef.d.ts +0 -0
- /package/dist/{typedef/image.d.ts → network/loaders/typedef.d.ts} +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/constants.d.ts +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/index.d.ts +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/{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}/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}/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}/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}/index.d.ts +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/index.d.ts +0 -0
- /package/dist/{components → ui/components}/presenter/typedef.d.ts +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.d.ts +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}/buttons/button-icon-steeze/SteezeIconButton.svelte.d.ts +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}/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}/drag-drop/DragController.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/actions.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/util.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/hkdev/blocks/TextBlock.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/hkdev/buttons/CheckButton.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/HkIcon.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/HkTabIcon.svelte.d.ts +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/typedef.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte.d.ts +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.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/layout/grid-layers/util.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/layout/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/panels/index.d.ts +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/panel-grid-row/PanelGridRow.svelte.d.ts +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.d.ts +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/typedef.d.ts +0 -0
- /package/dist/valibot/{user.d.ts → parsers/user.d.ts} +0 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# Config
|
|
2
|
+
|
|
3
|
+
Reusable configuration generators for HKdigital projects.
|
|
4
|
+
|
|
5
|
+
## Vite Configuration
|
|
6
|
+
|
|
7
|
+
The `vite.js` provides generators for common Vite setups used across HKdigital projects.
|
|
8
|
+
|
|
9
|
+
### Quick Start
|
|
10
|
+
|
|
11
|
+
```javascript
|
|
12
|
+
// vite.config.js
|
|
13
|
+
import { defineConfig } from 'vitest/config';
|
|
14
|
+
import { sveltekit } from '@sveltejs/kit/vite';
|
|
15
|
+
import { generateViteConfig } from '@hkdigital/lib-sveltekit/config/vite.js';
|
|
16
|
+
|
|
17
|
+
export default defineConfig(
|
|
18
|
+
await generateViteConfig({
|
|
19
|
+
enableImagetools: true
|
|
20
|
+
})
|
|
21
|
+
);
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Functions
|
|
25
|
+
|
|
26
|
+
#### `generateViteConfig(options)`
|
|
27
|
+
|
|
28
|
+
Generates a complete Vite configuration with HKdigital defaults.
|
|
29
|
+
|
|
30
|
+
**Options:**
|
|
31
|
+
- `enableImagetools` (boolean, default: `true`) - Include vite-imagetools plugin
|
|
32
|
+
- `enableVitest` (boolean, default: `true`) - Include Vitest test configuration
|
|
33
|
+
- `customDefines` (object, default: `{}`) - Additional define values
|
|
34
|
+
- `customPlugins` (array, default: `[]`) - Additional Vite plugins
|
|
35
|
+
- `imagetoolsOptions` (object, default: `{}`) - Options passed to imagetools config
|
|
36
|
+
- `packageJsonPath` (string, default: `'./package.json'`) - Path to package.json
|
|
37
|
+
|
|
38
|
+
**Built-in defines:**
|
|
39
|
+
- `import.meta.env.VITE_APP_VERSION` - Version from package.json
|
|
40
|
+
- `import.meta.env.VITE_BUILD_TIMESTAMP` - Build timestamp
|
|
41
|
+
|
|
42
|
+
**Example:**
|
|
43
|
+
```javascript
|
|
44
|
+
export default defineConfig(
|
|
45
|
+
await generateViteConfig({
|
|
46
|
+
enableImagetools: true,
|
|
47
|
+
enableVitest: true,
|
|
48
|
+
customDefines: {
|
|
49
|
+
'import.meta.env.VITE_API_URL': JSON.stringify('https://api.example.com')
|
|
50
|
+
},
|
|
51
|
+
imagetoolsOptions: {
|
|
52
|
+
widths: [640, 1024, 1536, 1920]
|
|
53
|
+
}
|
|
54
|
+
})
|
|
55
|
+
);
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
#### `generateViteDefines(options)`
|
|
59
|
+
|
|
60
|
+
Generates only the define configuration (no plugins).
|
|
61
|
+
|
|
62
|
+
**Options:**
|
|
63
|
+
- `packageJsonPath` (string, default: `'./package.json'`) - Path to package.json
|
|
64
|
+
- `customDefines` (object, default: `{}`) - Additional define values
|
|
65
|
+
|
|
66
|
+
**Example:**
|
|
67
|
+
```javascript
|
|
68
|
+
export default defineConfig({
|
|
69
|
+
plugins: [sveltekit()],
|
|
70
|
+
define: generateViteDefines({
|
|
71
|
+
customDefines: {
|
|
72
|
+
'import.meta.env.VITE_API_URL': JSON.stringify(process.env.API_URL)
|
|
73
|
+
}
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
#### `generateVitestConfig(options)`
|
|
79
|
+
|
|
80
|
+
Generates only the Vitest test configuration.
|
|
81
|
+
|
|
82
|
+
**Options:**
|
|
83
|
+
- `additionalPatterns` (array, default: `[]`) - Additional test file patterns
|
|
84
|
+
|
|
85
|
+
**Example:**
|
|
86
|
+
```javascript
|
|
87
|
+
export default defineConfig({
|
|
88
|
+
plugins: [sveltekit()],
|
|
89
|
+
test: generateVitestConfig({
|
|
90
|
+
additionalPatterns: ['tests/**/*.integration.js']
|
|
91
|
+
})
|
|
92
|
+
});
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Imagetools Configuration
|
|
96
|
+
|
|
97
|
+
When `enableImagetools: true`, the following dependencies are required in your project:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
pnpm add -D vite-imagetools
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### TypeScript Support
|
|
104
|
+
|
|
105
|
+
For TypeScript and JavaScript projects using VS Code or other TypeScript-aware editors, add to your `app.d.ts`:
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
import '@hkdigital/lib-sveltekit/config/imagetools.d.ts';
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Why this is needed:**
|
|
112
|
+
- Provides type definitions for image imports with query parameters (e.g., `hero.jpg?preset=photo`)
|
|
113
|
+
- Enables IntelliSense and autocompletion for imagetools directives in your editor
|
|
114
|
+
- Prevents TypeScript errors when importing processed images
|
|
115
|
+
- Works for both TypeScript and JavaScript projects (VS Code uses TypeScript for JS intellisense)
|
|
116
|
+
|
|
117
|
+
**What it enables:**
|
|
118
|
+
```javascript
|
|
119
|
+
// These imports will have proper typing and editor support
|
|
120
|
+
import heroImage from '$lib/assets/hero.jpg?preset=photo';
|
|
121
|
+
import heroResponsive from '$lib/assets/hero.jpg?preset=photo&responsive';
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Image Usage
|
|
125
|
+
|
|
126
|
+
With imagetools enabled, you can use images with processing directives:
|
|
127
|
+
|
|
128
|
+
```javascript
|
|
129
|
+
// Basic usage
|
|
130
|
+
import heroImage from '$lib/assets/hero.jpg?preset=photo';
|
|
131
|
+
|
|
132
|
+
// Responsive images
|
|
133
|
+
import heroResponsive from '$lib/assets/hero.jpg?preset=photo&responsive';
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Available presets:**
|
|
137
|
+
- `default` - AVIF format, 90% quality
|
|
138
|
+
- `photo` - JPG format, 95% quality, returns metadata
|
|
139
|
+
- `render` - JPG format, 95% quality, returns metadata
|
|
140
|
+
- `gradient` - JPG format, 95% quality, returns metadata
|
|
141
|
+
- `drawing` - AVIF format, 90% quality, returns metadata
|
|
142
|
+
- `savedata` - AVIF format, 85% quality, returns metadata
|
|
143
|
+
- `blur` - AVIF format, 50% quality with blur effect, returns metadata
|
|
144
|
+
|
|
145
|
+
## Migration from Direct Config
|
|
146
|
+
|
|
147
|
+
### Before
|
|
148
|
+
```javascript
|
|
149
|
+
// vite.config.js
|
|
150
|
+
import { defineConfig } from 'vitest/config';
|
|
151
|
+
import { sveltekit } from '@sveltejs/kit/vite';
|
|
152
|
+
import { imagetools } from 'vite-imagetools';
|
|
153
|
+
import { readFileSync } from 'fs';
|
|
154
|
+
import { resolve } from 'path';
|
|
155
|
+
|
|
156
|
+
import {
|
|
157
|
+
generateDefaultDirectives,
|
|
158
|
+
generateResponseConfigs
|
|
159
|
+
} from '@hkdigital/lib-sveltekit/config/imagetools-config.js';
|
|
160
|
+
|
|
161
|
+
const packageJson = JSON.parse(
|
|
162
|
+
readFileSync(resolve('./package.json'), 'utf-8')
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
export default defineConfig({
|
|
166
|
+
plugins: [
|
|
167
|
+
sveltekit(),
|
|
168
|
+
imagetools({
|
|
169
|
+
defaultDirectives: generateDefaultDirectives(),
|
|
170
|
+
resolveConfigs: generateResponseConfigs()
|
|
171
|
+
})
|
|
172
|
+
],
|
|
173
|
+
define: {
|
|
174
|
+
'import.meta.env.VITE_APP_VERSION': JSON.stringify(packageJson.version),
|
|
175
|
+
'import.meta.env.VITE_BUILD_TIMESTAMP': JSON.stringify(new Date().toISOString())
|
|
176
|
+
},
|
|
177
|
+
test: {
|
|
178
|
+
include: [
|
|
179
|
+
'src/**/*.{test,spec}.{js,ts}',
|
|
180
|
+
'src/**/*.svelte.{test,spec}.{js,ts}'
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### After
|
|
187
|
+
```javascript
|
|
188
|
+
// vite.config.js
|
|
189
|
+
import { defineConfig } from 'vitest/config';
|
|
190
|
+
import { sveltekit } from '@sveltejs/kit/vite';
|
|
191
|
+
import { generateViteConfig } from '@hkdigital/lib-sveltekit/config/vite.js';
|
|
192
|
+
|
|
193
|
+
export default defineConfig(
|
|
194
|
+
await generateViteConfig()
|
|
195
|
+
);
|
|
196
|
+
```
|
|
@@ -1,189 +1,189 @@
|
|
|
1
|
-
const DEFAULT_WIDTHS = [640, 1024, 1536, 1920];
|
|
2
|
-
|
|
3
|
-
const DEFAULT_PRESETS = {
|
|
4
|
-
default: {
|
|
5
|
-
format: 'avif',
|
|
6
|
-
quality: '90'
|
|
7
|
-
},
|
|
8
|
-
render: {
|
|
9
|
-
format: 'jpg',
|
|
10
|
-
quality: '95',
|
|
11
|
-
as: 'metadata'
|
|
12
|
-
},
|
|
13
|
-
photo: {
|
|
14
|
-
format: 'jpg',
|
|
15
|
-
quality: '95',
|
|
16
|
-
as: 'metadata'
|
|
17
|
-
},
|
|
18
|
-
gradient: {
|
|
19
|
-
format: 'jpg',
|
|
20
|
-
quality: '95',
|
|
21
|
-
as: 'metadata'
|
|
22
|
-
},
|
|
23
|
-
drawing: {
|
|
24
|
-
format: 'avif',
|
|
25
|
-
quality: '90',
|
|
26
|
-
as: 'metadata'
|
|
27
|
-
},
|
|
28
|
-
savedata: {
|
|
29
|
-
format: 'avif',
|
|
30
|
-
quality: '85',
|
|
31
|
-
as: 'metadata'
|
|
32
|
-
},
|
|
33
|
-
blur: {
|
|
34
|
-
format: 'avif',
|
|
35
|
-
quality: '50',
|
|
36
|
-
blur: '75',
|
|
37
|
-
as: 'metadata'
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Configures and returns a function that can be used as
|
|
43
|
-
* 'resolveConfigs' parameter in imagetools config
|
|
44
|
-
*
|
|
45
|
-
* @param {object} [options]
|
|
46
|
-
* @param {number[]} [options.widths=DEFAULT_WIDTHS]
|
|
47
|
-
*
|
|
48
|
-
* @returns {(
|
|
49
|
-
* entries: [string, string[]][]
|
|
50
|
-
* ) => (Record<string, string | string[]>[])}
|
|
51
|
-
*/
|
|
52
|
-
export function generateResponseConfigs(options) {
|
|
53
|
-
//
|
|
54
|
-
// @see https://github.com/JonasKruckenberg/imagetools
|
|
55
|
-
// /blob/main/docs/core/src/functions/resolveConfigs.md
|
|
56
|
-
//
|
|
57
|
-
return function resolveConfigs(entries /*, outputFormats*/) {
|
|
58
|
-
// console.log('resolveConfigs:entries', entries);
|
|
59
|
-
|
|
60
|
-
/** @type {Record<string, string | string[]>} */
|
|
61
|
-
const configPairs = {};
|
|
62
|
-
|
|
63
|
-
for (const current of entries) {
|
|
64
|
-
const key = current[0];
|
|
65
|
-
const value = current[1][0];
|
|
66
|
-
|
|
67
|
-
// @ts-ignore
|
|
68
|
-
configPairs[key] = value;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// @ts-ignore
|
|
72
|
-
const responsiveConfig = entries.find(([key]) => key === 'responsive');
|
|
73
|
-
|
|
74
|
-
if (!responsiveConfig) {
|
|
75
|
-
// Directive 'responsive' was not set => return original config
|
|
76
|
-
|
|
77
|
-
return [configPairs];
|
|
78
|
-
|
|
79
|
-
// Alternative: by returning undefined, the default resolveConfig is used
|
|
80
|
-
// return undefined;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const widths = options?.widths ?? DEFAULT_WIDTHS;
|
|
84
|
-
|
|
85
|
-
return widths.map((w) => {
|
|
86
|
-
return { ...configPairs, w: String(w) };
|
|
87
|
-
});
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Configures and returns a function that can be used as
|
|
93
|
-
* 'defaultDirectives' parameter in imagetools config
|
|
94
|
-
*
|
|
95
|
-
* - This function runs before 'resolveConfigs'
|
|
96
|
-
*
|
|
97
|
-
* @param {object} [options]
|
|
98
|
-
* @param {number[]} [options.presets=DEFAULT_PRESETS]
|
|
99
|
-
*/
|
|
100
|
-
export function generateDefaultDirectives(options) {
|
|
101
|
-
/**
|
|
102
|
-
* Function that sets a.o. format and quality directives if
|
|
103
|
-
* the 'preset' driective is set
|
|
104
|
-
*
|
|
105
|
-
* @param {URL} url
|
|
106
|
-
*/
|
|
107
|
-
return function defaultDirectives(url) {
|
|
108
|
-
// Check the directive in the URL to determine which preset to use
|
|
109
|
-
const params = url.searchParams;
|
|
110
|
-
|
|
111
|
-
let presetName = params.get('preset');
|
|
112
|
-
|
|
113
|
-
// > Return metadata if directive 'responsive' is set
|
|
114
|
-
|
|
115
|
-
if (params.has('responsive')) {
|
|
116
|
-
params.set('as', 'metadata');
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// > Process presets
|
|
120
|
-
|
|
121
|
-
if (presetName) {
|
|
122
|
-
params.delete('preset');
|
|
123
|
-
} else {
|
|
124
|
-
presetName = 'default';
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
const presets = options?.presets || DEFAULT_PRESETS;
|
|
128
|
-
|
|
129
|
-
// @ts-ignore
|
|
130
|
-
let preset = presets[presetName];
|
|
131
|
-
|
|
132
|
-
// console.log(`defaultDirectives [url=${url}]`, preset);
|
|
133
|
-
|
|
134
|
-
if (!preset) {
|
|
135
|
-
preset = DEFAULT_PRESETS.default;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
for (const key in preset) {
|
|
139
|
-
params.set(key, preset[key]);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// TODO: process directive 'w''
|
|
143
|
-
// - generate only allowed widths
|
|
144
|
-
// - support width presets such as 'hd'
|
|
145
|
-
|
|
146
|
-
// let width = params.get('w');
|
|
147
|
-
|
|
148
|
-
// if (!width) {
|
|
149
|
-
// // Set max allowed width by default
|
|
150
|
-
// // width = 'hd';
|
|
151
|
-
// }
|
|
152
|
-
|
|
153
|
-
// let presets = {
|
|
154
|
-
// sm: '640',
|
|
155
|
-
// md: '1024',
|
|
156
|
-
// lg: '1536',
|
|
157
|
-
// hd: '1920'
|
|
158
|
-
// };
|
|
159
|
-
|
|
160
|
-
// // @ts-ignore
|
|
161
|
-
// let presetWidth = presets[width];
|
|
162
|
-
// console.log({ width, presetWidth });
|
|
163
|
-
|
|
164
|
-
// if (presetWidth) {
|
|
165
|
-
// params.set('w', presetWidth);
|
|
166
|
-
// } else if (responsive || width === null) {
|
|
167
|
-
// params.set('as', 'metadata');
|
|
168
|
-
// params.delete('w');
|
|
169
|
-
// // } else if (width === null) {
|
|
170
|
-
// // // Set largest size is width parameter is missing
|
|
171
|
-
// // params.set('w', presets.hd);
|
|
172
|
-
// } else {
|
|
173
|
-
// throw new Error(
|
|
174
|
-
// `Directive [w=${width}] is should be a preset value {sm,md,lg,hd,responsive}`
|
|
175
|
-
// );
|
|
176
|
-
|
|
177
|
-
// // let allowedWidths = new Set(['640', '1024', '1536', '1920']);
|
|
178
|
-
// // if (!allowedWidths.has(width)) {
|
|
179
|
-
// // throw new Error(`Width [${width}] is not in list of allowed widths`);
|
|
180
|
-
// // }
|
|
181
|
-
// }
|
|
182
|
-
|
|
183
|
-
// params.set('withoutEnlargement', 'true');
|
|
184
|
-
|
|
185
|
-
// console.log('defaultDirectives:output params', params);
|
|
186
|
-
|
|
187
|
-
return params;
|
|
188
|
-
};
|
|
189
|
-
}
|
|
1
|
+
const DEFAULT_WIDTHS = [640, 1024, 1536, 1920];
|
|
2
|
+
|
|
3
|
+
const DEFAULT_PRESETS = {
|
|
4
|
+
default: {
|
|
5
|
+
format: 'avif',
|
|
6
|
+
quality: '90'
|
|
7
|
+
},
|
|
8
|
+
render: {
|
|
9
|
+
format: 'jpg',
|
|
10
|
+
quality: '95',
|
|
11
|
+
as: 'metadata'
|
|
12
|
+
},
|
|
13
|
+
photo: {
|
|
14
|
+
format: 'jpg',
|
|
15
|
+
quality: '95',
|
|
16
|
+
as: 'metadata'
|
|
17
|
+
},
|
|
18
|
+
gradient: {
|
|
19
|
+
format: 'jpg',
|
|
20
|
+
quality: '95',
|
|
21
|
+
as: 'metadata'
|
|
22
|
+
},
|
|
23
|
+
drawing: {
|
|
24
|
+
format: 'avif',
|
|
25
|
+
quality: '90',
|
|
26
|
+
as: 'metadata'
|
|
27
|
+
},
|
|
28
|
+
savedata: {
|
|
29
|
+
format: 'avif',
|
|
30
|
+
quality: '85',
|
|
31
|
+
as: 'metadata'
|
|
32
|
+
},
|
|
33
|
+
blur: {
|
|
34
|
+
format: 'avif',
|
|
35
|
+
quality: '50',
|
|
36
|
+
blur: '75',
|
|
37
|
+
as: 'metadata'
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Configures and returns a function that can be used as
|
|
43
|
+
* 'resolveConfigs' parameter in imagetools config
|
|
44
|
+
*
|
|
45
|
+
* @param {object} [options]
|
|
46
|
+
* @param {number[]} [options.widths=DEFAULT_WIDTHS]
|
|
47
|
+
*
|
|
48
|
+
* @returns {(
|
|
49
|
+
* entries: [string, string[]][]
|
|
50
|
+
* ) => (Record<string, string | string[]>[])}
|
|
51
|
+
*/
|
|
52
|
+
export function generateResponseConfigs(options) {
|
|
53
|
+
//
|
|
54
|
+
// @see https://github.com/JonasKruckenberg/imagetools
|
|
55
|
+
// /blob/main/docs/core/src/functions/resolveConfigs.md
|
|
56
|
+
//
|
|
57
|
+
return function resolveConfigs(entries /*, outputFormats*/) {
|
|
58
|
+
// console.log('resolveConfigs:entries', entries);
|
|
59
|
+
|
|
60
|
+
/** @type {Record<string, string | string[]>} */
|
|
61
|
+
const configPairs = {};
|
|
62
|
+
|
|
63
|
+
for (const current of entries) {
|
|
64
|
+
const key = current[0];
|
|
65
|
+
const value = current[1][0];
|
|
66
|
+
|
|
67
|
+
// @ts-ignore
|
|
68
|
+
configPairs[key] = value;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// @ts-ignore
|
|
72
|
+
const responsiveConfig = entries.find(([key]) => key === 'responsive');
|
|
73
|
+
|
|
74
|
+
if (!responsiveConfig) {
|
|
75
|
+
// Directive 'responsive' was not set => return original config
|
|
76
|
+
|
|
77
|
+
return [configPairs];
|
|
78
|
+
|
|
79
|
+
// Alternative: by returning undefined, the default resolveConfig is used
|
|
80
|
+
// return undefined;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const widths = options?.widths ?? DEFAULT_WIDTHS;
|
|
84
|
+
|
|
85
|
+
return widths.map((w) => {
|
|
86
|
+
return { ...configPairs, w: String(w) };
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Configures and returns a function that can be used as
|
|
93
|
+
* 'defaultDirectives' parameter in imagetools config
|
|
94
|
+
*
|
|
95
|
+
* - This function runs before 'resolveConfigs'
|
|
96
|
+
*
|
|
97
|
+
* @param {object} [options]
|
|
98
|
+
* @param {number[]} [options.presets=DEFAULT_PRESETS]
|
|
99
|
+
*/
|
|
100
|
+
export function generateDefaultDirectives(options) {
|
|
101
|
+
/**
|
|
102
|
+
* Function that sets a.o. format and quality directives if
|
|
103
|
+
* the 'preset' driective is set
|
|
104
|
+
*
|
|
105
|
+
* @param {URL} url
|
|
106
|
+
*/
|
|
107
|
+
return function defaultDirectives(url) {
|
|
108
|
+
// Check the directive in the URL to determine which preset to use
|
|
109
|
+
const params = url.searchParams;
|
|
110
|
+
|
|
111
|
+
let presetName = params.get('preset');
|
|
112
|
+
|
|
113
|
+
// > Return metadata if directive 'responsive' is set
|
|
114
|
+
|
|
115
|
+
if (params.has('responsive')) {
|
|
116
|
+
params.set('as', 'metadata');
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// > Process presets
|
|
120
|
+
|
|
121
|
+
if (presetName) {
|
|
122
|
+
params.delete('preset');
|
|
123
|
+
} else {
|
|
124
|
+
presetName = 'default';
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const presets = options?.presets || DEFAULT_PRESETS;
|
|
128
|
+
|
|
129
|
+
// @ts-ignore
|
|
130
|
+
let preset = presets[presetName];
|
|
131
|
+
|
|
132
|
+
// console.log(`defaultDirectives [url=${url}]`, preset);
|
|
133
|
+
|
|
134
|
+
if (!preset) {
|
|
135
|
+
preset = DEFAULT_PRESETS.default;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
for (const key in preset) {
|
|
139
|
+
params.set(key, preset[key]);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// TODO: process directive 'w''
|
|
143
|
+
// - generate only allowed widths
|
|
144
|
+
// - support width presets such as 'hd'
|
|
145
|
+
|
|
146
|
+
// let width = params.get('w');
|
|
147
|
+
|
|
148
|
+
// if (!width) {
|
|
149
|
+
// // Set max allowed width by default
|
|
150
|
+
// // width = 'hd';
|
|
151
|
+
// }
|
|
152
|
+
|
|
153
|
+
// let presets = {
|
|
154
|
+
// sm: '640',
|
|
155
|
+
// md: '1024',
|
|
156
|
+
// lg: '1536',
|
|
157
|
+
// hd: '1920'
|
|
158
|
+
// };
|
|
159
|
+
|
|
160
|
+
// // @ts-ignore
|
|
161
|
+
// let presetWidth = presets[width];
|
|
162
|
+
// console.log({ width, presetWidth });
|
|
163
|
+
|
|
164
|
+
// if (presetWidth) {
|
|
165
|
+
// params.set('w', presetWidth);
|
|
166
|
+
// } else if (responsive || width === null) {
|
|
167
|
+
// params.set('as', 'metadata');
|
|
168
|
+
// params.delete('w');
|
|
169
|
+
// // } else if (width === null) {
|
|
170
|
+
// // // Set largest size is width parameter is missing
|
|
171
|
+
// // params.set('w', presets.hd);
|
|
172
|
+
// } else {
|
|
173
|
+
// throw new Error(
|
|
174
|
+
// `Directive [w=${width}] is should be a preset value {sm,md,lg,hd,responsive}`
|
|
175
|
+
// );
|
|
176
|
+
|
|
177
|
+
// // let allowedWidths = new Set(['640', '1024', '1536', '1920']);
|
|
178
|
+
// // if (!allowedWidths.has(width)) {
|
|
179
|
+
// // throw new Error(`Width [${width}] is not in list of allowed widths`);
|
|
180
|
+
// // }
|
|
181
|
+
// }
|
|
182
|
+
|
|
183
|
+
// params.set('withoutEnlargement', 'true');
|
|
184
|
+
|
|
185
|
+
// console.log('defaultDirectives:output params', params);
|
|
186
|
+
|
|
187
|
+
return params;
|
|
188
|
+
};
|
|
189
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates a Vite configuration object with common HKdigital settings
|
|
3
|
+
*
|
|
4
|
+
* @param {object} [options] Configuration options
|
|
5
|
+
* @param {boolean} [options.enableImagetools=true] Enable vite-imagetools plugin
|
|
6
|
+
* @param {boolean} [options.enableVitest=true] Include Vitest configuration
|
|
7
|
+
* @param {boolean} [options.enableSvelteKit=true] Enable SvelteKit plugin
|
|
8
|
+
* @param {object} [options.customDefines={}] Additional define values
|
|
9
|
+
* @param {Array} [options.customPlugins=[]] Additional Vite plugins
|
|
10
|
+
* @param {object} [options.imagetoolsOptions={}] Options for imagetools config
|
|
11
|
+
* @param {string} [options.packageJsonPath='./package.json'] Path to package.json
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<object>} Vite configuration object
|
|
14
|
+
*/
|
|
15
|
+
export function generateViteConfig(options?: {
|
|
16
|
+
enableImagetools?: boolean;
|
|
17
|
+
enableVitest?: boolean;
|
|
18
|
+
enableSvelteKit?: boolean;
|
|
19
|
+
customDefines?: object;
|
|
20
|
+
customPlugins?: any[];
|
|
21
|
+
imagetoolsOptions?: object;
|
|
22
|
+
packageJsonPath?: string;
|
|
23
|
+
}): Promise<object>;
|
|
24
|
+
/**
|
|
25
|
+
* Generates build-time defines for Vite
|
|
26
|
+
*
|
|
27
|
+
* @param {object} [options] Configuration options
|
|
28
|
+
* @param {string} [options.packageJsonPath='./package.json'] Path to package.json
|
|
29
|
+
* @param {object} [options.customDefines={}] Additional define values
|
|
30
|
+
*
|
|
31
|
+
* @returns {object} Define configuration object
|
|
32
|
+
*/
|
|
33
|
+
export function generateViteDefines(options?: {
|
|
34
|
+
packageJsonPath?: string;
|
|
35
|
+
customDefines?: object;
|
|
36
|
+
}): object;
|
|
37
|
+
/**
|
|
38
|
+
* Generates Vitest configuration
|
|
39
|
+
*
|
|
40
|
+
* @param {object} [options] Configuration options
|
|
41
|
+
* @param {string[]} [options.additionalPatterns=[]] Additional test patterns
|
|
42
|
+
*
|
|
43
|
+
* @returns {object} Vitest configuration object
|
|
44
|
+
*/
|
|
45
|
+
export function generateVitestConfig(options?: {
|
|
46
|
+
additionalPatterns?: string[];
|
|
47
|
+
}): object;
|