@application-kit/graphql 0.6.0 → 0.8.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/CHANGELOG.md +27 -0
- package/README.md +9 -8
- package/dist/cjs/client/business-message-key-resolver.d.ts +2 -0
- package/dist/cjs/client/business-message-key-resolver.js +12 -0
- package/dist/cjs/client/index.d.ts +1 -0
- package/dist/cjs/client/index.js +1 -0
- package/dist/cjs/listing/index.d.ts +1 -1
- package/dist/cjs/listing/index.js +1 -1
- package/dist/cjs/listing/{listing-payload.d.ts → listing-arguments.d.ts} +1 -1
- package/dist/cjs/listing/{listing-payload.js → listing-arguments.js} +8 -8
- package/dist/cjs/nest/graphql-root.module.d.ts +5 -0
- package/dist/cjs/nest/graphql-root.module.js +34 -0
- package/dist/cjs/nest/index.d.ts +1 -0
- package/dist/cjs/nest/index.js +1 -0
- package/dist/esm/client/business-message-key-resolver.d.ts +2 -0
- package/dist/esm/client/business-message-key-resolver.js +8 -0
- package/dist/esm/client/index.d.ts +1 -0
- package/dist/esm/client/index.js +1 -0
- package/dist/esm/listing/index.d.ts +1 -1
- package/dist/esm/listing/index.js +1 -1
- package/dist/esm/listing/{listing-payload.d.ts → listing-arguments.d.ts} +1 -1
- package/dist/esm/listing/{listing-payload.js → listing-arguments.js} +7 -7
- package/dist/esm/nest/graphql-root.module.d.ts +5 -0
- package/dist/esm/nest/graphql-root.module.js +31 -0
- package/dist/esm/nest/index.d.ts +1 -0
- package/dist/esm/nest/index.js +1 -0
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# @application-kit/graphql
|
|
2
2
|
|
|
3
|
+
## 0.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 3a2f7ed: `graphql`: класс аргументов листинга `Payload` (`@ArgsType`) переименован в `ListingArgs` — имя говорит, чьи это аргументы.
|
|
8
|
+
**Ломающее:** потребителю — заменить импорт и тип `Payload` на `ListingArgs`; схема GraphQL не меняется, имя класса в неё не попадает.
|
|
9
|
+
|
|
10
|
+
`audit-log`: резолвер `auditRecords` принимает `ListingArgs`.
|
|
11
|
+
- 79a405c: `graphql/nest`: `GraphqlRootModule.forRoot({ maxDepth, resolveSupportId, schemaPath })` — корень GraphQL на процесс.
|
|
12
|
+
Регистрирует `GraphqlConfig` с `GraphqlEnvironment` и поднимает `GraphQLModule` на `MercuriusDriver`: приложению не нужно
|
|
13
|
+
собирать `GraphQLModule.forRootAsync` и регистрировать конфиг самому.
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [c5a41d7]
|
|
18
|
+
- @application-kit/typeorm@0.5.2
|
|
19
|
+
|
|
20
|
+
## 0.7.0
|
|
21
|
+
|
|
22
|
+
### Minor Changes
|
|
23
|
+
|
|
24
|
+
- 06ce168: Клиентские части обработки ошибки запроса и кнопка темы переехали в пакеты.
|
|
25
|
+
|
|
26
|
+
`ui`: очередь страховочного тоста `globalErrorToast` и её подключение `useGlobalErrorToastConnection(translate)`, `withSupportId`, стор страницы ошибки `useErrorStore`, переключатель темы `LayoutTopbarThemeSwitcher`, встроенные иконки `moon` и `sun`. Колбэк `describeRequestError` у `UiVendorPlugin` получает третьим аргументом тексты пакета текущей локали. Ломающее: в `messages` обязательны `layout.topbar.toggleTheme` и группа `requestError` (`supportIdLine`, `title`, `unexpected`); у `LayoutTopbarIconButton` и `LayoutTopbarSubmenu` обязателен `label` — доступное имя кнопки; приложение убирает `moon` и `sun` из своего реестра иконок.
|
|
27
|
+
|
|
28
|
+
`graphql`: `createBusinessMessageKeyResolver` в `/client` — резолвер «ошибка запроса → ключ словаря» по таблице приложения, типизированной реестром кодов.
|
|
29
|
+
|
|
3
30
|
## 0.6.0
|
|
4
31
|
|
|
5
32
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ Peer-зависимости: `@nestjs/common`, `@nestjs/graphql`, `class-transfo
|
|
|
32
32
|
- `matchBusinessError(table, fallback)` — таблица «класс доменной ошибки → опции ответа», первая подходящая строка.
|
|
33
33
|
- `formatGraphQLError(error, supportId)` — единая точка форматирования: `HttpException` → `extensions`,
|
|
34
34
|
техническая ошибка получает `supportId`, бизнесовая — нет (`isBusinessGraphQLError`).
|
|
35
|
-
- Типы листинга: `
|
|
35
|
+
- Типы листинга: `ListingArguments` (`@ArgsType`), `PaginatorInputType` (потолок `limit` 200), `FilterInputType`,
|
|
36
36
|
`SortingInputType`, `CursorOutputType`, `ListingResponseInterface`.
|
|
37
37
|
|
|
38
38
|
### Словарь кодов сообщений — у приложения
|
|
@@ -56,6 +56,8 @@ declare module '@application-kit/graphql' {
|
|
|
56
56
|
`HttpLink` как есть. `onError(error)` зовётся на каждую ошибку операции, кроме помеченных флагом
|
|
57
57
|
`SKIP_GLOBAL_ERROR_TOAST` в контексте: их показывает сам вызывающий. Вызывающий получает ошибку в любом случае.
|
|
58
58
|
- `requireApolloData(result)` — данные ответа query; `undefined` вместо них — ошибка транспорта.
|
|
59
|
+
- `createBusinessMessageKeyResolver(keyByCode)` — резолвер «ошибка запроса → ключ словаря». Таблица — приложения, тип `Record`
|
|
60
|
+
по реестру кодов: новый код без ключа не компилируется. Незнакомый код и ответ без кода дают `null`.
|
|
59
61
|
|
|
60
62
|
```ts
|
|
61
63
|
export const apolloClient = createApolloClient({
|
|
@@ -74,16 +76,15 @@ export const apolloClient = createApolloClient({
|
|
|
74
76
|
Пустой `schemaPath` — схема только в памяти.
|
|
75
77
|
- `GraphqlEnvironment` — `GRAPHQL_PLAYGROUND` (дефолт `false`) и необязательный `GRAPHQL_SCHEMA_PATH`;
|
|
76
78
|
`GraphqlConfig.createOptions({ schemaPath, maxDepth, resolveSupportId })` берёт флаг консоли из окружения, путь —
|
|
77
|
-
из окружения, если он задан, иначе из вызова.
|
|
79
|
+
из окружения, если он задан, иначе из вызова.
|
|
80
|
+
- `GraphqlRootModule.forRoot({ maxDepth, resolveSupportId, schemaPath })` — корень GraphQL на процесс: регистрирует
|
|
81
|
+
`GraphqlConfig` с `GraphqlEnvironment` и поднимает `GraphQLModule` на `MercuriusDriver` с опциями `createOptions`:
|
|
78
82
|
|
|
79
83
|
```ts
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
GraphQLModule.forRootAsync({
|
|
83
|
-
driver: MercuriusDriver,
|
|
84
|
-
inject: [GraphqlConfig],
|
|
85
|
-
useFactory: (config: GraphqlConfig) => config.createOptions({ maxDepth: 5, resolveSupportId, schemaPath: 'src/schema.gql' }),
|
|
84
|
+
@Module({
|
|
85
|
+
imports: [GraphqlRootModule.forRoot({ maxDepth: 5, resolveSupportId, schemaPath: 'src/schema.gql' })],
|
|
86
86
|
})
|
|
87
|
+
export class WebModule {}
|
|
87
88
|
```
|
|
88
89
|
|
|
89
90
|
Источник `supportId` (трасса, id запроса) пакет не выбирает: резолвер передаёт приложение.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBusinessMessageKeyResolver = void 0;
|
|
4
|
+
const message_code_from_error_js_1 = require("./message-code-from-error.js");
|
|
5
|
+
const createBusinessMessageKeyResolver = (keyByCode) => {
|
|
6
|
+
const keys = new Map(Object.entries(keyByCode));
|
|
7
|
+
return (error) => {
|
|
8
|
+
const code = (0, message_code_from_error_js_1.messageCodeFromError)(error);
|
|
9
|
+
return code === null ? null : keys.get(code) ?? null;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
exports.createBusinessMessageKeyResolver = createBusinessMessageKeyResolver;
|
package/dist/cjs/client/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./business-message-key-resolver.js"), exports);
|
|
17
18
|
__exportStar(require("./create-apollo-client.js"), exports);
|
|
18
19
|
__exportStar(require("./message-code-from-error.js"), exports);
|
|
19
20
|
__exportStar(require("./rejected-characters-from-error.js"), exports);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './cursor-output.type.js';
|
|
2
2
|
export * from './cursor-type.interface.js';
|
|
3
3
|
export * from './filter-input.type.js';
|
|
4
|
-
export * from './listing-
|
|
4
|
+
export * from './listing-arguments.js';
|
|
5
5
|
export * from './listing-response.interface.js';
|
|
6
6
|
export * from './paginator-input.type.js';
|
|
7
7
|
export * from './sorting-input.type.js';
|
|
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./cursor-output.type.js"), exports);
|
|
18
18
|
__exportStar(require("./cursor-type.interface.js"), exports);
|
|
19
19
|
__exportStar(require("./filter-input.type.js"), exports);
|
|
20
|
-
__exportStar(require("./listing-
|
|
20
|
+
__exportStar(require("./listing-arguments.js"), exports);
|
|
21
21
|
__exportStar(require("./listing-response.interface.js"), exports);
|
|
22
22
|
__exportStar(require("./paginator-input.type.js"), exports);
|
|
23
23
|
__exportStar(require("./sorting-input.type.js"), exports);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FilterInputType } from './filter-input.type.js';
|
|
2
2
|
import { PaginatorInputType } from './paginator-input.type.js';
|
|
3
3
|
import { SortingInputType } from './sorting-input.type.js';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class ListingArguments {
|
|
5
5
|
filters?: FilterInputType[];
|
|
6
6
|
paginator: PaginatorInputType;
|
|
7
7
|
sorting?: SortingInputType[];
|
|
@@ -9,33 +9,33 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.ListingArguments = void 0;
|
|
13
13
|
const graphql_1 = require("@nestjs/graphql");
|
|
14
14
|
const class_transformer_1 = require("class-transformer");
|
|
15
15
|
const class_validator_1 = require("class-validator");
|
|
16
16
|
const filter_input_type_js_1 = require("./filter-input.type.js");
|
|
17
17
|
const paginator_input_type_js_1 = require("./paginator-input.type.js");
|
|
18
18
|
const sorting_input_type_js_1 = require("./sorting-input.type.js");
|
|
19
|
-
let
|
|
19
|
+
let ListingArguments = class ListingArguments {
|
|
20
20
|
filters = [];
|
|
21
21
|
paginator = new paginator_input_type_js_1.PaginatorInputType();
|
|
22
22
|
sorting = [];
|
|
23
23
|
};
|
|
24
|
-
exports.
|
|
24
|
+
exports.ListingArguments = ListingArguments;
|
|
25
25
|
__decorate([
|
|
26
26
|
(0, graphql_1.Field)(() => [filter_input_type_js_1.FilterInputType], { nullable: true }),
|
|
27
27
|
__metadata("design:type", Array)
|
|
28
|
-
],
|
|
28
|
+
], ListingArguments.prototype, "filters", void 0);
|
|
29
29
|
__decorate([
|
|
30
30
|
(0, graphql_1.Field)(() => paginator_input_type_js_1.PaginatorInputType, { nullable: true }),
|
|
31
31
|
(0, class_transformer_1.Type)(() => paginator_input_type_js_1.PaginatorInputType),
|
|
32
32
|
(0, class_validator_1.ValidateNested)(),
|
|
33
33
|
__metadata("design:type", paginator_input_type_js_1.PaginatorInputType)
|
|
34
|
-
],
|
|
34
|
+
], ListingArguments.prototype, "paginator", void 0);
|
|
35
35
|
__decorate([
|
|
36
36
|
(0, graphql_1.Field)(() => [sorting_input_type_js_1.SortingInputType], { nullable: true }),
|
|
37
37
|
__metadata("design:type", Array)
|
|
38
|
-
],
|
|
39
|
-
exports.
|
|
38
|
+
], ListingArguments.prototype, "sorting", void 0);
|
|
39
|
+
exports.ListingArguments = ListingArguments = __decorate([
|
|
40
40
|
(0, graphql_1.ArgsType)()
|
|
41
|
-
],
|
|
41
|
+
], ListingArguments);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.GraphqlRootModule = void 0;
|
|
10
|
+
const nestjs_config_module_1 = require("@libs-for-dev/nestjs-config-module");
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
13
|
+
const mercurius_1 = require("@nestjs/mercurius");
|
|
14
|
+
const graphql_config_js_1 = require("./graphql.config.js");
|
|
15
|
+
const graphql_environment_js_1 = require("./graphql.environment.js");
|
|
16
|
+
let GraphqlRootModule = class GraphqlRootModule {
|
|
17
|
+
static forRoot(options) {
|
|
18
|
+
return {
|
|
19
|
+
imports: [
|
|
20
|
+
graphql_1.GraphQLModule.forRootAsync({
|
|
21
|
+
driver: mercurius_1.MercuriusDriver,
|
|
22
|
+
imports: [nestjs_config_module_1.ConfigsModule.forFeature([graphql_config_js_1.GraphqlConfig], [graphql_environment_js_1.GraphqlEnvironment])],
|
|
23
|
+
inject: [graphql_config_js_1.GraphqlConfig],
|
|
24
|
+
useFactory: (config) => config.createOptions(options),
|
|
25
|
+
}),
|
|
26
|
+
],
|
|
27
|
+
module: this,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.GraphqlRootModule = GraphqlRootModule;
|
|
32
|
+
exports.GraphqlRootModule = GraphqlRootModule = __decorate([
|
|
33
|
+
(0, common_1.Module)({})
|
|
34
|
+
], GraphqlRootModule);
|
package/dist/cjs/nest/index.d.ts
CHANGED
package/dist/cjs/nest/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./graphql-root.module.js"), exports);
|
|
17
18
|
__exportStar(require("./graphql.config.js"), exports);
|
|
18
19
|
__exportStar(require("./graphql.environment.js"), exports);
|
|
19
20
|
__exportStar(require("./mercurius-options.js"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { messageCodeFromError } from './message-code-from-error.js';
|
|
2
|
+
export const createBusinessMessageKeyResolver = (keyByCode) => {
|
|
3
|
+
const keys = new Map(Object.entries(keyByCode));
|
|
4
|
+
return (error) => {
|
|
5
|
+
const code = messageCodeFromError(error);
|
|
6
|
+
return code === null ? null : keys.get(code) ?? null;
|
|
7
|
+
};
|
|
8
|
+
};
|
package/dist/esm/client/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './cursor-output.type.js';
|
|
2
2
|
export * from './cursor-type.interface.js';
|
|
3
3
|
export * from './filter-input.type.js';
|
|
4
|
-
export * from './listing-
|
|
4
|
+
export * from './listing-arguments.js';
|
|
5
5
|
export * from './listing-response.interface.js';
|
|
6
6
|
export * from './paginator-input.type.js';
|
|
7
7
|
export * from './sorting-input.type.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './cursor-output.type.js';
|
|
2
2
|
export * from './cursor-type.interface.js';
|
|
3
3
|
export * from './filter-input.type.js';
|
|
4
|
-
export * from './listing-
|
|
4
|
+
export * from './listing-arguments.js';
|
|
5
5
|
export * from './listing-response.interface.js';
|
|
6
6
|
export * from './paginator-input.type.js';
|
|
7
7
|
export * from './sorting-input.type.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FilterInputType } from './filter-input.type.js';
|
|
2
2
|
import { PaginatorInputType } from './paginator-input.type.js';
|
|
3
3
|
import { SortingInputType } from './sorting-input.type.js';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class ListingArguments {
|
|
5
5
|
filters?: FilterInputType[];
|
|
6
6
|
paginator: PaginatorInputType;
|
|
7
7
|
sorting?: SortingInputType[];
|
|
@@ -13,7 +13,7 @@ import { ValidateNested } from 'class-validator';
|
|
|
13
13
|
import { FilterInputType } from './filter-input.type.js';
|
|
14
14
|
import { PaginatorInputType } from './paginator-input.type.js';
|
|
15
15
|
import { SortingInputType } from './sorting-input.type.js';
|
|
16
|
-
let
|
|
16
|
+
let ListingArguments = class ListingArguments {
|
|
17
17
|
filters = [];
|
|
18
18
|
paginator = new PaginatorInputType();
|
|
19
19
|
sorting = [];
|
|
@@ -21,18 +21,18 @@ let Payload = class Payload {
|
|
|
21
21
|
__decorate([
|
|
22
22
|
Field(() => [FilterInputType], { nullable: true }),
|
|
23
23
|
__metadata("design:type", Array)
|
|
24
|
-
],
|
|
24
|
+
], ListingArguments.prototype, "filters", void 0);
|
|
25
25
|
__decorate([
|
|
26
26
|
Field(() => PaginatorInputType, { nullable: true }),
|
|
27
27
|
Type(() => PaginatorInputType),
|
|
28
28
|
ValidateNested(),
|
|
29
29
|
__metadata("design:type", PaginatorInputType)
|
|
30
|
-
],
|
|
30
|
+
], ListingArguments.prototype, "paginator", void 0);
|
|
31
31
|
__decorate([
|
|
32
32
|
Field(() => [SortingInputType], { nullable: true }),
|
|
33
33
|
__metadata("design:type", Array)
|
|
34
|
-
],
|
|
35
|
-
|
|
34
|
+
], ListingArguments.prototype, "sorting", void 0);
|
|
35
|
+
ListingArguments = __decorate([
|
|
36
36
|
ArgsType()
|
|
37
|
-
],
|
|
38
|
-
export {
|
|
37
|
+
], ListingArguments);
|
|
38
|
+
export { ListingArguments };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { ConfigsModule } from '@libs-for-dev/nestjs-config-module';
|
|
8
|
+
import { Module } from '@nestjs/common';
|
|
9
|
+
import { GraphQLModule } from '@nestjs/graphql';
|
|
10
|
+
import { MercuriusDriver } from '@nestjs/mercurius';
|
|
11
|
+
import { GraphqlConfig } from './graphql.config.js';
|
|
12
|
+
import { GraphqlEnvironment } from './graphql.environment.js';
|
|
13
|
+
let GraphqlRootModule = class GraphqlRootModule {
|
|
14
|
+
static forRoot(options) {
|
|
15
|
+
return {
|
|
16
|
+
imports: [
|
|
17
|
+
GraphQLModule.forRootAsync({
|
|
18
|
+
driver: MercuriusDriver,
|
|
19
|
+
imports: [ConfigsModule.forFeature([GraphqlConfig], [GraphqlEnvironment])],
|
|
20
|
+
inject: [GraphqlConfig],
|
|
21
|
+
useFactory: (config) => config.createOptions(options),
|
|
22
|
+
}),
|
|
23
|
+
],
|
|
24
|
+
module: this,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
GraphqlRootModule = __decorate([
|
|
29
|
+
Module({})
|
|
30
|
+
], GraphqlRootModule);
|
|
31
|
+
export { GraphqlRootModule };
|
package/dist/esm/nest/index.d.ts
CHANGED
package/dist/esm/nest/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@application-kit/graphql",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Контракт ошибок GraphQL (сервер и клиент) и типы курсорного листинга для NestJS",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"apollo",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"test:unit": "vitest run"
|
|
81
81
|
},
|
|
82
82
|
"dependencies": {
|
|
83
|
-
"@application-kit/typeorm": "^0.5.
|
|
83
|
+
"@application-kit/typeorm": "^0.5.2"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
86
|
"@apollo/client": "^4.2.12",
|
|
@@ -89,6 +89,8 @@
|
|
|
89
89
|
"@nestjs/core": "^11.2.7",
|
|
90
90
|
"@nestjs/graphql": "^13.4.5",
|
|
91
91
|
"@nestjs/mercurius": "^13.4.5",
|
|
92
|
+
"@nestjs/platform-fastify": "^11.2.7",
|
|
93
|
+
"@nestjs/testing": "^11.2.7",
|
|
92
94
|
"@stryker-mutator/core": "^10.0.0",
|
|
93
95
|
"@stryker-mutator/vitest-runner": "^10.0.0",
|
|
94
96
|
"@types/node": "^26.2.0",
|