@qubhq/eslint-plugin-nestjs-graphql 1.1.3

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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Vladyslav Zavalykhatko
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,158 @@
1
+ # eslint-plugin-nestjs-graphql
2
+
3
+ > **Note**
4
+ > This fork of `eslint-plugin-nestjs-graphql` extends the original functionality
5
+ > by adding support for some [`graphql-scalars`](https://www.npmjs.com/package/graphql-scalars)
6
+ types as needed.
7
+
8
+ [![npm](https://img.shields.io/npm/v/eslint-plugin-nestjs-graphql.svg)](https://www.npmjs.com/package/eslint-plugin-nestjs-graphql)
9
+
10
+ This plugin intends to prevent issues with returning the wrong type from NestJS GraphQL resolvers. Relevant to [Code first](https://docs.nestjs.com/graphql/quick-start#code-first) approach.
11
+
12
+ ## Rules
13
+
14
+ The plugin supports rules:
15
+
16
+ `matching-return-type`
17
+ `matching-resolve-field-parent-type`
18
+
19
+ ## Motivation
20
+
21
+ ### matching-return-type
22
+
23
+ When Code first approach is used, NestJS generates schema based on the decorators such as `ResolveField`, `Query`, or `Mutation` which define the type of the returned value. However, the type of the returned value is not checked by TypeScript compiler.
24
+
25
+ A query defined as:
26
+
27
+ ```typescript
28
+ @Query(returns => Author)
29
+ async author(@Args('id', { type: () => Int }) id: number) {
30
+ return this.authorsService.findOneById(id);
31
+ }
32
+ ```
33
+
34
+ can be implemented to return any type of value, e.g. `Promise<string>`. This will not be caught by TypeScript compiler, but will result in runtime error when the GraphQL schema is generated.
35
+
36
+ This rule aims to solve this issue by checking the type of the returned value.
37
+
38
+ *Valid*
39
+
40
+ ```typescript
41
+ @Query(returns => Author)
42
+ async author(@Args('id', { type: () => Int }) id: number): Author {
43
+ return this.authorsService.findOneById(id);
44
+ }
45
+ ```
46
+
47
+ ```typescript
48
+ @Query(returns => Author)
49
+ async author(@Args('id', { type: () => Int }) id: number): Promise<Author> {
50
+ return this.authorsService.findOneById(id);
51
+ }
52
+ ```
53
+
54
+ ```typescript
55
+ @Query(returns => [Author])
56
+ async author(@Args('id', { type: () => Int }) id: number): Promise<Author[]> {
57
+ return this.authorsService.findOneById(id);
58
+ }
59
+ ```
60
+
61
+ ```typescript
62
+ @Query(returns => [Author], { nullable: true })
63
+ async author(@Args('id', { type: () => Int }) id: number): Promise<Author[] | null> {
64
+ return this.authorsService.findOneById(id);
65
+ }
66
+ ```
67
+
68
+ *Invalid*
69
+
70
+ ```typescript
71
+ @Query(returns => Author)
72
+ async author(@Args('id', { type: () => Int }) id: number): string {
73
+ return this.authorsService.findOneById(id);
74
+ }
75
+ ```
76
+
77
+ ```typescript
78
+ @Query(returns => Author)
79
+ async author(@Args('id', { type: () => Int }) id: number): Promise<Author | null> {
80
+ return this.authorsService.findOneById(id);
81
+ }
82
+ ```
83
+
84
+ ```typescript
85
+ @Query(returns => Author)
86
+ async author(@Args('id', { type: () => Int }) id: number): Promise<Author[]> {
87
+ return this.authorsService.findOneById(id);
88
+ }
89
+ ```
90
+
91
+ ### matching-resolve-field-parent-type
92
+
93
+ When resolving a field, the `@Parent()` decorator's type can mismatch the type returned from the `@Resolver()` decorator of the class. This may result in runtime error or unexpected behavior.
94
+
95
+ This rule aims to solve this issue by checking the type of the `@Parent` against `@Resolver()`.
96
+
97
+ *Valid*
98
+
99
+ ```typescript
100
+ @Resolver(() => Author)
101
+ class AuthorResolver {
102
+ @ResolveField(() => [Book])
103
+ async books(@Parent() author: Author): Promise<Book[]> {
104
+ return this.booksService.findAllByAuthorId(author.id);
105
+ }
106
+ }
107
+ ```
108
+
109
+ ```typescript
110
+ @Resolver(Author)
111
+ class AuthorResolver {
112
+ @ResolveField(returns => [Book])
113
+ async books(@Parent() author: Author): Promise<Book[]> {
114
+ return this.booksService.findAllByAuthorId(author.id);
115
+ }
116
+ }
117
+ ```
118
+
119
+ *Invalid*
120
+
121
+ ```typescript
122
+ @Resolver()
123
+ class AuthorResolver {
124
+ @ResolveField(returns => [Book])
125
+ async books(@Parent() author: Author): Promise<Book[]> {
126
+ return this.booksService.findAllByAuthorId(author.id);
127
+ }
128
+ }
129
+ ```
130
+
131
+ ```typescript
132
+ @Resolver(Author)
133
+ class AuthorResolver {
134
+ @ResolveField(returns => [Book])
135
+ async books(@Parent() author: Book): Promise<Book[]> {
136
+ return this.booksService.findAllByAuthorId(author.id);
137
+ }
138
+ }
139
+ ```
140
+
141
+ ## Installation
142
+
143
+ ```sh
144
+ # inside your project's working tree
145
+ npm i eslint-plugin-nestjs-graphql --save-dev
146
+ ```
147
+
148
+ The rules are off by default. To turn them on, add the following to your `.eslintrc` file:
149
+
150
+ ```json
151
+ {
152
+ "plugins": ["nestjs-graphql"],
153
+ "rules": {
154
+ "nestjs-graphql/matching-return-type": "error", // `error` level is recommended
155
+ "nestjs-graphql/matching-resolve-field-parent-type": "error", // `error` level is recommended
156
+ }
157
+ }
158
+ ```
@@ -0,0 +1 @@
1
+ export {};
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const matching_return_type_rule_1 = require("./matching-return-type.rule");
4
+ const matching_resolve_field_parent_type_rule_1 = require("./matching-resolve-field-parent-type.rule");
5
+ module.exports = {
6
+ rules: {
7
+ 'matching-return-type': matching_return_type_rule_1.rule,
8
+ 'matching-resolve-field-parent-type': matching_resolve_field_parent_type_rule_1.rule,
9
+ },
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,2EAAwE;AACxE,uGAAkG;AAElG,MAAM,CAAC,OAAO,GAAG;IACf,KAAK,EAAE;QACL,sBAAsB,EAAE,gCAAkB;QAC1C,oCAAoC,EAAE,8CAA8B;KACrE;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { ESLintUtils } from '@typescript-eslint/utils';
2
+ export declare const rule: ESLintUtils.RuleModule<"typeMismatch" | "notDecoratedResolver", never[], ESLintUtils.RuleListener>;
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rule = void 0;
4
+ const utils_1 = require("@typescript-eslint/utils");
5
+ const createRule = utils_1.ESLintUtils.RuleCreator((name) => name);
6
+ exports.rule = createRule({
7
+ name: 'decorator-return-type',
8
+ defaultOptions: [],
9
+ meta: {
10
+ messages: {
11
+ typeMismatch: 'Type mismatch',
12
+ notDecoratedResolver: 'Resolver decorator does not have a type argument',
13
+ },
14
+ schema: [],
15
+ docs: {
16
+ description: '',
17
+ },
18
+ type: 'problem',
19
+ },
20
+ create: (context) => {
21
+ return {
22
+ 'MethodDefinition[decorators.length>=1]:exit': (node) => processNode(node, context),
23
+ };
24
+ },
25
+ });
26
+ const processNode = (node, context) => {
27
+ if (node.value.type !== 'FunctionExpression') {
28
+ console.log('Unexpected value type - please contact the author of the rule');
29
+ return;
30
+ }
31
+ if (!node.value.returnType) {
32
+ return;
33
+ }
34
+ const filteredDecorators = node.decorators.filter((decorator) => {
35
+ const { expression } = decorator;
36
+ if (expression.type !== 'CallExpression') {
37
+ console.log('Unexpected decorator expression type - please contact the author of the rule');
38
+ return false;
39
+ }
40
+ const { callee } = expression;
41
+ if (callee.type !== 'Identifier') {
42
+ console.log('Unexpected decorator expression type - please contact the author of the rule');
43
+ return false;
44
+ }
45
+ return callee.name === 'ResolveField';
46
+ });
47
+ if (!filteredDecorators.length) {
48
+ return;
49
+ }
50
+ const methodParam = node.value.params.find(({ decorators }) => !!decorators.find(({ expression }) => expression.type === 'CallExpression' &&
51
+ expression.callee.type === 'Identifier' &&
52
+ expression.callee.name === 'Parent'));
53
+ if (!methodParam) {
54
+ return;
55
+ }
56
+ const parentTypeName = (() => {
57
+ if ((methodParam.type !== 'Identifier' &&
58
+ methodParam.type !== 'ObjectPattern') ||
59
+ !methodParam.typeAnnotation ||
60
+ methodParam.typeAnnotation.typeAnnotation.type !== 'TSTypeReference' ||
61
+ methodParam.typeAnnotation.typeAnnotation.typeName.type !== 'Identifier') {
62
+ throw new Error('Unexpected decorator expression type - please contact the author of the rule');
63
+ }
64
+ return methodParam.typeAnnotation.typeAnnotation.typeName.name;
65
+ })();
66
+ if (node.parent.parent?.type !== 'ClassDeclaration') {
67
+ throw new Error('Unexpected decorator expression type - please contact the author of the rule');
68
+ }
69
+ const expression = node.parent.parent.decorators
70
+ .map(({ expression }) => expression)
71
+ .find((expression) => {
72
+ if (expression.type !== 'CallExpression' ||
73
+ expression.callee.type !== 'Identifier') {
74
+ return false;
75
+ }
76
+ return expression.callee.name === 'Resolver';
77
+ });
78
+ const resolverTypeArgument = expression?.arguments[0];
79
+ if (!resolverTypeArgument) {
80
+ context.report({ node, messageId: 'notDecoratedResolver' });
81
+ return;
82
+ }
83
+ const name = (() => {
84
+ if (resolverTypeArgument.type === 'Identifier') {
85
+ return resolverTypeArgument.name;
86
+ }
87
+ if (resolverTypeArgument.type === 'ArrowFunctionExpression' &&
88
+ resolverTypeArgument.body.type === 'Identifier') {
89
+ return resolverTypeArgument.body?.name;
90
+ }
91
+ throw new Error('Unexpected decorator expression type - please contact the author of the rule');
92
+ })();
93
+ if (name === parentTypeName) {
94
+ return;
95
+ }
96
+ context.report({ node, messageId: 'typeMismatch' });
97
+ };
98
+ //# sourceMappingURL=matching-resolve-field-parent-type.rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matching-resolve-field-parent-type.rule.js","sourceRoot":"","sources":["../src/matching-resolve-field-parent-type.rule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ESLintUtils } from '@typescript-eslint/utils';
2
+ export declare const rule: ESLintUtils.RuleModule<"typeMismatch" | "typeMismatchArrayIsExpected" | "unexpectedNullable", never[], ESLintUtils.RuleListener>;
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rule = void 0;
4
+ const utils_1 = require("@typescript-eslint/utils");
5
+ const createRule = utils_1.ESLintUtils.RuleCreator((name) => name);
6
+ const types = {
7
+ TSStringKeyword: ['String', 'GraphQLUUID'],
8
+ TSBooleanKeyword: ['Boolean'],
9
+ TSNumberKeyword: ['Int', 'Number', 'Float'],
10
+ };
11
+ const unwrapPromise = (typeNode) => {
12
+ if (typeNode.type === 'TSTypeReference' &&
13
+ typeNode.typeName.type === 'Identifier' &&
14
+ typeNode.typeName.name === 'Promise' &&
15
+ typeNode.typeParameters) {
16
+ return typeNode.typeParameters.params[0];
17
+ }
18
+ };
19
+ const isTypeReferenceIdentifier = (typeNode) => typeNode.type === 'TSTypeReference' && typeNode.typeName.type === 'Identifier';
20
+ const nameFromTypeReferenceIdentifier = (typeNode) => isTypeReferenceIdentifier(typeNode) ? typeNode.typeName.name : undefined;
21
+ exports.rule = createRule({
22
+ name: 'decorator-return-type',
23
+ defaultOptions: [],
24
+ meta: {
25
+ messages: {
26
+ typeMismatch: 'Type mismatch',
27
+ typeMismatchArrayIsExpected: 'Type mismatch - array is expected',
28
+ unexpectedNullable: 'Nullable return, but not decorated nullable',
29
+ },
30
+ schema: [],
31
+ docs: {
32
+ description: '',
33
+ },
34
+ type: 'problem',
35
+ },
36
+ create: (context) => {
37
+ return {
38
+ 'MethodDefinition[decorators.length>=1]:exit': (node) => processNode(node, context),
39
+ };
40
+ },
41
+ });
42
+ const processNode = (node, context) => {
43
+ if (node.value.type !== 'FunctionExpression') {
44
+ console.log('Unexpected value type - please contact the author of the rule');
45
+ return;
46
+ }
47
+ if (!node.value.returnType) {
48
+ return;
49
+ }
50
+ const parsedDecoratorInfo = parseDecorators(node);
51
+ if (!parsedDecoratorInfo) {
52
+ return;
53
+ }
54
+ const { isDecoratedNullable, isDecoratedArray, typeFromDecorator } = parsedDecoratorInfo;
55
+ const unwrapUnion = (topReturnType) => {
56
+ const types = topReturnType.types.map((typeWithinUnion) => {
57
+ if (typeWithinUnion.type === 'TSArrayType') {
58
+ if (!isDecoratedArray) {
59
+ context.report({
60
+ node,
61
+ messageId: 'typeMismatchArrayIsExpected',
62
+ });
63
+ }
64
+ const { elementType } = typeWithinUnion;
65
+ return nameFromTypeReferenceIdentifier(elementType) || elementType.type;
66
+ }
67
+ if (typeWithinUnion.type === 'TSTypeReference') {
68
+ const unwrapped = unwrapPromise(typeWithinUnion) ?? typeWithinUnion;
69
+ const name = nameFromTypeReferenceIdentifier(unwrapped);
70
+ if (!name) {
71
+ throw new Error('Unexpected unwrapped Type - please contact the author of the rule');
72
+ }
73
+ return name;
74
+ }
75
+ if (typeWithinUnion.type === 'TSTypeOperator' &&
76
+ typeWithinUnion.operator === 'keyof') {
77
+ if (typeWithinUnion.typeAnnotation?.type !== 'TSTypeQuery' ||
78
+ typeWithinUnion.typeAnnotation?.exprName.type !== 'Identifier') {
79
+ throw new Error('Unexpected typeAnnotation type - please contact the author of the rule');
80
+ }
81
+ return typeWithinUnion.typeAnnotation?.exprName.name;
82
+ }
83
+ if (typeWithinUnion.type === 'TSTypeQuery') {
84
+ if (typeWithinUnion.exprName.type !== 'Identifier') {
85
+ throw new Error('Unexpected typeAnnotation type - please contact the author of the rule');
86
+ }
87
+ return typeWithinUnion.exprName.name;
88
+ }
89
+ return typeWithinUnion.type;
90
+ });
91
+ if (types.find((t) => t === 'TSNullKeyword' || t === 'TSUndefinedKeyword') &&
92
+ !isDecoratedNullable) {
93
+ context.report({
94
+ node,
95
+ messageId: 'unexpectedNullable',
96
+ });
97
+ }
98
+ return {
99
+ type: types.filter((t) => t !== 'TSNullKeyword' && t !== 'TSUndefinedKeyword')[0],
100
+ };
101
+ };
102
+ const typeToCompare = (() => {
103
+ const topReturnType = unwrapPromise(node.value.returnType.typeAnnotation) ??
104
+ node.value.returnType.typeAnnotation;
105
+ if (isDecoratedArray) {
106
+ if (isTypeReferenceIdentifier(topReturnType) &&
107
+ topReturnType.typeName.name === 'Array') {
108
+ if (topReturnType.typeParameters?.params[0].type !== 'TSTypeQuery' ||
109
+ topReturnType.typeParameters?.params[0].exprName.type !== 'Identifier') {
110
+ throw new Error('Unexpected array argument type - please contact the author of the rule');
111
+ }
112
+ return topReturnType.typeParameters.params[0].exprName.name;
113
+ }
114
+ if (topReturnType.type === 'TSArrayType') {
115
+ const { elementType } = topReturnType;
116
+ return nameFromTypeReferenceIdentifier(elementType) || elementType.type;
117
+ }
118
+ if (topReturnType.type === 'TSUnionType') {
119
+ return unwrapUnion(topReturnType).type;
120
+ }
121
+ return 'Array';
122
+ }
123
+ const name = nameFromTypeReferenceIdentifier(topReturnType);
124
+ if (name) {
125
+ return name;
126
+ }
127
+ if (topReturnType.type === 'TSUnionType') {
128
+ return unwrapUnion(topReturnType).type;
129
+ }
130
+ return topReturnType.type;
131
+ })();
132
+ if (typeToCompare === typeFromDecorator) {
133
+ return;
134
+ }
135
+ const foundTypes = types[typeToCompare];
136
+ if (foundTypes?.some((t) => t === typeFromDecorator)) {
137
+ return;
138
+ }
139
+ context.report({ node, messageId: 'typeMismatch' });
140
+ };
141
+ const checkDecoratedNullable = (parametersArgument) => parametersArgument.type === 'ObjectExpression' &&
142
+ parametersArgument.properties.some((p) => p.type === 'Property' &&
143
+ p.key.type === 'Identifier' &&
144
+ p.key.name === 'nullable' &&
145
+ p.value.type === 'Literal' &&
146
+ p.value.value);
147
+ const parseDecorators = (node) => {
148
+ const filteredDecorators = node.decorators.filter((decorator) => {
149
+ const { expression } = decorator;
150
+ if (expression.type !== 'CallExpression') {
151
+ console.log('Unexpected decorator expression type - please contact the author of the rule');
152
+ return false;
153
+ }
154
+ const { callee } = expression;
155
+ if (callee.type !== 'Identifier') {
156
+ console.log('Unexpected decorator expression type - please contact the author of the rule');
157
+ return false;
158
+ }
159
+ return (callee.name === 'ResolveField' ||
160
+ callee.name === 'Query' ||
161
+ callee.name === 'Mutation');
162
+ });
163
+ const args = filteredDecorators[0]?.expression?.arguments;
164
+ if (!args) {
165
+ return undefined;
166
+ }
167
+ const [typeArgument, parametersArgument] = (() => {
168
+ if (args[0].type === 'Literal') {
169
+ return [args[1], args[2]];
170
+ }
171
+ return args;
172
+ })();
173
+ const isDecoratedNullable = (parametersArgument && checkDecoratedNullable(parametersArgument)) || false;
174
+ if (typeArgument.type !== 'ArrowFunctionExpression' ||
175
+ (typeArgument.body.type !== 'Identifier' &&
176
+ typeArgument.body.type !== 'ArrayExpression')) {
177
+ throw new Error('Unexpected first argument type - please contact the author of the rule');
178
+ }
179
+ const typeFromDecorator = (() => {
180
+ if (typeArgument.body.type === 'ArrayExpression') {
181
+ if (typeArgument.body.elements[0]?.type === 'Identifier') {
182
+ return typeArgument.body.elements[0]?.name;
183
+ }
184
+ else {
185
+ throw new Error('Unexpected Array Element Type - please contact the author of the rule');
186
+ }
187
+ }
188
+ return typeArgument.body.name;
189
+ })();
190
+ return {
191
+ isDecoratedNullable,
192
+ isDecoratedArray: typeArgument.body.type === 'ArrayExpression',
193
+ typeFromDecorator,
194
+ };
195
+ };
196
+ //# sourceMappingURL=matching-return-type.rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matching-return-type.rule.js","sourceRoot":"","sources":["../src/matching-return-type.rule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/lib.es2022.full.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-estree.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/ast.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/parseroptions.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/scope.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/parser.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/processor.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/json-schema.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/sourcecode.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/rule.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/config.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/linter.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/cliengine.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/ruletester.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-eslint/index.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/astutilities.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/patternmatcher.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/predicates.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/referencetracker.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/scopeanalysis.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ast-utils/eslint-utils/index.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ast-utils/helpers.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ast-utils/misc.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ast-utils/predicates.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ast-utils/index.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/applydefault.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/context.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/getparserservices.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/infertypesfromrule.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/rulecreator.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/deepmerge.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/nullthrows.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/eslint-utils/index.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-utils/isarray.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/ts-utils/index.d.ts","../node_modules/.pnpm/@typescript-eslint+utils@6.15.0_eslint@8.56.0_typescript@5.3.3/node_modules/@typescript-eslint/utils/dist/index.d.ts","../node_modules/.pnpm/typescript@5.3.3/node_modules/typescript/lib/typescript.d.ts","../node_modules/.pnpm/@typescript-eslint+types@6.15.0/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts","../node_modules/.pnpm/@typescript-eslint+types@6.15.0/node_modules/@typescript-eslint/types/dist/lib.d.ts","../node_modules/.pnpm/@typescript-eslint+types@6.15.0/node_modules/@typescript-eslint/types/dist/parser-options.d.ts","../node_modules/.pnpm/@typescript-eslint+types@6.15.0/node_modules/@typescript-eslint/types/dist/ts-estree.d.ts","../node_modules/.pnpm/@typescript-eslint+types@6.15.0/node_modules/@typescript-eslint/types/dist/index.d.ts","../src/matching-return-type.rule.ts","../src/matching-resolve-field-parent-type.rule.ts","../src/index.ts","../node_modules/.pnpm/@types+estree@1.0.5/node_modules/@types/estree/index.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/dom-events.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/globals.global.d.ts","../node_modules/.pnpm/@types+node@20.10.5/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"1df2366de6650547b3dc1d7c4147355c0f6b4729c964e3839636fa418982d131","bac5187f95f7b26f068c22b90693d33a659eb402f15bcc6dd7e1006b534c5105","0e7a46e217fb2dbf1058e5abcd5dfe9ea7d7060cbe54d92e0bb56f2aa2b8672d","17a3603c479b3ec90e1d0b39112dee575c8127b7148a24144ce8d8593ed2f672","f459d3a7885bb253c3ee856df1d803f3c10a0c40026fbba1692706a44c16250b","9cdb7805436cba21cfd1374f02fb3d5f0b9795b6a93e048e8537071b3c2b22f0","f9c7ad73e0f39d1c4e85dffc77714ec5c4693e8bfc3fec409143c4a589c4f1d9","2a79737ec344a4e233e1259992eea87f5c218be345fb5f9c9610bd6f5a6a9d8b","24cb68bb7712e459476bc8010233d3f5c4396e0977111b97057fc0f4c4c86662","cc2ab5cc5c5b364c640b6f1af3a36b90ae783e07f03feda11a2d9f9b8302fc8a","6029f8eb8641ddd5d40437345cb8aef87272cb2c4f54f4005e059aae2a6ffd4f","0cae1a684599a0db3ab31ace98c7e1a0399c8ea340b56ab4170e480d10dbc86d","828c8fa27ae26629cce25c9cc378198766e6c1966438ad3bd2e52807b5b6cf93","660444075564e6fc1345767818f4b359e67e49204db8df51de564ef17e9e4088","1a5b9ba8bffede12ff99123d358f223ba92fc75d6843d0375f575abd3611e959","048fd4813b64964caaeff281d311bfdcd93776dd8664ce2e29077e097e5133ea","aca83cac8fe43118ecfe54444c2ef2bdb336423ccd862977771e89343f40a4c4","0cc1286108470352e586a04ad379421501ad5d548aa2106b831faa4d32d07947","890f3f3432ebdd5d189e8d6f7331ec491eaa8509bbc3a4317e2eddc4456be74f","4ac4ec0b295bca800f86f2959e9ebfe82f29dcf527d3fa67b677f67af73e89d6","e54a2a6f1738dc52e9dbfa3c2735fc13d82e2a525d1b66c3852490becc5f1917","a97990e77a23aea39060610aef4b4bb92154d5330ecb0b557324ba4c14a1db41","d326ad5a614b4f788f91d2d702413fcebbdf810bf9827505b7ef7e0945699284","4888f20319cb26b99def6b5a9cadc99043fa873ad73c7f26c1ef8caff3cb2fb7","e88c3b64c454ef0217daa9dc33bf50321122bfe90fbeb1554351a443f0b2d905","b90283ab6c36fc580b06cb293629a9b37eaba24e17ff9ae2f0d874a3f3a962a1","79129be37db7700e76de4bb0871234a32e30ae918f2ee344fb5b199dcb411a5d","a0e3d25e47ffc0842acc3f7f3340754e9540c2e93f1aec18bb74342e68e4f712","3fb726be8191982a491831b5b05e07f1fa559f1fc598e35fd3900e5858fcc87a","417ef79fe6efb251f3bb9db0ee97369a5deae34d06bab67ee47652692bb70ebc","eaa22a1079aed7c9c6c466dd72fc6e3daf82401ee8cd9bc5250aefe188d90b59","ad8b4616cf417549fa0e88803ab8ecdae1e9be932ad21f2e1d33e9fff2697c02","1d6184940abe741966bf954c47e84de3f714cb65cc3bd2af3c819819e6443052","2b38a5cb42198846185b42aec9f02b1ad41493a629e24f937b16e829ba1862f2","79e7eb72b4d9ca2d268460d35fa7bfe01db96e93659752bd5fc5cbf5c5be8294","9e972232b831687462c01ab9d949a53f3b2799a0b9f7825078240d22319f038a","2da2b946df1f0ac928ed168d49420401775ce8175bca15addad490544bcde612","b426147fec725961d1305b25b26dbf99e5c419de98b5728974a8a44fc5959181","38738b94918d3119aa7006a143ec3f1552726348c80ee9b2de3606b9d78be223","ac5c6aefe784ae554ccef97ab165378535dc055402198667b75a4909387e7e8a","530ad38028745590e3792e0570b96d063a5039dff59119d4b686673094d2e9e7","fcf764882c18b958c2a487ad1093d6c9630df63f1e90995b157fe052e9fcc632","92ebc3261b20037c4e078cd3d26bccedb719b3eec653925e103b6ced4a936c0d",{"version":"8350921a5deecb6f3c51cebdec2d2c61bcf1f245fa36afbd83b319a25f54809d","signature":"f742cdad6990a6c840ef0dab181736ae2da9eace483032620c0917633c87d001"},{"version":"b55324531706098b2fb99679dbd8a6c891f8803ec5d614bc5fbefe67206cbf87","signature":"143c7dc3d50261d55363f6bad0f5287a554c41182de71c358f27b217fa1fc2aa"},{"version":"6c78b2cbcd1bb5094db16b3c9ee6893e4fd8720759cc866ed0535f4a92819e44","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"185282b122cbca820c297a02a57b89cf5967ab43e220e3e174d872d3f9a94d2c","affectsGlobalScope":true},"16d74fe4d8e183344d3beb15d48b123c5980ff32ff0cc8c3b96614ddcdf9b239","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","e8968b394e4365588f8f89cfff86435258cf10062585c1d2224627ab92acda22","285e512c7a0db217a0599e18c462d565fa35be4a5153dd7b80bee88c83e83ddf","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","8806ae97308ef26363bd7ec8071bca4d07fb575f905ee3d8a91aff226df6d618","af5bf1db6f1804fb0069039ae77a05d60133c77a2158d9635ea27b6bb2828a8f","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"7ae9dc7dbb58cd843065639707815df85c044babaa0947116f97bdb824d07204","affectsGlobalScope":true},"7aae1df2053572c2cfc2089a77847aadbb38eedbaa837a846c6a49fb37c6e5bd","313a0b063f5188037db113509de1b934a0e286f14e9479af24fada241435e707","1f758340b027b18ae8773ac3d33a60648a2af49eaae9e4fde18d0a0dd608642c","87ef1a23caa071b07157c72077fa42b86d30568f9dc9e31eed24d5d14fc30ba8","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"dea4c00820d4fac5e530d4842aed2fb20d6744d75a674b95502cbd433f88bcb0","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"0d832a0650a74aafc276cb3f7bb26bde2e2270a6f87e6c871a64122e9203079b","affectsGlobalScope":true},{"version":"c6f3869f12bb5c3bb8ecd0b050ea20342b89b944eae18d313cde6b0ccc0925d7","affectsGlobalScope":true},"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","d742ed2db6d5425b3b6ac5fb1f2e4b1ed2ae74fbeee8d0030d852121a4b05d2f","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"2225100373ca3d63bcc7f206e1177152d2e2161285a0bd83c8374db1503a0d1f","affectsGlobalScope":true},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eefcdf86cefff36e5d87de36a3638ab5f7d16c2b68932be4a72c14bb924e43c1","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"4d0405568cf6e0ff36a4861c4a77e641366feaefa751600b0a4d12a5e8f730a8","affectsGlobalScope":true},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","4a34b074b11c3597fb2ff890bc8f1484375b3b80793ab01f974534808d5777c7",{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447"],"root":[[105,107]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noFallthroughCasesInSwitch":false,"noImplicitAny":true,"noUnusedLocals":true,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"fileIdsList":[[109],[144],[145,150,178],[146,157,158,165,175,186],[146,147,157,165],[148,187],[149,150,158,166],[150,175,183],[151,153,157,165],[152],[153,154],[157],[155,157],[144,157],[157,158,159,175,186],[157,158,159,172,175,178],[142,145,191],[153,157,160,165,175,186],[157,158,160,161,165,175,183,186],[160,162,175,183,186],[109,110,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[157,163],[164,186,191],[153,157,165,175],[166],[167],[144,168],[169,185,191],[170],[171],[157,172,173],[172,174,187,189],[145,157,175,176,177,178],[145,175,177],[175,176],[178],[179],[144,175],[157,181,182],[181,182],[150,165,175,183],[184],[165,185],[145,160,171,186],[150,187],[175,188],[164,189],[190],[145,150,157,159,168,175,186,189,191],[175,192],[99],[100,101,102,103],[99,101],[100,103],[63,77],[78,79,80,81,82],[63],[83,84,85,86],[63,71,77],[88,89,90,91,92,93,94],[77],[71],[63,69,77,87,95,97],[71,73],[65,67,68,71],[72,73],[64,65,66,67,68,70,71,72,73,74,75,76],[67,68,70,71,72],[63,65,66],[73],[63,64,66,69,70,73],[63,65,71,72,73],[63,66,67],[96],[119,123,186],[119,175,186],[114],[116,119,183,186],[165,183],[194],[114,194],[116,119,165,186],[111,112,115,118,145,157,175,186],[111,117],[115,119,145,178,186,194],[145,194],[135,145,194],[113,114,194],[119],[113,114,115,116,117,118,119,120,121,123,124,125,126,127,128,129,130,131,132,133,134,136,137,138,139,140,141],[119,126,127],[117,119,127,128],[118],[111,114,119],[119,123,127,128],[123],[117,119,122,186],[111,116,117,119,123,126],[145,175],[114,119,135,145,191,194],[105,106],[77,98,104],[77,98,100,103,104],[98]],"referencedMap":[[109,1],[110,1],[144,2],[145,3],[146,4],[147,5],[148,6],[149,7],[150,8],[151,9],[152,10],[153,11],[154,11],[156,12],[155,13],[157,14],[158,15],[159,16],[143,17],[160,18],[161,19],[162,20],[194,21],[163,22],[164,23],[165,24],[166,25],[167,26],[168,27],[169,28],[170,29],[171,30],[172,31],[173,31],[174,32],[175,33],[177,34],[176,35],[178,36],[179,37],[180,38],[181,39],[182,40],[183,41],[184,42],[185,43],[186,44],[187,45],[188,46],[189,47],[190,48],[191,49],[192,50],[100,51],[104,52],[102,53],[103,54],[78,55],[83,56],[80,57],[81,55],[82,55],[84,57],[87,58],[85,57],[86,57],[89,59],[90,55],[95,60],[91,61],[92,62],[98,63],[64,57],[74,64],[72,65],[75,66],[77,67],[73,68],[67,69],[68,70],[71,71],[76,72],[70,73],[97,74],[126,75],[133,76],[125,75],[140,77],[117,78],[116,79],[139,80],[134,81],[137,82],[119,83],[118,84],[114,85],[113,86],[136,87],[115,88],[120,89],[124,89],[142,90],[141,89],[128,91],[129,92],[131,93],[127,94],[130,95],[135,80],[122,96],[123,97],[132,98],[112,99],[138,100],[107,101],[106,102],[105,103]],"exportedModulesMap":[[109,1],[110,1],[144,2],[145,3],[146,4],[147,5],[148,6],[149,7],[150,8],[151,9],[152,10],[153,11],[154,11],[156,12],[155,13],[157,14],[158,15],[159,16],[143,17],[160,18],[161,19],[162,20],[194,21],[163,22],[164,23],[165,24],[166,25],[167,26],[168,27],[169,28],[170,29],[171,30],[172,31],[173,31],[174,32],[175,33],[177,34],[176,35],[178,36],[179,37],[180,38],[181,39],[182,40],[183,41],[184,42],[185,43],[186,44],[187,45],[188,46],[189,47],[190,48],[191,49],[192,50],[100,51],[104,52],[102,53],[103,54],[78,55],[83,56],[80,57],[81,55],[82,55],[84,57],[87,58],[85,57],[86,57],[89,59],[90,55],[95,60],[91,61],[92,62],[98,63],[64,57],[74,64],[72,65],[75,66],[77,67],[73,68],[67,69],[68,70],[71,71],[76,72],[70,73],[97,74],[126,75],[133,76],[125,75],[140,77],[117,78],[116,79],[139,80],[134,81],[137,82],[119,83],[118,84],[114,85],[113,86],[136,87],[115,88],[120,89],[124,89],[142,90],[141,89],[128,91],[129,92],[131,93],[127,94],[130,95],[135,80],[122,96],[123,97],[132,98],[112,99],[138,100],[106,104],[105,104]],"semanticDiagnosticsPerFile":[108,109,110,144,145,146,147,148,149,150,151,152,153,154,156,155,157,158,159,143,193,160,161,162,194,163,164,165,166,167,168,169,170,171,172,173,174,175,177,176,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,100,104,101,102,103,78,83,79,80,81,82,84,87,85,86,88,89,93,90,95,91,94,92,98,69,64,74,72,75,77,73,67,65,68,71,76,66,70,63,97,96,60,61,10,11,15,14,2,16,17,18,19,20,21,22,23,3,4,24,28,25,26,27,29,30,31,5,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,8,51,48,49,50,52,9,53,62,54,55,58,56,57,1,59,13,12,99,126,133,125,140,117,116,139,134,137,119,118,114,113,136,115,120,121,124,111,142,141,128,129,131,127,130,135,122,123,132,112,138,107,106,105]},"version":"5.3.3"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@qubhq/eslint-plugin-nestjs-graphql",
3
+ "author": "Vladyslav Zavalykhatko",
4
+ "homepage": "https://github.com/Hatko/eslint-plugin-nestjs-graphql",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/Hatko/eslint-plugin-nestjs-graphql.git"
8
+ },
9
+ "bugs": {
10
+ "url": "https://github.com/Hatko/eslint-plugin-nestjs-graphql/issues"
11
+ },
12
+ "version": "1.1.3",
13
+ "description": "Ensure correct typing for NestJS GraphQL decorated methods",
14
+ "main": "./dist/index.js",
15
+ "files": [
16
+ "dist/**"
17
+ ],
18
+ "keywords": [
19
+ "eslint",
20
+ "plugin",
21
+ "nestjs",
22
+ "graphql"
23
+ ],
24
+ "license": "MIT",
25
+ "devDependencies": {
26
+ "@types/estree": "^1.0.5",
27
+ "@types/node": "^20.10.5",
28
+ "@typescript-eslint/utils": "^6.15.0",
29
+ "@typescript-eslint/types": "^6.15.0",
30
+ "typescript": "^5.3.3"
31
+ },
32
+ "scripts": {
33
+ "bump": "npx npm-check-updates -u --deep && pnpm i && pnpm upgrade",
34
+ "build": "pnpm tsc"
35
+ }
36
+ }