@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.
Files changed (293) hide show
  1. package/README.md +173 -149
  2. package/dist/assets/autospuiten/car-paint-picker.js +41 -41
  3. package/dist/assets/autospuiten/labels.js +7 -7
  4. package/dist/classes/data/IterableTree.js +242 -242
  5. package/dist/classes/data/Selector.js +190 -190
  6. package/dist/classes/data/index.js +2 -2
  7. package/dist/classes/data/typedef.js +9 -9
  8. package/dist/classes/event-emitter/EventEmitter.js +273 -273
  9. package/dist/classes/event-emitter/index.js +2 -2
  10. package/dist/classes/index.js +4 -4
  11. package/dist/classes/promise/HkPromise.js +384 -384
  12. package/dist/classes/promise/index.js +1 -1
  13. package/dist/classes/stores/SubscribersCount.js +107 -107
  14. package/dist/classes/stores/index.js +1 -1
  15. package/dist/classes/streams/LogTransformStream.js +19 -19
  16. package/dist/classes/streams/ServerEventsStore.js +111 -111
  17. package/dist/classes/streams/TimeStampSource.js +26 -26
  18. package/dist/classes/streams/index.js +3 -3
  19. package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
  20. package/dist/classes/svelte/finite-state-machine/index.js +1 -1
  21. package/dist/classes/svelte/index.js +1 -11
  22. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  23. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  24. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  25. package/dist/config/README.md +197 -196
  26. package/dist/config/generators/imagetools.js +189 -189
  27. package/dist/config/generators/vite.js +148 -142
  28. package/dist/config/imagetools.d.ts +72 -72
  29. package/dist/config/vite.js +4 -4
  30. package/dist/constants/bases/index.js +13 -13
  31. package/dist/constants/http/headers.js +6 -6
  32. package/dist/constants/http/index.js +2 -2
  33. package/dist/constants/http/methods.js +14 -14
  34. package/dist/constants/index.js +6 -6
  35. package/dist/constants/mime/application.js +5 -5
  36. package/dist/constants/mime/audio.js +13 -13
  37. package/dist/constants/mime/image.js +3 -3
  38. package/dist/constants/mime/index.js +4 -4
  39. package/dist/constants/mime/text.js +2 -2
  40. package/dist/constants/regexp/README.md +96 -95
  41. package/dist/constants/regexp/index.js +31 -31
  42. package/dist/constants/regexp/inspiratie.js__ +95 -95
  43. package/dist/constants/regexp/text.d.ts +4 -4
  44. package/dist/constants/regexp/text.js +49 -49
  45. package/dist/constants/regexp/url.js +3 -3
  46. package/dist/constants/regexp/user.js +29 -29
  47. package/dist/constants/states/drag.js +6 -6
  48. package/dist/constants/states/drop.js +6 -6
  49. package/dist/constants/states/index.js +4 -4
  50. package/dist/constants/states/input.js +11 -11
  51. package/dist/constants/states/submit.js +4 -4
  52. package/dist/constants/time/index.js +28 -28
  53. package/dist/css/utilities.css +43 -43
  54. package/dist/design/README.md +405 -405
  55. package/dist/design/config/design-config.js +73 -73
  56. package/dist/design/generators/index.js +288 -288
  57. package/dist/design/index.js +96 -96
  58. package/dist/design/plugins/skeleton.js +208 -208
  59. package/dist/design/tailwind-theme-extend.js +158 -158
  60. package/dist/design/themes/README.md +102 -102
  61. package/dist/design/themes/hkdev/components/blocks/text-block.css +34 -34
  62. package/dist/design/themes/hkdev/components/boxes/game-box.css +11 -11
  63. package/dist/design/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
  64. package/dist/design/themes/hkdev/components/buttons/button-text.css +32 -32
  65. package/dist/design/themes/hkdev/components/buttons/button.css +146 -146
  66. package/dist/design/themes/hkdev/components/buttons/skip-button.css +5 -5
  67. package/dist/design/themes/hkdev/components/drag-drop/draggable.css +73 -73
  68. package/dist/design/themes/hkdev/components/drag-drop/drop-zone.css +58 -58
  69. package/dist/design/themes/hkdev/components/icons/icon-steeze.css +15 -15
  70. package/dist/design/themes/hkdev/components/inputs/text-input.css +102 -102
  71. package/dist/design/themes/hkdev/components/panels/panel.css +25 -25
  72. package/dist/design/themes/hkdev/components/rows/panel-grid-row.css +4 -4
  73. package/dist/design/themes/hkdev/components/rows/panel-row-2.css +5 -5
  74. package/dist/design/themes/hkdev/components.css +29 -29
  75. package/dist/design/themes/hkdev/debug.css +1 -1
  76. package/dist/design/themes/hkdev/global/layout.css +32 -32
  77. package/dist/design/themes/hkdev/global/on-colors.css +32 -32
  78. package/dist/design/themes/hkdev/globals.css +3 -3
  79. package/dist/design/themes/hkdev/responsive.css +12 -12
  80. package/dist/design/themes/hkdev/theme-ext.js +12 -12
  81. package/dist/design/themes/hkdev/theme.css +218 -218
  82. package/dist/design/utils/clamp.js +66 -66
  83. package/dist/design/utils/root-vars.js +102 -102
  84. package/dist/design/utils/scaling.js +228 -228
  85. package/dist/design/utils/states.js +22 -22
  86. package/dist/errors/api.js +9 -9
  87. package/dist/errors/generic.js +20 -20
  88. package/dist/errors/http.js +16 -16
  89. package/dist/errors/index.js +5 -5
  90. package/dist/errors/jwt.js +5 -5
  91. package/dist/errors/promise.js +25 -25
  92. package/dist/logging/README.md +158 -0
  93. package/dist/logging/index.d.ts +3 -1
  94. package/dist/logging/index.js +11 -7
  95. package/dist/logging/internal/adapters/console.js +114 -114
  96. package/dist/logging/internal/adapters/index.js +2 -2
  97. package/dist/logging/internal/adapters/pino.js +160 -142
  98. package/dist/logging/internal/adapters/typedef.js +10 -10
  99. package/dist/logging/internal/{unified-logger/constants.js → constants.js} +22 -22
  100. package/dist/logging/internal/factories/client.d.ts +1 -1
  101. package/dist/logging/internal/factories/client.js +21 -21
  102. package/dist/logging/internal/factories/server.d.ts +1 -1
  103. package/dist/logging/internal/factories/server.js +22 -22
  104. package/dist/logging/internal/factories/universal.d.ts +2 -2
  105. package/dist/logging/internal/factories/universal.js +22 -22
  106. package/dist/logging/internal/{unified-logger → logger}/Logger.d.ts +2 -2
  107. package/dist/logging/internal/{unified-logger → logger}/Logger.js +217 -217
  108. package/dist/logging/internal/logger/index.d.ts +1 -0
  109. package/dist/logging/internal/logger/index.js +1 -0
  110. package/dist/logging/internal/{unified-logger/typedef.d.ts → typedef.d.ts} +2 -1
  111. package/dist/logging/internal/{unified-logger/typedef.js → typedef.js} +21 -17
  112. package/dist/network/README.md +172 -172
  113. package/dist/network/cache/IndexedDbCache.js +1407 -1407
  114. package/dist/network/cache/MemoryResponseCache.js +138 -138
  115. package/dist/network/cache/index.js +5 -5
  116. package/dist/network/cache/typedef.js +41 -41
  117. package/dist/network/cache.js +3 -3
  118. package/dist/network/http/caching.js +261 -261
  119. package/dist/network/http/errors.js +97 -97
  120. package/dist/network/http/headers.js +75 -75
  121. package/dist/network/http/http-request.js +578 -578
  122. package/dist/network/http/index.js +22 -22
  123. package/dist/network/http/json-request.js +224 -224
  124. package/dist/network/http/mocks.js +65 -65
  125. package/dist/network/http/response.js +318 -318
  126. package/dist/network/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
  127. package/dist/network/http/typedef.js +93 -93
  128. package/dist/network/http/url.js +52 -52
  129. package/dist/network/http.js +5 -5
  130. package/dist/network/loaders/README.md +254 -254
  131. package/dist/network/loaders/audio/AudioLoader.svelte.js +58 -58
  132. package/dist/network/loaders/audio/AudioScene.svelte.js +324 -324
  133. package/dist/network/loaders/audio/mocks.js +35 -35
  134. package/dist/network/loaders/audio.js +1 -1
  135. package/dist/network/loaders/image/ImageLoader.svelte.js +44 -44
  136. package/dist/network/loaders/image/ImageScene.svelte.js +248 -248
  137. package/dist/network/loaders/image/ImageVariantsLoader.svelte.js +150 -150
  138. package/dist/network/loaders/image/index.js +4 -4
  139. package/dist/network/loaders/image/mocks.js +35 -35
  140. package/dist/network/loaders/image/typedef.js +8 -8
  141. package/dist/network/loaders/image/utils/index.js +86 -86
  142. package/dist/network/loaders/image.js +7 -7
  143. package/dist/network/loaders/typedef.js +38 -38
  144. package/dist/network/loaders.js +2 -2
  145. package/dist/network/states/NetworkLoader.svelte.js +338 -338
  146. package/dist/network/states/constants.js +3 -3
  147. package/dist/network/states/index.js +3 -3
  148. package/dist/network/states/mocks.js +30 -30
  149. package/dist/network/states/typedef.js +8 -8
  150. package/dist/network/typedef.js +9 -9
  151. package/dist/services/README.md +200 -0
  152. package/dist/services/index.d.ts +6 -1
  153. package/dist/services/index.js +8 -1
  154. package/dist/services/{internal/service-base → service-base}/ServiceBase.d.ts +2 -2
  155. package/dist/services/{internal/service-base → service-base}/ServiceBase.js +462 -462
  156. package/dist/services/{internal/service-base → service-base}/constants.d.ts +0 -12
  157. package/dist/services/{internal/service-base → service-base}/constants.js +98 -110
  158. package/dist/services/{internal/service-base → service-base}/index.js +3 -3
  159. package/dist/services/{internal/service-base → service-base}/typedef.d.ts +1 -1
  160. package/dist/services/{internal/service-base → service-base}/typedef.js +101 -101
  161. package/dist/services/{internal/service-manager → service-manager}/ServiceManager.d.ts +2 -2
  162. package/dist/services/{internal/service-manager → service-manager}/ServiceManager.js +608 -608
  163. package/dist/services/{internal/service-manager → service-manager}/constants.js +6 -6
  164. package/dist/services/{internal/service-manager → service-manager}/typedef.js +90 -90
  165. package/dist/states/index.js +1 -1
  166. package/dist/states/navigation.svelte.js +55 -55
  167. package/dist/stores/index.js +1 -1
  168. package/dist/stores/theme.js +80 -80
  169. package/dist/typedef/context.js +6 -6
  170. package/dist/typedef/drag.js +25 -25
  171. package/dist/typedef/drop.js +12 -12
  172. package/dist/typedef/index.d.ts +1 -0
  173. package/dist/typedef/index.js +4 -4
  174. package/dist/ui/components/button-group/ButtonGroup.svelte +82 -82
  175. package/dist/ui/components/button-group/typedef.js +10 -10
  176. package/dist/ui/components/compare-left-right/CompareLeftRight.svelte +179 -179
  177. package/dist/ui/components/compare-left-right/index.js +1 -1
  178. package/dist/ui/components/game-box/GameBox.svelte +577 -577
  179. package/dist/ui/components/game-box/gamebox.util.js +83 -83
  180. package/dist/ui/components/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  181. package/dist/ui/components/hk-app-layout/HkAppLayout.svelte +251 -251
  182. package/dist/ui/components/image-box/ImageBox.svelte +210 -210
  183. package/dist/ui/components/image-box/index.js +5 -5
  184. package/dist/ui/components/image-box/typedef.js +32 -32
  185. package/dist/ui/components/index.js +23 -23
  186. package/dist/ui/components/presenter/ImageSlide.svelte +64 -64
  187. package/dist/ui/components/presenter/Presenter.state.svelte.js +638 -638
  188. package/dist/ui/components/presenter/Presenter.svelte +142 -142
  189. package/dist/ui/components/presenter/constants.js +7 -7
  190. package/dist/ui/components/presenter/index.js +10 -10
  191. package/dist/ui/components/presenter/typedef.js +106 -106
  192. package/dist/ui/components/presenter/util.js +210 -210
  193. package/dist/ui/components/virtual-viewport/VirtualViewport.svelte +196 -196
  194. package/dist/ui/primitives/area/HkArea.svelte +49 -49
  195. package/dist/ui/primitives/area/HkGridArea.svelte +77 -77
  196. package/dist/ui/primitives/area/index.js +2 -2
  197. package/dist/ui/primitives/buttons/button/Button.svelte +82 -82
  198. package/dist/ui/primitives/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  199. package/dist/ui/primitives/buttons/button-text/TextButton.svelte +21 -21
  200. package/dist/ui/primitives/buttons/index.js +3 -3
  201. package/dist/ui/primitives/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  202. package/dist/ui/primitives/debug/index.js +1 -1
  203. package/dist/ui/primitives/drag-drop/DragController.js +44 -44
  204. package/dist/ui/primitives/drag-drop/DragDropContext.svelte +111 -111
  205. package/dist/ui/primitives/drag-drop/Draggable.svelte +519 -519
  206. package/dist/ui/primitives/drag-drop/DropZone.svelte +258 -258
  207. package/dist/ui/primitives/drag-drop/DropZoneArea.svelte +119 -119
  208. package/dist/ui/primitives/drag-drop/DropZoneList.svelte +125 -125
  209. package/dist/ui/primitives/drag-drop/actions.js +26 -26
  210. package/dist/ui/primitives/drag-drop/drag-state.svelte.js +322 -322
  211. package/dist/ui/primitives/drag-drop/index.js +7 -7
  212. package/dist/ui/primitives/drag-drop/util.js +85 -85
  213. package/dist/ui/primitives/hkdev/blocks/TextBlock.svelte +46 -46
  214. package/dist/ui/primitives/hkdev/buttons/CheckButton.svelte +62 -62
  215. package/dist/ui/primitives/icons/HkIcon.svelte +86 -86
  216. package/dist/ui/primitives/icons/HkTabIcon.svelte +116 -116
  217. package/dist/ui/primitives/icons/SteezeIcon.svelte +97 -97
  218. package/dist/ui/primitives/icons/index.js +6 -6
  219. package/dist/ui/primitives/icons/typedef.js +16 -16
  220. package/dist/ui/primitives/index.js +2 -2
  221. package/dist/ui/primitives/inputs/index.js +1 -1
  222. package/dist/ui/primitives/inputs/text-input/TestTextInput.svelte__ +102 -0
  223. package/dist/ui/primitives/inputs/text-input/TextInput.svelte +223 -223
  224. package/dist/ui/primitives/inputs/text-input/TextInput.svelte___ +83 -0
  225. package/dist/ui/primitives/inputs/text-input/assets/IconInvalid.svelte +14 -14
  226. package/dist/ui/primitives/inputs/text-input/assets/IconValid.svelte +12 -12
  227. package/dist/ui/primitives/layout/grid-layers/GridLayers.svelte +63 -63
  228. package/dist/ui/primitives/layout/grid-layers/GridLayers.svelte__heightFrom__ +372 -0
  229. package/dist/ui/primitives/layout/grid-layers/util.js +74 -74
  230. package/dist/ui/primitives/layout/index.js +1 -1
  231. package/dist/ui/primitives/panels/index.js +1 -1
  232. package/dist/ui/primitives/panels/panel/Panel.svelte +43 -43
  233. package/dist/ui/primitives/rows/index.js +3 -3
  234. package/dist/ui/primitives/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  235. package/dist/ui/primitives/rows/panel-row-2/PanelRow2.svelte +40 -40
  236. package/dist/ui/primitives/tab-bar/HkTabBar.state.svelte.js +149 -149
  237. package/dist/ui/primitives/tab-bar/HkTabBar.svelte +74 -74
  238. package/dist/ui/primitives/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  239. package/dist/ui/primitives/tab-bar/HkTabBarSelector.svelte +49 -49
  240. package/dist/ui/primitives/tab-bar/index.js +17 -17
  241. package/dist/ui/primitives/tab-bar/typedef.js +11 -11
  242. package/dist/util/array/index.js +436 -436
  243. package/dist/util/bases/base58.js +262 -262
  244. package/dist/util/bases/index.js +1 -1
  245. package/dist/util/compare/index.js +247 -247
  246. package/dist/util/css/css-vars.js +83 -83
  247. package/dist/util/css/index.js +1 -1
  248. package/dist/util/env/index.js +9 -9
  249. package/dist/util/exceptions/index.d.ts +4 -3
  250. package/dist/util/exceptions/index.js +26 -23
  251. package/dist/util/expect/arrays.js +47 -47
  252. package/dist/util/expect/index.js +259 -259
  253. package/dist/util/expect/primitives.js +55 -55
  254. package/dist/util/expect/url.js +60 -60
  255. package/dist/util/function/index.js +218 -218
  256. package/dist/util/geo/index.js +26 -26
  257. package/dist/util/index.js +7 -7
  258. package/dist/util/is/index.js +147 -147
  259. package/dist/util/iterate/index.js +204 -204
  260. package/dist/util/object/index.js +1345 -1345
  261. package/dist/util/singleton/index.js +97 -97
  262. package/dist/util/string/array-path.js +75 -75
  263. package/dist/util/string/convert.js +54 -54
  264. package/dist/util/string/fs.js +226 -226
  265. package/dist/util/string/index.js +5 -5
  266. package/dist/util/string/interpolate.js +61 -61
  267. package/dist/util/string/pad.js +10 -10
  268. package/dist/util/svelte/index.js +4 -4
  269. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  270. package/dist/util/svelte/observe/index.js +49 -49
  271. package/dist/util/svelte/state-context/index.js +117 -117
  272. package/dist/util/svelte/wait/index.js +38 -38
  273. package/dist/util/sveltekit/index.js +1 -1
  274. package/dist/util/sveltekit/route-folders/index.js +101 -101
  275. package/dist/util/time/index.js +328 -328
  276. package/dist/util/unique/index.js +231 -231
  277. package/dist/valibot/README.md +61 -50
  278. package/dist/valibot/index.js +8 -8
  279. package/dist/valibot/parsers/date.js__ +10 -0
  280. package/dist/valibot/parsers/email.d.ts +12 -0
  281. package/dist/valibot/parsers/email.js +34 -0
  282. package/dist/valibot/parsers/url.js +110 -110
  283. package/dist/valibot/parsers/user.js +23 -23
  284. package/dist/valibot/parsers.js +3 -3
  285. package/package.json +131 -131
  286. package/dist/logging/internal/unified-logger/index.d.ts +0 -3
  287. package/dist/logging/internal/unified-logger/index.js +0 -6
  288. package/dist/services/internal/index.d.ts +0 -6
  289. package/dist/services/internal/index.js +0 -8
  290. /package/dist/logging/internal/{unified-logger/constants.d.ts → constants.d.ts} +0 -0
  291. /package/dist/services/{internal/service-base → service-base}/index.d.ts +0 -0
  292. /package/dist/services/{internal/service-manager → service-manager}/constants.d.ts +0 -0
  293. /package/dist/services/{internal/service-manager → service-manager}/typedef.d.ts +0 -0
@@ -1,22 +1,22 @@
1
- /**
2
- * Generates state classes from an object of state variables
3
- *
4
- * @param {Object.<string, boolean>} stateObject
5
- * Object with state names as keys and boolean values
6
- *
7
- * @returns {string} Space-separated string of state classes
8
- *
9
- * @example
10
- * // Returns "state-selected state-error"
11
- * toStateClasses({ selected: true, loading: false, error: true });
12
- */
13
- export function toStateClasses(stateObject) {
14
- if (!stateObject || typeof stateObject !== 'object') {
15
- return '';
16
- }
17
-
18
- return Object.entries(stateObject)
19
- .filter((entry) => entry[1] === true)
20
- .map(([state]) => `state-${state}`)
21
- .join(' ');
22
- }
1
+ /**
2
+ * Generates state classes from an object of state variables
3
+ *
4
+ * @param {Object.<string, boolean>} stateObject
5
+ * Object with state names as keys and boolean values
6
+ *
7
+ * @returns {string} Space-separated string of state classes
8
+ *
9
+ * @example
10
+ * // Returns "state-selected state-error"
11
+ * toStateClasses({ selected: true, loading: false, error: true });
12
+ */
13
+ export function toStateClasses(stateObject) {
14
+ if (!stateObject || typeof stateObject !== 'object') {
15
+ return '';
16
+ }
17
+
18
+ return Object.entries(stateObject)
19
+ .filter((entry) => entry[1] === true)
20
+ .map(([state]) => `state-${state}`)
21
+ .join(' ');
22
+ }
@@ -1,9 +1,9 @@
1
- export class ResponseError extends Error {}
2
-
3
- export class AuthenticationError extends Error {}
4
-
5
- export class BadRequestError extends Error {}
6
-
7
- export class AbortError extends Error {}
8
-
9
- export class TimeoutError extends Error {}
1
+ export class ResponseError extends Error {}
2
+
3
+ export class AuthenticationError extends Error {}
4
+
5
+ export class BadRequestError extends Error {}
6
+
7
+ export class AbortError extends Error {}
8
+
9
+ export class TimeoutError extends Error {}
@@ -1,20 +1,20 @@
1
- export class TypeOrValueError extends Error {}
2
-
3
- export class InternalError extends Error {}
4
-
5
- export class InternalEventOrLogError extends Error {}
6
-
7
- export class DetailedError extends Error
8
- {
9
- /**
10
- * @param {string} message - Error message
11
- * @param {string|{[key: string]: any}|null} [details] - Additional details
12
- * @param {Error|string} [cause] - Original error
13
- */
14
- constructor(message, details, cause ) {
15
- super(message);
16
- this.name = 'DetailedError';
17
- this.details = details ?? null;
18
- this.cause = cause;
19
- }
20
- }
1
+ export class TypeOrValueError extends Error {}
2
+
3
+ export class InternalError extends Error {}
4
+
5
+ export class InternalEventOrLogError extends Error {}
6
+
7
+ export class DetailedError extends Error
8
+ {
9
+ /**
10
+ * @param {string} message - Error message
11
+ * @param {string|{[key: string]: any}|null} [details] - Additional details
12
+ * @param {Error|string} [cause] - Original error
13
+ */
14
+ constructor(message, details, cause ) {
15
+ super(message);
16
+ this.name = 'DetailedError';
17
+ this.details = details ?? null;
18
+ this.cause = cause;
19
+ }
20
+ }
@@ -1,16 +1,16 @@
1
- export class HttpError extends Error
2
- {
3
- /**
4
- * @param {number} status - HTTP status
5
- * @param {string} message - Error message
6
- * @param {string|{[key: string]: any}|null} [details] - Additional details
7
- * @param {Error|string} [cause] - Original error
8
- */
9
- constructor(status, message, details, cause ) {
10
- super(message);
11
- this.status = status;
12
- this.name = 'HttpError';
13
- this.details = details ?? null;
14
- this.cause = cause;
15
- }
16
- }
1
+ export class HttpError extends Error
2
+ {
3
+ /**
4
+ * @param {number} status - HTTP status
5
+ * @param {string} message - Error message
6
+ * @param {string|{[key: string]: any}|null} [details] - Additional details
7
+ * @param {Error|string} [cause] - Original error
8
+ */
9
+ constructor(status, message, details, cause ) {
10
+ super(message);
11
+ this.status = status;
12
+ this.name = 'HttpError';
13
+ this.details = details ?? null;
14
+ this.cause = cause;
15
+ }
16
+ }
@@ -1,5 +1,5 @@
1
- export * from './api.js';
2
- export * from './generic.js';
3
- export * from './http.js';
4
- export * from './jwt.js';
5
- export * from './promise.js';
1
+ export * from './api.js';
2
+ export * from './generic.js';
3
+ export * from './http.js';
4
+ export * from './jwt.js';
5
+ export * from './promise.js';
@@ -1,5 +1,5 @@
1
- export class SecretKeyError extends Error {}
2
- export class TokenExpiredError extends Error {}
3
-
4
- export class JsonWebTokenError extends Error {}
5
- export class InvalidSignatureError extends Error {}
1
+ export class SecretKeyError extends Error {}
2
+ export class TokenExpiredError extends Error {}
3
+
4
+ export class JsonWebTokenError extends Error {}
5
+ export class InvalidSignatureError extends Error {}
@@ -1,26 +1,26 @@
1
- /**
2
- * Promise-related error classes
3
- */
4
-
5
- /**
6
- * Error class specifically for HkPromise operations
7
- * Provides timeout and cancelled properties with proper type safety
8
- */
9
- export class PromiseError extends Error {
10
- /**
11
- * @param {string} message - Error message
12
- * @param {object} [options] - Error options
13
- * @param {boolean} [options.timeout=false] - Whether this is a timeout error
14
- * @param {boolean} [options.cancelled=false] - Whether this is a cancellation error
15
- * @param {Error|*} [options.cause] - Original error or cause
16
- * @param {*} [options.details] - Additional details object
17
- */
18
- constructor(message, options = {}) {
19
- super(message);
20
- this.name = 'PromiseError';
21
- this.timeout = options.timeout ?? false;
22
- this.cancelled = options.cancelled ?? false;
23
- this.cause = options.cause;
24
- this.details = options.details;
25
- }
1
+ /**
2
+ * Promise-related error classes
3
+ */
4
+
5
+ /**
6
+ * Error class specifically for HkPromise operations
7
+ * Provides timeout and cancelled properties with proper type safety
8
+ */
9
+ export class PromiseError extends Error {
10
+ /**
11
+ * @param {string} message - Error message
12
+ * @param {object} [options] - Error options
13
+ * @param {boolean} [options.timeout=false] - Whether this is a timeout error
14
+ * @param {boolean} [options.cancelled=false] - Whether this is a cancellation error
15
+ * @param {Error|*} [options.cause] - Original error or cause
16
+ * @param {*} [options.details] - Additional details object
17
+ */
18
+ constructor(message, options = {}) {
19
+ super(message);
20
+ this.name = 'PromiseError';
21
+ this.timeout = options.timeout ?? false;
22
+ this.cancelled = options.cancelled ?? false;
23
+ this.cause = options.cause;
24
+ this.details = options.details;
25
+ }
26
26
  }
@@ -0,0 +1,158 @@
1
+ # Logging
2
+
3
+ Universal logging utilities for SvelteKit applications with server/client/universal logger factories.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add -D pino-pretty
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```javascript
14
+ import { createServerLogger,
15
+ createClientLogger,
16
+ createLogger } from '@hkdigital/lib-core/logging/index.js';
17
+
18
+ // Server-side logging (uses pino)
19
+ const serverLogger = createServerLogger('app');
20
+
21
+ // Client-side logging (uses console)
22
+ const clientLogger = createClientLogger('app');
23
+
24
+ // Universal logger (works on both server and client)
25
+ const logger = createLogger('app');
26
+
27
+ // Log at different levels
28
+ logger.debug('Debug info', { data: 'details' });
29
+ logger.info('Info message');
30
+ logger.warn('Warning message');
31
+ logger.error('Error message', { error: new Error('Something went wrong') });
32
+ ```
33
+
34
+ ## SvelteKit Integration
35
+
36
+ ### Server-side logging (src/hooks.server.js)
37
+
38
+ ```javascript
39
+ import { createServerLogger } from '@hkdigital/lib-core/logging/index.js';
40
+
41
+ let logger;
42
+
43
+ // Initialize server logging and services
44
+ export async function init() {
45
+ logger = createServerLogger('server');
46
+
47
+ try {
48
+ logger.info('Initializing server');
49
+
50
+ // Initialize your services here
51
+ // const serviceManager = new ServiceManager();
52
+ // await serviceManager.startAll();
53
+
54
+ logger.info('Server initialization complete');
55
+ } catch (error) {
56
+ logger.error('Server initialization failed:', error);
57
+ throw error;
58
+ }
59
+ }
60
+
61
+ // Graceful shutdown
62
+ export async function destroy() {
63
+ if (logger) {
64
+ logger.info('Shutting down server');
65
+
66
+ // Clean up services here
67
+ // if (serviceManager) {
68
+ // await serviceManager.stopAll();
69
+ // }
70
+ }
71
+ }
72
+
73
+ /** @type {import('@sveltejs/kit').Handle} */
74
+ export async function handle({ event, resolve }) {
75
+ const start = Date.now();
76
+
77
+ logger?.info('Request started', {
78
+ method: event.request.method,
79
+ url: event.url.pathname,
80
+ userAgent: event.request.headers.get('user-agent')
81
+ });
82
+
83
+ try {
84
+ const response = await resolve(event);
85
+ const duration = Date.now() - start;
86
+
87
+ logger?.info('Request completed', {
88
+ method: event.request.method,
89
+ url: event.url.pathname,
90
+ status: response.status,
91
+ duration: `${duration}ms`
92
+ });
93
+
94
+ return response;
95
+ } catch (error) {
96
+ logger?.error('Request failed', {
97
+ method: event.request.method,
98
+ url: event.url.pathname,
99
+ error: error.message,
100
+ stack: error.stack
101
+ });
102
+ throw error;
103
+ }
104
+ }
105
+ ```
106
+
107
+ ### Client-side logging (src/hooks.client.js)
108
+
109
+ ```javascript
110
+ import { createClientLogger } from '@hkdigital/lib-core/logging/index.js';
111
+
112
+ const logger = createClientLogger('client');
113
+
114
+ /** @type {import('@sveltejs/kit').HandleClientError} */
115
+ export function handleError({ error, event }) {
116
+ logger.error('Client error occurred', {
117
+ message: error.message,
118
+ stack: error.stack,
119
+ url: event.url?.pathname,
120
+ userAgent: navigator.userAgent
121
+ });
122
+ }
123
+
124
+ // Initialize client-side logging
125
+ export function init() {
126
+ logger.info('Client application initialized', {
127
+ userAgent: navigator.userAgent,
128
+ viewport: `${window.innerWidth}x${window.innerHeight}`
129
+ });
130
+
131
+ // Log unhandled errors
132
+ window.addEventListener('error', (event) => {
133
+ logger.error('Unhandled error', {
134
+ message: event.error?.message || event.message,
135
+ filename: event.filename,
136
+ lineno: event.lineno,
137
+ colno: event.colno
138
+ });
139
+ });
140
+
141
+ // Log unhandled promise rejections
142
+ window.addEventListener('unhandledrejection', (event) => {
143
+ logger.error('Unhandled promise rejection', {
144
+ reason: event.reason
145
+ });
146
+ });
147
+ }
148
+
149
+ // Cleanup when app is destroyed
150
+ export function destroy() {
151
+ logger.info('Client application destroyed');
152
+ // Note: Console adapter doesn't require cleanup
153
+ }
154
+ ```
155
+
156
+ ## Development
157
+
158
+ Requires `pino-pretty` as peer dependency for development mode formatting.
@@ -1,4 +1,6 @@
1
1
  export { createServerLogger } from "./internal/factories/server.js";
2
2
  export { createClientLogger } from "./internal/factories/client.js";
3
3
  export { createLogger } from "./internal/factories/universal.js";
4
- export * from "./internal/unified-logger/index.js";
4
+ export { Logger } from "./internal/logger/index.js";
5
+ export * from "./internal/constants.js";
6
+ export * from "./internal/typedef.js";
@@ -1,7 +1,11 @@
1
- // Factories
2
- export { createServerLogger } from './internal/factories/server.js';
3
- export { createClientLogger } from './internal/factories/client.js';
4
- export { createLogger } from './internal/factories/universal.js';
5
-
6
- // Logger, constants and typedefs
7
- export * from './internal/unified-logger/index.js';
1
+ // Factories
2
+ export { createServerLogger } from './internal/factories/server.js';
3
+ export { createClientLogger } from './internal/factories/client.js';
4
+ export { createLogger } from './internal/factories/universal.js';
5
+
6
+ // Logger (advanced usage)
7
+ export { Logger } from './internal/logger/index.js';
8
+
9
+ // Constants and typedefs
10
+ export * from './internal/constants.js';
11
+ export * from './internal/typedef.js';
@@ -1,114 +1,114 @@
1
- import { LEVELS } from '../unified-logger/constants.js';
2
-
3
- /**
4
- * (Browser) console adapter that uses native DevTools styling
5
- */
6
- export class ConsoleAdapter {
7
- /**
8
- * Create a new ConsoleAdapter
9
- *
10
- * @param {Object} [options] - Browser configuration options
11
- * @param {string} [options.level] - Minimum log level
12
- * @param {Object} [options.context]
13
- * Additional context data to include with all logs
14
- */
15
- constructor(options = {}) {
16
- this.level = options.level || 'info';
17
- this.context = options.context || {};
18
- }
19
-
20
- /**
21
- * Handle log events from Logger
22
- *
23
- * @param {Object} logEvent - Log event from Logger
24
- */
25
- handleLog(logEvent) {
26
- // eslint-disable-next-line no-unused-vars
27
- const { level, message, details, source, timestamp } = logEvent;
28
-
29
- // Filter by level
30
- if (LEVELS[level] < LEVELS[this.level]) {
31
- return;
32
- }
33
-
34
- // Use browser console styling
35
- const styles = this._getStyles(level);
36
- const prefix = `%c[${source}]`;
37
-
38
- // Merge context with details
39
- const logData = details
40
- ? { ...this.context, ...details }
41
- : Object.keys(this.context).length > 0
42
- ? this.context
43
- : undefined;
44
-
45
- if (logData) {
46
- console[this._getConsoleMethod(level)](prefix, styles, message, logData);
47
- } else {
48
- console[this._getConsoleMethod(level)](prefix, styles, message);
49
- }
50
- }
51
-
52
- /**
53
- * Get CSS styles for browser console
54
- *
55
- * @param {string} level - Log level
56
- * @returns {string} CSS styles
57
- * @private
58
- */
59
- _getStyles(level) {
60
- const baseStyle =
61
- 'padding: 2px 4px; border-radius: 2px; font-weight: bold;';
62
-
63
- switch (level) {
64
- case 'debug':
65
- return `${baseStyle} background: #e3f2fd; color: #1976d2;`;
66
- case 'info':
67
- return `${baseStyle} background: #e8f5e8; color: #2e7d32;`;
68
- case 'warn':
69
- return `${baseStyle} background: #fff3e0; color: #f57c00;`;
70
- case 'error':
71
- return `${baseStyle} background: #ffebee; color: #d32f2f;`;
72
- case 'fatal':
73
- return `${baseStyle} background: #d32f2f; color: white;`;
74
- default:
75
- return baseStyle;
76
- }
77
- }
78
-
79
- /**
80
- * Get appropriate console method for log level
81
- *
82
- * @param {string} level - Log level
83
- * @returns {string} Console method name
84
- * @private
85
- */
86
- _getConsoleMethod(level) {
87
- switch (level) {
88
- case 'debug':
89
- return 'debug';
90
- case 'info':
91
- return 'info';
92
- case 'warn':
93
- return 'warn';
94
- case 'error':
95
- case 'fatal':
96
- return 'error';
97
- default:
98
- return 'log';
99
- }
100
- }
101
-
102
- /**
103
- * Create a child logger with additional context
104
- *
105
- * @param {Object} context - Additional context data
106
- * @returns {ConsoleAdapter} New adapter instance with context
107
- */
108
- child(context) {
109
- return new ConsoleAdapter({
110
- level: this.level,
111
- context: { ...this.context, ...context }
112
- });
113
- }
114
- }
1
+ import { LEVELS } from '../constants.js';
2
+
3
+ /**
4
+ * (Browser) console adapter that uses native DevTools styling
5
+ */
6
+ export class ConsoleAdapter {
7
+ /**
8
+ * Create a new ConsoleAdapter
9
+ *
10
+ * @param {Object} [options] - Browser configuration options
11
+ * @param {string} [options.level] - Minimum log level
12
+ * @param {Object} [options.context]
13
+ * Additional context data to include with all logs
14
+ */
15
+ constructor(options = {}) {
16
+ this.level = options.level || 'info';
17
+ this.context = options.context || {};
18
+ }
19
+
20
+ /**
21
+ * Handle log events from Logger
22
+ *
23
+ * @param {Object} logEvent - Log event from Logger
24
+ */
25
+ handleLog(logEvent) {
26
+ // eslint-disable-next-line no-unused-vars
27
+ const { level, message, details, source, timestamp } = logEvent;
28
+
29
+ // Filter by level
30
+ if (LEVELS[level] < LEVELS[this.level]) {
31
+ return;
32
+ }
33
+
34
+ // Use browser console styling
35
+ const styles = this._getStyles(level);
36
+ const prefix = `%c[${source}]`;
37
+
38
+ // Merge context with details
39
+ const logData = details
40
+ ? { ...this.context, ...details }
41
+ : Object.keys(this.context).length > 0
42
+ ? this.context
43
+ : undefined;
44
+
45
+ if (logData) {
46
+ console[this._getConsoleMethod(level)](prefix, styles, message, logData);
47
+ } else {
48
+ console[this._getConsoleMethod(level)](prefix, styles, message);
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Get CSS styles for browser console
54
+ *
55
+ * @param {string} level - Log level
56
+ * @returns {string} CSS styles
57
+ * @private
58
+ */
59
+ _getStyles(level) {
60
+ const baseStyle =
61
+ 'padding: 2px 4px; border-radius: 2px; font-weight: bold;';
62
+
63
+ switch (level) {
64
+ case 'debug':
65
+ return `${baseStyle} background: #e3f2fd; color: #1976d2;`;
66
+ case 'info':
67
+ return `${baseStyle} background: #e8f5e8; color: #2e7d32;`;
68
+ case 'warn':
69
+ return `${baseStyle} background: #fff3e0; color: #f57c00;`;
70
+ case 'error':
71
+ return `${baseStyle} background: #ffebee; color: #d32f2f;`;
72
+ case 'fatal':
73
+ return `${baseStyle} background: #d32f2f; color: white;`;
74
+ default:
75
+ return baseStyle;
76
+ }
77
+ }
78
+
79
+ /**
80
+ * Get appropriate console method for log level
81
+ *
82
+ * @param {string} level - Log level
83
+ * @returns {string} Console method name
84
+ * @private
85
+ */
86
+ _getConsoleMethod(level) {
87
+ switch (level) {
88
+ case 'debug':
89
+ return 'debug';
90
+ case 'info':
91
+ return 'info';
92
+ case 'warn':
93
+ return 'warn';
94
+ case 'error':
95
+ case 'fatal':
96
+ return 'error';
97
+ default:
98
+ return 'log';
99
+ }
100
+ }
101
+
102
+ /**
103
+ * Create a child logger with additional context
104
+ *
105
+ * @param {Object} context - Additional context data
106
+ * @returns {ConsoleAdapter} New adapter instance with context
107
+ */
108
+ child(context) {
109
+ return new ConsoleAdapter({
110
+ level: this.level,
111
+ context: { ...this.context, ...context }
112
+ });
113
+ }
114
+ }
@@ -1,2 +1,2 @@
1
- export * from './console.js';
2
- export * from './pino.js';
1
+ export * from './console.js';
2
+ export * from './pino.js';