@hkdigital/lib-core 0.5.85 → 0.5.87

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.
@@ -152,7 +152,8 @@ export class ServiceBase extends EventEmitter {
152
152
  try {
153
153
  this._setTargetState(wasRunning ? STATE_RUNNING : STATE_CONFIGURED);
154
154
  this._setState(STATE_CONFIGURING);
155
- this.logger.debug('Configuring service', { config });
155
+
156
+ this.logger.debug('Configuring service', { keys: Object.keys(config ?? {})});
156
157
 
157
158
  await this._configure(config, this.#lastConfig);
158
159
  this.#lastConfig = config;
@@ -160,9 +161,10 @@ export class ServiceBase extends EventEmitter {
160
161
  this._setState(wasRunning ? STATE_RUNNING : STATE_CONFIGURED);
161
162
  this.logger.info('Service configured');
162
163
  return { ok: true };
163
- } catch (error) {
164
- this._setError('configuration', /** @type {Error} */ (error));
165
- return { ok: false, error: this.error };
164
+ } catch (thing) {
165
+ const error = /** @type {Error} */ (thing);
166
+ this._setError('configuration', error);
167
+ return { ok: false, error };
166
168
  }
167
169
  }
168
170
 
package/dist/ui/README.md CHANGED
@@ -40,10 +40,10 @@ Compound or complex components that are:
40
40
 
41
41
  ```javascript
42
42
  // Import primitives for building blocks
43
- import { Button, TextInput, HkIcon } from '$lib/ui/primitives.js';
43
+ import { Button, TextInput, SteezeIcon } from '$lib/ui/primitives.js';
44
44
 
45
45
  // Import components for complete solutions
46
- import { Presenter, ImageBox, HkAppLayout } from '$lib/ui/components.js';
46
+ import { Presenter, ImageBox } from '$lib/ui/components.js';
47
47
  ```
48
48
 
49
- The distinction helps library users understand the intended use and complexity of each component.
49
+ The distinction helps library users understand the intended use and complexity of each component.
@@ -1,5 +1,10 @@
1
1
  <script>
2
2
  /**
3
+ * ===================================
4
+ * @depreceated Use SteezeIcon instead
5
+ * ===================================
6
+ *
7
+ *
3
8
  * Icon component
4
9
  *
5
10
  * Source code adapted from
@@ -38,11 +43,17 @@
38
43
  ...attrs
39
44
  } = $props();
40
45
 
41
- /** @type {any} */
42
- let icon = $state();
46
+ /** @type {import('./typedef.js').IconThemeSource|null} */
47
+ let icon = $state(null);
43
48
 
44
49
  $effect(() => {
45
- icon = src?.[theme] ?? src?.['default'] ?? Object.values(src)?.[0];
50
+ if( src )
51
+ {
52
+ icon = src[theme] ?? src?.['default'] ?? Object.values(src)?.[0];
53
+ }
54
+ else {
55
+ throw new Error('Missing property [src]');
56
+ }
46
57
  });
47
58
 
48
59
  let normalizedSize = $derived.by(() => {
@@ -57,31 +68,33 @@
57
68
  });
58
69
  </script>
59
70
 
60
- <svg
61
- data-hk-icon
62
- {...icon?.a}
63
- xmlns="http://www.w3.org/2000/svg"
64
- width={normalizedSize}
65
- height={normalizedSize}
66
- class="{base} {classes}"
67
- {...attrs}
68
- >
69
- {#each icon?.path ?? [] as a}
70
- <path {...a} />
71
- {/each}
72
- {#each icon?.rect ?? [] as a}
73
- <rect {...a} />
74
- {/each}
75
- {#each icon?.circle ?? [] as a}
76
- <circle {...a} />
77
- {/each}
78
- {#each icon?.polygon ?? [] as a}
79
- <polygon {...a} />
80
- {/each}
81
- {#each icon?.polyline ?? [] as a}
82
- <polyline {...a} />
83
- {/each}
84
- {#each icon?.line ?? [] as a}
85
- <line {...a} />
86
- {/each}
87
- </svg>
71
+ {#if icon}
72
+ <svg
73
+ data-hk-icon
74
+ {...icon?.a}
75
+ xmlns="http://www.w3.org/2000/svg"
76
+ width={normalizedSize}
77
+ height={normalizedSize}
78
+ class="{base} {classes}"
79
+ {...attrs}
80
+ >
81
+ {#each icon?.path ?? [] as a}
82
+ <path {...a} />
83
+ {/each}
84
+ {#each icon?.rect ?? [] as a}
85
+ <rect {...a} />
86
+ {/each}
87
+ {#each icon?.circle ?? [] as a}
88
+ <circle {...a} />
89
+ {/each}
90
+ {#each icon?.polygon ?? [] as a}
91
+ <polygon {...a} />
92
+ {/each}
93
+ {#each icon?.polyline ?? [] as a}
94
+ <polyline {...a} />
95
+ {/each}
96
+ {#each icon?.line ?? [] as a}
97
+ <line {...a} />
98
+ {/each}
99
+ </svg>
100
+ {/if}
@@ -1,5 +1,9 @@
1
1
  <script>
2
2
  /**
3
+ * =========================================
4
+ * @depreceated Use SteezeTabBarIcon instead
5
+ * =========================================
6
+ *
3
7
  * TabBarIcon component
4
8
  *
5
9
  * Following component guidelines from Skeleton
@@ -50,50 +50,48 @@
50
50
  ...attrs
51
51
  } = $props();
52
52
 
53
- /** @type {any} */
54
- let icon = $state();
53
+ /** @type {import('./typedef.js').IconThemeSource|null} */
54
+ let icon = $state(null);
55
55
 
56
56
  $effect(() => {
57
- icon = src?.[theme] ?? src?.['default'] ?? Object.values(src)?.[0];
57
+ if( src )
58
+ {
59
+ icon = src[theme] ?? src?.['default'] ?? Object.values(src)?.[0];
60
+ }
61
+ else {
62
+ throw new Error('Missing property [src]');
63
+ }
58
64
  });
59
-
60
- // if (size !== '100%') {
61
- // if (size.slice(-1) !== '%') {
62
- // try {
63
- // size = parseInt(size, 10) + 'px';
64
- // } catch (error) {
65
- // size = '100%';
66
- // }
67
- // }
68
- // }
69
65
  </script>
70
66
 
71
- <svg
72
- data-component="icon"
73
- data-type="steeze"
74
- data-size={size}
75
- data-variant={variant}
76
- {...icon?.a}
77
- xmlns="http://www.w3.org/2000/svg"
78
- class="{base} {classes}"
79
- {...attrs}
80
- >
81
- {#each icon?.path ?? [] as a}
82
- <path {...a} />
83
- {/each}
84
- {#each icon?.rect ?? [] as a}
85
- <rect {...a} />
86
- {/each}
87
- {#each icon?.circle ?? [] as a}
88
- <circle {...a} />
89
- {/each}
90
- {#each icon?.polygon ?? [] as a}
91
- <polygon {...a} />
92
- {/each}
93
- {#each icon?.polyline ?? [] as a}
94
- <polyline {...a} />
95
- {/each}
96
- {#each icon?.line ?? [] as a}
97
- <line {...a} />
98
- {/each}
99
- </svg>
67
+ {#if icon}
68
+ <svg
69
+ data-component="icon"
70
+ data-type="steeze"
71
+ data-size={size}
72
+ data-variant={variant}
73
+ {...icon.a}
74
+ xmlns="http://www.w3.org/2000/svg"
75
+ class="{base} {classes}"
76
+ {...attrs}
77
+ >
78
+ {#each icon.path ?? [] as a}
79
+ <path {...a} />
80
+ {/each}
81
+ {#each icon.rect ?? [] as a}
82
+ <rect {...a} />
83
+ {/each}
84
+ {#each icon.circle ?? [] as a}
85
+ <circle {...a} />
86
+ {/each}
87
+ {#each icon.polygon ?? [] as a}
88
+ <polygon {...a} />
89
+ {/each}
90
+ {#each icon.polyline ?? [] as a}
91
+ <polyline {...a} />
92
+ {/each}
93
+ {#each icon.line ?? [] as a}
94
+ <line {...a} />
95
+ {/each}
96
+ </svg>
97
+ {/if}
@@ -1,3 +1,2 @@
1
- export { default as HkIcon } from "./HkIcon.svelte";
2
- export { default as HkTabIcon } from "./HkTabIcon.svelte";
3
1
  export { default as SteezeIcon } from "./SteezeIcon.svelte";
2
+ export { default as HkIcon } from "./HkIcon.svelte";
@@ -1,4 +1,11 @@
1
+ export { default as SteezeIcon } from './SteezeIcon.svelte';
2
+
3
+ // @todo create tab icon
4
+ //export { default as SteezeTabIcon } from './SteezeTabIcon.svelte';
5
+
6
+ // @depreceated
1
7
  export { default as HkIcon } from './HkIcon.svelte';
2
- export { default as HkTabIcon } from './HkTabIcon.svelte';
3
8
 
4
- export { default as SteezeIcon } from './SteezeIcon.svelte';
9
+ // @depreceated
10
+ // export { default as HkTabIcon } from './HkTabIcon.svelte';
11
+
@@ -4,6 +4,9 @@
4
4
 
5
5
  import { Star, ExclamationTriangle, CheckCircle } from '@steeze-ui/heroicons';
6
6
 
7
+ //
8
+ // @fixme use SteezeIcon instead
9
+ //
7
10
  import { HkIcon } from '../../../primitives.js';
8
11
 
9
12
  import {
@@ -37,35 +37,35 @@ export function exportNotNullish(obj: object, onlyKeys?: string[]): object;
37
37
  * - This method can e.g. be used to export a data object without it's
38
38
  * 'internal' properties
39
39
  *
40
- * @param {object} obj
40
+ * @param {Record<string,any>} obj
41
41
  *
42
42
  * @param {string[]} [keepKeys]
43
43
  * If specified, the specified private keys will be exported (e.g. `_id`)
44
44
  *
45
45
  * @returns {object} new object without properties that start with an underscore
46
46
  */
47
- export function exportPublic(obj: object, keepKeys?: string[]): object;
47
+ export function exportPublic(obj: Record<string, any>, keepKeys?: string[]): object;
48
48
  /**
49
49
  * Creates a copy of an object or array that contains only primitive values
50
50
  * - Nested objects and arrays are completely removed
51
51
  * - Only string, number, boolean, null, undefined values are kept
52
52
  *
53
- * @param {object|array} objectOrArray
53
+ * @param {Record<string,any>|Array<any>} objectOrArray
54
54
  *
55
- * @returns {object|array} new object or array with only primitive values
55
+ * @returns {Record<string,any>|Array<any>} new object or array with only primitive values
56
56
  */
57
- export function exportNotNested(objectOrArray: object | array): object | array;
57
+ export function exportNotNested(objectOrArray: Record<string, any> | Array<any>): Record<string, any> | Array<any>;
58
58
  /**
59
59
  * Keep only the specified keys in the object
60
60
  * - deletes all other key-value pairs in the object
61
61
  *
62
- * @param {object} obj
63
- * @param {string[]|Set} keys
62
+ * @param {Record<string,any>} obj
63
+ * @param {string[]|Set<string>} keys
64
64
  * @param {boolean} [removeNullAndUndefined=true]
65
65
  *
66
66
  * @returns {object} object that only contains the specified keys
67
67
  */
68
- export function keep(obj: object, keys: string[] | Set<any>, removeNullAndUndefined?: boolean): object;
68
+ export function keep(obj: Record<string, any>, keys: string[] | Set<string>, removeNullAndUndefined?: boolean): object;
69
69
  /**
70
70
  * Freezes an object recursively
71
71
  * - Allows non-objects to be passed as input parameter (non-objects are
@@ -73,49 +73,51 @@ export function keep(obj: object, keys: string[] | Set<any>, removeNullAndUndefi
73
73
  *
74
74
  * @param {any} value
75
75
  *
76
+ * @param {Set<any>} [_found]
77
+ *
76
78
  * @returns {any}
77
79
  * recursively frozen object or original input value if a non-object was
78
80
  * supplied as input parameter
79
81
  */
80
- export function deepFreeze(value: any, _found: any): any;
82
+ export function deepFreeze(value: any, _found?: Set<any>): any;
81
83
  /**
82
84
  * Set a value in an object using a path and value pair.
83
85
  * - Automatically creates parent objects
84
86
  *
85
87
  * @param {object} obj - Object to set the value in
86
- * @param {string|Array} path - Dot separated string path or array path
88
+ * @param {string|Array<string>} path - Dot separated string path or array path
87
89
  * @param {any} value - value to set
88
90
  *
89
91
  * @returns {boolean} true if the value was changed
90
92
  */
91
- export function objectSet(obj: object, path: string | any[], value: any, ...args: any[]): boolean;
93
+ export function objectSet(obj: object, path: string | Array<string>, value: any, ...args: any[]): boolean;
92
94
  /**
93
95
  * Removes a value at the specified object path from the object.
94
96
  * - All parent objects that remain empty will be removed too (recursively)
95
97
  *
96
- * @param {object} obj - Object to delete the path from
97
- * @param {string|Array} path - Dot separated string path or array path
98
+ * @param {Record<string,any>} obj - Object to delete the path from
99
+ * @param {string|Array<string>} path - Dot separated string path or array path
98
100
  */
99
- export function deletePath(obj: object, path: string | any[]): void;
101
+ export function deletePath(obj: Record<string, any>, path: string | Array<string>): void;
100
102
  /**
101
103
  * Get a value from an object using a path
102
104
  * - Returns a default value if not found, with is [undefined] by default
103
105
  *
104
- * @param {object} obj - Object to get the value from
105
- * @param {string|Array} path - Dot separated string path or array path
106
+ * @param {Record<string,any>} obj - Object to get the value from
107
+ * @param {string|Array<string>} path - Dot separated string path or array path
106
108
  *
107
109
  * @param {any} [defaultValue=undefined]
108
110
  * Value to return if the value does not exist
109
111
  *
110
112
  * @return {any} value found at path, defaultValue or undefined
111
113
  */
112
- export function objectGet(obj: object, path: string | any[], defaultValue?: any): any;
114
+ export function objectGet(obj: Record<string, any>, path: string | Array<string>, defaultValue?: any): any;
113
115
  /**
114
116
  * Get a value from an object using a path
115
117
  * - Throws an exception if the path does not exist or the value is undefined
116
118
  *
117
- * @param {object} obj - Object to get the value from
118
- * @param {string|Array} path - Dot separated string path or array path
119
+ * @param {Record<string,any>} obj - Object to get the value from
120
+ * @param {string|Array<string>} path - Dot separated string path or array path
119
121
  *
120
122
  * @param {function} [parseFn]
121
123
  * Optional parser function that checks and converts the value
@@ -125,7 +127,7 @@ export function objectGet(obj: object, path: string | any[], defaultValue?: any)
125
127
  *
126
128
  * @return {any} value found at path
127
129
  */
128
- export function objectGetWithThrow(obj: object, path: string | any[], parseFn?: Function): any;
130
+ export function objectGetWithThrow(obj: Record<string, any>, path: string | Array<string>, parseFn?: Function): any;
129
131
  /**
130
132
  * Get an iterator that returns the value of a path for each item (object)
131
133
  * in the list of objects
@@ -112,7 +112,7 @@ export function exportNotNullish(obj, onlyKeys) {
112
112
  * - This method can e.g. be used to export a data object without it's
113
113
  * 'internal' properties
114
114
  *
115
- * @param {object} obj
115
+ * @param {Record<string,any>} obj
116
116
  *
117
117
  * @param {string[]} [keepKeys]
118
118
  * If specified, the specified private keys will be exported (e.g. `_id`)
@@ -122,6 +122,7 @@ export function exportNotNullish(obj, onlyKeys) {
122
122
  export function exportPublic(obj, keepKeys) {
123
123
  expect.object(obj);
124
124
 
125
+ /** @type {Record<string,any>} */
125
126
  const newObj = {};
126
127
 
127
128
  const keepKeysSet = keepKeys ? new Set(keepKeys) : null;
@@ -153,9 +154,9 @@ export function exportPublic(obj, keepKeys) {
153
154
  * - Nested objects and arrays are completely removed
154
155
  * - Only string, number, boolean, null, undefined values are kept
155
156
  *
156
- * @param {object|array} objectOrArray
157
+ * @param {Record<string,any>|Array<any>} objectOrArray
157
158
  *
158
- * @returns {object|array} new object or array with only primitive values
159
+ * @returns {Record<string,any>|Array<any>} new object or array with only primitive values
159
160
  */
160
161
  export function exportNotNested(objectOrArray) {
161
162
  expect.object(objectOrArray);
@@ -209,6 +210,7 @@ export function exportNotNested(objectOrArray) {
209
210
  return objectOrArray;
210
211
  }
211
212
 
213
+ /** @type {Record<string,any>} */
212
214
  const outputObj = {};
213
215
 
214
216
  for (const key in objectOrArray) {
@@ -233,8 +235,8 @@ export function exportNotNested(objectOrArray) {
233
235
  * Keep only the specified keys in the object
234
236
  * - deletes all other key-value pairs in the object
235
237
  *
236
- * @param {object} obj
237
- * @param {string[]|Set} keys
238
+ * @param {Record<string,any>} obj
239
+ * @param {string[]|Set<string>} keys
238
240
  * @param {boolean} [removeNullAndUndefined=true]
239
241
  *
240
242
  * @returns {object} object that only contains the specified keys
@@ -272,6 +274,8 @@ export function keep(obj, keys, removeNullAndUndefined = true) {
272
274
  *
273
275
  * @param {any} value
274
276
  *
277
+ * @param {Set<any>} [_found]
278
+ *
275
279
  * @returns {any}
276
280
  * recursively frozen object or original input value if a non-object was
277
281
  * supplied as input parameter
@@ -311,7 +315,7 @@ export function deepFreeze(value, _found) {
311
315
  * - Automatically creates parent objects
312
316
  *
313
317
  * @param {object} obj - Object to set the value in
314
- * @param {string|Array} path - Dot separated string path or array path
318
+ * @param {string|Array<string>} path - Dot separated string path or array path
315
319
  * @param {any} value - value to set
316
320
  *
317
321
  * @returns {boolean} true if the value was changed
@@ -382,8 +386,8 @@ export function objectSet(obj, path, value) {
382
386
  * Removes a value at the specified object path from the object.
383
387
  * - All parent objects that remain empty will be removed too (recursively)
384
388
  *
385
- * @param {object} obj - Object to delete the path from
386
- * @param {string|Array} path - Dot separated string path or array path
389
+ * @param {Record<string,any>} obj - Object to delete the path from
390
+ * @param {string|Array<string>} path - Dot separated string path or array path
387
391
  */
388
392
  export function deletePath(obj, path) {
389
393
  expect.object(obj);
@@ -500,8 +504,8 @@ export function deletePath(obj, path) {
500
504
  * Get a value from an object using a path
501
505
  * - Returns a default value if not found, with is [undefined] by default
502
506
  *
503
- * @param {object} obj - Object to get the value from
504
- * @param {string|Array} path - Dot separated string path or array path
507
+ * @param {Record<string,any>} obj - Object to get the value from
508
+ * @param {string|Array<string>} path - Dot separated string path or array path
505
509
  *
506
510
  * @param {any} [defaultValue=undefined]
507
511
  * Value to return if the value does not exist
@@ -541,8 +545,8 @@ export function objectGet(obj, path, defaultValue) {
541
545
  * Get a value from an object using a path
542
546
  * - Throws an exception if the path does not exist or the value is undefined
543
547
  *
544
- * @param {object} obj - Object to get the value from
545
- * @param {string|Array} path - Dot separated string path or array path
548
+ * @param {Record<string,any>} obj - Object to get the value from
549
+ * @param {string|Array<string>} path - Dot separated string path or array path
546
550
  *
547
551
  * @param {function} [parseFn]
548
552
  * Optional parser function that checks and converts the value
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hkdigital/lib-core",
3
- "version": "0.5.85",
3
+ "version": "0.5.87",
4
4
  "author": {
5
5
  "name": "HKdigital",
6
6
  "url": "https://hkdigital.nl"
@@ -1,40 +0,0 @@
1
- export default HkTabIcon;
2
- type HkTabIcon = {
3
- $on?(type: string, callback: (e: any) => void): () => void;
4
- $set?(props: Partial<{
5
- src: IconSource;
6
- iconTheme?: string | undefined;
7
- label?: string | undefined;
8
- route?: string | undefined;
9
- active?: boolean | undefined;
10
- base?: string | undefined;
11
- bg?: string | undefined;
12
- padding?: string | undefined;
13
- margin?: string | undefined;
14
- classes?: string | undefined;
15
- iconClasses?: string | undefined;
16
- iconHeight?: string | undefined;
17
- labelClasses?: string | undefined;
18
- rect?: DOMRect | undefined;
19
- } & {
20
- [attr: string]: any;
21
- }>): void;
22
- };
23
- declare const HkTabIcon: import("svelte").Component<{
24
- src: import("./typedef.js").IconSource;
25
- iconTheme?: string;
26
- label?: string;
27
- route?: string;
28
- active?: boolean;
29
- base?: string;
30
- bg?: string;
31
- padding?: string;
32
- margin?: string;
33
- classes?: string;
34
- iconClasses?: string;
35
- iconHeight?: string;
36
- labelClasses?: string;
37
- rect?: DOMRect;
38
- } & {
39
- [attr: string]: any;
40
- }, {}, "">;
@@ -1,60 +0,0 @@
1
- src/lib/ui/components/rows/panel-row-2/PanelRow2.svelte:2 - Parent index.js import (use $lib/ or import specific file)
2
- import { PanelGridRow } from '../index.js';
3
- import { PanelGridRow } from '../index.js'; // TODO: Import specific file or refactor
4
-
5
- src/lib/ui/components/tab-bar/HkTabBar.svelte:9 - Missing non-standard extension (use './HkTabBar.state.svelte.js')
6
- import { createOrGetState } from './HkTabBar.state.svelte';
7
- import { createOrGetState } from './HkTabBar.state.svelte.js';
8
-
9
- src/lib/ui/primitives/icons/HkTabIcon.svelte:13 - Directory import (write explicitly: '../area/index.js')
10
- import { HkGridArea } from '../area';
11
- import { HkGridArea } from '../area/index.js';
12
-
13
- src/lib/util/array/index.js:5 - Parent index.js import (use $lib/ or import specific file)
14
- import { smallestFirst, largestFirst } from '../compare/index.js';
15
- import { smallestFirst, largestFirst } from '../compare.js';
16
-
17
- src/lib/util/array/index.js:7 - Parent index.js import (use $lib/ or import specific file)
18
- import { objectGet, PATH_SEPARATOR } from '../object/index.js';
19
- import { objectGet, PATH_SEPARATOR } from '../object.js';
20
-
21
- src/lib/util/compare/index.js:3 - Parent index.js import (use $lib/ or import specific file)
22
- import { objectGet } from '../object/index.js';
23
- import { objectGet } from '../object.js';
24
-
25
- src/lib/util/expect/compounds.js:2 - Parent index.js import (use $lib/ or import specific file)
26
- import * as is from '../is/index.js';
27
- import * as is from '../is.js';
28
-
29
- src/lib/util/expect/objects.js:2 - Parent index.js import (use $lib/ or import specific file)
30
- import * as is from '../is/index.js';
31
- import * as is from '../is.js';
32
-
33
- src/lib/util/iterate/index.js:4 - Parent index.js import (use $lib/ or import specific file)
34
- import { smallestFirst, largestFirst } from '../compare/index.js';
35
- import { smallestFirst, largestFirst } from '../compare.js';
36
-
37
- src/lib/util/object/index.js:5 - Parent index.js import (use $lib/ or import specific file)
38
- import { equals } from '../compare/index.js';
39
- import { equals } from '../compare.js';
40
-
41
- src/lib/util/object/index.js:7 - Parent index.js import (use $lib/ or import specific file)
42
- import { toArrayPath } from '../array/index.js';
43
- import { toArrayPath } from '../array.js';
44
-
45
- src/lib/util/object/index.js:11 - Parent index.js import (use $lib/ or import specific file)
46
- import * as is from '../is/index.js';
47
- import * as is from '../is.js';
48
-
49
- src/lib/util/object/index.js:13 - Parent index.js import (use $lib/ or import specific file)
50
- import { iterateObjectPaths, iterateObjectEntries } from '../iterate/index.js';
51
- import { iterateObjectPaths, iterateObjectEntries } from '../iterate.js';
52
-
53
- src/lib/util/string/interpolate.js:5 - Parent index.js import (use $lib/ or import specific file)
54
- import { objectGet, PATH_SEPARATOR } from '../object/index.js';
55
- import { objectGet, PATH_SEPARATOR } from '../object.js';
56
-
57
- src/routes/explorer/[...path]/+page.svelte:4 - Parent index.js import (use $lib/ or import specific file)
58
- import { TopBar, Explorer } from '../components/index.js';
59
- import { TopBar, Explorer } from '../components.js';
60
-