@tsed/platform-params 8.0.0-rc.5 → 8.0.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.
@@ -1,5 +1,4 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Inject, Injectable, InjectorService, ProviderScope } from "@tsed/di";
1
+ import { injectable, injector, ProviderScope } from "@tsed/di";
3
2
  import { JsonMethodStore, JsonParameterStore } from "@tsed/schema";
4
3
  import { ParamValidationError } from "../errors/ParamValidationError.js";
5
4
  import { ParseExpressionPipe } from "../pipes/ParseExpressionPipe.js";
@@ -7,13 +6,13 @@ import { ParseExpressionPipe } from "../pipes/ParseExpressionPipe.js";
7
6
  * Platform Params abstraction layer.
8
7
  * @platform
9
8
  */
10
- let PlatformParams = class PlatformParams {
9
+ export class PlatformParams {
11
10
  getPipes(param) {
12
11
  const get = (pipe) => {
13
- return this.injector.getProvider(pipe).priority || 0;
12
+ return injector().getProvider(pipe).priority || 0;
14
13
  };
15
14
  const sort = (p1, p2) => (get(p1) < get(p2) ? -1 : get(p1) > get(p2) ? 1 : 0);
16
- const map = (token) => this.injector.get(token);
15
+ const map = (token) => injector().get(token);
17
16
  return [ParseExpressionPipe, ...param.pipes.sort(sort)].map(map).filter(Boolean);
18
17
  }
19
18
  /**
@@ -24,12 +23,13 @@ let PlatformParams = class PlatformParams {
24
23
  if (!token || !propertyKey) {
25
24
  return (scope) => handler(scope.$ctx);
26
25
  }
26
+ const inj = injector();
27
27
  const store = JsonMethodStore.fromMethod(token, propertyKey);
28
28
  const getArguments = this.compile(store);
29
- const provider = this.injector.getProvider(token);
29
+ const provider = inj.getProvider(token);
30
30
  return async (scope) => {
31
31
  const container = provider.scope === ProviderScope.REQUEST ? scope.$ctx.container : undefined;
32
- const [instance, args] = await Promise.all([this.injector.invoke(token, container), getArguments(scope)]);
32
+ const [instance, args] = await Promise.all([inj.invoke(token, { locals: container }), getArguments(scope)]);
33
33
  return instance[propertyKey].call(instance, ...args, scope.$ctx);
34
34
  };
35
35
  }
@@ -57,16 +57,6 @@ let PlatformParams = class PlatformParams {
57
57
  }
58
58
  }, scope);
59
59
  }
60
- };
61
- __decorate([
62
- Inject(),
63
- __metadata("design:type", InjectorService)
64
- ], PlatformParams.prototype, "injector", void 0);
65
- PlatformParams = __decorate([
66
- Injectable({
67
- scope: ProviderScope.SINGLETON,
68
- imports: [ParseExpressionPipe]
69
- })
70
- ], PlatformParams);
71
- export { PlatformParams };
60
+ }
61
+ injectable(PlatformParams).imports([ParseExpressionPipe]);
72
62
  //# sourceMappingURL=PlatformParams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformParams.js","sourceRoot":"","sources":["../../../src/builder/PlatformParams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlatformParams.js","sourceRoot":"","sources":["../../../src/builder/PlatformParams.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,13 @@
1
- var DeserializerPipe_1;
2
- import { __decorate } from "tslib";
3
- import { Injectable } from "@tsed/di";
1
+ import { injectable } from "@tsed/di";
4
2
  import { deserialize } from "@tsed/json-mapper";
5
- let DeserializerPipe = DeserializerPipe_1 = class DeserializerPipe {
3
+ export class DeserializerPipe {
6
4
  transform(value, param) {
7
5
  return deserialize(value, {
8
6
  useAlias: true,
9
7
  store: param,
10
- ...(param.store.get(DeserializerPipe_1) || {})
8
+ ...(param.store.get(DeserializerPipe) || {})
11
9
  });
12
10
  }
13
- };
14
- DeserializerPipe = DeserializerPipe_1 = __decorate([
15
- Injectable()
16
- ], DeserializerPipe);
17
- export { DeserializerPipe };
11
+ }
12
+ injectable(DeserializerPipe);
18
13
  //# sourceMappingURL=DeserializerPipe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeserializerPipe.js","sourceRoot":"","sources":["../../../src/pipes/DeserializerPipe.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAIvC,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,SAAS,CAAC,KAAU,EAAE,KAAyB;QAC7C,OAAO,WAAW,CAAC,KAAK,EAAE;YACxB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,KAAK;YACZ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAgB,CAAC,IAAI,EAAE,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AARY,gBAAgB;IAD5B,UAAU,EAAE;GACA,gBAAgB,CAQ5B"}
1
+ {"version":3,"file":"DeserializerPipe.js","sourceRoot":"","sources":["../../../src/pipes/DeserializerPipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAC,MAAM,UAAU,CAAC;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAG9C,MAAM,OAAO,gBAAgB;IAC3B,SAAS,CAAC,KAAU,EAAE,KAAyB;QAC7C,OAAO,WAAW,CAAC,KAAK,EAAE;YACxB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,KAAK;YACZ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;CACF;AAED,UAAU,CAAC,gBAAgB,CAAC,CAAC"}
@@ -1,8 +1,7 @@
1
- import { __decorate } from "tslib";
2
1
  import { getValue } from "@tsed/core";
3
- import { Injectable } from "@tsed/di";
2
+ import { injectable } from "@tsed/di";
4
3
  import { ParamTypes } from "../domain/ParamTypes.js";
5
- let ParseExpressionPipe = class ParseExpressionPipe {
4
+ export class ParseExpressionPipe {
6
5
  transform(scope, param) {
7
6
  const { paramType, type } = param;
8
7
  const value = getValue(scope, this.getKey(param));
@@ -19,11 +18,6 @@ let ParseExpressionPipe = class ParseExpressionPipe {
19
18
  }
20
19
  return [dataPath, expression].filter(Boolean).join(".");
21
20
  }
22
- };
23
- ParseExpressionPipe = __decorate([
24
- Injectable({
25
- priority: -1000
26
- })
27
- ], ParseExpressionPipe);
28
- export { ParseExpressionPipe };
21
+ }
22
+ injectable(ParseExpressionPipe).priority(-1000);
29
23
  //# sourceMappingURL=ParseExpressionPipe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParseExpressionPipe.js","sourceRoot":"","sources":["../../../src/pipes/ParseExpressionPipe.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAIpC,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAK5C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,SAAS,CAAC,KAA0B,EAAE,KAAyB;QAC7D,MAAM,EAAC,SAAS,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;QAEhC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAuB,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7G,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAES,MAAM,CAAC,KAAyB;QACxC,IAAI,EAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC;QAC9C,SAAS,GAAG,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAEjE,IAAI,UAAU,IAAI,SAAS,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YAClD,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,CAAC;QAED,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AAvBY,mBAAmB;IAH/B,UAAU,CAAC;QACV,QAAQ,EAAE,CAAC,IAAI;KAChB,CAAC;GACW,mBAAmB,CAuB/B"}
1
+ {"version":3,"file":"ParseExpressionPipe.js","sourceRoot":"","sources":["../../../src/pipes/ParseExpressionPipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAa,UAAU,EAAC,MAAM,UAAU,CAAC;AAIhD,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAEnD,MAAM,OAAO,mBAAmB;IAC9B,SAAS,CAAC,KAA0B,EAAE,KAAyB;QAC7D,MAAM,EAAC,SAAS,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;QAEhC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAuB,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7G,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAES,MAAM,CAAC,KAAyB;QACxC,IAAI,EAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC;QAC9C,SAAS,GAAG,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAEjE,IAAI,UAAU,IAAI,SAAS,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YAClD,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,CAAC;QAED,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,UAAU,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
- import { __decorate, __metadata, __param } from "tslib";
2
- import { Inject, Injectable } from "@tsed/di";
1
+ import { constant, injectable, injectMany } from "@tsed/di";
3
2
  import { deserialize } from "@tsed/json-mapper";
4
3
  import { getJsonSchema } from "@tsed/schema";
5
4
  import { ParamTypes } from "../domain/ParamTypes.js";
@@ -14,9 +13,18 @@ function cast(value, metadata) {
14
13
  return value;
15
14
  }
16
15
  }
17
- let ValidationPipe = class ValidationPipe {
18
- constructor(validators) {
19
- this.validator = validators[0];
16
+ export class ValidationPipe {
17
+ constructor() {
18
+ this.validators = new Map();
19
+ const validators = injectMany("validator:service");
20
+ const defaultValidator = constant("validators.default");
21
+ validators.length && this.validators.set("default", validators[0]);
22
+ validators.map((service) => {
23
+ this.validators.set(service.name, service);
24
+ if (service.name === defaultValidator) {
25
+ this.validators.set("default", service);
26
+ }
27
+ });
20
28
  }
21
29
  coerceTypes(value, metadata) {
22
30
  if (value === undefined) {
@@ -37,7 +45,7 @@ let ValidationPipe = class ValidationPipe {
37
45
  return metadata.paramType === ParamTypes.PATH && !metadata.isPrimitive;
38
46
  }
39
47
  transform(value, metadata) {
40
- if (!this.validator) {
48
+ if (!this.validators.size) {
41
49
  this.checkIsRequired(value, metadata);
42
50
  return value;
43
51
  }
@@ -53,11 +61,16 @@ let ValidationPipe = class ValidationPipe {
53
61
  const schema = getJsonSchema(metadata, {
54
62
  customKeys: true
55
63
  });
56
- return this.validator.validate(value, {
57
- schema,
58
- type: metadata.isClass ? metadata.type : undefined,
59
- collectionType: metadata.collectionType
60
- });
64
+ // TODO retrieve the right validator from metadata
65
+ const validator = this.validators.get("default");
66
+ if (validator) {
67
+ return validator.validate(value, {
68
+ schema,
69
+ type: metadata.isClass ? metadata.type : undefined,
70
+ collectionType: metadata.collectionType
71
+ });
72
+ }
73
+ return value;
61
74
  }
62
75
  checkIsRequired(value, metadata) {
63
76
  if (metadata.isRequired(value)) {
@@ -65,13 +78,6 @@ let ValidationPipe = class ValidationPipe {
65
78
  }
66
79
  return true;
67
80
  }
68
- };
69
- ValidationPipe = __decorate([
70
- Injectable({
71
- type: "validator"
72
- }),
73
- __param(0, Inject("validator:service")),
74
- __metadata("design:paramtypes", [Array])
75
- ], ValidationPipe);
76
- export { ValidationPipe };
81
+ }
82
+ injectable(ValidationPipe).type("validator");
77
83
  //# sourceMappingURL=ValidationPipe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationPipe.js","sourceRoot":"","sources":["../../../src/pipes/ValidationPipe.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAC,aAAa,EAAkC,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,uBAAuB,EAAC,MAAM,sCAAsC,CAAC;AAE7E,SAAS,IAAI,CAAC,KAAU,EAAE,QAA4B;IACpD,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,KAAK,EAAE;YACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOM,IAAM,cAAc,GAApB,MAAM,cAAc;IAGzB,YAAyC,UAAqC;QAC5E,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAA4B;QAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAU,EAAE,QAA4B;QAC3C,OAAO,QAAQ,CAAC,SAAS,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACzE,CAAC;IAED,SAAS,CAAC,KAAU,EAAE,QAA4B;QAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE1C,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE;YACrC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;YACpC,MAAM;YACN,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAClD,cAAc,EAAE,QAAQ,CAAC,cAAc;SACxC,CAAC,CAAC;IACL,CAAC;IAES,eAAe,CAAC,KAAU,EAAE,QAA4B;QAChE,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AApEY,cAAc;IAH1B,UAAU,CAAC;QACV,IAAI,EAAE,WAAW;KAClB,CAAC;IAIa,WAAA,MAAM,CAAC,mBAAmB,CAAC,CAAA;;GAH7B,cAAc,CAoE1B"}
1
+ {"version":3,"file":"ValidationPipe.js","sourceRoot":"","sources":["../../../src/pipes/ValidationPipe.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DIContext, InjectorService } from "@tsed/di";
1
+ import { DIContext } from "@tsed/di";
2
2
  import { JsonMethodStore, JsonParameterStore, PipeMethods } from "@tsed/schema";
3
3
  export type PlatformParamsScope<Context extends DIContext = DIContext> = {
4
4
  $ctx: Context;
@@ -9,7 +9,6 @@ export type PlatformParamsCallback<Context extends DIContext = DIContext> = (sco
9
9
  * @platform
10
10
  */
11
11
  export declare class PlatformParams {
12
- protected injector: InjectorService;
13
12
  getPipes(param: JsonParameterStore): PipeMethods<any, any>[];
14
13
  /**
15
14
  * Return a handler with injectable parameters
@@ -1,10 +1,11 @@
1
1
  import { JsonParameterStore, PipeMethods } from "@tsed/schema";
2
- export type ValidatorServiceMethods = {
2
+ export interface ValidatorServiceMethods {
3
+ readonly name: string;
3
4
  validate(value: any, options: any): Promise<any>;
4
- };
5
+ }
5
6
  export declare class ValidationPipe implements PipeMethods {
6
- private validator;
7
- constructor(validators: ValidatorServiceMethods[]);
7
+ private validators;
8
+ constructor();
8
9
  coerceTypes(value: any, metadata: JsonParameterStore): any;
9
10
  skip(value: any, metadata: JsonParameterStore): boolean;
10
11
  transform(value: any, metadata: JsonParameterStore): Promise<any>;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@tsed/platform-params",
3
3
  "description": "Params module for Ts.ED Framework",
4
4
  "type": "module",
5
- "version": "8.0.0-rc.5",
5
+ "version": "8.0.0",
6
6
  "source": "./src/index.ts",
7
7
  "main": "./lib/esm/index.js",
8
8
  "module": "./lib/esm/index.js",
@@ -25,23 +25,23 @@
25
25
  "tslib": "2.7.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@tsed/barrels": "8.0.0-rc.5",
29
- "@tsed/core": "8.0.0-rc.5",
30
- "@tsed/di": "8.0.0-rc.5",
31
- "@tsed/exceptions": "8.0.0-rc.5",
32
- "@tsed/json-mapper": "8.0.0-rc.5",
33
- "@tsed/schema": "8.0.0-rc.5",
34
- "@tsed/typescript": "8.0.0-rc.5",
28
+ "@tsed/barrels": "8.0.0",
29
+ "@tsed/core": "8.0.0",
30
+ "@tsed/di": "8.0.0",
31
+ "@tsed/exceptions": "8.0.0",
32
+ "@tsed/json-mapper": "8.0.0",
33
+ "@tsed/schema": "8.0.0",
34
+ "@tsed/typescript": "8.0.0",
35
35
  "eslint": "9.12.0",
36
36
  "typescript": "5.4.5",
37
37
  "vitest": "2.1.2"
38
38
  },
39
39
  "peerDependencies": {
40
- "@tsed/core": "8.0.0-rc.5",
41
- "@tsed/di": "8.0.0-rc.5",
42
- "@tsed/exceptions": "8.0.0-rc.5",
43
- "@tsed/json-mapper": "8.0.0-rc.5",
44
- "@tsed/schema": "8.0.0-rc.5"
40
+ "@tsed/core": "8.0.0",
41
+ "@tsed/di": "8.0.0",
42
+ "@tsed/exceptions": "8.0.0",
43
+ "@tsed/json-mapper": "8.0.0",
44
+ "@tsed/schema": "8.0.0"
45
45
  },
46
46
  "peerDependenciesMeta": {
47
47
  "@tsed/core": {
@@ -66,8 +66,5 @@
66
66
  },
67
67
  "homepage": "https://github.com/tsedio/tsed/tree/production/packages/platform/platform-params",
68
68
  "author": "Romain Lenzotti",
69
- "license": "MIT",
70
- "publishConfig": {
71
- "tag": "rc"
72
- }
69
+ "license": "MIT"
73
70
  }
package/vitest.config.mts CHANGED
@@ -10,10 +10,10 @@ export default defineConfig(
10
10
  coverage: {
11
11
  ...presets.test.coverage,
12
12
  thresholds: {
13
- statements: 99.55,
14
- branches: 95.45,
13
+ statements: 97.5,
14
+ branches: 87.5,
15
15
  functions: 100,
16
- lines: 99.55
16
+ lines: 97.5
17
17
  }
18
18
  }
19
19
  }