@hkdigital/lib-sveltekit 0.2.20 → 0.2.21
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 +135 -135
- package/dist/assets/autospuiten/car-paint-picker.js +41 -41
- package/dist/assets/autospuiten/labels.js +7 -7
- package/dist/classes/cache/IndexedDbCache.js +1407 -1407
- package/dist/classes/cache/MemoryResponseCache.js +138 -138
- package/dist/classes/cache/index.js +5 -5
- package/dist/classes/cache/typedef.js +41 -41
- package/dist/classes/data/IterableTree.js +243 -243
- package/dist/classes/data/Selector.js +190 -190
- package/dist/classes/data/index.js +2 -2
- package/dist/classes/events/EventEmitter.js +275 -275
- package/dist/classes/events/index.js +2 -2
- package/dist/classes/index.js +4 -4
- package/dist/classes/logging/Logger.js +210 -210
- package/dist/classes/logging/constants.js +16 -16
- package/dist/classes/logging/index.js +4 -4
- package/dist/classes/logging/typedef.js +17 -17
- package/dist/classes/promise/HkPromise.js +377 -377
- package/dist/classes/promise/index.js +1 -1
- package/dist/classes/services/ServiceBase.js +463 -463
- package/dist/classes/services/ServiceManager.js +614 -614
- package/dist/classes/services/index.js +5 -5
- package/dist/classes/services/service-states.js +205 -205
- package/dist/classes/services/typedef.js +179 -179
- 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.js +110 -110
- package/dist/classes/streams/TimeStampSource.js +26 -26
- package/dist/classes/streams/index.js +3 -3
- package/dist/classes/svelte/audio/AudioLoader.svelte.js +58 -58
- package/dist/classes/svelte/audio/AudioScene.svelte.js +324 -324
- package/dist/classes/svelte/audio/mocks.js +35 -35
- 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/image/ImageLoader.svelte.js +45 -45
- package/dist/classes/svelte/image/ImageScene.svelte.js +249 -249
- package/dist/classes/svelte/image/ImageVariantsLoader.svelte.js +152 -152
- package/dist/classes/svelte/image/index.js +4 -4
- package/dist/classes/svelte/image/mocks.js +35 -35
- package/dist/classes/svelte/image/typedef.js +8 -8
- package/dist/classes/svelte/index.js +14 -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/classes/svelte/network-loader/NetworkLoader.svelte.js +338 -338
- package/dist/classes/svelte/network-loader/constants.js +3 -3
- package/dist/classes/svelte/network-loader/index.js +3 -3
- package/dist/classes/svelte/network-loader/mocks.js +30 -30
- package/dist/classes/svelte/network-loader/typedef.js +8 -8
- package/dist/components/area/HkArea.svelte +49 -49
- package/dist/components/area/HkGridArea.svelte +77 -77
- package/dist/components/area/index.js +2 -2
- package/dist/components/buttons/button/Button.svelte +82 -82
- package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
- package/dist/components/buttons/button-text/TextButton.svelte +21 -21
- package/dist/components/buttons/index.js +3 -3
- package/dist/components/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
- package/dist/components/debug/index.js +1 -1
- package/dist/components/drag-drop/DragController.js +44 -44
- package/dist/components/drag-drop/DragDropContext.svelte +111 -111
- package/dist/components/drag-drop/Draggable.svelte +519 -519
- package/dist/components/drag-drop/DropZoneArea.svelte +119 -119
- package/dist/components/drag-drop/DropZoneList.svelte +125 -125
- package/dist/components/drag-drop/{DropZone.svelte → Dropzone.svelte} +258 -258
- package/dist/components/drag-drop/actions.js +26 -26
- package/dist/components/drag-drop/drag-state.svelte.js +322 -322
- package/dist/components/drag-drop/index.js +7 -7
- package/dist/components/drag-drop/util.js +85 -85
- package/dist/components/hkdev/blocks/TextBlock.svelte +46 -46
- package/dist/components/hkdev/buttons/CheckButton.svelte +62 -62
- package/dist/components/icons/HkIcon.svelte +86 -86
- package/dist/components/icons/HkTabIcon.svelte +116 -116
- package/dist/components/icons/SteezeIcon.svelte +97 -97
- package/dist/components/icons/index.js +6 -6
- package/dist/components/icons/typedef.js +16 -16
- package/dist/components/index.js +2 -2
- package/dist/components/inputs/index.js +1 -1
- package/dist/components/inputs/text-input/TestTextInput.svelte__ +102 -102
- package/dist/components/inputs/text-input/TextInput.svelte +223 -223
- package/dist/components/inputs/text-input/TextInput.svelte___ +83 -83
- package/dist/components/inputs/text-input/assets/IconInvalid.svelte +14 -14
- package/dist/components/inputs/text-input/assets/IconValid.svelte +12 -12
- package/dist/components/layout/grid-layers/GridLayers.svelte +63 -63
- package/dist/components/layout/grid-layers/util.js +74 -74
- package/dist/components/layout/index.js +1 -1
- package/dist/components/panels/index.js +1 -1
- package/dist/components/panels/panel/Panel.svelte +43 -43
- package/dist/components/rows/index.js +3 -3
- package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -104
- package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -40
- package/dist/components/tab-bar/HkTabBar.state.svelte.js +149 -149
- package/dist/components/tab-bar/HkTabBar.svelte +74 -74
- package/dist/components/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
- package/dist/components/tab-bar/HkTabBarSelector.svelte +49 -49
- package/dist/components/tab-bar/index.js +17 -17
- package/dist/components/tab-bar/typedef.js +11 -11
- package/dist/config/imagetools-config.js +189 -189
- package/dist/config/imagetools.d.ts +72 -72
- package/dist/constants/bases.js +13 -13
- package/dist/constants/errors/api.js +9 -9
- package/dist/constants/errors/generic.js +5 -5
- package/dist/constants/errors/index.js +3 -3
- package/dist/constants/errors/jwt.js +5 -5
- 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 +3 -3
- 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/index.js +31 -31
- package/dist/constants/regexp/inspiratie.js__ +95 -95
- package/dist/constants/regexp/text.js +49 -49
- package/dist/constants/regexp/user.js +32 -32
- package/dist/constants/regexp/web.js +3 -3
- package/dist/constants/state-labels/drag-states.js +6 -6
- package/dist/constants/state-labels/drop-states.js +6 -6
- package/dist/constants/state-labels/input-states.js +11 -11
- package/dist/constants/state-labels/submit-states.js +4 -4
- package/dist/constants/time.js +28 -28
- package/dist/css/utilities.css +43 -43
- package/dist/design/design-config.js +73 -73
- package/dist/design/tailwind-theme-extend.js +158 -158
- package/dist/features/button-group/ButtonGroup.svelte +82 -82
- package/dist/features/button-group/typedef.js +10 -10
- package/dist/features/compare-left-right/CompareLeftRight.svelte +179 -179
- package/dist/features/compare-left-right/index.js +1 -1
- package/dist/features/game-box/GameBox.svelte +577 -577
- package/dist/features/game-box/gamebox.util.js +83 -83
- package/dist/features/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
- package/dist/features/hk-app-layout/HkAppLayout.svelte +251 -251
- package/dist/features/image-box/ImageBox.svelte +210 -210
- package/dist/features/image-box/index.js +5 -5
- package/dist/features/image-box/typedef.js +32 -32
- package/dist/features/index.js +23 -23
- package/dist/features/presenter/ImageSlide.svelte +64 -64
- package/dist/features/presenter/Presenter.state.svelte.js +638 -638
- package/dist/features/presenter/Presenter.svelte +142 -142
- package/dist/features/presenter/constants.js +7 -7
- package/dist/features/presenter/index.js +10 -10
- package/dist/features/presenter/typedef.js +106 -106
- package/dist/features/presenter/util.js +210 -210
- package/dist/features/virtual-viewport/VirtualViewport.svelte +196 -196
- package/dist/logging/adapters/console.js +114 -114
- package/dist/logging/adapters/pino.js +60 -60
- package/dist/logging/constants.js +1 -1
- package/dist/logging/factories/client.js +21 -21
- package/dist/logging/factories/server.js +22 -22
- package/dist/logging/factories/universal.js +23 -23
- package/dist/logging/index.js +8 -8
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/validate-url.js +180 -180
- package/dist/server/index.js +1 -1
- package/dist/server/logger.js +94 -94
- 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/themes/hkdev/components/blocks/text-block.css +34 -41
- package/dist/themes/hkdev/components/boxes/game-box.css +11 -12
- package/dist/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
- package/dist/themes/hkdev/components/buttons/button-text.css +32 -32
- package/dist/themes/hkdev/components/buttons/button.css +146 -146
- package/dist/themes/hkdev/components/buttons/skip-button.css +5 -6
- package/dist/themes/hkdev/components/drag-drop/draggable.css +73 -73
- package/dist/themes/hkdev/components/drag-drop/drop-zone.css +58 -48
- package/dist/themes/hkdev/components/icons/icon-steeze.css +16 -22
- package/dist/themes/hkdev/components/inputs/text-input.css +102 -104
- package/dist/themes/hkdev/components/panels/panel.css +25 -27
- package/dist/themes/hkdev/components/rows/panel-grid-row.css +4 -6
- package/dist/themes/hkdev/components/rows/panel-row-2.css +5 -7
- package/dist/themes/hkdev/components.css +29 -53
- package/dist/themes/hkdev/debug.css +1 -1
- package/dist/themes/hkdev/global/layout.css +32 -39
- package/dist/themes/hkdev/global/on-colors.css +32 -53
- package/dist/themes/hkdev/globals.css +4 -11
- package/dist/themes/hkdev/responsive.css +12 -12
- package/dist/themes/hkdev/theme-ext.js +12 -15
- package/dist/themes/hkdev/theme.css +219 -0
- package/dist/themes/index.d.ts +1 -1
- package/dist/themes/index.js +1 -1
- package/dist/typedef/context.js +6 -6
- package/dist/typedef/drag.js +25 -25
- package/dist/typedef/drop.js +12 -12
- package/dist/typedef/image.js +38 -38
- package/dist/typedef/index.js +4 -4
- 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/design-system/components/states.js +22 -22
- package/dist/util/design-system/css/clamp.js +66 -66
- package/dist/util/design-system/css/root-design-vars.js +102 -102
- package/dist/util/design-system/index.js +5 -5
- package/dist/util/design-system/layout/scaling.js +228 -228
- package/dist/util/design-system/skeleton.js +208 -208
- package/dist/util/design-system/tailwind.js +288 -288
- package/dist/util/env/index.js +9 -9
- 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.js +60 -60
- package/dist/util/function/index.js +218 -218
- package/dist/util/geo/index.js +26 -26
- package/dist/util/http/caching.js +263 -263
- package/dist/util/http/errors.js +97 -97
- package/dist/util/http/headers.js +75 -75
- package/dist/util/http/http-request.js +578 -578
- package/dist/util/http/index.js +22 -22
- package/dist/util/http/json-request.js +224 -224
- package/dist/util/http/mocks.js +65 -65
- package/dist/util/http/response.js +294 -294
- package/dist/util/http/typedef.js +93 -93
- package/dist/util/http/url.js +52 -52
- package/dist/util/image/index.js +86 -86
- package/dist/util/index.js +2 -2
- package/dist/util/is/index.js +140 -140
- package/dist/util/iterate/index.js +234 -234
- package/dist/util/object/index.js +1361 -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 +323 -323
- package/dist/util/unique/index.js +249 -249
- package/dist/valibot/date.js__ +10 -10
- package/dist/valibot/index.js +9 -9
- package/dist/valibot/url.js +95 -95
- package/dist/valibot/user.js +23 -23
- package/dist/zod/all.js +33 -33
- package/dist/zod/generic.js +11 -11
- package/dist/zod/javascript.js +32 -32
- package/dist/zod/user.js +16 -16
- package/dist/zod/web.js +52 -52
- package/package.json +132 -129
- package/dist/components/layout/grid-layers/GridLayers.svelte__heightFrom__ +0 -372
- package/dist/themes/hkdev/theme.d.ts +0 -234
- package/dist/themes/hkdev/theme.js +0 -235
- package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
@@ -1,93 +1,93 @@
|
|
1
|
-
/**
|
2
|
-
* @typedef {Object} HttpRequestOptions
|
3
|
-
* @property {string|URL} url URL string or URL object for the request
|
4
|
-
* @property {string} [method] HTTP method to use (GET, POST, etc.)
|
5
|
-
*
|
6
|
-
* @property {Object|URLSearchParams} [urlSearchParams]
|
7
|
-
* Parameters to add to the URL
|
8
|
-
*
|
9
|
-
* @property {*} [body] Request body (for POST, PUT, etc.)
|
10
|
-
* @property {Object} [headers] HTTP headers as name-value pairs
|
11
|
-
* @property {boolean} [withCredentials] Whether to include credentials
|
12
|
-
* @property {number} [timeoutMs] Request timeout in milliseconds
|
13
|
-
* @property {Function} [requestHandler] Handler for abort/timeout control
|
14
|
-
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
15
|
-
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
16
|
-
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
17
|
-
* @property {string} [referrerPolicy] Referrer policy
|
18
|
-
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
19
|
-
*/
|
20
|
-
|
21
|
-
/**
|
22
|
-
* @typedef {Object} RequestHandlerParams
|
23
|
-
*
|
24
|
-
* @property {AbortController} controller
|
25
|
-
* The AbortController instance for this request
|
26
|
-
*
|
27
|
-
* @property {(reason?: Error) => void} abort Function to abort the request
|
28
|
-
* @property {(delayMs: number) => void} timeout Function to set a timeout
|
29
|
-
*/
|
30
|
-
|
31
|
-
/**
|
32
|
-
* @callback RequestHandler
|
33
|
-
* @param {RequestHandlerParams} params Parameters for controlling the request
|
34
|
-
* @returns {void}
|
35
|
-
*/
|
36
|
-
|
37
|
-
/**
|
38
|
-
* @typedef {Object} JsonGetOptions
|
39
|
-
* @property {string|URL} url URL string or URL object for the request
|
40
|
-
*
|
41
|
-
* @property {Object|URLSearchParams} [urlSearchParams]
|
42
|
-
* Parameters to add to the URL
|
43
|
-
*
|
44
|
-
* @property {Object} [headers] HTTP headers as name-value pairs
|
45
|
-
* @property {boolean} [withCredentials] Whether to include credentials
|
46
|
-
* @property {number} [timeoutMs] Request timeout in milliseconds
|
47
|
-
* @property {RequestHandler} [requestHandler] Handler for abort/timeout control
|
48
|
-
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
49
|
-
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
50
|
-
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
51
|
-
* @property {string} [referrerPolicy] Referrer policy
|
52
|
-
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
53
|
-
*/
|
54
|
-
|
55
|
-
/**
|
56
|
-
* @typedef {Object} JsonPostOptions
|
57
|
-
* @property {string|URL} url URL string or URL object for the request
|
58
|
-
* @property {*} body Request body (will be sent as JSON)
|
59
|
-
*
|
60
|
-
* @property {Object|URLSearchParams} [urlSearchParams]
|
61
|
-
* Parameters to add to the URL
|
62
|
-
*
|
63
|
-
* @property {Object} [headers] HTTP headers as name-value pairs
|
64
|
-
* @property {boolean} [withCredentials] Whether to include credentials
|
65
|
-
* @property {number} [timeoutMs] Request timeout in milliseconds
|
66
|
-
* @property {RequestHandler} [requestHandler] Handler for abort/timeout control
|
67
|
-
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
68
|
-
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
69
|
-
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
70
|
-
* @property {string} [referrerPolicy] Referrer policy
|
71
|
-
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
72
|
-
*/
|
73
|
-
|
74
|
-
/**
|
75
|
-
* @typedef {Object} StaleInfo
|
76
|
-
* @property {boolean} isStale Whether the response contains stale data
|
77
|
-
*
|
78
|
-
* @property {Promise<Response>|null} fresh
|
79
|
-
* Promise that resolves to fresh data (if available)
|
80
|
-
*
|
81
|
-
* @property {number} timestamp When the response was originally cached
|
82
|
-
* @property {number|null} expires When the response expires
|
83
|
-
*/
|
84
|
-
|
85
|
-
/**
|
86
|
-
* @typedef {Response} ResponseWithStale
|
87
|
-
* @property {boolean} isStale Whether this response contains stale data
|
88
|
-
*
|
89
|
-
* @property {Promise<Response>|null} fresh
|
90
|
-
* Promise for fresh data if this is stale
|
91
|
-
*/
|
92
|
-
|
93
|
-
export {};
|
1
|
+
/**
|
2
|
+
* @typedef {Object} HttpRequestOptions
|
3
|
+
* @property {string|URL} url URL string or URL object for the request
|
4
|
+
* @property {string} [method] HTTP method to use (GET, POST, etc.)
|
5
|
+
*
|
6
|
+
* @property {Object|URLSearchParams} [urlSearchParams]
|
7
|
+
* Parameters to add to the URL
|
8
|
+
*
|
9
|
+
* @property {*} [body] Request body (for POST, PUT, etc.)
|
10
|
+
* @property {Object} [headers] HTTP headers as name-value pairs
|
11
|
+
* @property {boolean} [withCredentials] Whether to include credentials
|
12
|
+
* @property {number} [timeoutMs] Request timeout in milliseconds
|
13
|
+
* @property {Function} [requestHandler] Handler for abort/timeout control
|
14
|
+
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
15
|
+
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
16
|
+
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
17
|
+
* @property {string} [referrerPolicy] Referrer policy
|
18
|
+
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
19
|
+
*/
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @typedef {Object} RequestHandlerParams
|
23
|
+
*
|
24
|
+
* @property {AbortController} controller
|
25
|
+
* The AbortController instance for this request
|
26
|
+
*
|
27
|
+
* @property {(reason?: Error) => void} abort Function to abort the request
|
28
|
+
* @property {(delayMs: number) => void} timeout Function to set a timeout
|
29
|
+
*/
|
30
|
+
|
31
|
+
/**
|
32
|
+
* @callback RequestHandler
|
33
|
+
* @param {RequestHandlerParams} params Parameters for controlling the request
|
34
|
+
* @returns {void}
|
35
|
+
*/
|
36
|
+
|
37
|
+
/**
|
38
|
+
* @typedef {Object} JsonGetOptions
|
39
|
+
* @property {string|URL} url URL string or URL object for the request
|
40
|
+
*
|
41
|
+
* @property {Object|URLSearchParams} [urlSearchParams]
|
42
|
+
* Parameters to add to the URL
|
43
|
+
*
|
44
|
+
* @property {Object} [headers] HTTP headers as name-value pairs
|
45
|
+
* @property {boolean} [withCredentials] Whether to include credentials
|
46
|
+
* @property {number} [timeoutMs] Request timeout in milliseconds
|
47
|
+
* @property {RequestHandler} [requestHandler] Handler for abort/timeout control
|
48
|
+
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
49
|
+
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
50
|
+
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
51
|
+
* @property {string} [referrerPolicy] Referrer policy
|
52
|
+
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
53
|
+
*/
|
54
|
+
|
55
|
+
/**
|
56
|
+
* @typedef {Object} JsonPostOptions
|
57
|
+
* @property {string|URL} url URL string or URL object for the request
|
58
|
+
* @property {*} body Request body (will be sent as JSON)
|
59
|
+
*
|
60
|
+
* @property {Object|URLSearchParams} [urlSearchParams]
|
61
|
+
* Parameters to add to the URL
|
62
|
+
*
|
63
|
+
* @property {Object} [headers] HTTP headers as name-value pairs
|
64
|
+
* @property {boolean} [withCredentials] Whether to include credentials
|
65
|
+
* @property {number} [timeoutMs] Request timeout in milliseconds
|
66
|
+
* @property {RequestHandler} [requestHandler] Handler for abort/timeout control
|
67
|
+
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
68
|
+
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
69
|
+
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
70
|
+
* @property {string} [referrerPolicy] Referrer policy
|
71
|
+
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
72
|
+
*/
|
73
|
+
|
74
|
+
/**
|
75
|
+
* @typedef {Object} StaleInfo
|
76
|
+
* @property {boolean} isStale Whether the response contains stale data
|
77
|
+
*
|
78
|
+
* @property {Promise<Response>|null} fresh
|
79
|
+
* Promise that resolves to fresh data (if available)
|
80
|
+
*
|
81
|
+
* @property {number} timestamp When the response was originally cached
|
82
|
+
* @property {number|null} expires When the response expires
|
83
|
+
*/
|
84
|
+
|
85
|
+
/**
|
86
|
+
* @typedef {Response} ResponseWithStale
|
87
|
+
* @property {boolean} isStale Whether this response contains stale data
|
88
|
+
*
|
89
|
+
* @property {Promise<Response>|null} fresh
|
90
|
+
* Promise for fresh data if this is stale
|
91
|
+
*/
|
92
|
+
|
93
|
+
export {};
|
package/dist/util/http/url.js
CHANGED
@@ -1,52 +1,52 @@
|
|
1
|
-
import { TypeOrValueError } from '../../constants/errors/index.js';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Returns an URL instance
|
5
|
-
* - Prefixes the URL with the current orign if the url is relative
|
6
|
-
*
|
7
|
-
* @param {string|URL} url
|
8
|
-
*
|
9
|
-
* @returns {URL} url instance
|
10
|
-
*/
|
11
|
-
export function toURL(url) {
|
12
|
-
if (typeof url === 'string') {
|
13
|
-
if (hasProtocol(url)) {
|
14
|
-
return new URL(url);
|
15
|
-
} else {
|
16
|
-
// Use location.origin aas baseUrl
|
17
|
-
return new URL(url, location.origin);
|
18
|
-
}
|
19
|
-
} else if (!(url instanceof URL)) {
|
20
|
-
throw new TypeOrValueError('Missing or invalid parameter [url]');
|
21
|
-
}
|
22
|
-
|
23
|
-
// already an URL instance
|
24
|
-
return url;
|
25
|
-
}
|
26
|
-
|
27
|
-
/**
|
28
|
-
* Checks if the url starts with a protocol specification such
|
29
|
-
* as https://
|
30
|
-
*
|
31
|
-
* @param {string} url
|
32
|
-
*
|
33
|
-
* @return {boolean} true if the value looks like an array
|
34
|
-
*/
|
35
|
-
export function hasProtocol(url) {
|
36
|
-
if (/^([a-zA-Z]{2,})s?:\/\//.test(url)) {
|
37
|
-
return true;
|
38
|
-
}
|
39
|
-
|
40
|
-
return false;
|
41
|
-
}
|
42
|
-
|
43
|
-
/**
|
44
|
-
* Convert an url to an absolute url and apply decodeURI to
|
45
|
-
* convert URI encoded characters to normal characters
|
46
|
-
*
|
47
|
-
* @param {string|URL} url
|
48
|
-
*/
|
49
|
-
export function href(url) {
|
50
|
-
const urlObj = toURL(url);
|
51
|
-
return decodeURI(urlObj.href);
|
52
|
-
}
|
1
|
+
import { TypeOrValueError } from '../../constants/errors/index.js';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Returns an URL instance
|
5
|
+
* - Prefixes the URL with the current orign if the url is relative
|
6
|
+
*
|
7
|
+
* @param {string|URL} url
|
8
|
+
*
|
9
|
+
* @returns {URL} url instance
|
10
|
+
*/
|
11
|
+
export function toURL(url) {
|
12
|
+
if (typeof url === 'string') {
|
13
|
+
if (hasProtocol(url)) {
|
14
|
+
return new URL(url);
|
15
|
+
} else {
|
16
|
+
// Use location.origin aas baseUrl
|
17
|
+
return new URL(url, location.origin);
|
18
|
+
}
|
19
|
+
} else if (!(url instanceof URL)) {
|
20
|
+
throw new TypeOrValueError('Missing or invalid parameter [url]');
|
21
|
+
}
|
22
|
+
|
23
|
+
// already an URL instance
|
24
|
+
return url;
|
25
|
+
}
|
26
|
+
|
27
|
+
/**
|
28
|
+
* Checks if the url starts with a protocol specification such
|
29
|
+
* as https://
|
30
|
+
*
|
31
|
+
* @param {string} url
|
32
|
+
*
|
33
|
+
* @return {boolean} true if the value looks like an array
|
34
|
+
*/
|
35
|
+
export function hasProtocol(url) {
|
36
|
+
if (/^([a-zA-Z]{2,})s?:\/\//.test(url)) {
|
37
|
+
return true;
|
38
|
+
}
|
39
|
+
|
40
|
+
return false;
|
41
|
+
}
|
42
|
+
|
43
|
+
/**
|
44
|
+
* Convert an url to an absolute url and apply decodeURI to
|
45
|
+
* convert URI encoded characters to normal characters
|
46
|
+
*
|
47
|
+
* @param {string|URL} url
|
48
|
+
*/
|
49
|
+
export function href(url) {
|
50
|
+
const urlObj = toURL(url);
|
51
|
+
return decodeURI(urlObj.href);
|
52
|
+
}
|
package/dist/util/image/index.js
CHANGED
@@ -1,86 +1,86 @@
|
|
1
|
-
/**
|
2
|
-
* Returns the unchanged image meta object or the last item of
|
3
|
-
* an array of ImageMeta objects. This is assumed to be a list
|
4
|
-
* of sorted responsive image formats, so it should be the
|
5
|
-
* largest image.
|
6
|
-
*
|
7
|
-
* @param {ImageMeta|ImageMeta[]} imageMeta
|
8
|
-
*/
|
9
|
-
export function toSingleImageMeta(imageMeta) {
|
10
|
-
if (Array.isArray(imageMeta)) {
|
11
|
-
if (!imageMeta.length) {
|
12
|
-
throw new Error('List of ImageMeta objects is empty');
|
13
|
-
}
|
14
|
-
imageMeta = imageMeta[imageMeta.length - 1];
|
15
|
-
}
|
16
|
-
|
17
|
-
if (typeof imageMeta === 'object') {
|
18
|
-
return imageMeta;
|
19
|
-
} else if (!imageMeta) {
|
20
|
-
throw new Error('Missing [imageMeta]');
|
21
|
-
}
|
22
|
-
|
23
|
-
throw new Error('Invalid value for parameter [imageMeta]');
|
24
|
-
}
|
25
|
-
|
26
|
-
/**
|
27
|
-
* Calculate effective width based on container dimensions and fit mode
|
28
|
-
*
|
29
|
-
* @param {object} params
|
30
|
-
* @param {number} [params.containerWidth] Container width in pixels
|
31
|
-
* @param {number} [params.containerHeight] Container height in pixels
|
32
|
-
* @param {number} params.imageAspectRatio Original image aspect ratio (width/height)
|
33
|
-
* @param {'cover'|'contain'|'fill'} [params.fit='contain'] Fit mode
|
34
|
-
* @returns {number} Effective width needed
|
35
|
-
*/
|
36
|
-
export function calculateEffectiveWidth({
|
37
|
-
containerWidth,
|
38
|
-
containerHeight,
|
39
|
-
imageAspectRatio,
|
40
|
-
fit = 'contain'
|
41
|
-
}) {
|
42
|
-
if (containerWidth && !containerHeight) {
|
43
|
-
// If only width is provided, use it
|
44
|
-
|
45
|
-
return containerWidth;
|
46
|
-
}
|
47
|
-
|
48
|
-
if (!containerWidth && containerHeight) {
|
49
|
-
// If only height is provided, calculate width based on aspect ratio
|
50
|
-
|
51
|
-
return containerHeight * imageAspectRatio;
|
52
|
-
}
|
53
|
-
|
54
|
-
if (containerWidth && containerHeight) {
|
55
|
-
// If both dimensions are provided, calculate based on fit mode
|
56
|
-
|
57
|
-
const containerAspectRatio = containerWidth / containerHeight;
|
58
|
-
|
59
|
-
switch (fit) {
|
60
|
-
case 'fill':
|
61
|
-
return containerWidth;
|
62
|
-
|
63
|
-
case 'contain':
|
64
|
-
if (containerAspectRatio > imageAspectRatio) {
|
65
|
-
// Height constrained, scale width accordingly
|
66
|
-
|
67
|
-
return containerHeight * imageAspectRatio;
|
68
|
-
}
|
69
|
-
return containerWidth;
|
70
|
-
|
71
|
-
case 'cover':
|
72
|
-
if (containerAspectRatio < imageAspectRatio) {
|
73
|
-
// Height constrained, scale width accordingly
|
74
|
-
|
75
|
-
return containerHeight * imageAspectRatio;
|
76
|
-
}
|
77
|
-
return containerWidth;
|
78
|
-
|
79
|
-
default:
|
80
|
-
return containerWidth;
|
81
|
-
}
|
82
|
-
}
|
83
|
-
|
84
|
-
// Fallback if neither dimension is provided
|
85
|
-
throw new Error('Either containerWidth or containerHeight must be provided');
|
86
|
-
}
|
1
|
+
/**
|
2
|
+
* Returns the unchanged image meta object or the last item of
|
3
|
+
* an array of ImageMeta objects. This is assumed to be a list
|
4
|
+
* of sorted responsive image formats, so it should be the
|
5
|
+
* largest image.
|
6
|
+
*
|
7
|
+
* @param {ImageMeta|ImageMeta[]} imageMeta
|
8
|
+
*/
|
9
|
+
export function toSingleImageMeta(imageMeta) {
|
10
|
+
if (Array.isArray(imageMeta)) {
|
11
|
+
if (!imageMeta.length) {
|
12
|
+
throw new Error('List of ImageMeta objects is empty');
|
13
|
+
}
|
14
|
+
imageMeta = imageMeta[imageMeta.length - 1];
|
15
|
+
}
|
16
|
+
|
17
|
+
if (typeof imageMeta === 'object') {
|
18
|
+
return imageMeta;
|
19
|
+
} else if (!imageMeta) {
|
20
|
+
throw new Error('Missing [imageMeta]');
|
21
|
+
}
|
22
|
+
|
23
|
+
throw new Error('Invalid value for parameter [imageMeta]');
|
24
|
+
}
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Calculate effective width based on container dimensions and fit mode
|
28
|
+
*
|
29
|
+
* @param {object} params
|
30
|
+
* @param {number} [params.containerWidth] Container width in pixels
|
31
|
+
* @param {number} [params.containerHeight] Container height in pixels
|
32
|
+
* @param {number} params.imageAspectRatio Original image aspect ratio (width/height)
|
33
|
+
* @param {'cover'|'contain'|'fill'} [params.fit='contain'] Fit mode
|
34
|
+
* @returns {number} Effective width needed
|
35
|
+
*/
|
36
|
+
export function calculateEffectiveWidth({
|
37
|
+
containerWidth,
|
38
|
+
containerHeight,
|
39
|
+
imageAspectRatio,
|
40
|
+
fit = 'contain'
|
41
|
+
}) {
|
42
|
+
if (containerWidth && !containerHeight) {
|
43
|
+
// If only width is provided, use it
|
44
|
+
|
45
|
+
return containerWidth;
|
46
|
+
}
|
47
|
+
|
48
|
+
if (!containerWidth && containerHeight) {
|
49
|
+
// If only height is provided, calculate width based on aspect ratio
|
50
|
+
|
51
|
+
return containerHeight * imageAspectRatio;
|
52
|
+
}
|
53
|
+
|
54
|
+
if (containerWidth && containerHeight) {
|
55
|
+
// If both dimensions are provided, calculate based on fit mode
|
56
|
+
|
57
|
+
const containerAspectRatio = containerWidth / containerHeight;
|
58
|
+
|
59
|
+
switch (fit) {
|
60
|
+
case 'fill':
|
61
|
+
return containerWidth;
|
62
|
+
|
63
|
+
case 'contain':
|
64
|
+
if (containerAspectRatio > imageAspectRatio) {
|
65
|
+
// Height constrained, scale width accordingly
|
66
|
+
|
67
|
+
return containerHeight * imageAspectRatio;
|
68
|
+
}
|
69
|
+
return containerWidth;
|
70
|
+
|
71
|
+
case 'cover':
|
72
|
+
if (containerAspectRatio < imageAspectRatio) {
|
73
|
+
// Height constrained, scale width accordingly
|
74
|
+
|
75
|
+
return containerHeight * imageAspectRatio;
|
76
|
+
}
|
77
|
+
return containerWidth;
|
78
|
+
|
79
|
+
default:
|
80
|
+
return containerWidth;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
// Fallback if neither dimension is provided
|
85
|
+
throw new Error('Either containerWidth or containerHeight must be provided');
|
86
|
+
}
|
package/dist/util/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export * as expect from './expect/index.js';
|
2
|
-
export * as singleton from './singleton/index.js';
|
1
|
+
export * as expect from './expect/index.js';
|
2
|
+
export * as singleton from './singleton/index.js';
|