@husky-di/decorator 1.0.0 → 1.1.0

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 CHANGED
@@ -178,7 +178,7 @@ console.log(result); // "Logged: Executing: SELECT * FROM users WHERE id = 123"
178
178
  1. **重复使用 @injectable()**
179
179
 
180
180
  ```typescript
181
- // 错误:不能对同一个类使用两次 @injectable()
181
+ // 错误:不能对同一个类使用两次 @injectable()
182
182
  @injectable()
183
183
  @injectable()
184
184
  class TestService {}
@@ -187,7 +187,7 @@ console.log(result); // "Logged: Executing: SELECT * FROM users WHERE id = 123"
187
187
  2. **注入非可注入类**
188
188
 
189
189
  ```typescript
190
- // 错误:依赖的类没有使用 @injectable()
190
+ // 错误:依赖的类没有使用 @injectable()
191
191
  class NonInjectableService {}
192
192
 
193
193
  @injectable()
@@ -199,7 +199,7 @@ console.log(result); // "Logged: Executing: SELECT * FROM users WHERE id = 123"
199
199
  3. **循环依赖**
200
200
 
201
201
  ```typescript
202
- // 错误:检测到循环依赖
202
+ // 错误:检测到循环依赖
203
203
  @injectable()
204
204
  class ServiceA {
205
205
  constructor(@inject(ServiceB) public serviceB: ServiceB) {}
@@ -1,8 +1,22 @@
1
1
  /**
2
2
  * @overview
3
+ * Metadata key constants used for storing and retrieving dependency injection metadata
3
4
  * @author AEPKILL
4
5
  * @created 2021-10-03 20:55:17
5
6
  */
6
- export declare const ParamsMetadataKeyConst = "design:paramtypes";
7
- export declare const InjectionMetadataKeyConst = "husky-di.injection-metadata";
8
- export declare const InjectionParamsMetadataKeyConst = "husky-di.injection-params-metadata";
7
+ /**
8
+ * TypeScript's built-in metadata key for constructor parameter types.
9
+ *
10
+ * @see {@link https://www.typescriptlang.org/tsconfig/#Language_and_Environment_6254}
11
+ */
12
+ export declare const PARAMS_METADATA_KEY = "design:paramtypes";
13
+ /**
14
+ * Custom metadata key for storing injection metadata of a class.
15
+ * Contains information about how each constructor parameter should be resolved,
16
+ * including service identifiers and injection options.
17
+ *
18
+ * @remarks
19
+ * Stores: `Array<InjectionMetadata<T> | undefined>`
20
+ *
21
+ */
22
+ export declare const INJECTION_METADATA_KEY = "husky-di.injection-metadata";
@@ -5,6 +5,6 @@
5
5
  */
6
6
  /**
7
7
  * @description
8
- * markup a class as a injectable class
8
+ * Mark a class as an injectable class
9
9
  */
10
10
  export declare const injectable: () => ClassDecorator;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @overview Decorator package error code enum.
3
+ * @author AEPKILL
4
+ * @created 2026-05-09 00:00:00
5
+ */
6
+ export declare enum DecoratorErrorCodeEnum {
7
+ /**
8
+ * Class is decorated with @injectable() more than once.
9
+ * @see SPECIFICATION.md Section 4.1 M1
10
+ */
11
+ E_DUPLICATE_INJECTABLE = "E_DUPLICATE_INJECTABLE",
12
+ /**
13
+ * Constructor parameter without explicit metadata is not a class type.
14
+ * @see SPECIFICATION.md Section 4.1 M3
15
+ */
16
+ E_NON_CLASS_PARAMETER = "E_NON_CLASS_PARAMETER",
17
+ /**
18
+ * Class resolved through decorator middleware is not decorated with @injectable().
19
+ * @see SPECIFICATION.md Section 5.1 V1
20
+ */
21
+ E_NOT_INJECTABLE = "E_NOT_INJECTABLE",
22
+ /**
23
+ * Injection metadata does not include a serviceIdentifier.
24
+ * @see SPECIFICATION.md Section 4.3 T2
25
+ */
26
+ E_MISSING_SERVICE_IDENTIFIER = "E_MISSING_SERVICE_IDENTIFIER",
27
+ /**
28
+ * Injection metadata includes an invalid serviceIdentifier.
29
+ * @see SPECIFICATION.md Section 5.2 V3
30
+ */
31
+ E_INVALID_SERVICE_IDENTIFIER = "E_INVALID_SERVICE_IDENTIFIER",
32
+ /**
33
+ * Injection metadata enables dynamic and ref at the same time.
34
+ * @see SPECIFICATION.md Section 5.2 V4
35
+ */
36
+ E_CONFLICTING_OPTIONS = "E_CONFLICTING_OPTIONS",
37
+ /**
38
+ * Consolidated injection metadata is missing a parameter entry.
39
+ * @see SPECIFICATION.md Section 5.1 V2
40
+ */
41
+ E_INCOMPLETE_METADATA = "E_INCOMPLETE_METADATA"
42
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @overview Decorator package exception.
3
+ * @author AEPKILL
4
+ * @created 2026-05-09 00:00:00
5
+ */
6
+ import { CodedException } from "@husky-di/core";
7
+ import type { DecoratorErrorCodeEnum } from "../enums/decorator-error-code.enum";
8
+ export declare class DecoratorException extends CodedException<DecoratorErrorCodeEnum> {
9
+ /** Internal marker to identify DecoratorException instances across frames. */
10
+ private __isDecoratorException__;
11
+ static isDecoratorException(error: unknown): error is DecoratorException;
12
+ }
package/dist/index.cjs CHANGED
@@ -13,7 +13,7 @@ var __webpack_require__ = {};
13
13
  })();
14
14
  (()=>{
15
15
  __webpack_require__.r = (exports1)=>{
16
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
17
  value: 'Module'
18
18
  });
19
19
  Object.defineProperty(exports1, '__esModule', {
@@ -25,27 +25,66 @@ var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  inject: ()=>inject,
28
+ DecoratorErrorCodeEnum: ()=>decorator_error_code_enum_DecoratorErrorCodeEnum,
29
+ injectable: ()=>injectable,
30
+ DecoratorException: ()=>DecoratorException,
28
31
  tagged: ()=>tagged,
29
- decoratorMiddleware: ()=>decoratorMiddleware,
30
- injectable: ()=>injectable
32
+ decoratorMiddleware: ()=>decoratorMiddleware
31
33
  });
32
- const ParamsMetadataKeyConst = "design:paramtypes";
33
- const InjectionMetadataKeyConst = "husky-di.injection-metadata";
34
- const tagged = (metadata)=>(target, _propertyKey, parameterIndex)=>{
35
- const parametersMetadata = Reflect.getMetadata(InjectionMetadataKeyConst, target) || [];
34
+ const PARAMS_METADATA_KEY = "design:paramtypes";
35
+ const INJECTION_METADATA_KEY = "husky-di.injection-metadata";
36
+ var decorator_error_code_enum_DecoratorErrorCodeEnum = /*#__PURE__*/ function(DecoratorErrorCodeEnum) {
37
+ DecoratorErrorCodeEnum["E_DUPLICATE_INJECTABLE"] = "E_DUPLICATE_INJECTABLE";
38
+ DecoratorErrorCodeEnum["E_NON_CLASS_PARAMETER"] = "E_NON_CLASS_PARAMETER";
39
+ DecoratorErrorCodeEnum["E_NOT_INJECTABLE"] = "E_NOT_INJECTABLE";
40
+ DecoratorErrorCodeEnum["E_MISSING_SERVICE_IDENTIFIER"] = "E_MISSING_SERVICE_IDENTIFIER";
41
+ DecoratorErrorCodeEnum["E_INVALID_SERVICE_IDENTIFIER"] = "E_INVALID_SERVICE_IDENTIFIER";
42
+ DecoratorErrorCodeEnum["E_CONFLICTING_OPTIONS"] = "E_CONFLICTING_OPTIONS";
43
+ DecoratorErrorCodeEnum["E_INCOMPLETE_METADATA"] = "E_INCOMPLETE_METADATA";
44
+ return DecoratorErrorCodeEnum;
45
+ }({});
46
+ const core_namespaceObject = require("@husky-di/core");
47
+ class DecoratorException extends core_namespaceObject.CodedException {
48
+ static isDecoratorException(error) {
49
+ return error?.__isDecoratorException__ === true;
50
+ }
51
+ constructor(...args){
52
+ super(...args), this.__isDecoratorException__ = true;
53
+ }
54
+ }
55
+ const tagged = (metadata)=>{
56
+ validateInjectionMetadata(metadata);
57
+ return (target, _propertyKey, parameterIndex)=>{
58
+ const parametersMetadata = Reflect.getMetadata(INJECTION_METADATA_KEY, target) || [];
36
59
  parametersMetadata[parameterIndex] = metadata;
37
- Reflect.defineMetadata(InjectionMetadataKeyConst, parametersMetadata, target);
60
+ Reflect.defineMetadata(INJECTION_METADATA_KEY, parametersMetadata, target);
38
61
  };
62
+ };
63
+ function validateInjectionMetadata(metadata) {
64
+ const serviceIdentifier = metadata?.serviceIdentifier;
65
+ if (null == serviceIdentifier) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_MISSING_SERVICE_IDENTIFIER, "Injection metadata must include a serviceIdentifier");
66
+ const isValidServiceIdentifier = "function" == typeof serviceIdentifier || "symbol" == typeof serviceIdentifier || "string" == typeof serviceIdentifier && serviceIdentifier.length > 0;
67
+ if (!isValidServiceIdentifier) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_INVALID_SERVICE_IDENTIFIER, `Invalid service identifier: ${String(serviceIdentifier)}`);
68
+ if (metadata.dynamic && metadata.ref) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_CONFLICTING_OPTIONS, 'Cannot use both "dynamic" and "ref" options simultaneously');
69
+ }
39
70
  const inject = (serviceIdentifier, options)=>tagged({
40
71
  ...options,
41
72
  serviceIdentifier
42
73
  });
43
- const InjectionMetadataMap = "undefined" == typeof WeakMap ? Map : WeakMap;
74
+ const InjectionMetadataMap = "u" < typeof WeakMap ? Map : WeakMap;
44
75
  const injectionMetadataMap = new InjectionMetadataMap();
76
+ const NON_CLASS_PARAMETER_TYPES = new Set([
77
+ String,
78
+ Number,
79
+ Boolean,
80
+ BigInt,
81
+ Symbol,
82
+ Object
83
+ ]);
45
84
  const injectable = ()=>(target)=>{
46
- if (injectionMetadataMap.has(target)) throw new Error(`can't use "@injectable()" decorate class "${target.name}" twice`);
47
- const parametersServiceIdentifiers = Reflect.getMetadata(ParamsMetadataKeyConst, target) || [];
48
- const parametersMetadata = Reflect.getMetadata(InjectionMetadataKeyConst, target) || [];
85
+ if (injectionMetadataMap.has(target)) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_DUPLICATE_INJECTABLE, `Class '${target.name}' is already decorated with @Injectable()`);
86
+ const parametersServiceIdentifiers = Reflect.getMetadata(PARAMS_METADATA_KEY, target) || [];
87
+ const parametersMetadata = Reflect.getMetadata(INJECTION_METADATA_KEY, target) || [];
49
88
  const metadata = [];
50
89
  const parametersMetadataLength = Math.max(parametersServiceIdentifiers.length, parametersMetadata.length);
51
90
  for(let index = 0; index < parametersMetadataLength; index++){
@@ -54,22 +93,23 @@ const injectable = ()=>(target)=>{
54
93
  continue;
55
94
  }
56
95
  const serviceIdentifier = parametersServiceIdentifiers[index];
57
- if ("function" != typeof serviceIdentifier) throw new Error(`only can inject class type in constructor "${target.name}" parameter #${index}`);
96
+ if ("function" != typeof serviceIdentifier || NON_CLASS_PARAMETER_TYPES.has(serviceIdentifier)) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_NON_CLASS_PARAMETER, `Constructor '${target.name}' parameter #${index} must be a class type`);
58
97
  metadata.push({
59
98
  serviceIdentifier
60
99
  });
61
100
  }
101
+ if (metadata.length !== parametersMetadataLength) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_INCOMPLETE_METADATA, `Constructor '${target.name}' has incomplete injection metadata`);
62
102
  injectionMetadataMap.set(target, metadata);
63
103
  };
64
- const core_namespaceObject = require("@husky-di/core");
65
104
  const decoratorMiddleware = {
66
105
  name: Symbol("DecoratorMiddleware"),
67
106
  executor: (params, next)=>{
68
107
  const { registration, resolveRecord } = params;
69
108
  if (registration.type !== core_namespaceObject.RegistrationTypeEnum["class"]) return next(params);
70
109
  const provider = registration.provider;
110
+ if (isPrimitiveConstructor(provider)) return new provider();
71
111
  const parametersMetadata = injectionMetadataMap.get(provider);
72
- if (!parametersMetadata) throw new core_namespaceObject.ResolveException(`The class ${provider.name} has no injection metadata, please make sure the class is decorated with @Injectable().`, resolveRecord);
112
+ if (!parametersMetadata) throw new core_namespaceObject.ResolveException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_NOT_INJECTABLE, `Class '${provider.name}' must be decorated with @Injectable()`, resolveRecord);
73
113
  const parameters = parametersMetadata.map((metadata, index)=>{
74
114
  const { serviceIdentifier, ...options } = metadata;
75
115
  resolveRecord._internalStashCurrent();
@@ -84,16 +124,23 @@ const decoratorMiddleware = {
84
124
  return new provider(...parameters);
85
125
  }
86
126
  };
127
+ function isPrimitiveConstructor(value) {
128
+ return value === String || value === Number || value === Boolean || value === Symbol || value === BigInt;
129
+ }
130
+ exports.DecoratorErrorCodeEnum = __webpack_exports__.DecoratorErrorCodeEnum;
131
+ exports.DecoratorException = __webpack_exports__.DecoratorException;
87
132
  exports.decoratorMiddleware = __webpack_exports__.decoratorMiddleware;
88
133
  exports.inject = __webpack_exports__.inject;
89
134
  exports.injectable = __webpack_exports__.injectable;
90
135
  exports.tagged = __webpack_exports__.tagged;
91
- for(var __webpack_i__ in __webpack_exports__)if (-1 === [
136
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
137
+ "DecoratorErrorCodeEnum",
138
+ "DecoratorException",
92
139
  "decoratorMiddleware",
93
140
  "inject",
94
141
  "injectable",
95
142
  "tagged"
96
- ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
143
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
97
144
  Object.defineProperty(exports, '__esModule', {
98
145
  value: true
99
146
  });
package/dist/index.d.ts CHANGED
@@ -6,5 +6,7 @@
6
6
  export * from "./decorators/inject.decorator";
7
7
  export * from "./decorators/injectable.decorator";
8
8
  export * from "./decorators/tagged.decorator";
9
+ export { DecoratorErrorCodeEnum } from "./enums/decorator-error-code.enum";
10
+ export { DecoratorException } from "./exceptions/decorator.exception";
9
11
  export { decoratorMiddleware } from "./middlewares/decorator.middleware";
10
12
  export * from "./types/injection-metadata.type";
package/dist/index.js CHANGED
@@ -1,21 +1,57 @@
1
- import { RegistrationTypeEnum, ResolveException, ResolveRecordTypeEnum, resolve } from "@husky-di/core";
2
- const ParamsMetadataKeyConst = "design:paramtypes";
3
- const InjectionMetadataKeyConst = "husky-di.injection-metadata";
4
- const tagged = (metadata)=>(target, _propertyKey, parameterIndex)=>{
5
- const parametersMetadata = Reflect.getMetadata(InjectionMetadataKeyConst, target) || [];
1
+ import { CodedException, RegistrationTypeEnum, ResolveException, ResolveRecordTypeEnum, resolve } from "@husky-di/core";
2
+ const PARAMS_METADATA_KEY = "design:paramtypes";
3
+ const INJECTION_METADATA_KEY = "husky-di.injection-metadata";
4
+ var decorator_error_code_enum_DecoratorErrorCodeEnum = /*#__PURE__*/ function(DecoratorErrorCodeEnum) {
5
+ DecoratorErrorCodeEnum["E_DUPLICATE_INJECTABLE"] = "E_DUPLICATE_INJECTABLE";
6
+ DecoratorErrorCodeEnum["E_NON_CLASS_PARAMETER"] = "E_NON_CLASS_PARAMETER";
7
+ DecoratorErrorCodeEnum["E_NOT_INJECTABLE"] = "E_NOT_INJECTABLE";
8
+ DecoratorErrorCodeEnum["E_MISSING_SERVICE_IDENTIFIER"] = "E_MISSING_SERVICE_IDENTIFIER";
9
+ DecoratorErrorCodeEnum["E_INVALID_SERVICE_IDENTIFIER"] = "E_INVALID_SERVICE_IDENTIFIER";
10
+ DecoratorErrorCodeEnum["E_CONFLICTING_OPTIONS"] = "E_CONFLICTING_OPTIONS";
11
+ DecoratorErrorCodeEnum["E_INCOMPLETE_METADATA"] = "E_INCOMPLETE_METADATA";
12
+ return DecoratorErrorCodeEnum;
13
+ }({});
14
+ class DecoratorException extends CodedException {
15
+ static isDecoratorException(error) {
16
+ return error?.__isDecoratorException__ === true;
17
+ }
18
+ constructor(...args){
19
+ super(...args), this.__isDecoratorException__ = true;
20
+ }
21
+ }
22
+ const tagged = (metadata)=>{
23
+ validateInjectionMetadata(metadata);
24
+ return (target, _propertyKey, parameterIndex)=>{
25
+ const parametersMetadata = Reflect.getMetadata(INJECTION_METADATA_KEY, target) || [];
6
26
  parametersMetadata[parameterIndex] = metadata;
7
- Reflect.defineMetadata(InjectionMetadataKeyConst, parametersMetadata, target);
27
+ Reflect.defineMetadata(INJECTION_METADATA_KEY, parametersMetadata, target);
8
28
  };
29
+ };
30
+ function validateInjectionMetadata(metadata) {
31
+ const serviceIdentifier = metadata?.serviceIdentifier;
32
+ if (null == serviceIdentifier) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_MISSING_SERVICE_IDENTIFIER, "Injection metadata must include a serviceIdentifier");
33
+ const isValidServiceIdentifier = "function" == typeof serviceIdentifier || "symbol" == typeof serviceIdentifier || "string" == typeof serviceIdentifier && serviceIdentifier.length > 0;
34
+ if (!isValidServiceIdentifier) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_INVALID_SERVICE_IDENTIFIER, `Invalid service identifier: ${String(serviceIdentifier)}`);
35
+ if (metadata.dynamic && metadata.ref) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_CONFLICTING_OPTIONS, 'Cannot use both "dynamic" and "ref" options simultaneously');
36
+ }
9
37
  const inject = (serviceIdentifier, options)=>tagged({
10
38
  ...options,
11
39
  serviceIdentifier
12
40
  });
13
- const InjectionMetadataMap = "undefined" == typeof WeakMap ? Map : WeakMap;
41
+ const InjectionMetadataMap = "u" < typeof WeakMap ? Map : WeakMap;
14
42
  const injectionMetadataMap = new InjectionMetadataMap();
43
+ const NON_CLASS_PARAMETER_TYPES = new Set([
44
+ String,
45
+ Number,
46
+ Boolean,
47
+ BigInt,
48
+ Symbol,
49
+ Object
50
+ ]);
15
51
  const injectable = ()=>(target)=>{
16
- if (injectionMetadataMap.has(target)) throw new Error(`can't use "@injectable()" decorate class "${target.name}" twice`);
17
- const parametersServiceIdentifiers = Reflect.getMetadata(ParamsMetadataKeyConst, target) || [];
18
- const parametersMetadata = Reflect.getMetadata(InjectionMetadataKeyConst, target) || [];
52
+ if (injectionMetadataMap.has(target)) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_DUPLICATE_INJECTABLE, `Class '${target.name}' is already decorated with @Injectable()`);
53
+ const parametersServiceIdentifiers = Reflect.getMetadata(PARAMS_METADATA_KEY, target) || [];
54
+ const parametersMetadata = Reflect.getMetadata(INJECTION_METADATA_KEY, target) || [];
19
55
  const metadata = [];
20
56
  const parametersMetadataLength = Math.max(parametersServiceIdentifiers.length, parametersMetadata.length);
21
57
  for(let index = 0; index < parametersMetadataLength; index++){
@@ -24,11 +60,12 @@ const injectable = ()=>(target)=>{
24
60
  continue;
25
61
  }
26
62
  const serviceIdentifier = parametersServiceIdentifiers[index];
27
- if ("function" != typeof serviceIdentifier) throw new Error(`only can inject class type in constructor "${target.name}" parameter #${index}`);
63
+ if ("function" != typeof serviceIdentifier || NON_CLASS_PARAMETER_TYPES.has(serviceIdentifier)) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_NON_CLASS_PARAMETER, `Constructor '${target.name}' parameter #${index} must be a class type`);
28
64
  metadata.push({
29
65
  serviceIdentifier
30
66
  });
31
67
  }
68
+ if (metadata.length !== parametersMetadataLength) throw new DecoratorException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_INCOMPLETE_METADATA, `Constructor '${target.name}' has incomplete injection metadata`);
32
69
  injectionMetadataMap.set(target, metadata);
33
70
  };
34
71
  const decoratorMiddleware = {
@@ -37,8 +74,9 @@ const decoratorMiddleware = {
37
74
  const { registration, resolveRecord } = params;
38
75
  if (registration.type !== RegistrationTypeEnum["class"]) return next(params);
39
76
  const provider = registration.provider;
77
+ if (isPrimitiveConstructor(provider)) return new provider();
40
78
  const parametersMetadata = injectionMetadataMap.get(provider);
41
- if (!parametersMetadata) throw new ResolveException(`The class ${provider.name} has no injection metadata, please make sure the class is decorated with @Injectable().`, resolveRecord);
79
+ if (!parametersMetadata) throw new ResolveException(decorator_error_code_enum_DecoratorErrorCodeEnum.E_NOT_INJECTABLE, `Class '${provider.name}' must be decorated with @Injectable()`, resolveRecord);
42
80
  const parameters = parametersMetadata.map((metadata, index)=>{
43
81
  const { serviceIdentifier, ...options } = metadata;
44
82
  resolveRecord._internalStashCurrent();
@@ -53,4 +91,7 @@ const decoratorMiddleware = {
53
91
  return new provider(...parameters);
54
92
  }
55
93
  };
56
- export { decoratorMiddleware, inject, injectable, tagged };
94
+ function isPrimitiveConstructor(value) {
95
+ return value === String || value === Number || value === Boolean || value === Symbol || value === BigInt;
96
+ }
97
+ export { DecoratorException, decoratorMiddleware, decorator_error_code_enum_DecoratorErrorCodeEnum as DecoratorErrorCodeEnum, inject, injectable, tagged };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@husky-di/decorator",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -15,15 +15,15 @@
15
15
  "dist"
16
16
  ],
17
17
  "dependencies": {
18
- "@husky-di/core": "1.0.0"
18
+ "@husky-di/core": "1.1.0"
19
19
  },
20
20
  "devDependencies": {
21
- "@biomejs/biome": "2.1.3",
22
- "@rslib/core": "^0.11.2",
23
- "@types/node": "^22.17.0",
21
+ "@biomejs/biome": "2.4.15",
22
+ "@rslib/core": "^0.20.1",
23
+ "@types/node": "^25.5.0",
24
24
  "reflect-metadata": "^0.2.2",
25
- "typescript": "^5.9.2",
26
- "vitest": "^3.2.4"
25
+ "typescript": "^6.0.3",
26
+ "vitest": "^4.1.2"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "reflect-metadata": "^0.2.2"