@ptc-org/nestjs-query-graphql 4.0.0 → 4.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/package.json +6 -5
- package/src/auth/authorizer.d.ts +1 -1
- package/src/module.js +2 -1
- package/src/module.js.map +1 -1
- package/src/pipes/inject-data-loader-config.pipe.js +2 -1
- package/src/pipes/inject-data-loader-config.pipe.js.map +1 -1
- package/src/resolvers/aggregate/group-by-aggregate.resolver.js +2 -1
- package/src/resolvers/aggregate/group-by-aggregate.resolver.js.map +1 -1
- package/src/resolvers/resolver.interface.js +1 -0
- package/src/resolvers/resolver.interface.js.map +1 -1
- package/src/types/query/filter.type.js +15 -13
- package/src/types/query/filter.type.js.map +1 -1
- package/src/types/validators/cannot-use-with.validator.js +2 -1
- package/src/types/validators/cannot-use-with.validator.js.map +1 -1
- package/src/types/validators/cannot-use-without.validator.js +2 -1
- package/src/types/validators/cannot-use-without.validator.js.map +1 -1
- package/src/types/validators/property-max.validator.js +2 -1
- package/src/types/validators/property-max.validator.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ptc-org/nestjs-query-graphql",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Nestjs graphql query adapter",
|
|
5
5
|
"author": "doug-martin <doug@dougamartin.com>",
|
|
6
6
|
"homepage": "https://github.com/tripss/nestjs-query#readme",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"dataloader"
|
|
12
12
|
],
|
|
13
13
|
"license": "MIT",
|
|
14
|
-
"main": "src/index.js",
|
|
14
|
+
"main": "./src/index.js",
|
|
15
15
|
"types": "src/index.d.ts",
|
|
16
16
|
"directories": {
|
|
17
17
|
"lib": "src",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"lodash.omit": "^4.5.0",
|
|
38
38
|
"lower-case-first": "^2.0.2",
|
|
39
39
|
"pluralize": "^8.0.0",
|
|
40
|
-
"tslib": "^2.6.
|
|
40
|
+
"tslib": "^2.6.2",
|
|
41
41
|
"upper-case-first": "^2.0.2",
|
|
42
|
-
"@ptc-org/nestjs-query-core": "4.
|
|
42
|
+
"@ptc-org/nestjs-query-core": "4.1.0",
|
|
43
43
|
"lodash.merge": "4.6.2",
|
|
44
44
|
"reflect-metadata": "0.1.13"
|
|
45
45
|
},
|
|
@@ -53,5 +53,6 @@
|
|
|
53
53
|
"graphql": "^16.0.0",
|
|
54
54
|
"graphql-subscriptions": "^2.0.0",
|
|
55
55
|
"ts-morph": "^19.0.0"
|
|
56
|
-
}
|
|
56
|
+
},
|
|
57
|
+
"type": "commonjs"
|
|
57
58
|
}
|
package/src/auth/authorizer.d.ts
CHANGED
|
@@ -22,5 +22,5 @@ export interface CustomAuthorizer<DTO> {
|
|
|
22
22
|
}
|
|
23
23
|
export interface Authorizer<DTO> extends CustomAuthorizer<DTO> {
|
|
24
24
|
authorize(context: any, authorizerContext: AuthorizationContext): Promise<Filter<DTO>>;
|
|
25
|
-
authorizeRelation(relationName: string, context: any, authorizerContext: AuthorizationContext): Promise<Filter<unknown | undefined
|
|
25
|
+
authorizeRelation(relationName: string, context: any, authorizerContext: AuthorizationContext): Promise<Filter<unknown> | undefined>;
|
|
26
26
|
}
|
package/src/module.js
CHANGED
|
@@ -8,7 +8,7 @@ const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
|
8
8
|
const inject_data_loader_config_pipe_1 = require("./pipes/inject-data-loader-config.pipe");
|
|
9
9
|
const providers_1 = require("./providers");
|
|
10
10
|
const subscription_1 = require("./subscription");
|
|
11
|
-
let NestjsQueryGraphQLCoreModule =
|
|
11
|
+
let NestjsQueryGraphQLCoreModule = NestjsQueryGraphQLCoreModule_1 = class NestjsQueryGraphQLCoreModule {
|
|
12
12
|
static forRoot(opts) {
|
|
13
13
|
const providers = [{ provide: inject_data_loader_config_pipe_1.dataLoaderOptionsToken, useValue: opts.dataLoader ?? {} }];
|
|
14
14
|
return {
|
|
@@ -18,6 +18,7 @@ let NestjsQueryGraphQLCoreModule = exports.NestjsQueryGraphQLCoreModule = Nestjs
|
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
|
+
exports.NestjsQueryGraphQLCoreModule = NestjsQueryGraphQLCoreModule;
|
|
21
22
|
exports.NestjsQueryGraphQLCoreModule = NestjsQueryGraphQLCoreModule = NestjsQueryGraphQLCoreModule_1 = tslib_1.__decorate([
|
|
22
23
|
(0, common_1.Global)(),
|
|
23
24
|
(0, common_1.Module)({})
|
package/src/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../packages/query-graphql/src/module.ts"],"names":[],"mappings":";;;;;AAAA,2CAA0F;AAC1F,kEAAoF;AAEpF,2FAAkG;AAClG,2CAA+G;AAE/G,iDAA0E;AA4BnE,IAAM,4BAA4B,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../packages/query-graphql/src/module.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const core_1 = require("@nestjs/core");
|
|
7
7
|
exports.dataLoaderOptionsToken = 'DATALOADER_OPTIONS';
|
|
8
|
-
let InjectDataLoaderConfigPipe =
|
|
8
|
+
let InjectDataLoaderConfigPipe = class InjectDataLoaderConfigPipe {
|
|
9
9
|
constructor(moduleRef) {
|
|
10
10
|
this.moduleRef = moduleRef;
|
|
11
11
|
this.options = {};
|
|
@@ -20,6 +20,7 @@ let InjectDataLoaderConfigPipe = exports.InjectDataLoaderConfigPipe = class Inje
|
|
|
20
20
|
return this.options;
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
+
exports.InjectDataLoaderConfigPipe = InjectDataLoaderConfigPipe;
|
|
23
24
|
exports.InjectDataLoaderConfigPipe = InjectDataLoaderConfigPipe = tslib_1.__decorate([
|
|
24
25
|
(0, common_1.Injectable)(),
|
|
25
26
|
tslib_1.__param(0, (0, common_1.Inject)(core_1.ModuleRef)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-data-loader-config.pipe.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/pipes/inject-data-loader-config.pipe.ts"],"names":[],"mappings":";;;;AAAA,2CAAkE;AAClE,uCAAwC;AAG3B,QAAA,sBAAsB,GAAG,oBAA6B,CAAA;AAK5D,IAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"inject-data-loader-config.pipe.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/pipes/inject-data-loader-config.pipe.ts"],"names":[],"mappings":";;;;AAAA,2CAAkE;AAClE,uCAAwC;AAG3B,QAAA,sBAAsB,GAAG,oBAA6B,CAAA;AAK5D,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAGrC,YAEE,SAA4B;QAApB,cAAS,GAAT,SAAS,CAAW;QAJb,YAAO,GAAsB,EAAE,CAAA;QAM9C,IAAI;YACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,8BAAsB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;SAC7E;QAAC,OAAO,KAAK,EAAE;YACd,EAAE;SACH;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF,CAAA;AAjBY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;IAKR,mBAAA,IAAA,eAAM,EAAC,gBAAS,CAAC,CAAA;6CACC,gBAAS;GALnB,0BAA0B,CAiBtC"}
|
|
@@ -23,7 +23,8 @@ const GroupByAggregateMixin = (DTOClass, AR) => (Base) => {
|
|
|
23
23
|
return fields.reduce((RB, field) => {
|
|
24
24
|
var _a;
|
|
25
25
|
let ReadOneMixin = class ReadOneMixin extends RB {
|
|
26
|
-
[_a = field.propertyName](dto,
|
|
26
|
+
[_a = field.propertyName](dto, // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
27
|
+
by) {
|
|
27
28
|
return dto[field.propertyName];
|
|
28
29
|
}
|
|
29
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-by-aggregate.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/aggregate/group-by-aggregate.resolver.ts"],"names":[],"mappings":";;;;AAAA,6CAA0E;AAC1E,kEAA0G;AAE1G,yCAAmD;AACnD,iDAAqE;AAGrE,MAAM,SAAS,GAAG,IAAI,gCAAY,CAAC,sCAAsC,CAAC,CAAA;AAE1E,IAAA,0BAAgB,EAAC,2BAAO,EAAE;IACxB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,UAAU,CAAC,uBAAuB;CAChD,CAAC,CAAA;AAEK,MAAM,qBAAqB,GAChC,CAAM,QAAoB,EAAE,EAAiC,EAAE,EAAE,CACjE,CAA6E,IAAO,EAAK,EAAE;IACzF,MAAM,OAAO,GAAG,IAAA,6BAAoB,EAAC,QAAQ,EAAE,yCAAyC,CAAC,CAAA;IAEzF,MAAM,OAAO,GAAG,GAAG,OAAO,kBAAkB,CAAA;IAC5C,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,IAAA,gCAAmB,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAA;QAErF,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,OAAO,IAAI,CAAA;SACZ;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;;YAEjC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,EAAE;gBAE3B,MAAC,KAAK,CAAC,YAAY,CAAC,CACR,GAAQ,
|
|
1
|
+
{"version":3,"file":"group-by-aggregate.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/aggregate/group-by-aggregate.resolver.ts"],"names":[],"mappings":";;;;AAAA,6CAA0E;AAC1E,kEAA0G;AAE1G,yCAAmD;AACnD,iDAAqE;AAGrE,MAAM,SAAS,GAAG,IAAI,gCAAY,CAAC,sCAAsC,CAAC,CAAA;AAE1E,IAAA,0BAAgB,EAAC,2BAAO,EAAE;IACxB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,UAAU,CAAC,uBAAuB;CAChD,CAAC,CAAA;AAEK,MAAM,qBAAqB,GAChC,CAAM,QAAoB,EAAE,EAAiC,EAAE,EAAE,CACjE,CAA6E,IAAO,EAAK,EAAE;IACzF,MAAM,OAAO,GAAG,IAAA,6BAAoB,EAAC,QAAQ,EAAE,yCAAyC,CAAC,CAAA;IAEzF,MAAM,OAAO,GAAG,GAAG,OAAO,kBAAkB,CAAA;IAC5C,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,IAAA,gCAAmB,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAA;QAErF,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,OAAO,IAAI,CAAA;SACZ;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;;YAEjC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,EAAE;gBAE3B,MAAC,KAAK,CAAC,YAAY,CAAC,CACR,GAAQ,EAIf,6DAA6D;gBAChE,EAAU;oBAEV,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;gBAChC,CAAC;aACF,CAAA;YAVC;gBADC,IAAA,0BAAa,EAAC,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAEvE,mBAAA,IAAA,gBAAM,GAAE,CAAA;gBACR,mBAAA,IAAA,cAAI,EAAC,IAAI,EAAE;oBACV,IAAI,EAAE,GAAG,EAAE,CAAC,2BAAO;oBACnB,YAAY,EAAE,2BAAO,CAAC,GAAG;iBAC1B,CAAC,CAAA;;;;gDAIH;YAXG,YAAY;gBADjB,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;eACnC,YAAY,CAYjB;YAED,OAAO,YAAY,CAAA;QACrB,CAAC,EAAE,IAAI,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAjCU,QAAA,qBAAqB,yBAiC/B"}
|
|
@@ -5,6 +5,7 @@ exports.BaseServiceResolver = void 0;
|
|
|
5
5
|
* @internal
|
|
6
6
|
* Base Resolver that takes in a service as a constructor argument.
|
|
7
7
|
*/
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8
9
|
class BaseServiceResolver {
|
|
9
10
|
constructor(service) {
|
|
10
11
|
this.service = service;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.interface.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/resolver.interface.ts"],"names":[],"mappings":";;;AAyCA;;;GAGG;AACH,MAAa,mBAAmB;IAC9B,YAAqB,OAAW;QAAX,YAAO,GAAP,OAAO,CAAI;IAAG,CAAC;CACrC;AAFD,kDAEC"}
|
|
1
|
+
{"version":3,"file":"resolver.interface.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/resolver.interface.ts"],"names":[],"mappings":";;;AAyCA;;;GAGG;AACH,6DAA6D;AAC7D,MAAa,mBAAmB;IAC9B,YAAqB,OAAW;QAAX,YAAO,GAAP,OAAO,CAAI;IAAG,CAAC;CACrC;AAFD,kDAEC"}
|
|
@@ -37,7 +37,6 @@ function getOrCreateFilterType(TClass, prefix, suffix, depth) {
|
|
|
37
37
|
const filterType = Number.isFinite(depth) ? '' : 'Deep';
|
|
38
38
|
const typeName = `${name}${filterType}Filter`;
|
|
39
39
|
return reflector.memoize(TClass, typeName, () => {
|
|
40
|
-
var GraphQLFilter_1;
|
|
41
40
|
const { one = {}, many = {} } = (0, decorators_1.getRelations)(TClass);
|
|
42
41
|
const filterableRelations = { ...getFilterableRelations(one), ...getFilterableRelations(many) };
|
|
43
42
|
const { allowedBooleanExpressions } = (0, decorators_1.getQueryOptions)(TClass) ?? {};
|
|
@@ -47,22 +46,22 @@ function getOrCreateFilterType(TClass, prefix, suffix, depth) {
|
|
|
47
46
|
}
|
|
48
47
|
const hasRequiredFilters = fields.some((f) => f.advancedOptions?.filterRequired === true);
|
|
49
48
|
const isNotAllowedComparison = (val) => !(0, helpers_1.isInAllowedList)(allowedBooleanExpressions, val);
|
|
50
|
-
let GraphQLFilter =
|
|
49
|
+
let GraphQLFilter = class GraphQLFilter {
|
|
51
50
|
};
|
|
52
51
|
GraphQLFilter.hasRequiredFilters = hasRequiredFilters;
|
|
53
52
|
tslib_1.__decorate([
|
|
54
53
|
(0, class_validator_1.ValidateNested)(),
|
|
55
|
-
(0, decorators_1.SkipIf)(() => isNotAllowedComparison('and'), (0, graphql_1.Field)(() => [
|
|
56
|
-
(0, class_transformer_1.Type)(() =>
|
|
54
|
+
(0, decorators_1.SkipIf)(() => isNotAllowedComparison('and'), (0, graphql_1.Field)(() => [GraphQLFilter], { nullable: true })),
|
|
55
|
+
(0, class_transformer_1.Type)(() => GraphQLFilter),
|
|
57
56
|
tslib_1.__metadata("design:type", Array)
|
|
58
57
|
], GraphQLFilter.prototype, "and", void 0);
|
|
59
58
|
tslib_1.__decorate([
|
|
60
59
|
(0, class_validator_1.ValidateNested)(),
|
|
61
|
-
(0, decorators_1.SkipIf)(() => isNotAllowedComparison('or'), (0, graphql_1.Field)(() => [
|
|
62
|
-
(0, class_transformer_1.Type)(() =>
|
|
60
|
+
(0, decorators_1.SkipIf)(() => isNotAllowedComparison('or'), (0, graphql_1.Field)(() => [GraphQLFilter], { nullable: true })),
|
|
61
|
+
(0, class_transformer_1.Type)(() => GraphQLFilter),
|
|
63
62
|
tslib_1.__metadata("design:type", Array)
|
|
64
63
|
], GraphQLFilter.prototype, "or", void 0);
|
|
65
|
-
GraphQLFilter =
|
|
64
|
+
GraphQLFilter = tslib_1.__decorate([
|
|
66
65
|
(0, graphql_1.InputType)(typeName)
|
|
67
66
|
], GraphQLFilter);
|
|
68
67
|
// if the filter is already in the cache, exist early and return it
|
|
@@ -78,12 +77,15 @@ function getOrCreateFilterType(TClass, prefix, suffix, depth) {
|
|
|
78
77
|
}
|
|
79
78
|
const { baseName } = (0, common_1.getDTONames)(TClass);
|
|
80
79
|
fields.forEach(({ propertyName, target, advancedOptions, returnTypeFunc }) => {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
const objectTypeMetadata = graphql_1.TypeMetadataStorage.getObjectTypeMetadataByTarget(target);
|
|
81
|
+
const FC = objectTypeMetadata
|
|
82
|
+
? getOrCreateFilterType(target, typeName, suffix, depth)
|
|
83
|
+
: (0, field_comparison_1.createFilterComparisonType)({
|
|
84
|
+
FieldType: target,
|
|
85
|
+
fieldName: `${baseName}${(0, upper_case_first_1.upperCaseFirst)(propertyName)}`,
|
|
86
|
+
allowedComparisons: advancedOptions?.allowedComparisons,
|
|
87
|
+
returnTypeFunc
|
|
88
|
+
});
|
|
87
89
|
const nullable = advancedOptions?.filterRequired !== true;
|
|
88
90
|
(0, class_validator_1.ValidateNested)()(GraphQLFilter.prototype, propertyName);
|
|
89
91
|
if (advancedOptions?.filterRequired) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.type.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/types/query/filter.type.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"filter.type.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/types/query/filter.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ exports.CannotUseWith = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const class_validator_1 = require("class-validator");
|
|
6
6
|
/** @internal */
|
|
7
|
-
let CannotUseWith =
|
|
7
|
+
let CannotUseWith = class CannotUseWith {
|
|
8
8
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types
|
|
9
9
|
validate(value, args) {
|
|
10
10
|
const object = args.object;
|
|
@@ -14,6 +14,7 @@ let CannotUseWith = exports.CannotUseWith = class CannotUseWith {
|
|
|
14
14
|
return `Cannot be used with \`${args.constraints.join('` , `')}\`.`;
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
|
+
exports.CannotUseWith = CannotUseWith;
|
|
17
18
|
exports.CannotUseWith = CannotUseWith = tslib_1.__decorate([
|
|
18
19
|
(0, class_validator_1.ValidatorConstraint)({ async: false })
|
|
19
20
|
], CannotUseWith);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cannot-use-with.validator.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/types/validators/cannot-use-with.validator.ts"],"names":[],"mappings":";;;;AAAA,qDAAwG;AAExG,gBAAgB;AAET,IAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"cannot-use-with.validator.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/types/validators/cannot-use-with.validator.ts"],"names":[],"mappings":";;;;AAAA,qDAAwG;AAExG,gBAAgB;AAET,IAAM,aAAa,GAAnB,MAAM,aAAa;IACxB,gHAAgH;IAChH,QAAQ,CAAC,KAAU,EAAE,IAAyB;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAiC,CAAA;QACrD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,YAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,CAAA;IAC7F,CAAC;IAED,cAAc,CAAC,IAAyB;QACtC,OAAO,yBAAyB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;IACrE,CAAC;CACF,CAAA;AAVY,sCAAa;wBAAb,aAAa;IADzB,IAAA,qCAAmB,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GACzB,aAAa,CAUzB"}
|
|
@@ -4,7 +4,7 @@ exports.CannotUseWithout = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const class_validator_1 = require("class-validator");
|
|
6
6
|
/** @internal */
|
|
7
|
-
let CannotUseWithout =
|
|
7
|
+
let CannotUseWithout = class CannotUseWithout {
|
|
8
8
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types
|
|
9
9
|
validate(value, args) {
|
|
10
10
|
const object = args.object;
|
|
@@ -15,6 +15,7 @@ let CannotUseWithout = exports.CannotUseWithout = class CannotUseWithout {
|
|
|
15
15
|
return `Cannot be used without \`${args.constraints[0]}\`.`;
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
|
+
exports.CannotUseWithout = CannotUseWithout;
|
|
18
19
|
exports.CannotUseWithout = CannotUseWithout = tslib_1.__decorate([
|
|
19
20
|
(0, class_validator_1.ValidatorConstraint)({ async: false })
|
|
20
21
|
], CannotUseWithout);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cannot-use-without.validator.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/types/validators/cannot-use-without.validator.ts"],"names":[],"mappings":";;;;AAAA,qDAAwG;AAExG,gBAAgB;AAET,IAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"cannot-use-without.validator.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/types/validators/cannot-use-without.validator.ts"],"names":[],"mappings":";;;;AAAA,qDAAwG;AAExG,gBAAgB;AAET,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,gHAAgH;IAChH,QAAQ,CAAC,KAAU,EAAE,IAAyB;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAiC,CAAA;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAW,CAAA;QAC9C,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAA;IACvC,CAAC;IAED,cAAc,CAAC,IAAyB;QACtC,OAAO,4BAA4B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAW,KAAK,CAAA;IACvE,CAAC;CACF,CAAA;AAXY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,qCAAmB,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GACzB,gBAAgB,CAW5B"}
|
|
@@ -4,7 +4,7 @@ exports.PropertyMax = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const class_validator_1 = require("class-validator");
|
|
6
6
|
/** @internal */
|
|
7
|
-
let PropertyMax =
|
|
7
|
+
let PropertyMax = class PropertyMax {
|
|
8
8
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types
|
|
9
9
|
validate(value, args) {
|
|
10
10
|
const maxVal = args.constraints[1];
|
|
@@ -23,6 +23,7 @@ let PropertyMax = exports.PropertyMax = class PropertyMax {
|
|
|
23
23
|
return `Field ${args.property}.${args.constraints[0]} max allowed value is \`${args.constraints[1]}\`.`;
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
+
exports.PropertyMax = PropertyMax;
|
|
26
27
|
exports.PropertyMax = PropertyMax = tslib_1.__decorate([
|
|
27
28
|
(0, class_validator_1.ValidatorConstraint)({ async: false })
|
|
28
29
|
], PropertyMax);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-max.validator.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/types/validators/property-max.validator.ts"],"names":[],"mappings":";;;;AAAA,qDAAwG;AAExG,gBAAgB;AAET,IAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"property-max.validator.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/types/validators/property-max.validator.ts"],"names":[],"mappings":";;;;AAAA,qDAAwG;AAExG,gBAAgB;AAET,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,gHAAgH;IAChH,QAAQ,CAAC,KAAU,EAAE,IAAyB;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAW,CAAA;QAC5C,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;YACjB,OAAO,IAAI,CAAA;SACZ;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAW,CAAA;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgD,CAAA;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QACxC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YAC7B,OAAO,IAAI,CAAA;SACZ;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAA;IAC9B,CAAC;IAED,cAAc,CAAC,IAAyB;QACtC,OAAO,SAAS,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAW,2BAA2B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAW,KAAK,CAAA;IAC7H,CAAC;CACF,CAAA;AAnBY,kCAAW;sBAAX,WAAW;IADvB,IAAA,qCAAmB,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GACzB,WAAW,CAmBvB"}
|