@stone-js/service-container 0.1.0 → 0.1.2
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/LICENSE +1 -1
- package/README.md +24 -15
- package/dist/index.d.ts +259 -7
- package/dist/index.js +1 -1
- package/package.json +14 -14
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
# Stone.js
|
|
1
|
+
# Stone.js - Service Container
|
|
2
2
|
|
|
3
|
-
[](https://opensource.org/licenses/
|
|
3
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
4
|
[](https://www.npmjs.com/package/@stone-js/service-container)
|
|
5
5
|
[](https://www.npmjs.com/package/@stone-js/service-container)
|
|
6
6
|

|
|
7
|
-
[](https://github.com/stone-foundation/stone-js-service-container/actions/workflows/main.yml)
|
|
8
|
+
[](https://github.com/stone-foundation/stone-js-service-container/actions/workflows/release.yml)
|
|
9
|
+
[](https://sonarcloud.io/summary/new_code?id=stone-foundation_stone-js-service-container)
|
|
10
|
+
[](https://sonarcloud.io/summary/new_code?id=stone-foundation_stone-js-service-container)
|
|
11
|
+
[](./SECURITY.md)
|
|
12
|
+
[](https://github.com/stone-foundation/stone-js-service-container/security/code-scanning)
|
|
13
|
+
[](https://github.com/stone-foundation/stone-js-service-container/network/updates)
|
|
8
14
|
[](https://conventionalcommits.org)
|
|
9
15
|
|
|
10
|
-
IoC Service Container with
|
|
16
|
+
IoC Service Container with proxy resolver and destructuring injection provides a very simple, centralized container that stores and resolves libraries, objects, and values to better organize code, manage dependencies, and enhance testability.
|
|
11
17
|
|
|
12
18
|
---
|
|
13
19
|
|
|
14
|
-
##
|
|
20
|
+
## Overview
|
|
15
21
|
|
|
16
22
|
The **Service Container** is an advanced JavaScript/TypeScript library that helps you manage dependencies effectively in your applications. It utilizes the Inversion of Control (IoC) pattern to simplify dependency injection, allowing you to create highly decoupled and maintainable codebases.
|
|
17
23
|
|
|
@@ -41,9 +47,8 @@ PNPM:
|
|
|
41
47
|
pnpm add @stone-js/service-container
|
|
42
48
|
```
|
|
43
49
|
|
|
44
|
-
> [!
|
|
45
|
-
> This package is
|
|
46
|
-
> please refer to [`this guide on Pure ESM packages`](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).
|
|
50
|
+
> [!IMPORTANT]
|
|
51
|
+
> This package is **pure ESM**. Ensure your `package.json` includes `"type": "module"` or configure your bundler appropriately.
|
|
47
52
|
|
|
48
53
|
Make sure your project setup is compatible with ESM. This might involve updating your `package.json` or using certain bundler configurations.
|
|
49
54
|
|
|
@@ -90,16 +95,14 @@ class A {
|
|
|
90
95
|
Now, create a class `B` that depends on `Logger` and `A` to log the message:
|
|
91
96
|
|
|
92
97
|
```typescript
|
|
93
|
-
import { Binding } from '@stone-js/service-container';
|
|
94
|
-
|
|
95
98
|
// Your class B
|
|
96
99
|
class B {
|
|
97
100
|
private readonly a: A;
|
|
98
101
|
private readonly logger: Logger;
|
|
99
102
|
|
|
100
|
-
constructor({ a, logger }:
|
|
101
|
-
this.a = a
|
|
102
|
-
this.logger = logger
|
|
103
|
+
constructor({ a, logger }: { a: A, logger: Logger }) { // Dependency injection by destructuring
|
|
104
|
+
this.a = a
|
|
105
|
+
this.logger = logger
|
|
103
106
|
}
|
|
104
107
|
|
|
105
108
|
logMessage() {
|
|
@@ -331,13 +334,19 @@ With this library, managing dependencies in your application becomes much simple
|
|
|
331
334
|
|
|
332
335
|
The Stone Service Container simplifies dependency management in your applications, making them more modular, testable, and maintainable. It provides tools for binding instances, singletons, and factories, as well as auto and conditional binding. By leveraging Inversion of Control and dependency injection, the service container ensures efficient, flexible, and scalable management of dependencies, fitting projects of any size.
|
|
333
336
|
|
|
337
|
+
## Learn More
|
|
338
|
+
|
|
339
|
+
This package is part of the Stone.js ecosystem, a modern JavaScript framework built around the Continuum Architecture.
|
|
340
|
+
|
|
341
|
+
Explore the full documentation: [https://stonejs.dev](https://stonejs.dev)
|
|
342
|
+
|
|
334
343
|
## API documentation
|
|
335
344
|
|
|
336
|
-
- [API](https://github.com/
|
|
345
|
+
- [API](https://github.com/stone-foundation/stone-js-service-container/blob/main/docs/modules.md)
|
|
337
346
|
|
|
338
347
|
## Contributing
|
|
339
348
|
|
|
340
|
-
See [Contributing Guide](https://github.com/
|
|
349
|
+
See [Contributing Guide](https://github.com/stone-foundation/stone-js-service-container/blob/main/CONTRIBUTING.md).
|
|
341
350
|
|
|
342
351
|
## Credits
|
|
343
352
|
- [Laravel Service Container](https://github.com/illuminate/container)
|
package/dist/index.d.ts
CHANGED
|
@@ -24,13 +24,13 @@ declare abstract class Proxiable {
|
|
|
24
24
|
*
|
|
25
25
|
* @example
|
|
26
26
|
* ```typescript
|
|
27
|
-
* const myResolver: Resolver<number> = (container:
|
|
27
|
+
* const myResolver: Resolver<number> = (container: IContainer) => {
|
|
28
28
|
* // Use the container to resolve dependencies and return a number.
|
|
29
29
|
* return 42;
|
|
30
30
|
* };
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
|
-
type Resolver<V> = (container:
|
|
33
|
+
type Resolver<V> = (container: IContainer) => V;
|
|
34
34
|
/**
|
|
35
35
|
* A union type representing the possible keys that can be used to bind values in the container.
|
|
36
36
|
*
|
|
@@ -59,6 +59,106 @@ type BindingKey = number | boolean | string | Function | object | symbol;
|
|
|
59
59
|
* Unlike `BindingKey`, `BindingValue` represents the actual data or instance being bound, while `BindingKey` represents the identifier used to access that data.
|
|
60
60
|
*/
|
|
61
61
|
type BindingValue = number | boolean | string | Function | object | symbol;
|
|
62
|
+
/**
|
|
63
|
+
* Interface representing a Binding.
|
|
64
|
+
*
|
|
65
|
+
* This interface defines the contract for all types of bindings in the service container.
|
|
66
|
+
* Bindings are used to manage dependencies and control how objects are instantiated within the container.
|
|
67
|
+
*
|
|
68
|
+
* @template V - The type of value that this binding holds.
|
|
69
|
+
* @author Mr. Stone <evensstone@gmail.com>
|
|
70
|
+
*/
|
|
71
|
+
interface IBinding<V extends BindingValue> {
|
|
72
|
+
/**
|
|
73
|
+
* Resolve and return the value of the binding.
|
|
74
|
+
*
|
|
75
|
+
* @param container - The container to resolve dependencies from.
|
|
76
|
+
* @returns The resolved value of the binding.
|
|
77
|
+
*/
|
|
78
|
+
resolve: (container: IContainer) => V | undefined;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Interface representing a Container.
|
|
82
|
+
*
|
|
83
|
+
* This interface defines the public contract for dependency injection containers,
|
|
84
|
+
* allowing for better testability and preventing circular dependencies.
|
|
85
|
+
*
|
|
86
|
+
* @author Mr. Stone <evensstone@gmail.com>
|
|
87
|
+
*/
|
|
88
|
+
interface IContainer {
|
|
89
|
+
/**
|
|
90
|
+
* Retrieve the value of the bindings property.
|
|
91
|
+
*/
|
|
92
|
+
getBindings: () => Map<BindingKey, IBinding<BindingValue>>;
|
|
93
|
+
/**
|
|
94
|
+
* Retrieve the value of the aliases property.
|
|
95
|
+
*/
|
|
96
|
+
getAliases: () => Map<string, BindingKey>;
|
|
97
|
+
/**
|
|
98
|
+
* Set a binding as alias.
|
|
99
|
+
*/
|
|
100
|
+
alias: (key: BindingKey, aliases: string | string[]) => this;
|
|
101
|
+
/**
|
|
102
|
+
* Check if an alias exists in the container.
|
|
103
|
+
*/
|
|
104
|
+
isAlias: (alias: BindingKey) => boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Get a binding key by its alias.
|
|
107
|
+
*/
|
|
108
|
+
getAliasKey: (alias: BindingKey) => BindingKey | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* Bind a single instance or value into the container under the provided key.
|
|
111
|
+
*/
|
|
112
|
+
instance: (key: BindingKey, value: BindingValue) => this;
|
|
113
|
+
/**
|
|
114
|
+
* Bind a single instance or value into the container under the provided key if not already bound.
|
|
115
|
+
*/
|
|
116
|
+
instanceIf: (key: BindingKey, value: BindingValue) => this;
|
|
117
|
+
/**
|
|
118
|
+
* Bind a resolver function into the container under the provided key as a singleton.
|
|
119
|
+
*/
|
|
120
|
+
singleton: <V extends BindingValue>(key: BindingKey, resolver: Resolver<V>) => this;
|
|
121
|
+
/**
|
|
122
|
+
* Bind a resolver function into the container under the provided key as a singleton if not already bound.
|
|
123
|
+
*/
|
|
124
|
+
singletonIf: <V extends BindingValue>(key: BindingKey, resolver: Resolver<V>) => this;
|
|
125
|
+
/**
|
|
126
|
+
* Bind a resolver function into the container under the provided key, returning a new instance each time.
|
|
127
|
+
*/
|
|
128
|
+
binding: <V extends BindingValue>(key: BindingKey, resolver: Resolver<V>) => this;
|
|
129
|
+
/**
|
|
130
|
+
* Bind a resolver function into the container under the provided key, returning a new instance each time if not already bound.
|
|
131
|
+
*/
|
|
132
|
+
bindingIf: <V extends BindingValue>(key: BindingKey, resolver: Resolver<V>) => this;
|
|
133
|
+
/**
|
|
134
|
+
* Resolve a registered value from the container by its key.
|
|
135
|
+
*/
|
|
136
|
+
make: <V extends BindingValue>(key: BindingKey) => V;
|
|
137
|
+
/**
|
|
138
|
+
* Resolve a value from the container by its key, binding it if necessary.
|
|
139
|
+
*/
|
|
140
|
+
resolve: <V extends BindingValue>(key: BindingKey, singleton?: boolean) => V;
|
|
141
|
+
/**
|
|
142
|
+
* Resolve a value from the container by its key and return it in a factory function.
|
|
143
|
+
*/
|
|
144
|
+
factory: <V extends BindingValue>(key: BindingKey) => () => V;
|
|
145
|
+
/**
|
|
146
|
+
* Check if a value is already bound in the container by its key.
|
|
147
|
+
*/
|
|
148
|
+
bound: (key: BindingKey) => boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Check if a value is already bound in the container by its key.
|
|
151
|
+
*/
|
|
152
|
+
has: (key: BindingKey) => boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Reset the container so that all bindings are removed.
|
|
155
|
+
*/
|
|
156
|
+
clear: () => this;
|
|
157
|
+
/**
|
|
158
|
+
* AutoBind value to the service container.
|
|
159
|
+
*/
|
|
160
|
+
autoBinding: <V extends BindingValue>(name: BindingKey, item?: V, singleton?: boolean, alias?: string | string[]) => this;
|
|
161
|
+
}
|
|
62
162
|
|
|
63
163
|
/**
|
|
64
164
|
* Abstract class representing a Binding.
|
|
@@ -70,7 +170,7 @@ type BindingValue = number | boolean | string | Function | object | symbol;
|
|
|
70
170
|
* @template V - The type of value that this binding holds.
|
|
71
171
|
* @author Mr. Stone <evensstone@gmail.com>
|
|
72
172
|
*/
|
|
73
|
-
declare abstract class Binding<V extends BindingValue> {
|
|
173
|
+
declare abstract class Binding<V extends BindingValue> implements IBinding<V> {
|
|
74
174
|
/**
|
|
75
175
|
* The value held by the binding.
|
|
76
176
|
*
|
|
@@ -97,7 +197,7 @@ declare abstract class Binding<V extends BindingValue> {
|
|
|
97
197
|
* @param container - The container to resolve dependencies from.
|
|
98
198
|
* @returns The resolved value of the binding.
|
|
99
199
|
*/
|
|
100
|
-
abstract resolve(container:
|
|
200
|
+
abstract resolve(container: IContainer): V | undefined;
|
|
101
201
|
}
|
|
102
202
|
|
|
103
203
|
/**
|
|
@@ -109,7 +209,7 @@ declare abstract class Binding<V extends BindingValue> {
|
|
|
109
209
|
*
|
|
110
210
|
* @author Mr. Stone <evensstone@gmail.com>
|
|
111
211
|
*/
|
|
112
|
-
declare class Container extends Proxiable {
|
|
212
|
+
declare class Container extends Proxiable implements IContainer {
|
|
113
213
|
private readonly aliases;
|
|
114
214
|
private readonly resolvingKeys;
|
|
115
215
|
private readonly bindings;
|
|
@@ -272,5 +372,157 @@ declare class Container extends Proxiable {
|
|
|
272
372
|
autoBinding<V extends BindingValue>(name: BindingKey, item?: V, singleton?: boolean, alias?: string | string[]): this;
|
|
273
373
|
}
|
|
274
374
|
|
|
275
|
-
|
|
276
|
-
|
|
375
|
+
/**
|
|
376
|
+
* Class representing a ContainerError.
|
|
377
|
+
*
|
|
378
|
+
* @author Mr. Stone <evensstone@gmail.com>
|
|
379
|
+
*/
|
|
380
|
+
declare class ContainerError extends Error {
|
|
381
|
+
/**
|
|
382
|
+
* Error type indicating an alias conflict.
|
|
383
|
+
*/
|
|
384
|
+
static readonly ALIAS_TYPE = "alias";
|
|
385
|
+
/**
|
|
386
|
+
* Error type indicating that the resolver is not a function.
|
|
387
|
+
*/
|
|
388
|
+
static readonly RESOLVER_TYPE = "resolver";
|
|
389
|
+
/**
|
|
390
|
+
* Error type indicating a resolution failure.
|
|
391
|
+
*/
|
|
392
|
+
static readonly RESOLUTION_TYPE = "resolution";
|
|
393
|
+
/**
|
|
394
|
+
* Error type indicating an attempt to alias an unbound value.
|
|
395
|
+
*/
|
|
396
|
+
static readonly ALIAS_UNBOUND_TYPE = "alias_unbound";
|
|
397
|
+
/**
|
|
398
|
+
* Error type indicating that a value is not a service.
|
|
399
|
+
*/
|
|
400
|
+
static readonly NOT_A_SERVICE_TYPE = "not_a_service";
|
|
401
|
+
/**
|
|
402
|
+
* Error type indicating an error thrown by the resolver function.
|
|
403
|
+
*/
|
|
404
|
+
static readonly CANNOT_RESOLVE_TYPE = "cannot_resolve";
|
|
405
|
+
/**
|
|
406
|
+
* Error type indicating a circular dependency.
|
|
407
|
+
*/
|
|
408
|
+
static readonly CIRCULAR_DEPENDENCY_TYPE = "circular_dependency";
|
|
409
|
+
/**
|
|
410
|
+
* The type of the error.
|
|
411
|
+
*/
|
|
412
|
+
private readonly type;
|
|
413
|
+
/**
|
|
414
|
+
* Create a ContainerError.
|
|
415
|
+
*
|
|
416
|
+
* @param type - The type of the error.
|
|
417
|
+
* @param message - The error message or key related to the error.
|
|
418
|
+
*/
|
|
419
|
+
constructor(type: string, message: BindingKey);
|
|
420
|
+
/**
|
|
421
|
+
* Retrieve the error message based on the type and provided message.
|
|
422
|
+
*
|
|
423
|
+
* @param type - The type of the error.
|
|
424
|
+
* @param message - The error message or key related to the error.
|
|
425
|
+
* @returns The formatted error message.
|
|
426
|
+
*/
|
|
427
|
+
private getMessage;
|
|
428
|
+
/**
|
|
429
|
+
* Retrieve the resolution message based on the key.
|
|
430
|
+
*
|
|
431
|
+
* @param key - The key for which the resolution failed.
|
|
432
|
+
* @returns The formatted resolution error message.
|
|
433
|
+
*/
|
|
434
|
+
private getResolutionMessage;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Class representing a ResolverBinding.
|
|
439
|
+
*
|
|
440
|
+
* This class extends the Binding class, using a resolver function to lazily resolve the value when needed.
|
|
441
|
+
*
|
|
442
|
+
* @template V - The type of value that this binding holds.
|
|
443
|
+
* @author Mr. Stone <evensstone@gmail.com>
|
|
444
|
+
*/
|
|
445
|
+
declare abstract class ResolverBinding<V extends BindingValue> extends Binding<V> {
|
|
446
|
+
/**
|
|
447
|
+
* The resolver function used to provide the binding value.
|
|
448
|
+
*
|
|
449
|
+
* This function will be called when the value is needed, allowing for lazy instantiation
|
|
450
|
+
* and dependency resolution. It should return an instance of type `V`.
|
|
451
|
+
*/
|
|
452
|
+
protected readonly resolver: Resolver<V>;
|
|
453
|
+
/**
|
|
454
|
+
* Create a new instance of ResolverBinding.
|
|
455
|
+
*
|
|
456
|
+
* @param resolver - The resolver function to provide the binding value.
|
|
457
|
+
* @throws ContainerError if the resolver is not a function.
|
|
458
|
+
*/
|
|
459
|
+
constructor(resolver: Resolver<V>);
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* Class representing a Factory.
|
|
464
|
+
*
|
|
465
|
+
* The Factory class extends the ResolverBinding class, providing a mechanism to resolve a new instance each time the binding is resolved.
|
|
466
|
+
* This ensures that a fresh instance is created with each call to the `resolve` method.
|
|
467
|
+
*
|
|
468
|
+
* @template V - The type of value that this binding holds.
|
|
469
|
+
* @author Mr. Stone <evensstone@gmail.com>
|
|
470
|
+
*/
|
|
471
|
+
declare class Factory<V extends BindingValue> extends ResolverBinding<V> {
|
|
472
|
+
/**
|
|
473
|
+
* Resolve and return the value of the binding.
|
|
474
|
+
*
|
|
475
|
+
* Each time this method is called, a new value is resolved using the resolver function.
|
|
476
|
+
* This is intended for cases where a fresh instance is required for each resolution, such as factories or transient dependencies.
|
|
477
|
+
*
|
|
478
|
+
* @param container - The container to resolve dependencies from.
|
|
479
|
+
* @returns The resolved value of the binding.
|
|
480
|
+
* @throws ContainerError if the value cannot be resolved.
|
|
481
|
+
*/
|
|
482
|
+
resolve(container: IContainer): V;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Class representing an Instance.
|
|
487
|
+
*
|
|
488
|
+
* This class extends the Binding class and directly holds an instance value.
|
|
489
|
+
* It provides a straightforward resolution mechanism that simply returns the stored value.
|
|
490
|
+
*
|
|
491
|
+
* @template V - The type of value that this binding holds.
|
|
492
|
+
* @author Mr. Stone <evensstone@gmail.com>
|
|
493
|
+
*/
|
|
494
|
+
declare class Instance<V extends BindingValue> extends Binding<V> {
|
|
495
|
+
/**
|
|
496
|
+
* Resolve and return the value of the binding.
|
|
497
|
+
*
|
|
498
|
+
* @param _container - Container to resolve dependencies (not used in this implementation).
|
|
499
|
+
* @returns The resolved value of the binding.
|
|
500
|
+
*/
|
|
501
|
+
resolve(_container: IContainer): V | undefined;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
/**
|
|
505
|
+
* Class representing a Singleton.
|
|
506
|
+
*
|
|
507
|
+
* The Singleton class extends the ResolverBinding class, ensuring that the value is only resolved once.
|
|
508
|
+
* Subsequent calls to the `resolve` method will return the previously resolved value, making it behave as a singleton.
|
|
509
|
+
*
|
|
510
|
+
* @template V - The type of value that this binding holds.
|
|
511
|
+
* @author Mr. Stone <evensstone@gmail.com>
|
|
512
|
+
*/
|
|
513
|
+
declare class Singleton<V extends BindingValue> extends ResolverBinding<V> {
|
|
514
|
+
/**
|
|
515
|
+
* Resolve and return the value of the binding.
|
|
516
|
+
*
|
|
517
|
+
* If the value has already been resolved, return the cached value. Otherwise, use the resolver function
|
|
518
|
+
* to resolve the value, store it, and return it.
|
|
519
|
+
*
|
|
520
|
+
* @param container - The container to resolve dependencies from.
|
|
521
|
+
* @returns The resolved value of the binding.
|
|
522
|
+
* @throws ContainerError if the value cannot be resolved.
|
|
523
|
+
*/
|
|
524
|
+
resolve(container: IContainer): V | undefined;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
export { Binding, Container, ContainerError, Factory, Instance, Proxiable, ResolverBinding, Singleton };
|
|
528
|
+
export type { BindingKey, BindingValue, IBinding, IContainer, Resolver };
|
package/dist/index.js
CHANGED
|
@@ -539,7 +539,7 @@ class Container extends Proxiable {
|
|
|
539
539
|
if (!this.bound(key)) {
|
|
540
540
|
if (typeof value === 'function') {
|
|
541
541
|
const callable = value;
|
|
542
|
-
const resolver = Object.
|
|
542
|
+
const resolver = Object.hasOwn(callable, 'prototype')
|
|
543
543
|
? (container) => new callable.prototype.constructor(container)
|
|
544
544
|
: (container) => callable(container);
|
|
545
545
|
singleton ? this.singleton(key, resolver) : this.binding(key, resolver);
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stone-js/service-container",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Javascript/Typescript IoC Service Container with proxy resolver and destructuring injection",
|
|
5
5
|
"author": "Mr. Stone <evensstone@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+ssh://git@github.com/
|
|
9
|
+
"url": "git+ssh://git@github.com/stone-foundation/stone-js-service-container.git"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://
|
|
11
|
+
"homepage": "https://stonejs.dev",
|
|
12
12
|
"bugs": {
|
|
13
|
-
"url": "https://github.com/
|
|
13
|
+
"url": "https://github.com/stone-foundation/stone-js-service-container/issues"
|
|
14
14
|
},
|
|
15
15
|
"keywords": [
|
|
16
16
|
"DI",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"engines": {
|
|
39
|
-
"node": ">=18.
|
|
39
|
+
"node": ">=18.17.0"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"lint": "ts-standard src",
|
|
@@ -55,24 +55,24 @@
|
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@commitlint/cli": "^19.8.1",
|
|
57
57
|
"@commitlint/config-conventional": "^19.8.1",
|
|
58
|
-
"@rollup/plugin-commonjs": "^28.0.
|
|
58
|
+
"@rollup/plugin-commonjs": "^28.0.6",
|
|
59
59
|
"@rollup/plugin-multi-entry": "^6.0.1",
|
|
60
60
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
61
|
-
"@rollup/plugin-typescript": "^12.1.
|
|
62
|
-
"@types/node": "^
|
|
63
|
-
"@vitest/coverage-v8": "^3.
|
|
61
|
+
"@rollup/plugin-typescript": "^12.1.4",
|
|
62
|
+
"@types/node": "^24.0.7",
|
|
63
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
64
64
|
"husky": "^9.1.7",
|
|
65
65
|
"rimraf": "^6.0.1",
|
|
66
|
-
"rollup": "^4.
|
|
66
|
+
"rollup": "^4.44.1",
|
|
67
67
|
"rollup-plugin-delete": "^3.0.1",
|
|
68
68
|
"rollup-plugin-dts": "^6.2.1",
|
|
69
|
-
"rollup-plugin-node-externals": "^8.0.
|
|
69
|
+
"rollup-plugin-node-externals": "^8.0.1",
|
|
70
70
|
"ts-standard": "^12.0.2",
|
|
71
71
|
"tslib": "^2.8.1",
|
|
72
|
-
"typedoc": "^0.28.
|
|
73
|
-
"typedoc-plugin-markdown": "^4.
|
|
72
|
+
"typedoc": "^0.28.6",
|
|
73
|
+
"typedoc-plugin-markdown": "^4.7.0",
|
|
74
74
|
"typescript": "^5.6.3",
|
|
75
|
-
"vitest": "^3.
|
|
75
|
+
"vitest": "^3.2.4"
|
|
76
76
|
},
|
|
77
77
|
"ts-standard": {
|
|
78
78
|
"globals": [
|