@hkdigital/lib-sveltekit 0.2.21 → 0.2.22
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 -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/{Dropzone.svelte → DropZone.svelte} +258 -258
- package/dist/components/drag-drop/DropZoneArea.svelte +119 -119
- package/dist/components/drag-drop/DropZoneList.svelte +125 -125
- 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/GridLayers.svelte__heightFrom__ +372 -0
- 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 -34
- package/dist/themes/hkdev/components/boxes/game-box.css +11 -11
- 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 -5
- package/dist/themes/hkdev/components/drag-drop/draggable.css +73 -73
- package/dist/themes/hkdev/components/drag-drop/drop-zone.css +58 -58
- package/dist/themes/hkdev/components/icons/icon-steeze.css +15 -15
- package/dist/themes/hkdev/components/inputs/text-input.css +102 -102
- package/dist/themes/hkdev/components/panels/panel.css +25 -25
- package/dist/themes/hkdev/components/rows/panel-grid-row.css +4 -4
- package/dist/themes/hkdev/components/rows/panel-row-2.css +5 -5
- package/dist/themes/hkdev/components.css +29 -29
- package/dist/themes/hkdev/debug.css +1 -1
- package/dist/themes/hkdev/global/layout.css +32 -32
- package/dist/themes/hkdev/global/on-colors.css +32 -32
- package/dist/themes/hkdev/globals.css +3 -3
- package/dist/themes/hkdev/responsive.css +12 -12
- package/dist/themes/hkdev/theme-ext.js +12 -12
- package/dist/themes/hkdev/theme.css +218 -218
- 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/exceptions/index.d.ts +11 -0
- package/dist/util/exceptions/index.js +17 -0
- 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/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
- 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.d.ts +1 -0
- package/dist/util/index.js +3 -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 +133 -132
@@ -1,60 +1,60 @@
|
|
1
|
-
/**
|
2
|
-
* Pino adapter for server-side logging
|
3
|
-
*/
|
4
|
-
|
5
|
-
import pino from 'pino';
|
6
|
-
import { dev } from '$app/environment';
|
7
|
-
|
8
|
-
/**
|
9
|
-
* Pino adapter that bridges Logger events to pino
|
10
|
-
*/
|
11
|
-
export class PinoAdapter {
|
12
|
-
/**
|
13
|
-
* Create a new PinoAdapter
|
14
|
-
*
|
15
|
-
* @param {Object} [options] - Pino configuration options
|
16
|
-
*/
|
17
|
-
constructor(options = {}) {
|
18
|
-
const defaultOptions = dev ? {
|
19
|
-
level: 'debug',
|
20
|
-
transport: {
|
21
|
-
target: 'pino-pretty',
|
22
|
-
options: {
|
23
|
-
colorize: true
|
24
|
-
}
|
25
|
-
}
|
26
|
-
} : {};
|
27
|
-
|
28
|
-
this.pino = pino({ ...defaultOptions, ...options });
|
29
|
-
}
|
30
|
-
|
31
|
-
/**
|
32
|
-
* Handle log events from Logger
|
33
|
-
*
|
34
|
-
* @param {Object} logEvent - Log event from Logger
|
35
|
-
*/
|
36
|
-
handleLog(logEvent) {
|
37
|
-
const { level, message, details, source, timestamp } = logEvent;
|
38
|
-
|
39
|
-
const logData = {
|
40
|
-
source,
|
41
|
-
timestamp,
|
42
|
-
...(details && { details })
|
43
|
-
};
|
44
|
-
|
45
|
-
this.pino[level](logData, message);
|
46
|
-
}
|
47
|
-
|
48
|
-
/**
|
49
|
-
* Create a child logger with additional context
|
50
|
-
*
|
51
|
-
* @param {Object} context - Additional context data
|
52
|
-
* @returns {PinoAdapter} New adapter instance with context
|
53
|
-
*/
|
54
|
-
child(context) {
|
55
|
-
const childPino = this.pino.child(context);
|
56
|
-
const adapter = new PinoAdapter();
|
57
|
-
adapter.pino = childPino;
|
58
|
-
return adapter;
|
59
|
-
}
|
60
|
-
}
|
1
|
+
/**
|
2
|
+
* Pino adapter for server-side logging
|
3
|
+
*/
|
4
|
+
|
5
|
+
import pino from 'pino';
|
6
|
+
import { dev } from '$app/environment';
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Pino adapter that bridges Logger events to pino
|
10
|
+
*/
|
11
|
+
export class PinoAdapter {
|
12
|
+
/**
|
13
|
+
* Create a new PinoAdapter
|
14
|
+
*
|
15
|
+
* @param {Object} [options] - Pino configuration options
|
16
|
+
*/
|
17
|
+
constructor(options = {}) {
|
18
|
+
const defaultOptions = dev ? {
|
19
|
+
level: 'debug',
|
20
|
+
transport: {
|
21
|
+
target: 'pino-pretty',
|
22
|
+
options: {
|
23
|
+
colorize: true
|
24
|
+
}
|
25
|
+
}
|
26
|
+
} : {};
|
27
|
+
|
28
|
+
this.pino = pino({ ...defaultOptions, ...options });
|
29
|
+
}
|
30
|
+
|
31
|
+
/**
|
32
|
+
* Handle log events from Logger
|
33
|
+
*
|
34
|
+
* @param {Object} logEvent - Log event from Logger
|
35
|
+
*/
|
36
|
+
handleLog(logEvent) {
|
37
|
+
const { level, message, details, source, timestamp } = logEvent;
|
38
|
+
|
39
|
+
const logData = {
|
40
|
+
source,
|
41
|
+
timestamp,
|
42
|
+
...(details && { details })
|
43
|
+
};
|
44
|
+
|
45
|
+
this.pino[level](logData, message);
|
46
|
+
}
|
47
|
+
|
48
|
+
/**
|
49
|
+
* Create a child logger with additional context
|
50
|
+
*
|
51
|
+
* @param {Object} context - Additional context data
|
52
|
+
* @returns {PinoAdapter} New adapter instance with context
|
53
|
+
*/
|
54
|
+
child(context) {
|
55
|
+
const childPino = this.pino.child(context);
|
56
|
+
const adapter = new PinoAdapter();
|
57
|
+
adapter.pino = childPino;
|
58
|
+
return adapter;
|
59
|
+
}
|
60
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
export * from '../classes/logging/constants.js';
|
1
|
+
export * from '../classes/logging/constants.js';
|
@@ -1,21 +1,21 @@
|
|
1
|
-
import { Logger } from '../../classes/logging';
|
2
|
-
import { ConsoleAdapter } from '../adapters/console.js';
|
3
|
-
import { INFO } from '../constants.js';
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Create a client-side logger with console adapter
|
7
|
-
*
|
8
|
-
* @param {string} name
|
9
|
-
* @param {string} [level=INFO] - Initial log level
|
10
|
-
* @param {Object} [consoleOptions] - Additional console options
|
11
|
-
* @returns {Logger} Configured logger instance
|
12
|
-
*/
|
13
|
-
export function createClientLogger(name, level = INFO, consoleOptions = {}) {
|
14
|
-
const logger = new Logger(name, level);
|
15
|
-
const adapter = new ConsoleAdapter({ ...consoleOptions, level });
|
16
|
-
|
17
|
-
// Connect adapter to logger events
|
18
|
-
logger.on('log', (logEvent) => adapter.handleLog(logEvent));
|
19
|
-
|
20
|
-
return logger;
|
21
|
-
}
|
1
|
+
import { Logger } from '../../classes/logging';
|
2
|
+
import { ConsoleAdapter } from '../adapters/console.js';
|
3
|
+
import { INFO } from '../constants.js';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Create a client-side logger with console adapter
|
7
|
+
*
|
8
|
+
* @param {string} name
|
9
|
+
* @param {string} [level=INFO] - Initial log level
|
10
|
+
* @param {Object} [consoleOptions] - Additional console options
|
11
|
+
* @returns {Logger} Configured logger instance
|
12
|
+
*/
|
13
|
+
export function createClientLogger(name, level = INFO, consoleOptions = {}) {
|
14
|
+
const logger = new Logger(name, level);
|
15
|
+
const adapter = new ConsoleAdapter({ ...consoleOptions, level });
|
16
|
+
|
17
|
+
// Connect adapter to logger events
|
18
|
+
logger.on('log', (logEvent) => adapter.handleLog(logEvent));
|
19
|
+
|
20
|
+
return logger;
|
21
|
+
}
|
@@ -1,22 +1,22 @@
|
|
1
|
-
import { Logger } from '../../classes/logging';
|
2
|
-
|
3
|
-
import { PinoAdapter } from '../adapters/pino.js';
|
4
|
-
import { INFO } from '../constants.js';
|
5
|
-
|
6
|
-
/**
|
7
|
-
* Create a server-side logger with pino adapter
|
8
|
-
*
|
9
|
-
* @param {string} name
|
10
|
-
* @param {string} [level=INFO] - Initial log level
|
11
|
-
* @param {Object} [pinoOptions] - Additional pino options
|
12
|
-
* @returns {Logger} Configured logger instance
|
13
|
-
*/
|
14
|
-
export function createServerLogger(name, level = INFO, pinoOptions = {}) {
|
15
|
-
const logger = new Logger(name, level);
|
16
|
-
const adapter = new PinoAdapter(pinoOptions);
|
17
|
-
|
18
|
-
// Connect adapter to logger events
|
19
|
-
logger.on('log', (logEvent) => adapter.handleLog(logEvent));
|
20
|
-
|
21
|
-
return logger;
|
22
|
-
}
|
1
|
+
import { Logger } from '../../classes/logging';
|
2
|
+
|
3
|
+
import { PinoAdapter } from '../adapters/pino.js';
|
4
|
+
import { INFO } from '../constants.js';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Create a server-side logger with pino adapter
|
8
|
+
*
|
9
|
+
* @param {string} name
|
10
|
+
* @param {string} [level=INFO] - Initial log level
|
11
|
+
* @param {Object} [pinoOptions] - Additional pino options
|
12
|
+
* @returns {Logger} Configured logger instance
|
13
|
+
*/
|
14
|
+
export function createServerLogger(name, level = INFO, pinoOptions = {}) {
|
15
|
+
const logger = new Logger(name, level);
|
16
|
+
const adapter = new PinoAdapter(pinoOptions);
|
17
|
+
|
18
|
+
// Connect adapter to logger events
|
19
|
+
logger.on('log', (logEvent) => adapter.handleLog(logEvent));
|
20
|
+
|
21
|
+
return logger;
|
22
|
+
}
|
@@ -1,23 +1,23 @@
|
|
1
|
-
/**
|
2
|
-
* Universal logger factory that auto-detects environment
|
3
|
-
*/
|
4
|
-
|
5
|
-
import { browser } from '$app/environment';
|
6
|
-
import { createServerLogger } from './server.js';
|
7
|
-
import { createClientLogger } from './client.js';
|
8
|
-
|
9
|
-
/**
|
10
|
-
* Create a logger that works in both server and client environments
|
11
|
-
*
|
12
|
-
* @param {string} serviceName - Name of the service
|
13
|
-
* @param {string} [level] - Initial log level
|
14
|
-
* @param {Object} [options] - Additional options
|
15
|
-
* @returns {Logger} Configured logger instance
|
16
|
-
*/
|
17
|
-
export function createLogger(serviceName, level, options = {}) {
|
18
|
-
if (browser) {
|
19
|
-
return createClientLogger(serviceName, level, options);
|
20
|
-
} else {
|
21
|
-
return createServerLogger(serviceName, level, options);
|
22
|
-
}
|
23
|
-
}
|
1
|
+
/**
|
2
|
+
* Universal logger factory that auto-detects environment
|
3
|
+
*/
|
4
|
+
|
5
|
+
import { browser } from '$app/environment';
|
6
|
+
import { createServerLogger } from './server.js';
|
7
|
+
import { createClientLogger } from './client.js';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Create a logger that works in both server and client environments
|
11
|
+
*
|
12
|
+
* @param {string} serviceName - Name of the service
|
13
|
+
* @param {string} [level] - Initial log level
|
14
|
+
* @param {Object} [options] - Additional options
|
15
|
+
* @returns {Logger} Configured logger instance
|
16
|
+
*/
|
17
|
+
export function createLogger(serviceName, level, options = {}) {
|
18
|
+
if (browser) {
|
19
|
+
return createClientLogger(serviceName, level, options);
|
20
|
+
} else {
|
21
|
+
return createServerLogger(serviceName, level, options);
|
22
|
+
}
|
23
|
+
}
|
package/dist/logging/index.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
export { DEBUG, INFO, WARN, ERROR, NONE, LEVELS } from './constants.js';
|
2
|
-
|
3
|
-
// Factories
|
4
|
-
export { createServerLogger } from './factories/server.js';
|
5
|
-
export { createClientLogger } from './factories/client.js';
|
6
|
-
export { createLogger } from './factories/universal.js';
|
7
|
-
|
8
|
-
export * from '../classes/logging/typedef.js';
|
1
|
+
export { DEBUG, INFO, WARN, ERROR, NONE, LEVELS } from './constants.js';
|
2
|
+
|
3
|
+
// Factories
|
4
|
+
export { createServerLogger } from './factories/server.js';
|
5
|
+
export { createClientLogger } from './factories/client.js';
|
6
|
+
export { createLogger } from './factories/universal.js';
|
7
|
+
|
8
|
+
export * from '../classes/logging/typedef.js';
|
package/dist/schemas/index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from './validate-url.js';
|
1
|
+
export * from './validate-url.js';
|
@@ -1,180 +1,180 @@
|
|
1
|
-
// > Imports
|
2
|
-
|
3
|
-
import * as v from 'valibot';
|
4
|
-
// import { UrlOrEmptyString } from '../valibot/url.js';
|
5
|
-
|
6
|
-
const ValidateTrim = v.custom((value) => {
|
7
|
-
if (/^\s|\s$/.test(value)) {
|
8
|
-
throw new Error('Should not start or end with whitespace');
|
9
|
-
}
|
10
|
-
return true;
|
11
|
-
});
|
12
|
-
|
13
|
-
// > Exports
|
14
|
-
|
15
|
-
/**
|
16
|
-
* Schema to validate an URL
|
17
|
-
*/
|
18
|
-
export const ValidateUrl = v.pipe(v.string(), v.url(), ValidateTrim);
|
19
|
-
|
20
|
-
/**
|
21
|
-
* Schema to validate an URL or empty string.
|
22
|
-
*/
|
23
|
-
export const ValidateUrlOrEmptyString = v.union([v.literal(''), v.pipe(v.string(), v.url())]);
|
24
|
-
|
25
|
-
// export const ValidateHumanUrl
|
26
|
-
|
27
|
-
/**
|
28
|
-
* Schema to validate an URL path
|
29
|
-
*/
|
30
|
-
export const ValidateUrlPath = v.pipe(
|
31
|
-
v.string(),
|
32
|
-
ValidateTrim,
|
33
|
-
v.transform((value) => {
|
34
|
-
return {
|
35
|
-
url: new URL(value, 'http://localhost'),
|
36
|
-
value
|
37
|
-
};
|
38
|
-
}),
|
39
|
-
v.custom(({ url }) => {
|
40
|
-
if (url.search) {
|
41
|
-
return false;
|
42
|
-
}
|
43
|
-
return true;
|
44
|
-
}, 'Value should not contain search path'),
|
45
|
-
v.custom(({ url }) => {
|
46
|
-
if (url.hash) {
|
47
|
-
return false;
|
48
|
-
}
|
49
|
-
return true;
|
50
|
-
}, 'Value should not contain hash path'),
|
51
|
-
v.transform(({ url }) => {
|
52
|
-
return url.pathname;
|
53
|
-
})
|
54
|
-
);
|
55
|
-
|
56
|
-
/**
|
57
|
-
* Schema to validate a relative URL
|
58
|
-
*/
|
59
|
-
export const ValidateRelativeUrl = v.pipe(
|
60
|
-
v.string(),
|
61
|
-
ValidateTrim,
|
62
|
-
v.custom((value) => {
|
63
|
-
try {
|
64
|
-
return new URL(value, 'http://localhost');
|
65
|
-
|
66
|
-
// eslint-disable-next-line no-unused-vars
|
67
|
-
} catch (e) {
|
68
|
-
throw new Error('Invalid relative URL');
|
69
|
-
}
|
70
|
-
})
|
71
|
-
);
|
72
|
-
|
73
|
-
export const ValidateAbsOrRelUrl = v.pipe(
|
74
|
-
v.string(),
|
75
|
-
ValidateTrim,
|
76
|
-
v.custom((value) => {
|
77
|
-
try {
|
78
|
-
if (/^https?:\/\//.test(value)) {
|
79
|
-
// Absolute url using protocol http(s)
|
80
|
-
return new URL(value);
|
81
|
-
} else {
|
82
|
-
// Relative URL
|
83
|
-
return new URL(value, 'http://localhost');
|
84
|
-
}
|
85
|
-
|
86
|
-
// eslint-disable-next-line no-unused-vars
|
87
|
-
} catch (e) {
|
88
|
-
throw new Error('Invalid relative URL');
|
89
|
-
}
|
90
|
-
})
|
91
|
-
);
|
92
|
-
|
93
|
-
/**
|
94
|
-
* Schema to validate an url that may miss the protocol part
|
95
|
-
*
|
96
|
-
* @note an empty string is not allowed!
|
97
|
-
*/
|
98
|
-
// export const HumanUrl = v.pipe(
|
99
|
-
// v.custom( ( value ) => {
|
100
|
-
// if( value.includes('://') )
|
101
|
-
// {
|
102
|
-
// v.parse( Url, value );
|
103
|
-
// return true;
|
104
|
-
// }
|
105
|
-
// } )
|
106
|
-
// );
|
107
|
-
|
108
|
-
// // v.transform((value) => {
|
109
|
-
// // if (!value.length || value.includes('://')) {
|
110
|
-
// // return value;
|
111
|
-
// // } else {
|
112
|
-
// // // Prefix 'url' with 'https://'
|
113
|
-
// // return `https://${value}`;
|
114
|
-
// // }
|
115
|
-
// // }),
|
116
|
-
// // v.url()
|
117
|
-
// );
|
118
|
-
|
119
|
-
/**
|
120
|
-
* Schema to validate url path, without a search and hash part
|
121
|
-
*/
|
122
|
-
// export const UrlPath = v.pipe(
|
123
|
-
// v.string(),
|
124
|
-
// v.transform((value) => {
|
125
|
-
// // Convert relative url to URL object
|
126
|
-
// // @note removes ../../ parts
|
127
|
-
// try {
|
128
|
-
// return new URL(value, 'http://localhost');
|
129
|
-
|
130
|
-
// // eslint-disable-next-line no-unused-vars
|
131
|
-
// } catch (e) {
|
132
|
-
// return null;
|
133
|
-
// }
|
134
|
-
// }),
|
135
|
-
// v.custom((urlOrNull) => {
|
136
|
-
// return urlOrNull ? true : false;
|
137
|
-
// }, 'Invalid URL pathname'),
|
138
|
-
// v.transform((url) => {
|
139
|
-
// return url.pathname;
|
140
|
-
// })
|
141
|
-
// );
|
142
|
-
|
143
|
-
/**
|
144
|
-
* Schema to validate a url path, which consists of
|
145
|
-
* a path and optionally search and hash parts
|
146
|
-
*/
|
147
|
-
// export const RelativeUrl = v.pipe(
|
148
|
-
// v.string(),
|
149
|
-
// v.transform((value) => {
|
150
|
-
// // Convert relative url to URL object
|
151
|
-
// // @note removes ../../ parts
|
152
|
-
// try {
|
153
|
-
// return new URL(value, 'http://localhost');
|
154
|
-
|
155
|
-
// // eslint-disable-next-line no-unused-vars
|
156
|
-
// } catch (e) {
|
157
|
-
// return null;
|
158
|
-
// }
|
159
|
-
// }),
|
160
|
-
// v.custom((urlOrNull) => {
|
161
|
-
// return urlOrNull ? true : false;
|
162
|
-
// }, 'Invalid URL pathname or search part'),
|
163
|
-
// v.transform((url) => {
|
164
|
-
// return (
|
165
|
-
// `${url.pathname}` +
|
166
|
-
// `${url.search.length <= 1 ? '' : url.search}` +
|
167
|
-
// `${url.hash.length <= 1 ? '' : url.hash}`
|
168
|
-
// );
|
169
|
-
// })
|
170
|
-
// );
|
171
|
-
|
172
|
-
/**
|
173
|
-
* Schema to validate an absolute or relative url
|
174
|
-
*
|
175
|
-
* @note an empty string is not allowed!
|
176
|
-
*/
|
177
|
-
// export const AbsOrRelUrl = v.union([
|
178
|
-
// v.pipe(v.string(), v.trim(), v.url()),
|
179
|
-
// v.pipe(v.string(), v.nonEmpty(), RelativeUrl)
|
180
|
-
// ]);
|
1
|
+
// > Imports
|
2
|
+
|
3
|
+
import * as v from 'valibot';
|
4
|
+
// import { UrlOrEmptyString } from '../valibot/url.js';
|
5
|
+
|
6
|
+
const ValidateTrim = v.custom((value) => {
|
7
|
+
if (/^\s|\s$/.test(value)) {
|
8
|
+
throw new Error('Should not start or end with whitespace');
|
9
|
+
}
|
10
|
+
return true;
|
11
|
+
});
|
12
|
+
|
13
|
+
// > Exports
|
14
|
+
|
15
|
+
/**
|
16
|
+
* Schema to validate an URL
|
17
|
+
*/
|
18
|
+
export const ValidateUrl = v.pipe(v.string(), v.url(), ValidateTrim);
|
19
|
+
|
20
|
+
/**
|
21
|
+
* Schema to validate an URL or empty string.
|
22
|
+
*/
|
23
|
+
export const ValidateUrlOrEmptyString = v.union([v.literal(''), v.pipe(v.string(), v.url())]);
|
24
|
+
|
25
|
+
// export const ValidateHumanUrl
|
26
|
+
|
27
|
+
/**
|
28
|
+
* Schema to validate an URL path
|
29
|
+
*/
|
30
|
+
export const ValidateUrlPath = v.pipe(
|
31
|
+
v.string(),
|
32
|
+
ValidateTrim,
|
33
|
+
v.transform((value) => {
|
34
|
+
return {
|
35
|
+
url: new URL(value, 'http://localhost'),
|
36
|
+
value
|
37
|
+
};
|
38
|
+
}),
|
39
|
+
v.custom(({ url }) => {
|
40
|
+
if (url.search) {
|
41
|
+
return false;
|
42
|
+
}
|
43
|
+
return true;
|
44
|
+
}, 'Value should not contain search path'),
|
45
|
+
v.custom(({ url }) => {
|
46
|
+
if (url.hash) {
|
47
|
+
return false;
|
48
|
+
}
|
49
|
+
return true;
|
50
|
+
}, 'Value should not contain hash path'),
|
51
|
+
v.transform(({ url }) => {
|
52
|
+
return url.pathname;
|
53
|
+
})
|
54
|
+
);
|
55
|
+
|
56
|
+
/**
|
57
|
+
* Schema to validate a relative URL
|
58
|
+
*/
|
59
|
+
export const ValidateRelativeUrl = v.pipe(
|
60
|
+
v.string(),
|
61
|
+
ValidateTrim,
|
62
|
+
v.custom((value) => {
|
63
|
+
try {
|
64
|
+
return new URL(value, 'http://localhost');
|
65
|
+
|
66
|
+
// eslint-disable-next-line no-unused-vars
|
67
|
+
} catch (e) {
|
68
|
+
throw new Error('Invalid relative URL');
|
69
|
+
}
|
70
|
+
})
|
71
|
+
);
|
72
|
+
|
73
|
+
export const ValidateAbsOrRelUrl = v.pipe(
|
74
|
+
v.string(),
|
75
|
+
ValidateTrim,
|
76
|
+
v.custom((value) => {
|
77
|
+
try {
|
78
|
+
if (/^https?:\/\//.test(value)) {
|
79
|
+
// Absolute url using protocol http(s)
|
80
|
+
return new URL(value);
|
81
|
+
} else {
|
82
|
+
// Relative URL
|
83
|
+
return new URL(value, 'http://localhost');
|
84
|
+
}
|
85
|
+
|
86
|
+
// eslint-disable-next-line no-unused-vars
|
87
|
+
} catch (e) {
|
88
|
+
throw new Error('Invalid relative URL');
|
89
|
+
}
|
90
|
+
})
|
91
|
+
);
|
92
|
+
|
93
|
+
/**
|
94
|
+
* Schema to validate an url that may miss the protocol part
|
95
|
+
*
|
96
|
+
* @note an empty string is not allowed!
|
97
|
+
*/
|
98
|
+
// export const HumanUrl = v.pipe(
|
99
|
+
// v.custom( ( value ) => {
|
100
|
+
// if( value.includes('://') )
|
101
|
+
// {
|
102
|
+
// v.parse( Url, value );
|
103
|
+
// return true;
|
104
|
+
// }
|
105
|
+
// } )
|
106
|
+
// );
|
107
|
+
|
108
|
+
// // v.transform((value) => {
|
109
|
+
// // if (!value.length || value.includes('://')) {
|
110
|
+
// // return value;
|
111
|
+
// // } else {
|
112
|
+
// // // Prefix 'url' with 'https://'
|
113
|
+
// // return `https://${value}`;
|
114
|
+
// // }
|
115
|
+
// // }),
|
116
|
+
// // v.url()
|
117
|
+
// );
|
118
|
+
|
119
|
+
/**
|
120
|
+
* Schema to validate url path, without a search and hash part
|
121
|
+
*/
|
122
|
+
// export const UrlPath = v.pipe(
|
123
|
+
// v.string(),
|
124
|
+
// v.transform((value) => {
|
125
|
+
// // Convert relative url to URL object
|
126
|
+
// // @note removes ../../ parts
|
127
|
+
// try {
|
128
|
+
// return new URL(value, 'http://localhost');
|
129
|
+
|
130
|
+
// // eslint-disable-next-line no-unused-vars
|
131
|
+
// } catch (e) {
|
132
|
+
// return null;
|
133
|
+
// }
|
134
|
+
// }),
|
135
|
+
// v.custom((urlOrNull) => {
|
136
|
+
// return urlOrNull ? true : false;
|
137
|
+
// }, 'Invalid URL pathname'),
|
138
|
+
// v.transform((url) => {
|
139
|
+
// return url.pathname;
|
140
|
+
// })
|
141
|
+
// );
|
142
|
+
|
143
|
+
/**
|
144
|
+
* Schema to validate a url path, which consists of
|
145
|
+
* a path and optionally search and hash parts
|
146
|
+
*/
|
147
|
+
// export const RelativeUrl = v.pipe(
|
148
|
+
// v.string(),
|
149
|
+
// v.transform((value) => {
|
150
|
+
// // Convert relative url to URL object
|
151
|
+
// // @note removes ../../ parts
|
152
|
+
// try {
|
153
|
+
// return new URL(value, 'http://localhost');
|
154
|
+
|
155
|
+
// // eslint-disable-next-line no-unused-vars
|
156
|
+
// } catch (e) {
|
157
|
+
// return null;
|
158
|
+
// }
|
159
|
+
// }),
|
160
|
+
// v.custom((urlOrNull) => {
|
161
|
+
// return urlOrNull ? true : false;
|
162
|
+
// }, 'Invalid URL pathname or search part'),
|
163
|
+
// v.transform((url) => {
|
164
|
+
// return (
|
165
|
+
// `${url.pathname}` +
|
166
|
+
// `${url.search.length <= 1 ? '' : url.search}` +
|
167
|
+
// `${url.hash.length <= 1 ? '' : url.hash}`
|
168
|
+
// );
|
169
|
+
// })
|
170
|
+
// );
|
171
|
+
|
172
|
+
/**
|
173
|
+
* Schema to validate an absolute or relative url
|
174
|
+
*
|
175
|
+
* @note an empty string is not allowed!
|
176
|
+
*/
|
177
|
+
// export const AbsOrRelUrl = v.union([
|
178
|
+
// v.pipe(v.string(), v.trim(), v.url()),
|
179
|
+
// v.pipe(v.string(), v.nonEmpty(), RelativeUrl)
|
180
|
+
// ]);
|
package/dist/server/index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from './logger.js';
|
1
|
+
export * from './logger.js';
|