@hkdigital/lib-core 0.3.11 → 0.3.13
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 +173 -149
- package/dist/assets/autospuiten/car-paint-picker.js +41 -41
- package/dist/assets/autospuiten/labels.js +7 -7
- package/dist/classes/data/IterableTree.js +242 -242
- package/dist/classes/data/Selector.js +190 -190
- package/dist/classes/data/index.js +2 -2
- package/dist/classes/data/typedef.js +9 -9
- package/dist/classes/event-emitter/EventEmitter.js +273 -273
- package/dist/classes/event-emitter/index.js +2 -2
- package/dist/classes/index.js +4 -4
- package/dist/classes/promise/HkPromise.js +384 -384
- 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.js +111 -111
- 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.js +1 -11
- 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 +197 -196
- package/dist/config/generators/imagetools.js +189 -189
- package/dist/config/generators/vite.js +148 -142
- package/dist/config/imagetools.d.ts +72 -72
- package/dist/config/vite.js +4 -4
- 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 +96 -95
- package/dist/constants/regexp/index.js +31 -31
- package/dist/constants/regexp/inspiratie.js__ +95 -95
- package/dist/constants/regexp/text.d.ts +4 -4
- package/dist/constants/regexp/text.js +49 -49
- package/dist/constants/regexp/url.js +3 -3
- package/dist/constants/regexp/user.js +29 -29
- 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 -405
- package/dist/design/config/design-config.js +73 -73
- package/dist/design/generators/index.js +288 -288
- package/dist/design/index.js +96 -96
- package/dist/design/plugins/skeleton.js +208 -208
- package/dist/design/tailwind-theme-extend.js +158 -158
- package/dist/design/themes/README.md +102 -102
- package/dist/design/themes/hkdev/components/blocks/text-block.css +34 -34
- package/dist/design/themes/hkdev/components/boxes/game-box.css +11 -11
- package/dist/design/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
- package/dist/design/themes/hkdev/components/buttons/button-text.css +32 -32
- package/dist/design/themes/hkdev/components/buttons/button.css +146 -146
- package/dist/design/themes/hkdev/components/buttons/skip-button.css +5 -5
- package/dist/design/themes/hkdev/components/drag-drop/draggable.css +73 -73
- package/dist/design/themes/hkdev/components/drag-drop/drop-zone.css +58 -58
- package/dist/design/themes/hkdev/components/icons/icon-steeze.css +15 -15
- package/dist/design/themes/hkdev/components/inputs/text-input.css +102 -102
- package/dist/design/themes/hkdev/components/panels/panel.css +25 -25
- package/dist/design/themes/hkdev/components/rows/panel-grid-row.css +4 -4
- package/dist/design/themes/hkdev/components/rows/panel-row-2.css +5 -5
- package/dist/design/themes/hkdev/components.css +29 -29
- package/dist/design/themes/hkdev/debug.css +1 -1
- package/dist/design/themes/hkdev/global/layout.css +32 -32
- package/dist/design/themes/hkdev/global/on-colors.css +32 -32
- package/dist/design/themes/hkdev/globals.css +3 -3
- package/dist/design/themes/hkdev/responsive.css +12 -12
- package/dist/design/themes/hkdev/theme-ext.js +12 -12
- package/dist/design/themes/hkdev/theme.css +218 -218
- package/dist/design/utils/clamp.js +66 -66
- package/dist/design/utils/root-vars.js +102 -102
- package/dist/design/utils/scaling.js +228 -228
- package/dist/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.js +5 -5
- package/dist/errors/jwt.js +5 -5
- package/dist/errors/promise.js +25 -25
- package/dist/logging/README.md +158 -0
- package/dist/logging/index.d.ts +3 -1
- package/dist/logging/index.js +11 -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.js +160 -142
- package/dist/logging/internal/adapters/typedef.js +10 -10
- package/dist/logging/internal/{unified-logger/constants.js → constants.js} +22 -22
- package/dist/logging/internal/factories/client.d.ts +1 -1
- package/dist/logging/internal/factories/client.js +21 -21
- package/dist/logging/internal/factories/server.d.ts +1 -1
- package/dist/logging/internal/factories/server.js +22 -22
- package/dist/logging/internal/factories/universal.d.ts +2 -2
- package/dist/logging/internal/factories/universal.js +22 -22
- package/dist/logging/internal/{unified-logger → logger}/Logger.d.ts +2 -2
- package/dist/logging/internal/{unified-logger → logger}/Logger.js +217 -217
- package/dist/logging/internal/logger/index.d.ts +1 -0
- package/dist/logging/internal/logger/index.js +1 -0
- package/dist/logging/internal/{unified-logger/typedef.d.ts → typedef.d.ts} +2 -1
- package/dist/logging/internal/{unified-logger/typedef.js → typedef.js} +21 -17
- package/dist/network/README.md +172 -172
- package/dist/network/cache/IndexedDbCache.js +1407 -1407
- package/dist/network/cache/MemoryResponseCache.js +138 -138
- package/dist/network/cache/index.js +5 -5
- package/dist/network/cache/typedef.js +41 -41
- package/dist/network/cache.js +3 -3
- package/dist/network/http/caching.js +261 -261
- package/dist/network/http/errors.js +97 -97
- package/dist/network/http/headers.js +75 -75
- package/dist/network/http/http-request.js +578 -578
- package/dist/network/http/index.js +22 -22
- package/dist/network/http/json-request.js +224 -224
- package/dist/network/http/mocks.js +65 -65
- package/dist/network/http/response.js +318 -318
- package/dist/network/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
- package/dist/network/http/typedef.js +93 -93
- package/dist/network/http/url.js +52 -52
- package/dist/network/http.js +5 -5
- package/dist/network/loaders/README.md +254 -254
- package/dist/network/loaders/audio/AudioLoader.svelte.js +58 -58
- package/dist/network/loaders/audio/AudioScene.svelte.js +324 -324
- package/dist/network/loaders/audio/mocks.js +35 -35
- package/dist/network/loaders/audio.js +1 -1
- package/dist/network/loaders/image/ImageLoader.svelte.js +44 -44
- package/dist/network/loaders/image/ImageScene.svelte.js +248 -248
- package/dist/network/loaders/image/ImageVariantsLoader.svelte.js +150 -150
- package/dist/network/loaders/image/index.js +4 -4
- package/dist/network/loaders/image/mocks.js +35 -35
- package/dist/network/loaders/image/typedef.js +8 -8
- package/dist/network/loaders/image/utils/index.js +86 -86
- package/dist/network/loaders/image.js +7 -7
- package/dist/network/loaders/typedef.js +38 -38
- package/dist/network/loaders.js +2 -2
- package/dist/network/states/NetworkLoader.svelte.js +338 -338
- package/dist/network/states/constants.js +3 -3
- package/dist/network/states/index.js +3 -3
- package/dist/network/states/mocks.js +30 -30
- package/dist/network/states/typedef.js +8 -8
- package/dist/network/typedef.js +9 -9
- package/dist/services/README.md +200 -0
- package/dist/services/index.d.ts +6 -1
- package/dist/services/index.js +8 -1
- package/dist/services/{internal/service-base → service-base}/ServiceBase.d.ts +2 -2
- package/dist/services/{internal/service-base → service-base}/ServiceBase.js +462 -462
- package/dist/services/{internal/service-base → service-base}/constants.d.ts +0 -12
- package/dist/services/{internal/service-base → service-base}/constants.js +98 -110
- package/dist/services/{internal/service-base → service-base}/index.js +3 -3
- package/dist/services/{internal/service-base → service-base}/typedef.d.ts +1 -1
- package/dist/services/{internal/service-base → service-base}/typedef.js +101 -101
- package/dist/services/{internal/service-manager → service-manager}/ServiceManager.d.ts +2 -2
- package/dist/services/{internal/service-manager → service-manager}/ServiceManager.js +608 -608
- package/dist/services/{internal/service-manager → service-manager}/constants.js +6 -6
- package/dist/services/{internal/service-manager → 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 +1 -0
- package/dist/typedef/index.js +4 -4
- package/dist/ui/components/button-group/ButtonGroup.svelte +82 -82
- package/dist/ui/components/button-group/typedef.js +10 -10
- package/dist/ui/components/compare-left-right/CompareLeftRight.svelte +179 -179
- package/dist/ui/components/compare-left-right/index.js +1 -1
- package/dist/ui/components/game-box/GameBox.svelte +577 -577
- package/dist/ui/components/game-box/gamebox.util.js +83 -83
- package/dist/ui/components/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
- package/dist/ui/components/hk-app-layout/HkAppLayout.svelte +251 -251
- package/dist/ui/components/image-box/ImageBox.svelte +210 -210
- package/dist/ui/components/image-box/index.js +5 -5
- package/dist/ui/components/image-box/typedef.js +32 -32
- package/dist/ui/components/index.js +23 -23
- package/dist/ui/components/presenter/ImageSlide.svelte +64 -64
- package/dist/ui/components/presenter/Presenter.state.svelte.js +638 -638
- package/dist/ui/components/presenter/Presenter.svelte +142 -142
- package/dist/ui/components/presenter/constants.js +7 -7
- package/dist/ui/components/presenter/index.js +10 -10
- package/dist/ui/components/presenter/typedef.js +106 -106
- package/dist/ui/components/presenter/util.js +210 -210
- package/dist/ui/components/virtual-viewport/VirtualViewport.svelte +196 -196
- package/dist/ui/primitives/area/HkArea.svelte +49 -49
- package/dist/ui/primitives/area/HkGridArea.svelte +77 -77
- package/dist/ui/primitives/area/index.js +2 -2
- package/dist/ui/primitives/buttons/button/Button.svelte +82 -82
- package/dist/ui/primitives/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
- package/dist/ui/primitives/buttons/button-text/TextButton.svelte +21 -21
- package/dist/ui/primitives/buttons/index.js +3 -3
- package/dist/ui/primitives/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
- package/dist/ui/primitives/debug/index.js +1 -1
- package/dist/ui/primitives/drag-drop/DragController.js +44 -44
- package/dist/ui/primitives/drag-drop/DragDropContext.svelte +111 -111
- package/dist/ui/primitives/drag-drop/Draggable.svelte +519 -519
- package/dist/ui/primitives/drag-drop/DropZone.svelte +258 -258
- package/dist/ui/primitives/drag-drop/DropZoneArea.svelte +119 -119
- package/dist/ui/primitives/drag-drop/DropZoneList.svelte +125 -125
- package/dist/ui/primitives/drag-drop/actions.js +26 -26
- package/dist/ui/primitives/drag-drop/drag-state.svelte.js +322 -322
- package/dist/ui/primitives/drag-drop/index.js +7 -7
- package/dist/ui/primitives/drag-drop/util.js +85 -85
- package/dist/ui/primitives/hkdev/blocks/TextBlock.svelte +46 -46
- package/dist/ui/primitives/hkdev/buttons/CheckButton.svelte +62 -62
- package/dist/ui/primitives/icons/HkIcon.svelte +86 -86
- package/dist/ui/primitives/icons/HkTabIcon.svelte +116 -116
- package/dist/ui/primitives/icons/SteezeIcon.svelte +97 -97
- package/dist/ui/primitives/icons/index.js +6 -6
- package/dist/ui/primitives/icons/typedef.js +16 -16
- package/dist/ui/primitives/index.js +2 -2
- package/dist/ui/primitives/inputs/index.js +1 -1
- package/dist/ui/primitives/inputs/text-input/TestTextInput.svelte__ +102 -0
- package/dist/ui/primitives/inputs/text-input/TextInput.svelte +223 -223
- package/dist/ui/primitives/inputs/text-input/TextInput.svelte___ +83 -0
- package/dist/ui/primitives/inputs/text-input/assets/IconInvalid.svelte +14 -14
- package/dist/ui/primitives/inputs/text-input/assets/IconValid.svelte +12 -12
- package/dist/ui/primitives/layout/grid-layers/GridLayers.svelte +63 -63
- package/dist/ui/primitives/layout/grid-layers/GridLayers.svelte__heightFrom__ +372 -0
- package/dist/ui/primitives/layout/grid-layers/util.js +74 -74
- package/dist/ui/primitives/layout/index.js +1 -1
- package/dist/ui/primitives/panels/index.js +1 -1
- package/dist/ui/primitives/panels/panel/Panel.svelte +43 -43
- package/dist/ui/primitives/rows/index.js +3 -3
- package/dist/ui/primitives/rows/panel-grid-row/PanelGridRow.svelte +104 -104
- package/dist/ui/primitives/rows/panel-row-2/PanelRow2.svelte +40 -40
- package/dist/ui/primitives/tab-bar/HkTabBar.state.svelte.js +149 -149
- package/dist/ui/primitives/tab-bar/HkTabBar.svelte +74 -74
- package/dist/ui/primitives/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
- package/dist/ui/primitives/tab-bar/HkTabBarSelector.svelte +49 -49
- package/dist/ui/primitives/tab-bar/index.js +17 -17
- package/dist/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.d.ts +4 -3
- package/dist/util/exceptions/index.js +26 -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.js +60 -60
- package/dist/util/function/index.js +218 -218
- package/dist/util/geo/index.js +26 -26
- package/dist/util/index.js +7 -7
- package/dist/util/is/index.js +147 -147
- package/dist/util/iterate/index.js +204 -204
- package/dist/util/object/index.js +1345 -1345
- 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 -328
- package/dist/util/unique/index.js +231 -231
- package/dist/valibot/README.md +61 -50
- package/dist/valibot/index.js +8 -8
- package/dist/valibot/parsers/date.js__ +10 -0
- package/dist/valibot/parsers/email.d.ts +12 -0
- package/dist/valibot/parsers/email.js +34 -0
- package/dist/valibot/parsers/url.js +110 -110
- package/dist/valibot/parsers/user.js +23 -23
- package/dist/valibot/parsers.js +3 -3
- package/package.json +131 -131
- package/dist/logging/internal/unified-logger/index.d.ts +0 -3
- package/dist/logging/internal/unified-logger/index.js +0 -6
- package/dist/services/internal/index.d.ts +0 -6
- package/dist/services/internal/index.js +0 -8
- /package/dist/logging/internal/{unified-logger/constants.d.ts → constants.d.ts} +0 -0
- /package/dist/services/{internal/service-base → service-base}/index.d.ts +0 -0
- /package/dist/services/{internal/service-manager → service-manager}/constants.d.ts +0 -0
- /package/dist/services/{internal/service-manager → service-manager}/typedef.d.ts +0 -0
|
@@ -38,61 +38,49 @@
|
|
|
38
38
|
*/
|
|
39
39
|
/**
|
|
40
40
|
* Service has not been created yet
|
|
41
|
-
* @const {string}
|
|
42
41
|
*/
|
|
43
42
|
export const NOT_CREATED: "not-created";
|
|
44
43
|
/**
|
|
45
44
|
* Service has been created but not initialized
|
|
46
|
-
* @const {string}
|
|
47
45
|
*/
|
|
48
46
|
export const CREATED: "created";
|
|
49
47
|
/**
|
|
50
48
|
* Service is currently initializing
|
|
51
|
-
* @const {string}
|
|
52
49
|
*/
|
|
53
50
|
export const INITIALIZING: "initializing";
|
|
54
51
|
/**
|
|
55
52
|
* Service has been initialized and is ready to start
|
|
56
|
-
* @const {string}
|
|
57
53
|
*/
|
|
58
54
|
export const INITIALIZED: "initialized";
|
|
59
55
|
/**
|
|
60
56
|
* Service is currently starting up
|
|
61
|
-
* @const {string}
|
|
62
57
|
*/
|
|
63
58
|
export const STARTING: "starting";
|
|
64
59
|
/**
|
|
65
60
|
* Service is running and operational
|
|
66
|
-
* @const {string}
|
|
67
61
|
*/
|
|
68
62
|
export const RUNNING: "running";
|
|
69
63
|
/**
|
|
70
64
|
* Service is currently shutting down
|
|
71
|
-
* @const {string}
|
|
72
65
|
*/
|
|
73
66
|
export const STOPPING: "stopping";
|
|
74
67
|
/**
|
|
75
68
|
* Service has been stopped
|
|
76
|
-
* @const {string}
|
|
77
69
|
*/
|
|
78
70
|
export const STOPPED: "stopped";
|
|
79
71
|
/**
|
|
80
72
|
* Service is being destroyed and cleaned up
|
|
81
|
-
* @const {string}
|
|
82
73
|
*/
|
|
83
74
|
export const DESTROYING: "destroying";
|
|
84
75
|
/**
|
|
85
76
|
* Service has been destroyed and cannot be used
|
|
86
|
-
* @const {string}
|
|
87
77
|
*/
|
|
88
78
|
export const DESTROYED: "destroyed";
|
|
89
79
|
/**
|
|
90
80
|
* Service encountered an error and is not operational
|
|
91
|
-
* @const {string}
|
|
92
81
|
*/
|
|
93
82
|
export const ERROR: "error";
|
|
94
83
|
/**
|
|
95
84
|
* Service is attempting to recover from an error
|
|
96
|
-
* @const {string}
|
|
97
85
|
*/
|
|
98
86
|
export const RECOVERING: "recovering";
|
|
@@ -1,110 +1,98 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Service state constants for the service management system.
|
|
3
|
-
*
|
|
4
|
-
* Defines all possible states a service can be in during its lifecycle.
|
|
5
|
-
* Services transition through these states as they are initialized, started,
|
|
6
|
-
* stopped, and handle errors or recovery.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* // Using state constants in a service
|
|
10
|
-
* import { RUNNING, ERROR } from './service-states.js';
|
|
11
|
-
*
|
|
12
|
-
* class MyService extends ServiceBase {
|
|
13
|
-
* async doWork() {
|
|
14
|
-
* if (this.state !== RUNNING) {
|
|
15
|
-
* throw new Error('Service not running');
|
|
16
|
-
* }
|
|
17
|
-
* // ... do work
|
|
18
|
-
* }
|
|
19
|
-
* }
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* // Checking service states
|
|
23
|
-
* import { RUNNING, ERROR, STOPPED } from './service-states.js';
|
|
24
|
-
*
|
|
25
|
-
* const service = serviceManager.get('database');
|
|
26
|
-
*
|
|
27
|
-
* switch (service.state) {
|
|
28
|
-
* case RUNNING:
|
|
29
|
-
* console.log('Service is operational');
|
|
30
|
-
* break;
|
|
31
|
-
* case ERROR:
|
|
32
|
-
* console.log('Service has failed');
|
|
33
|
-
* break;
|
|
34
|
-
* case STOPPED:
|
|
35
|
-
* console.log('Service is stopped');
|
|
36
|
-
* break;
|
|
37
|
-
* }
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Service has not been created yet
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
*
|
|
67
|
-
*/
|
|
68
|
-
export const
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Service is
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
*
|
|
97
|
-
*/
|
|
98
|
-
export const
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Service encountered an error and is not operational
|
|
102
|
-
* @const {string}
|
|
103
|
-
*/
|
|
104
|
-
export const ERROR = 'error';
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Service is attempting to recover from an error
|
|
108
|
-
* @const {string}
|
|
109
|
-
*/
|
|
110
|
-
export const RECOVERING = 'recovering';
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Service state constants for the service management system.
|
|
3
|
+
*
|
|
4
|
+
* Defines all possible states a service can be in during its lifecycle.
|
|
5
|
+
* Services transition through these states as they are initialized, started,
|
|
6
|
+
* stopped, and handle errors or recovery.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // Using state constants in a service
|
|
10
|
+
* import { RUNNING, ERROR } from './service-states.js';
|
|
11
|
+
*
|
|
12
|
+
* class MyService extends ServiceBase {
|
|
13
|
+
* async doWork() {
|
|
14
|
+
* if (this.state !== RUNNING) {
|
|
15
|
+
* throw new Error('Service not running');
|
|
16
|
+
* }
|
|
17
|
+
* // ... do work
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* // Checking service states
|
|
23
|
+
* import { RUNNING, ERROR, STOPPED } from './service-states.js';
|
|
24
|
+
*
|
|
25
|
+
* const service = serviceManager.get('database');
|
|
26
|
+
*
|
|
27
|
+
* switch (service.state) {
|
|
28
|
+
* case RUNNING:
|
|
29
|
+
* console.log('Service is operational');
|
|
30
|
+
* break;
|
|
31
|
+
* case ERROR:
|
|
32
|
+
* console.log('Service has failed');
|
|
33
|
+
* break;
|
|
34
|
+
* case STOPPED:
|
|
35
|
+
* console.log('Service is stopped');
|
|
36
|
+
* break;
|
|
37
|
+
* }
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Service has not been created yet
|
|
42
|
+
*/
|
|
43
|
+
export const NOT_CREATED = 'not-created';
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Service has been created but not initialized
|
|
47
|
+
*/
|
|
48
|
+
export const CREATED = 'created';
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Service is currently initializing
|
|
52
|
+
*/
|
|
53
|
+
export const INITIALIZING = 'initializing';
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Service has been initialized and is ready to start
|
|
57
|
+
*/
|
|
58
|
+
export const INITIALIZED = 'initialized';
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Service is currently starting up
|
|
62
|
+
*/
|
|
63
|
+
export const STARTING = 'starting';
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Service is running and operational
|
|
67
|
+
*/
|
|
68
|
+
export const RUNNING = 'running';
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Service is currently shutting down
|
|
72
|
+
*/
|
|
73
|
+
export const STOPPING = 'stopping';
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Service has been stopped
|
|
77
|
+
*/
|
|
78
|
+
export const STOPPED = 'stopped';
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Service is being destroyed and cleaned up
|
|
82
|
+
*/
|
|
83
|
+
export const DESTROYING = 'destroying';
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Service has been destroyed and cannot be used
|
|
87
|
+
*/
|
|
88
|
+
export const DESTROYED = 'destroyed';
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Service encountered an error and is not operational
|
|
92
|
+
*/
|
|
93
|
+
export const ERROR = 'error';
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Service is attempting to recover from an error
|
|
97
|
+
*/
|
|
98
|
+
export const RECOVERING = 'recovering';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './ServiceBase.js';
|
|
2
|
-
export * from './constants.js';
|
|
3
|
-
export * from './typedef.js';
|
|
1
|
+
export * from './ServiceBase.js';
|
|
2
|
+
export * from './constants.js';
|
|
3
|
+
export * from './typedef.js';
|
|
@@ -76,7 +76,7 @@ export type ServiceInstance = {
|
|
|
76
76
|
/**
|
|
77
77
|
* - Service logger
|
|
78
78
|
*/
|
|
79
|
-
logger: import("
|
|
79
|
+
logger: import("../../logging/internal/logger").Logger;
|
|
80
80
|
initialize: (config?: any) => Promise<boolean>;
|
|
81
81
|
start: () => Promise<boolean>;
|
|
82
82
|
stop: (options?: StopOptions) => Promise<boolean>;
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Type definitions for ServiceBase class.
|
|
3
|
-
*
|
|
4
|
-
* This file contains all TypeScript/JSDoc type definitions used by
|
|
5
|
-
* the ServiceBase class and service implementations.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* // In your service implementation
|
|
9
|
-
* import { ServiceBase } from './ServiceBase.js';
|
|
10
|
-
*
|
|
11
|
-
* class MyService extends ServiceBase {
|
|
12
|
-
* async _init(config) {
|
|
13
|
-
* }
|
|
14
|
-
*
|
|
15
|
-
* async _healthCheck() {
|
|
16
|
-
* // Return type is HealthStatus
|
|
17
|
-
* return { latency: 10 };
|
|
18
|
-
* }
|
|
19
|
-
* }
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
// ============================================================================
|
|
23
|
-
// PUBLIC TYPES
|
|
24
|
-
// ============================================================================
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Options for creating a service instance
|
|
28
|
-
*
|
|
29
|
-
* @typedef {Object} ServiceOptions
|
|
30
|
-
* @property {string} [logLevel] - Initial log level for the service
|
|
31
|
-
* @property {number} [shutdownTimeout=5000] - Timeout for graceful shutdown
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Options for stopping a service
|
|
36
|
-
*
|
|
37
|
-
* @typedef {Object} StopOptions
|
|
38
|
-
* @property {number} [timeout] - Override shutdown timeout
|
|
39
|
-
* @property {boolean} [force=false] - Force stop even if timeout exceeded
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Health status returned by service health checks
|
|
44
|
-
*
|
|
45
|
-
* @typedef {Object} HealthStatus
|
|
46
|
-
* @property {string} name - Service name
|
|
47
|
-
* @property {string} state - Current service state
|
|
48
|
-
* @property {boolean} healthy - Whether the service is healthy
|
|
49
|
-
* @property {string} [error] - Error message if unhealthy
|
|
50
|
-
* @property {string} [checkError] - Error from health check itself
|
|
51
|
-
* @property {*} [key] - Additional health check properties
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Base class interface that services must implement
|
|
56
|
-
*
|
|
57
|
-
* @typedef {Object} ServiceInstance
|
|
58
|
-
* @property {string} name - Service name
|
|
59
|
-
* @property {string} state - Current state
|
|
60
|
-
* @property {boolean} healthy - Health status
|
|
61
|
-
* @property {Error|null} error - Last error
|
|
62
|
-
* @property {import('
|
|
63
|
-
* @property {(config?: *) => Promise<boolean>} initialize
|
|
64
|
-
* @property {() => Promise<boolean>} start
|
|
65
|
-
* @property {(options?: StopOptions) => Promise<boolean>} stop
|
|
66
|
-
* @property {() => Promise<boolean>} recover
|
|
67
|
-
* @property {() => Promise<boolean>} destroy
|
|
68
|
-
* @property {() => Promise<HealthStatus>} getHealth
|
|
69
|
-
* @property {(level: string) => boolean} setLogLevel
|
|
70
|
-
* @property {(event: string, handler: Function) => Function} on
|
|
71
|
-
* @property {(event: string, data: any) => boolean} emit
|
|
72
|
-
*/
|
|
73
|
-
|
|
74
|
-
// ============================================================================
|
|
75
|
-
// INTERNAL TYPES
|
|
76
|
-
// ============================================================================
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* @typedef {Object} StateChangeEvent
|
|
80
|
-
* @property {string} service - Service name (added by ServiceManager)
|
|
81
|
-
* @property {string} oldState - Previous state
|
|
82
|
-
* @property {string} newState - New state
|
|
83
|
-
*/
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* @typedef {Object} HealthChangeEvent
|
|
87
|
-
* @property {string} service - Service name (added by ServiceManager)
|
|
88
|
-
* @property {boolean} healthy - Current health status
|
|
89
|
-
* @property {boolean} [wasHealthy] - Previous health status
|
|
90
|
-
*/
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Event emitted when service encounters an error
|
|
94
|
-
*
|
|
95
|
-
* @typedef {Object} ServiceErrorEvent
|
|
96
|
-
* @property {string} service - Service name
|
|
97
|
-
* @property {string} operation - Operation that failed
|
|
98
|
-
* @property {Error} error - Error that occurred
|
|
99
|
-
*/
|
|
100
|
-
|
|
101
|
-
export {};
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Type definitions for ServiceBase class.
|
|
3
|
+
*
|
|
4
|
+
* This file contains all TypeScript/JSDoc type definitions used by
|
|
5
|
+
* the ServiceBase class and service implementations.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* // In your service implementation
|
|
9
|
+
* import { ServiceBase } from './ServiceBase.js';
|
|
10
|
+
*
|
|
11
|
+
* class MyService extends ServiceBase {
|
|
12
|
+
* async _init(config) {
|
|
13
|
+
* }
|
|
14
|
+
*
|
|
15
|
+
* async _healthCheck() {
|
|
16
|
+
* // Return type is HealthStatus
|
|
17
|
+
* return { latency: 10 };
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// PUBLIC TYPES
|
|
24
|
+
// ============================================================================
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Options for creating a service instance
|
|
28
|
+
*
|
|
29
|
+
* @typedef {Object} ServiceOptions
|
|
30
|
+
* @property {string} [logLevel] - Initial log level for the service
|
|
31
|
+
* @property {number} [shutdownTimeout=5000] - Timeout for graceful shutdown
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Options for stopping a service
|
|
36
|
+
*
|
|
37
|
+
* @typedef {Object} StopOptions
|
|
38
|
+
* @property {number} [timeout] - Override shutdown timeout
|
|
39
|
+
* @property {boolean} [force=false] - Force stop even if timeout exceeded
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Health status returned by service health checks
|
|
44
|
+
*
|
|
45
|
+
* @typedef {Object} HealthStatus
|
|
46
|
+
* @property {string} name - Service name
|
|
47
|
+
* @property {string} state - Current service state
|
|
48
|
+
* @property {boolean} healthy - Whether the service is healthy
|
|
49
|
+
* @property {string} [error] - Error message if unhealthy
|
|
50
|
+
* @property {string} [checkError] - Error from health check itself
|
|
51
|
+
* @property {*} [key] - Additional health check properties
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Base class interface that services must implement
|
|
56
|
+
*
|
|
57
|
+
* @typedef {Object} ServiceInstance
|
|
58
|
+
* @property {string} name - Service name
|
|
59
|
+
* @property {string} state - Current state
|
|
60
|
+
* @property {boolean} healthy - Health status
|
|
61
|
+
* @property {Error|null} error - Last error
|
|
62
|
+
* @property {import('../../logging/internal/logger').Logger} logger - Service logger
|
|
63
|
+
* @property {(config?: *) => Promise<boolean>} initialize
|
|
64
|
+
* @property {() => Promise<boolean>} start
|
|
65
|
+
* @property {(options?: StopOptions) => Promise<boolean>} stop
|
|
66
|
+
* @property {() => Promise<boolean>} recover
|
|
67
|
+
* @property {() => Promise<boolean>} destroy
|
|
68
|
+
* @property {() => Promise<HealthStatus>} getHealth
|
|
69
|
+
* @property {(level: string) => boolean} setLogLevel
|
|
70
|
+
* @property {(event: string, handler: Function) => Function} on
|
|
71
|
+
* @property {(event: string, data: any) => boolean} emit
|
|
72
|
+
*/
|
|
73
|
+
|
|
74
|
+
// ============================================================================
|
|
75
|
+
// INTERNAL TYPES
|
|
76
|
+
// ============================================================================
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @typedef {Object} StateChangeEvent
|
|
80
|
+
* @property {string} service - Service name (added by ServiceManager)
|
|
81
|
+
* @property {string} oldState - Previous state
|
|
82
|
+
* @property {string} newState - New state
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @typedef {Object} HealthChangeEvent
|
|
87
|
+
* @property {string} service - Service name (added by ServiceManager)
|
|
88
|
+
* @property {boolean} healthy - Current health status
|
|
89
|
+
* @property {boolean} [wasHealthy] - Previous health status
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Event emitted when service encounters an error
|
|
94
|
+
*
|
|
95
|
+
* @typedef {Object} ServiceErrorEvent
|
|
96
|
+
* @property {string} service - Service name
|
|
97
|
+
* @property {string} operation - Operation that failed
|
|
98
|
+
* @property {Error} error - Error that occurred
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
export {};
|
|
@@ -141,5 +141,5 @@ export type ServiceManagerConfig = import("./typedef.js").ServiceManagerConfig;
|
|
|
141
141
|
export type ServiceEntry = import("./typedef.js").ServiceEntry;
|
|
142
142
|
export type HealthCheckResult = import("./typedef.js").HealthCheckResult;
|
|
143
143
|
export type StopOptions = import("../service-base/typedef.js").StopOptions;
|
|
144
|
-
import { EventEmitter } from '
|
|
145
|
-
import { Logger } from '
|
|
144
|
+
import { EventEmitter } from '../../classes/event-emitter';
|
|
145
|
+
import { Logger } from '../../logging/index.js';
|