@hkdigital/lib-core 0.3.1
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 -0
- package/dist/assets/autospuiten/car-paint-picker/army-green.jpg +0 -0
- package/dist/assets/autospuiten/car-paint-picker/electric-blue.jpg +0 -0
- package/dist/assets/autospuiten/car-paint-picker/lemon-yellow.jpg +0 -0
- package/dist/assets/autospuiten/car-paint-picker/opaque-purple.jpg +0 -0
- package/dist/assets/autospuiten/car-paint-picker/rusty.jpg +0 -0
- package/dist/assets/autospuiten/car-paint-picker/sunset-orange.jpg +0 -0
- package/dist/assets/autospuiten/car-paint-picker/tomato-red.jpg +0 -0
- package/dist/assets/autospuiten/car-paint-picker.d.ts +17 -0
- package/dist/assets/autospuiten/car-paint-picker.js +41 -0
- package/dist/assets/autospuiten/labels.d.ts +7 -0
- package/dist/assets/autospuiten/labels.js +7 -0
- package/dist/classes/cache/IndexedDbCache.d.ts +216 -0
- package/dist/classes/cache/IndexedDbCache.js +1407 -0
- package/dist/classes/cache/MemoryResponseCache.d.ts +106 -0
- package/dist/classes/cache/MemoryResponseCache.js +138 -0
- package/dist/classes/cache/index.d.ts +3 -0
- package/dist/classes/cache/index.js +5 -0
- package/dist/classes/cache/typedef.d.ts +67 -0
- package/dist/classes/cache/typedef.js +41 -0
- package/dist/classes/data/IterableTree.d.ts +51 -0
- package/dist/classes/data/IterableTree.js +243 -0
- package/dist/classes/data/Selector.d.ts +30 -0
- package/dist/classes/data/Selector.js +190 -0
- package/dist/classes/data/index.d.ts +2 -0
- package/dist/classes/data/index.js +2 -0
- package/dist/classes/events/EventEmitter.d.ts +142 -0
- package/dist/classes/events/EventEmitter.js +275 -0
- package/dist/classes/events/index.d.ts +1 -0
- package/dist/classes/events/index.js +2 -0
- package/dist/classes/index.d.ts +4 -0
- package/dist/classes/index.js +4 -0
- package/dist/classes/logging/Logger.d.ts +78 -0
- package/dist/classes/logging/Logger.js +210 -0
- package/dist/classes/logging/constants.d.ts +12 -0
- package/dist/classes/logging/constants.js +16 -0
- package/dist/classes/logging/index.d.ts +2 -0
- package/dist/classes/logging/index.js +4 -0
- package/dist/classes/logging/typedef.d.ts +34 -0
- package/dist/classes/logging/typedef.js +17 -0
- package/dist/classes/promise/HkPromise.d.ts +121 -0
- package/dist/classes/promise/HkPromise.js +377 -0
- package/dist/classes/promise/index.d.ts +1 -0
- package/dist/classes/promise/index.js +1 -0
- package/dist/classes/services/ServiceBase.d.ts +163 -0
- package/dist/classes/services/ServiceBase.js +463 -0
- package/dist/classes/services/ServiceManager.d.ts +179 -0
- package/dist/classes/services/ServiceManager.js +614 -0
- package/dist/classes/services/index.d.ts +4 -0
- package/dist/classes/services/index.js +5 -0
- package/dist/classes/services/service-states.d.ts +159 -0
- package/dist/classes/services/service-states.js +205 -0
- package/dist/classes/services/typedef.d.ts +247 -0
- package/dist/classes/services/typedef.js +179 -0
- package/dist/classes/stores/SubscribersCount.d.ts +39 -0
- package/dist/classes/stores/SubscribersCount.js +107 -0
- package/dist/classes/stores/index.d.ts +1 -0
- package/dist/classes/stores/index.js +1 -0
- package/dist/classes/streams/LogTransformStream.d.ts +4 -0
- package/dist/classes/streams/LogTransformStream.js +19 -0
- package/dist/classes/streams/ServerEventsStore.d.ts +22 -0
- package/dist/classes/streams/ServerEventsStore.js +110 -0
- package/dist/classes/streams/TimeStampSource.d.ts +13 -0
- package/dist/classes/streams/TimeStampSource.js +26 -0
- package/dist/classes/streams/index.d.ts +3 -0
- package/dist/classes/streams/index.js +3 -0
- package/dist/classes/svelte/audio/AudioLoader.svelte.d.ts +30 -0
- package/dist/classes/svelte/audio/AudioLoader.svelte.js +58 -0
- package/dist/classes/svelte/audio/AudioScene.svelte.d.ts +74 -0
- package/dist/classes/svelte/audio/AudioScene.svelte.js +324 -0
- package/dist/classes/svelte/audio/mocks.d.ts +7 -0
- package/dist/classes/svelte/audio/mocks.js +35 -0
- package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.d.ts +50 -0
- package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -0
- package/dist/classes/svelte/finite-state-machine/index.d.ts +1 -0
- package/dist/classes/svelte/finite-state-machine/index.js +1 -0
- package/dist/classes/svelte/image/ImageLoader.svelte.d.ts +19 -0
- package/dist/classes/svelte/image/ImageLoader.svelte.js +45 -0
- package/dist/classes/svelte/image/ImageScene.svelte.d.ts +78 -0
- package/dist/classes/svelte/image/ImageScene.svelte.js +249 -0
- package/dist/classes/svelte/image/ImageVariantsLoader.svelte.d.ts +43 -0
- package/dist/classes/svelte/image/ImageVariantsLoader.svelte.js +152 -0
- package/dist/classes/svelte/image/index.d.ts +2 -0
- package/dist/classes/svelte/image/index.js +4 -0
- package/dist/classes/svelte/image/mocks.d.ts +7 -0
- package/dist/classes/svelte/image/mocks.js +35 -0
- package/dist/classes/svelte/image/typedef.d.ts +16 -0
- package/dist/classes/svelte/image/typedef.js +8 -0
- package/dist/classes/svelte/index.d.ts +9 -0
- package/dist/classes/svelte/index.js +14 -0
- package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.d.ts +12 -0
- package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -0
- package/dist/classes/svelte/loading-state-machine/constants.d.ts +12 -0
- package/dist/classes/svelte/loading-state-machine/constants.js +16 -0
- package/dist/classes/svelte/loading-state-machine/index.d.ts +2 -0
- package/dist/classes/svelte/loading-state-machine/index.js +3 -0
- package/dist/classes/svelte/network-loader/NetworkLoader.svelte.d.ts +91 -0
- package/dist/classes/svelte/network-loader/NetworkLoader.svelte.js +338 -0
- package/dist/classes/svelte/network-loader/constants.d.ts +2 -0
- package/dist/classes/svelte/network-loader/constants.js +3 -0
- package/dist/classes/svelte/network-loader/index.d.ts +2 -0
- package/dist/classes/svelte/network-loader/index.js +3 -0
- package/dist/classes/svelte/network-loader/mocks.d.ts +7 -0
- package/dist/classes/svelte/network-loader/mocks.js +30 -0
- package/dist/classes/svelte/network-loader/typedef.d.ts +7 -0
- package/dist/classes/svelte/network-loader/typedef.js +8 -0
- package/dist/components/area/HkArea.svelte +49 -0
- package/dist/components/area/HkArea.svelte.d.ts +26 -0
- package/dist/components/area/HkGridArea.svelte +77 -0
- package/dist/components/area/HkGridArea.svelte.d.ts +42 -0
- package/dist/components/area/index.d.ts +2 -0
- package/dist/components/area/index.js +2 -0
- package/dist/components/buttons/button/Button.svelte +82 -0
- package/dist/components/buttons/button/Button.svelte.d.ts +44 -0
- package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -0
- package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte.d.ts +16 -0
- package/dist/components/buttons/button-text/TextButton.svelte +21 -0
- package/dist/components/buttons/button-text/TextButton.svelte.d.ts +12 -0
- package/dist/components/buttons/index.d.ts +3 -0
- package/dist/components/buttons/index.js +3 -0
- package/dist/components/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -0
- package/dist/components/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte.d.ts +6 -0
- package/dist/components/debug/index.d.ts +1 -0
- package/dist/components/debug/index.js +1 -0
- package/dist/components/drag-drop/DragController.d.ts +20 -0
- package/dist/components/drag-drop/DragController.js +44 -0
- package/dist/components/drag-drop/DragDropContext.svelte +111 -0
- package/dist/components/drag-drop/DragDropContext.svelte.d.ts +18 -0
- package/dist/components/drag-drop/Draggable.svelte +519 -0
- package/dist/components/drag-drop/Draggable.svelte.d.ts +95 -0
- package/dist/components/drag-drop/DropZone.svelte +258 -0
- package/dist/components/drag-drop/DropZone.svelte.d.ts +96 -0
- package/dist/components/drag-drop/DropZoneArea.svelte +119 -0
- package/dist/components/drag-drop/DropZoneArea.svelte.d.ts +90 -0
- package/dist/components/drag-drop/DropZoneList.svelte +125 -0
- package/dist/components/drag-drop/DropZoneList.svelte.d.ts +92 -0
- package/dist/components/drag-drop/actions.d.ts +9 -0
- package/dist/components/drag-drop/actions.js +26 -0
- package/dist/components/drag-drop/drag-state.svelte.d.ts +97 -0
- package/dist/components/drag-drop/drag-state.svelte.js +322 -0
- package/dist/components/drag-drop/index.d.ts +6 -0
- package/dist/components/drag-drop/index.js +7 -0
- package/dist/components/drag-drop/util.d.ts +0 -0
- package/dist/components/drag-drop/util.js +85 -0
- package/dist/components/hkdev/blocks/TextBlock.svelte +47 -0
- package/dist/components/hkdev/blocks/TextBlock.svelte.d.ts +24 -0
- package/dist/components/hkdev/buttons/CheckButton.svelte +63 -0
- package/dist/components/hkdev/buttons/CheckButton.svelte.d.ts +34 -0
- package/dist/components/icons/HkIcon.svelte +86 -0
- package/dist/components/icons/HkIcon.svelte.d.ts +22 -0
- package/dist/components/icons/HkTabIcon.svelte +116 -0
- package/dist/components/icons/HkTabIcon.svelte.d.ts +40 -0
- package/dist/components/icons/SteezeIcon.svelte +97 -0
- package/dist/components/icons/SteezeIcon.svelte.d.ts +22 -0
- package/dist/components/icons/index.d.ts +4 -0
- package/dist/components/icons/index.js +6 -0
- package/dist/components/icons/typedef.d.ts +13 -0
- package/dist/components/icons/typedef.js +16 -0
- package/dist/components/index.d.ts +0 -0
- package/dist/components/index.js +2 -0
- package/dist/components/inputs/index.d.ts +1 -0
- package/dist/components/inputs/index.js +1 -0
- package/dist/components/inputs/text-input/TestTextInput.svelte__ +102 -0
- package/dist/components/inputs/text-input/TextInput.svelte +223 -0
- package/dist/components/inputs/text-input/TextInput.svelte.d.ts +56 -0
- package/dist/components/inputs/text-input/TextInput.svelte___ +83 -0
- package/dist/components/inputs/text-input/assets/IconInvalid.svelte +14 -0
- package/dist/components/inputs/text-input/assets/IconInvalid.svelte.d.ts +26 -0
- package/dist/components/inputs/text-input/assets/IconValid.svelte +12 -0
- package/dist/components/inputs/text-input/assets/IconValid.svelte.d.ts +26 -0
- package/dist/components/layout/grid-layers/GridLayers.svelte +63 -0
- package/dist/components/layout/grid-layers/GridLayers.svelte.d.ts +26 -0
- package/dist/components/layout/grid-layers/GridLayers.svelte__heightFrom__ +372 -0
- package/dist/components/layout/grid-layers/util.d.ts +19 -0
- package/dist/components/layout/grid-layers/util.js +74 -0
- package/dist/components/layout/index.d.ts +1 -0
- package/dist/components/layout/index.js +1 -0
- package/dist/components/panels/index.d.ts +1 -0
- package/dist/components/panels/index.js +1 -0
- package/dist/components/panels/panel/Panel.svelte +43 -0
- package/dist/components/panels/panel/Panel.svelte.d.ts +24 -0
- package/dist/components/rows/index.d.ts +2 -0
- package/dist/components/rows/index.js +3 -0
- package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -0
- package/dist/components/rows/panel-grid-row/PanelGridRow.svelte.d.ts +26 -0
- package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -0
- package/dist/components/rows/panel-row-2/PanelRow2.svelte.d.ts +26 -0
- package/dist/components/tab-bar/HkTabBar.state.svelte.d.ts +54 -0
- package/dist/components/tab-bar/HkTabBar.state.svelte.js +149 -0
- package/dist/components/tab-bar/HkTabBar.svelte +74 -0
- package/dist/components/tab-bar/HkTabBar.svelte.d.ts +34 -0
- package/dist/components/tab-bar/HkTabBarSelector.state.svelte.d.ts +19 -0
- package/dist/components/tab-bar/HkTabBarSelector.state.svelte.js +93 -0
- package/dist/components/tab-bar/HkTabBarSelector.svelte +49 -0
- package/dist/components/tab-bar/HkTabBarSelector.svelte.d.ts +36 -0
- package/dist/components/tab-bar/index.d.ts +5 -0
- package/dist/components/tab-bar/index.js +17 -0
- package/dist/components/tab-bar/typedef.d.ts +8 -0
- package/dist/components/tab-bar/typedef.js +11 -0
- package/dist/config/imagetools-config.d.ts +26 -0
- package/dist/config/imagetools-config.js +189 -0
- package/dist/config/imagetools.d.ts +72 -0
- package/dist/constants/bases.d.ts +10 -0
- package/dist/constants/bases.js +13 -0
- package/dist/constants/errors/api.d.ts +10 -0
- package/dist/constants/errors/api.js +9 -0
- package/dist/constants/errors/generic.d.ts +20 -0
- package/dist/constants/errors/generic.js +20 -0
- package/dist/constants/errors/http.d.ts +16 -0
- package/dist/constants/errors/http.js +16 -0
- package/dist/constants/errors/index.d.ts +4 -0
- package/dist/constants/errors/index.js +4 -0
- package/dist/constants/errors/jwt.d.ts +8 -0
- package/dist/constants/errors/jwt.js +5 -0
- package/dist/constants/http/headers.d.ts +5 -0
- package/dist/constants/http/headers.js +6 -0
- package/dist/constants/http/index.d.ts +2 -0
- package/dist/constants/http/index.js +2 -0
- package/dist/constants/http/methods.d.ts +7 -0
- package/dist/constants/http/methods.js +14 -0
- package/dist/constants/index.d.ts +2 -0
- package/dist/constants/index.js +3 -0
- package/dist/constants/mime/application.d.ts +3 -0
- package/dist/constants/mime/application.js +5 -0
- package/dist/constants/mime/audio.d.ts +10 -0
- package/dist/constants/mime/audio.js +13 -0
- package/dist/constants/mime/image.d.ts +3 -0
- package/dist/constants/mime/image.js +3 -0
- package/dist/constants/mime/index.d.ts +4 -0
- package/dist/constants/mime/index.js +4 -0
- package/dist/constants/mime/text.d.ts +2 -0
- package/dist/constants/mime/text.js +2 -0
- package/dist/constants/regexp/index.d.ts +3 -0
- package/dist/constants/regexp/index.js +31 -0
- package/dist/constants/regexp/inspiratie.js__ +95 -0
- package/dist/constants/regexp/text.d.ts +47 -0
- package/dist/constants/regexp/text.js +49 -0
- package/dist/constants/regexp/user.d.ts +6 -0
- package/dist/constants/regexp/user.js +33 -0
- package/dist/constants/regexp/web.d.ts +1 -0
- package/dist/constants/regexp/web.js +3 -0
- package/dist/constants/state-labels/drag-states.d.ts +5 -0
- package/dist/constants/state-labels/drag-states.js +6 -0
- package/dist/constants/state-labels/drop-states.d.ts +4 -0
- package/dist/constants/state-labels/drop-states.js +6 -0
- package/dist/constants/state-labels/input-states.d.ts +8 -0
- package/dist/constants/state-labels/input-states.js +11 -0
- package/dist/constants/state-labels/submit-states.d.ts +4 -0
- package/dist/constants/state-labels/submit-states.js +4 -0
- package/dist/constants/time.d.ts +18 -0
- package/dist/constants/time.js +28 -0
- package/dist/css/utilities.css +43 -0
- package/dist/design/design-config.d.ts +157 -0
- package/dist/design/design-config.js +73 -0
- package/dist/design/tailwind-theme-extend.d.ts +23 -0
- package/dist/design/tailwind-theme-extend.js +158 -0
- package/dist/features/button-group/ButtonGroup.svelte +82 -0
- package/dist/features/button-group/ButtonGroup.svelte.d.ts +34 -0
- package/dist/features/button-group/typedef.d.ts +7 -0
- package/dist/features/button-group/typedef.js +10 -0
- package/dist/features/compare-left-right/CompareLeftRight.svelte +179 -0
- package/dist/features/compare-left-right/CompareLeftRight.svelte.d.ts +18 -0
- package/dist/features/compare-left-right/index.d.ts +1 -0
- package/dist/features/compare-left-right/index.js +1 -0
- package/dist/features/game-box/GameBox.svelte +577 -0
- package/dist/features/game-box/GameBox.svelte.d.ts +140 -0
- package/dist/features/game-box/gamebox.util.d.ts +32 -0
- package/dist/features/game-box/gamebox.util.js +83 -0
- package/dist/features/hk-app-layout/HkAppLayout.state.svelte.d.ts +6 -0
- package/dist/features/hk-app-layout/HkAppLayout.state.svelte.js +25 -0
- package/dist/features/hk-app-layout/HkAppLayout.svelte +251 -0
- package/dist/features/hk-app-layout/HkAppLayout.svelte.d.ts +19 -0
- package/dist/features/image-box/ImageBox.svelte +210 -0
- package/dist/features/image-box/ImageBox.svelte.d.ts +38 -0
- package/dist/features/image-box/index.d.ts +4 -0
- package/dist/features/image-box/index.js +5 -0
- package/dist/features/image-box/typedef.d.ts +4 -0
- package/dist/features/image-box/typedef.js +32 -0
- package/dist/features/index.d.ts +11 -0
- package/dist/features/index.js +23 -0
- package/dist/features/presenter/ImageSlide.svelte +64 -0
- package/dist/features/presenter/ImageSlide.svelte.d.ts +36 -0
- package/dist/features/presenter/Presenter.state.svelte.d.ts +74 -0
- package/dist/features/presenter/Presenter.state.svelte.js +638 -0
- package/dist/features/presenter/Presenter.svelte +142 -0
- package/dist/features/presenter/Presenter.svelte.d.ts +18 -0
- package/dist/features/presenter/constants.d.ts +5 -0
- package/dist/features/presenter/constants.js +7 -0
- package/dist/features/presenter/index.d.ts +6 -0
- package/dist/features/presenter/index.js +10 -0
- package/dist/features/presenter/typedef.d.ts +92 -0
- package/dist/features/presenter/typedef.js +106 -0
- package/dist/features/presenter/util.d.ts +63 -0
- package/dist/features/presenter/util.js +210 -0
- package/dist/features/virtual-viewport/VirtualViewport.svelte +196 -0
- package/dist/features/virtual-viewport/VirtualViewport.svelte.d.ts +42 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +0 -0
- package/dist/logging/adapters/console.d.ts +48 -0
- package/dist/logging/adapters/console.js +114 -0
- package/dist/logging/adapters/pino.d.ts +25 -0
- package/dist/logging/adapters/pino.js +60 -0
- package/dist/logging/constants.d.ts +1 -0
- package/dist/logging/constants.js +1 -0
- package/dist/logging/factories/client.d.ts +10 -0
- package/dist/logging/factories/client.js +21 -0
- package/dist/logging/factories/server.d.ts +10 -0
- package/dist/logging/factories/server.js +22 -0
- package/dist/logging/factories/universal.d.ts +9 -0
- package/dist/logging/factories/universal.js +23 -0
- package/dist/logging/index.d.ts +5 -0
- package/dist/logging/index.js +8 -0
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/validate-url.d.ts +30 -0
- package/dist/schemas/validate-url.js +180 -0
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.js +1 -0
- package/dist/server/logger.d.ts +25 -0
- package/dist/server/logger.js +94 -0
- package/dist/states/index.d.ts +1 -0
- package/dist/states/index.js +1 -0
- package/dist/states/navigation.svelte.d.ts +23 -0
- package/dist/states/navigation.svelte.js +55 -0
- package/dist/stores/index.d.ts +1 -0
- package/dist/stores/index.js +1 -0
- package/dist/stores/theme.d.ts +28 -0
- package/dist/stores/theme.js +80 -0
- package/dist/themes/hkdev/components/blocks/text-block.css +34 -0
- package/dist/themes/hkdev/components/boxes/game-box.css +11 -0
- package/dist/themes/hkdev/components/buttons/button-icon-steeze.css +22 -0
- package/dist/themes/hkdev/components/buttons/button-text.css +32 -0
- package/dist/themes/hkdev/components/buttons/button.css +146 -0
- package/dist/themes/hkdev/components/buttons/skip-button.css +5 -0
- package/dist/themes/hkdev/components/drag-drop/draggable.css +73 -0
- package/dist/themes/hkdev/components/drag-drop/drop-zone.css +58 -0
- package/dist/themes/hkdev/components/icons/icon-steeze.css +16 -0
- package/dist/themes/hkdev/components/inputs/text-input.css +102 -0
- package/dist/themes/hkdev/components/panels/panel.css +25 -0
- package/dist/themes/hkdev/components/rows/panel-grid-row.css +4 -0
- package/dist/themes/hkdev/components/rows/panel-row-2.css +5 -0
- package/dist/themes/hkdev/components.css +29 -0
- package/dist/themes/hkdev/debug.css +2 -0
- package/dist/themes/hkdev/global/layout.css +32 -0
- package/dist/themes/hkdev/global/on-colors.css +32 -0
- package/dist/themes/hkdev/globals.css +4 -0
- package/dist/themes/hkdev/responsive.css +12 -0
- package/dist/themes/hkdev/theme-ext.d.ts +4 -0
- package/dist/themes/hkdev/theme-ext.js +12 -0
- package/dist/themes/hkdev/theme.css +219 -0
- package/dist/themes/index.d.ts +1 -0
- package/dist/themes/index.js +1 -0
- package/dist/typedef/context.d.ts +3 -0
- package/dist/typedef/context.js +6 -0
- package/dist/typedef/drag.d.ts +29 -0
- package/dist/typedef/drag.js +25 -0
- package/dist/typedef/drop.d.ts +15 -0
- package/dist/typedef/drop.js +12 -0
- package/dist/typedef/image.d.ts +12 -0
- package/dist/typedef/image.js +38 -0
- package/dist/typedef/index.d.ts +4 -0
- package/dist/typedef/index.js +4 -0
- package/dist/util/array/index.d.ts +183 -0
- package/dist/util/array/index.js +436 -0
- package/dist/util/bases/base58.d.ts +58 -0
- package/dist/util/bases/base58.js +262 -0
- package/dist/util/bases/index.d.ts +1 -0
- package/dist/util/bases/index.js +1 -0
- package/dist/util/compare/index.d.ts +68 -0
- package/dist/util/compare/index.js +247 -0
- package/dist/util/css/css-vars.d.ts +24 -0
- package/dist/util/css/css-vars.js +83 -0
- package/dist/util/css/index.d.ts +1 -0
- package/dist/util/css/index.js +1 -0
- package/dist/util/design-system/components/states.d.ts +15 -0
- package/dist/util/design-system/components/states.js +22 -0
- package/dist/util/design-system/css/clamp.d.ts +17 -0
- package/dist/util/design-system/css/clamp.js +66 -0
- package/dist/util/design-system/css/root-design-vars.d.ts +77 -0
- package/dist/util/design-system/css/root-design-vars.js +102 -0
- package/dist/util/design-system/index.d.ts +5 -0
- package/dist/util/design-system/index.js +5 -0
- package/dist/util/design-system/layout/scaling.d.ts +98 -0
- package/dist/util/design-system/layout/scaling.js +228 -0
- package/dist/util/design-system/skeleton.d.ts +41 -0
- package/dist/util/design-system/skeleton.js +208 -0
- package/dist/util/design-system/tailwind.d.ts +183 -0
- package/dist/util/design-system/tailwind.js +288 -0
- package/dist/util/env/index.d.ts +1 -0
- package/dist/util/env/index.js +9 -0
- package/dist/util/exceptions/index.d.ts +15 -0
- package/dist/util/exceptions/index.js +23 -0
- package/dist/util/expect/arrays.d.ts +30 -0
- package/dist/util/expect/arrays.js +47 -0
- package/dist/util/expect/index.d.ts +103 -0
- package/dist/util/expect/index.js +259 -0
- package/dist/util/expect/primitives.d.ts +30 -0
- package/dist/util/expect/primitives.js +55 -0
- package/dist/util/expect/url.d.ts +32 -0
- package/dist/util/expect/url.js +60 -0
- package/dist/util/function/index.d.ts +34 -0
- package/dist/util/function/index.js +218 -0
- package/dist/util/geo/index.d.ts +10 -0
- package/dist/util/geo/index.js +26 -0
- package/dist/util/http/caching.d.ts +28 -0
- package/dist/util/http/caching.js +263 -0
- package/dist/util/http/errors.d.ts +18 -0
- package/dist/util/http/errors.js +97 -0
- package/dist/util/http/headers.d.ts +40 -0
- package/dist/util/http/headers.js +75 -0
- package/dist/util/http/http-request.d.ts +267 -0
- package/dist/util/http/http-request.js +578 -0
- package/dist/util/http/index.d.ts +6 -0
- package/dist/util/http/index.js +22 -0
- package/dist/util/http/json-request.d.ts +84 -0
- package/dist/util/http/json-request.js +224 -0
- package/dist/util/http/mocks.d.ts +20 -0
- package/dist/util/http/mocks.js +65 -0
- package/dist/util/http/response.d.ts +125 -0
- package/dist/util/http/response.js +294 -0
- package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
- package/dist/util/http/typedef.d.ts +184 -0
- package/dist/util/http/typedef.js +93 -0
- package/dist/util/http/url.d.ts +25 -0
- package/dist/util/http/url.js +52 -0
- package/dist/util/image/index.d.ts +25 -0
- package/dist/util/image/index.js +86 -0
- package/dist/util/index.d.ts +3 -0
- package/dist/util/index.js +3 -0
- package/dist/util/is/index.d.ts +68 -0
- package/dist/util/is/index.js +140 -0
- package/dist/util/iterate/index.d.ts +131 -0
- package/dist/util/iterate/index.js +234 -0
- package/dist/util/object/index.d.ts +326 -0
- package/dist/util/object/index.js +1361 -0
- package/dist/util/singleton/index.d.ts +34 -0
- package/dist/util/singleton/index.js +97 -0
- package/dist/util/string/array-path.d.ts +15 -0
- package/dist/util/string/array-path.js +75 -0
- package/dist/util/string/convert.d.ts +22 -0
- package/dist/util/string/convert.js +54 -0
- package/dist/util/string/fs.d.ts +55 -0
- package/dist/util/string/fs.js +226 -0
- package/dist/util/string/index.d.ts +5 -0
- package/dist/util/string/index.js +5 -0
- package/dist/util/string/interpolate.d.ts +22 -0
- package/dist/util/string/interpolate.js +61 -0
- package/dist/util/string/pad.d.ts +8 -0
- package/dist/util/string/pad.js +10 -0
- package/dist/util/svelte/index.d.ts +3 -0
- package/dist/util/svelte/index.js +4 -0
- package/dist/util/svelte/loading/loading-tracker.svelte.d.ts +31 -0
- package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -0
- package/dist/util/svelte/observe/index.d.ts +10 -0
- package/dist/util/svelte/observe/index.js +49 -0
- package/dist/util/svelte/state-context/index.d.ts +18 -0
- package/dist/util/svelte/state-context/index.js +117 -0
- package/dist/util/svelte/wait/index.d.ts +15 -0
- package/dist/util/svelte/wait/index.js +38 -0
- package/dist/util/sveltekit/index.d.ts +1 -0
- package/dist/util/sveltekit/index.js +1 -0
- package/dist/util/sveltekit/route-folders/index.d.ts +28 -0
- package/dist/util/sveltekit/route-folders/index.js +101 -0
- package/dist/util/time/index.d.ts +108 -0
- package/dist/util/time/index.js +323 -0
- package/dist/util/unique/index.d.ts +81 -0
- package/dist/util/unique/index.js +249 -0
- package/dist/valibot/date.js__ +10 -0
- package/dist/valibot/index.d.ts +4 -0
- package/dist/valibot/index.js +9 -0
- package/dist/valibot/url.d.ts +26 -0
- package/dist/valibot/url.js +95 -0
- package/dist/valibot/user.d.ts +6 -0
- package/dist/valibot/user.js +23 -0
- package/dist/zod/all.d.ts +6 -0
- package/dist/zod/all.js +33 -0
- package/dist/zod/generic.d.ts +6 -0
- package/dist/zod/generic.js +11 -0
- package/dist/zod/javascript.d.ts +8 -0
- package/dist/zod/javascript.js +32 -0
- package/dist/zod/user.d.ts +9 -0
- package/dist/zod/user.js +16 -0
- package/dist/zod/web.d.ts +21 -0
- package/dist/zod/web.js +52 -0
- package/package.json +133 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Selector.js
|
|
3
|
+
*
|
|
4
|
+
* @description
|
|
5
|
+
* This file contains a class that can be used to select items from lists of
|
|
6
|
+
* objects.
|
|
7
|
+
*
|
|
8
|
+
* @TODO
|
|
9
|
+
* Allow other selection criteria than exact key-value pair matches
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
*
|
|
13
|
+
* import Selector from "./Selector.js";
|
|
14
|
+
*
|
|
15
|
+
* const selector = new Selector( { age: 42 } );
|
|
16
|
+
*
|
|
17
|
+
* const items =
|
|
18
|
+
* [
|
|
19
|
+
* { name: "Maria", age: 41 },
|
|
20
|
+
* { name: "John", age: 42 },
|
|
21
|
+
* { name: "Max", age: 43 }
|
|
22
|
+
* ]
|
|
23
|
+
*
|
|
24
|
+
* const item = selector.findFirst( items );
|
|
25
|
+
*
|
|
26
|
+
* console.log( item );
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/* ------------------------------------------------------------------ Imports */
|
|
30
|
+
|
|
31
|
+
import * as expect from '../../util/expect/index.js';
|
|
32
|
+
|
|
33
|
+
/* ------------------------------------------------------------------- Export */
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Construct a Selector class
|
|
37
|
+
*/
|
|
38
|
+
export default class Selector {
|
|
39
|
+
/** @type {function|null} test function */
|
|
40
|
+
#testFn = null;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Constructor
|
|
44
|
+
*
|
|
45
|
+
* @param {object|null} selector
|
|
46
|
+
*/
|
|
47
|
+
constructor(selector) {
|
|
48
|
+
this.#updateTestFn(selector);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// -------------------------------------------------------------------- Method
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Returns the first item from the list of items that matches the selector
|
|
55
|
+
*
|
|
56
|
+
* @template {object} T
|
|
57
|
+
* @param {T[]|null} items
|
|
58
|
+
*
|
|
59
|
+
* @returns {T|null} item or null if not found
|
|
60
|
+
*/
|
|
61
|
+
findFirst(items) {
|
|
62
|
+
if (!items) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
for (const item of items) {
|
|
67
|
+
if (this.#testFn(item)) {
|
|
68
|
+
return item;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// -------------------------------------------------------------------- Method
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Returns all items from the list of items that match the selector
|
|
79
|
+
*
|
|
80
|
+
* @template {object} T
|
|
81
|
+
* @param {T[]|null} items
|
|
82
|
+
*
|
|
83
|
+
* @returns {T[]|null} item or null if not found
|
|
84
|
+
*/
|
|
85
|
+
findAll(items) {
|
|
86
|
+
const result = [];
|
|
87
|
+
|
|
88
|
+
if (!items) {
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
for (const item of items) {
|
|
93
|
+
if (this.#testFn(item)) {
|
|
94
|
+
result.push(item);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* ------------------------------------------------------- Internal methods */
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Update the internal selector function
|
|
105
|
+
*/
|
|
106
|
+
#updateTestFn(selector) {
|
|
107
|
+
// > Case A: selector=null
|
|
108
|
+
|
|
109
|
+
if (null === selector) {
|
|
110
|
+
this.#testFn = this.#returnTrue;
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// > Validate selector
|
|
115
|
+
|
|
116
|
+
expect.objectOrNull(selector);
|
|
117
|
+
|
|
118
|
+
const keys = Object.keys(selector);
|
|
119
|
+
const n = keys.length;
|
|
120
|
+
|
|
121
|
+
// > Case B: selector has not properties
|
|
122
|
+
|
|
123
|
+
if (!n) {
|
|
124
|
+
this.#testFn = this.#returnTrue;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// > Case C: selector with single key-value pair
|
|
129
|
+
|
|
130
|
+
if (1 === n) {
|
|
131
|
+
const key = keys[0];
|
|
132
|
+
const value = selector[key];
|
|
133
|
+
|
|
134
|
+
this.#testFn = this.#testKeyValue.bind(this, key, value);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// > Case D: selector with multiple key-value pairs
|
|
138
|
+
|
|
139
|
+
const selectorValues = [];
|
|
140
|
+
|
|
141
|
+
for (const key of keys) {
|
|
142
|
+
selectorValues.push(selector[key]);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
this.#testFn = this.#testMultipleKeyValues.bind(this, keys, selectorValues);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// -------------------------------------------------------------------- Method
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Always return true
|
|
152
|
+
* - This function is used if the test function should always return true
|
|
153
|
+
*
|
|
154
|
+
* @returns {boolean} true
|
|
155
|
+
*/
|
|
156
|
+
#returnTrue() {
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// -------------------------------------------------------------------- Method
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Return true if the item matches the key-value pair
|
|
164
|
+
* - This function is used if the test function should test a
|
|
165
|
+
* single key-value pair
|
|
166
|
+
*/
|
|
167
|
+
#testKeyValue(key, value, item) {
|
|
168
|
+
return value === item[key];
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// -------------------------------------------------------------------- Method
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Return true if the item matches all key-value pairs
|
|
175
|
+
* - This function is used if the test function should test multiple
|
|
176
|
+
* key-value pairs
|
|
177
|
+
*/
|
|
178
|
+
#testMultipleKeyValues(keys, values, item) {
|
|
179
|
+
let isMatch = true;
|
|
180
|
+
|
|
181
|
+
for (let j = 0, n = keys.length; j < n; j = j + 1) {
|
|
182
|
+
if (values[j] !== item[keys[j]]) {
|
|
183
|
+
isMatch = false;
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
} // end for
|
|
187
|
+
|
|
188
|
+
return isMatch;
|
|
189
|
+
}
|
|
190
|
+
} // end class
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Simple event emitter implementation to support event-based architecture
|
|
3
|
+
* in service management and other parts of the application.
|
|
4
|
+
*
|
|
5
|
+
* This implementation provides standard event publishing and subscription methods
|
|
6
|
+
* with support for namespaced events, wildcard listeners, and callback removal.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // Basic usage
|
|
10
|
+
* import { EventEmitter } from './EventEmitter.js';
|
|
11
|
+
*
|
|
12
|
+
* // Create an emitter
|
|
13
|
+
* const events = new EventEmitter();
|
|
14
|
+
*
|
|
15
|
+
* // Subscribe to events
|
|
16
|
+
* const unsubscribe = events.on('data-loaded', (data) => {
|
|
17
|
+
* console.log('Data loaded:', data);
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Subscribe to all events with a specific prefix
|
|
21
|
+
* events.on('database:*', ({ event, data }) => {
|
|
22
|
+
* console.log(`Database event ${event}:`, data);
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Emit events
|
|
26
|
+
* events.emit('data-loaded', { items: [1, 2, 3] });
|
|
27
|
+
* events.emit('database:connected', { connectionId: 'abc123' });
|
|
28
|
+
*
|
|
29
|
+
* // Clean up when done
|
|
30
|
+
* unsubscribe();
|
|
31
|
+
*
|
|
32
|
+
* // Or remove all listeners
|
|
33
|
+
* events.removeAllListeners();
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* EventEmitter class for event-based programming
|
|
37
|
+
*/
|
|
38
|
+
export default class EventEmitter {
|
|
39
|
+
/**
|
|
40
|
+
* Map to store event handlers
|
|
41
|
+
* @type {Map<string, Set<Function>>}
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
private eventHandlers;
|
|
45
|
+
/**
|
|
46
|
+
* Map to store wildcard event handlers (events ending with *)
|
|
47
|
+
* @type {Map<string, Set<Function>>}
|
|
48
|
+
* @private
|
|
49
|
+
*/
|
|
50
|
+
private wildcardHandlers;
|
|
51
|
+
/**
|
|
52
|
+
* Register an event handler
|
|
53
|
+
*
|
|
54
|
+
* @param {string} eventName - Event name to listen for. Can use wildcard (*)
|
|
55
|
+
* at the end to listen to all events with a specific prefix.
|
|
56
|
+
* @param {Function} handler - Handler function to call when event is emitted
|
|
57
|
+
* @returns {Function} Function to remove this specific handler
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* // Listen for a specific event
|
|
61
|
+
* emitter.on('userLoggedIn', (user) => {
|
|
62
|
+
* console.log(`User logged in: ${user.name}`);
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* // Listen for all events with a prefix
|
|
66
|
+
* emitter.on('api:*', ({ event, data }) => {
|
|
67
|
+
* console.log(`API event ${event}:`, data);
|
|
68
|
+
* });
|
|
69
|
+
*/
|
|
70
|
+
on(eventName: string, handler: Function): Function;
|
|
71
|
+
/**
|
|
72
|
+
* Register a one-time event handler that will be removed after first execution
|
|
73
|
+
*
|
|
74
|
+
* @param {string} eventName - Event name to listen for
|
|
75
|
+
* @param {Function} handler - Handler function to call when event is emitted
|
|
76
|
+
* @returns {Function} Function to remove this specific handler
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* emitter.once('initialization', () => {
|
|
80
|
+
* console.log('Initialization happened');
|
|
81
|
+
* });
|
|
82
|
+
*/
|
|
83
|
+
once(eventName: string, handler: Function): Function;
|
|
84
|
+
/**
|
|
85
|
+
* Remove an event handler
|
|
86
|
+
*
|
|
87
|
+
* @param {string} eventName - Event name the handler was registered for
|
|
88
|
+
* @param {Function} handler - Handler function to remove
|
|
89
|
+
* @returns {boolean} True if the handler was removed, false otherwise
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* const handler = (data) => console.log(data);
|
|
93
|
+
* emitter.on('data', handler);
|
|
94
|
+
* emitter.off('data', handler);
|
|
95
|
+
*/
|
|
96
|
+
off(eventName: string, handler: Function): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Remove all event handlers for a specific event
|
|
99
|
+
*
|
|
100
|
+
* @param {string} [eventName] - Event name to remove handlers for.
|
|
101
|
+
* If not provided, removes all handlers for all events.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* // Remove all 'data' event handlers
|
|
105
|
+
* emitter.removeAllListeners('data');
|
|
106
|
+
*
|
|
107
|
+
* // Remove all event handlers
|
|
108
|
+
* emitter.removeAllListeners();
|
|
109
|
+
*/
|
|
110
|
+
removeAllListeners(eventName?: string): void;
|
|
111
|
+
/**
|
|
112
|
+
* Emit an event
|
|
113
|
+
*
|
|
114
|
+
* @param {string} eventName - Name of the event to emit
|
|
115
|
+
* @param {*} data - Data to pass to event handlers
|
|
116
|
+
* @returns {boolean} True if there were handlers for this event, false otherwise
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* emitter.emit('dataLoaded', { users: [...] });
|
|
120
|
+
*/
|
|
121
|
+
emit(eventName: string, data: any): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Get the number of listeners for a specific event
|
|
124
|
+
*
|
|
125
|
+
* @param {string} eventName - Event name to count listeners for
|
|
126
|
+
* @returns {number} Number of listeners for this event
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* const count = emitter.listenerCount('data');
|
|
130
|
+
* console.log(`There are ${count} data event listeners`);
|
|
131
|
+
*/
|
|
132
|
+
listenerCount(eventName: string): number;
|
|
133
|
+
/**
|
|
134
|
+
* Get all registered event names
|
|
135
|
+
*
|
|
136
|
+
* @returns {string[]} Array of event names that have listeners
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* console.log('Events with listeners:', emitter.eventNames());
|
|
140
|
+
*/
|
|
141
|
+
eventNames(): string[];
|
|
142
|
+
}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Simple event emitter implementation to support event-based architecture
|
|
3
|
+
* in service management and other parts of the application.
|
|
4
|
+
*
|
|
5
|
+
* This implementation provides standard event publishing and subscription methods
|
|
6
|
+
* with support for namespaced events, wildcard listeners, and callback removal.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // Basic usage
|
|
10
|
+
* import { EventEmitter } from './EventEmitter.js';
|
|
11
|
+
*
|
|
12
|
+
* // Create an emitter
|
|
13
|
+
* const events = new EventEmitter();
|
|
14
|
+
*
|
|
15
|
+
* // Subscribe to events
|
|
16
|
+
* const unsubscribe = events.on('data-loaded', (data) => {
|
|
17
|
+
* console.log('Data loaded:', data);
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Subscribe to all events with a specific prefix
|
|
21
|
+
* events.on('database:*', ({ event, data }) => {
|
|
22
|
+
* console.log(`Database event ${event}:`, data);
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Emit events
|
|
26
|
+
* events.emit('data-loaded', { items: [1, 2, 3] });
|
|
27
|
+
* events.emit('database:connected', { connectionId: 'abc123' });
|
|
28
|
+
*
|
|
29
|
+
* // Clean up when done
|
|
30
|
+
* unsubscribe();
|
|
31
|
+
*
|
|
32
|
+
* // Or remove all listeners
|
|
33
|
+
* events.removeAllListeners();
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* EventEmitter class for event-based programming
|
|
38
|
+
*/
|
|
39
|
+
export default class EventEmitter {
|
|
40
|
+
/**
|
|
41
|
+
* Create a new EventEmitter instance
|
|
42
|
+
*/
|
|
43
|
+
constructor() {
|
|
44
|
+
/**
|
|
45
|
+
* Map to store event handlers
|
|
46
|
+
* @type {Map<string, Set<Function>>}
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
49
|
+
this.eventHandlers = new Map();
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Map to store wildcard event handlers (events ending with *)
|
|
53
|
+
* @type {Map<string, Set<Function>>}
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
this.wildcardHandlers = new Map();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Register an event handler
|
|
61
|
+
*
|
|
62
|
+
* @param {string} eventName - Event name to listen for. Can use wildcard (*)
|
|
63
|
+
* at the end to listen to all events with a specific prefix.
|
|
64
|
+
* @param {Function} handler - Handler function to call when event is emitted
|
|
65
|
+
* @returns {Function} Function to remove this specific handler
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* // Listen for a specific event
|
|
69
|
+
* emitter.on('userLoggedIn', (user) => {
|
|
70
|
+
* console.log(`User logged in: ${user.name}`);
|
|
71
|
+
* });
|
|
72
|
+
*
|
|
73
|
+
* // Listen for all events with a prefix
|
|
74
|
+
* emitter.on('api:*', ({ event, data }) => {
|
|
75
|
+
* console.log(`API event ${event}:`, data);
|
|
76
|
+
* });
|
|
77
|
+
*/
|
|
78
|
+
on(eventName, handler) {
|
|
79
|
+
if (typeof handler !== 'function') {
|
|
80
|
+
throw new TypeError('Event handler must be a function');
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Handle wildcard listeners
|
|
84
|
+
if (eventName.endsWith('*')) {
|
|
85
|
+
const prefix = eventName.slice(0, -1);
|
|
86
|
+
|
|
87
|
+
if (!this.wildcardHandlers.has(prefix)) {
|
|
88
|
+
this.wildcardHandlers.set(prefix, new Set());
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
this.wildcardHandlers.get(prefix).add(handler);
|
|
92
|
+
|
|
93
|
+
return () => this.off(eventName, handler);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Handle normal listeners
|
|
97
|
+
if (!this.eventHandlers.has(eventName)) {
|
|
98
|
+
this.eventHandlers.set(eventName, new Set());
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
this.eventHandlers.get(eventName).add(handler);
|
|
102
|
+
|
|
103
|
+
return () => this.off(eventName, handler);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Register a one-time event handler that will be removed after first execution
|
|
108
|
+
*
|
|
109
|
+
* @param {string} eventName - Event name to listen for
|
|
110
|
+
* @param {Function} handler - Handler function to call when event is emitted
|
|
111
|
+
* @returns {Function} Function to remove this specific handler
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* emitter.once('initialization', () => {
|
|
115
|
+
* console.log('Initialization happened');
|
|
116
|
+
* });
|
|
117
|
+
*/
|
|
118
|
+
once(eventName, handler) {
|
|
119
|
+
if (typeof handler !== 'function') {
|
|
120
|
+
throw new TypeError('Event handler must be a function');
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const wrapper = (...args) => {
|
|
124
|
+
this.off(eventName, wrapper);
|
|
125
|
+
handler(...args);
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
return this.on(eventName, wrapper);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Remove an event handler
|
|
133
|
+
*
|
|
134
|
+
* @param {string} eventName - Event name the handler was registered for
|
|
135
|
+
* @param {Function} handler - Handler function to remove
|
|
136
|
+
* @returns {boolean} True if the handler was removed, false otherwise
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* const handler = (data) => console.log(data);
|
|
140
|
+
* emitter.on('data', handler);
|
|
141
|
+
* emitter.off('data', handler);
|
|
142
|
+
*/
|
|
143
|
+
off(eventName, handler) {
|
|
144
|
+
// Handle wildcard listeners
|
|
145
|
+
if (eventName.endsWith('*')) {
|
|
146
|
+
const prefix = eventName.slice(0, -1);
|
|
147
|
+
const handlers = this.wildcardHandlers.get(prefix);
|
|
148
|
+
|
|
149
|
+
if (handlers) {
|
|
150
|
+
return handlers.delete(handler);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Handle normal listeners
|
|
157
|
+
const handlers = this.eventHandlers.get(eventName);
|
|
158
|
+
|
|
159
|
+
if (handlers) {
|
|
160
|
+
return handlers.delete(handler);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Remove all event handlers for a specific event
|
|
168
|
+
*
|
|
169
|
+
* @param {string} [eventName] - Event name to remove handlers for.
|
|
170
|
+
* If not provided, removes all handlers for all events.
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* // Remove all 'data' event handlers
|
|
174
|
+
* emitter.removeAllListeners('data');
|
|
175
|
+
*
|
|
176
|
+
* // Remove all event handlers
|
|
177
|
+
* emitter.removeAllListeners();
|
|
178
|
+
*/
|
|
179
|
+
removeAllListeners(eventName) {
|
|
180
|
+
if (eventName) {
|
|
181
|
+
// Handle wildcard listeners
|
|
182
|
+
if (eventName.endsWith('*')) {
|
|
183
|
+
const prefix = eventName.slice(0, -1);
|
|
184
|
+
this.wildcardHandlers.delete(prefix);
|
|
185
|
+
} else {
|
|
186
|
+
this.eventHandlers.delete(eventName);
|
|
187
|
+
}
|
|
188
|
+
} else {
|
|
189
|
+
// Clear all handlers
|
|
190
|
+
this.eventHandlers.clear();
|
|
191
|
+
this.wildcardHandlers.clear();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Emit an event
|
|
197
|
+
*
|
|
198
|
+
* @param {string} eventName - Name of the event to emit
|
|
199
|
+
* @param {*} data - Data to pass to event handlers
|
|
200
|
+
* @returns {boolean} True if there were handlers for this event, false otherwise
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* emitter.emit('dataLoaded', { users: [...] });
|
|
204
|
+
*/
|
|
205
|
+
emit(eventName, data) {
|
|
206
|
+
let handled = false;
|
|
207
|
+
|
|
208
|
+
// Call specific event handlers
|
|
209
|
+
const handlers = this.eventHandlers.get(eventName);
|
|
210
|
+
if (handlers && handlers.size > 0) {
|
|
211
|
+
handlers.forEach(handler => handler(data));
|
|
212
|
+
handled = true;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// Call matching wildcard handlers
|
|
216
|
+
this.wildcardHandlers.forEach((handlers, prefix) => {
|
|
217
|
+
if (eventName.startsWith(prefix)) {
|
|
218
|
+
handlers.forEach(handler =>
|
|
219
|
+
handler({ event: eventName, data })
|
|
220
|
+
);
|
|
221
|
+
handled = true;
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
return handled;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Get the number of listeners for a specific event
|
|
230
|
+
*
|
|
231
|
+
* @param {string} eventName - Event name to count listeners for
|
|
232
|
+
* @returns {number} Number of listeners for this event
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* const count = emitter.listenerCount('data');
|
|
236
|
+
* console.log(`There are ${count} data event listeners`);
|
|
237
|
+
*/
|
|
238
|
+
listenerCount(eventName) {
|
|
239
|
+
let count = 0;
|
|
240
|
+
|
|
241
|
+
// Count specific event handlers
|
|
242
|
+
const handlers = this.eventHandlers.get(eventName);
|
|
243
|
+
if (handlers) {
|
|
244
|
+
count += handlers.size;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// Count matching wildcard handlers
|
|
248
|
+
this.wildcardHandlers.forEach((handlers, prefix) => {
|
|
249
|
+
if (eventName.startsWith(prefix)) {
|
|
250
|
+
count += handlers.size;
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
return count;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Get all registered event names
|
|
259
|
+
*
|
|
260
|
+
* @returns {string[]} Array of event names that have listeners
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* console.log('Events with listeners:', emitter.eventNames());
|
|
264
|
+
*/
|
|
265
|
+
eventNames() {
|
|
266
|
+
const events = [...this.eventHandlers.keys()];
|
|
267
|
+
|
|
268
|
+
// Add wildcard events
|
|
269
|
+
this.wildcardHandlers.forEach((_, prefix) => {
|
|
270
|
+
events.push(`${prefix}*`);
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
return events;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as EventEmitter } from "./EventEmitter.js";
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger class for consistent logging across services
|
|
3
|
+
* @extends EventEmitter
|
|
4
|
+
*/
|
|
5
|
+
export default class Logger extends EventEmitter {
|
|
6
|
+
/**
|
|
7
|
+
* Create a new Logger instance
|
|
8
|
+
*
|
|
9
|
+
* @param {string} name - Name of the service/component for this logger
|
|
10
|
+
* @param {string} [defaultLevel=INFO] - Initial log level threshold
|
|
11
|
+
* @param {Object} [context={}] - Default context data for all logs
|
|
12
|
+
*/
|
|
13
|
+
constructor(name: string, defaultLevel?: string, context?: any);
|
|
14
|
+
name: string;
|
|
15
|
+
level: string;
|
|
16
|
+
/**
|
|
17
|
+
* Set the minimum log level threshold
|
|
18
|
+
*
|
|
19
|
+
* @param {string} level - New log level (DEBUG, INFO, WARN, ERROR or NONE)
|
|
20
|
+
* @returns {boolean} True if level was valid and set, false otherwise
|
|
21
|
+
*/
|
|
22
|
+
setLevel(level: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Log a debug message
|
|
25
|
+
*
|
|
26
|
+
* @param {string} message - Log message
|
|
27
|
+
* @param {*} [details] - Additional details
|
|
28
|
+
* @returns {boolean} True if the log was emitted
|
|
29
|
+
*/
|
|
30
|
+
debug(message: string, details?: any): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Log an info message
|
|
33
|
+
*
|
|
34
|
+
* @param {string} message - Log message
|
|
35
|
+
* @param {*} [details] - Additional details
|
|
36
|
+
* @returns {boolean} True if the log was emitted
|
|
37
|
+
*/
|
|
38
|
+
info(message: string, details?: any): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Log a warning message
|
|
41
|
+
*
|
|
42
|
+
* @param {string} message - Log message
|
|
43
|
+
* @param {*} [details] - Additional details
|
|
44
|
+
* @returns {boolean} True if the log was emitted
|
|
45
|
+
*/
|
|
46
|
+
warn(message: string, details?: any): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Log an error message
|
|
49
|
+
*
|
|
50
|
+
* @param {string} message - Log message
|
|
51
|
+
* @param {*} [details] - Additional details
|
|
52
|
+
* @returns {boolean} True if the log was emitted
|
|
53
|
+
*/
|
|
54
|
+
error(message: string, details?: any): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Create a child logger with additional context
|
|
57
|
+
*
|
|
58
|
+
* @param {string} namespace
|
|
59
|
+
* Namespace of the context (needed for chaining contexts)
|
|
60
|
+
*
|
|
61
|
+
* @param {Object} additionalContext - Additional context data
|
|
62
|
+
*
|
|
63
|
+
* @returns {Logger} New logger instance with merged context
|
|
64
|
+
*/
|
|
65
|
+
context(namespace: string, additionalContext: any): Logger;
|
|
66
|
+
/**
|
|
67
|
+
* Log an event from an event emitter of type LogEvent
|
|
68
|
+
*
|
|
69
|
+
* E.g. an event that was created by another Logger instance and should be
|
|
70
|
+
* forwarded to this logger.
|
|
71
|
+
*
|
|
72
|
+
* @param {string} eventName
|
|
73
|
+
* @param {import('./typedef.js').LogEventData} eventData
|
|
74
|
+
*/
|
|
75
|
+
logFromEvent(eventName: string, eventData: import("./typedef.js").LogEventData): boolean;
|
|
76
|
+
#private;
|
|
77
|
+
}
|
|
78
|
+
import { EventEmitter } from '../events';
|