@restorecommerce/facade 1.1.4 → 1.1.5

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.
Files changed (89) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/codegen/index.js +2 -1
  3. package/dist/gql/protos/federation.js +2 -2
  4. package/dist/gql/protos/registry.js +2 -2
  5. package/dist/gql/protos/resolvers.d.ts +2 -2
  6. package/dist/gql/protos/resolvers.js +7 -6
  7. package/dist/gql/protos/schema.d.ts +1 -1
  8. package/dist/gql/protos/schema.js +4 -4
  9. package/dist/gql/protos/types.d.ts +3 -3
  10. package/dist/gql/protos/utils.d.ts +2 -0
  11. package/dist/gql/protos/utils.js +11 -1
  12. package/dist/index.d.ts +1 -3
  13. package/dist/index.js +19 -18
  14. package/dist/interfaces.d.ts +4 -5
  15. package/dist/modules/access-control/gql/federation.js +2 -2
  16. package/dist/modules/access-control/gql/schema.generated.d.ts +166 -161
  17. package/dist/modules/access-control/grpc/index.d.ts +8 -8
  18. package/dist/modules/access-control/grpc/index.js +4 -4
  19. package/dist/modules/access-control/interfaces.d.ts +1 -1
  20. package/dist/modules/catalog/gql/federation.js +2 -2
  21. package/dist/modules/catalog/gql/schema.generated.d.ts +575 -339
  22. package/dist/modules/catalog/gql/schema.generated.js +7 -1
  23. package/dist/modules/catalog/grpc/index.d.ts +10 -10
  24. package/dist/modules/catalog/grpc/index.js +5 -5
  25. package/dist/modules/catalog/interfaces.d.ts +1 -1
  26. package/dist/modules/facade-status/gql/index.js +2 -2
  27. package/dist/modules/facade-status/gql/schema.generated.d.ts +27 -27
  28. package/dist/modules/facade-status/interfaces.d.ts +1 -1
  29. package/dist/modules/fulfillment/gql/federation.js +2 -2
  30. package/dist/modules/fulfillment/gql/schema.generated.d.ts +561 -505
  31. package/dist/modules/fulfillment/gql/schema.generated.js +6 -6
  32. package/dist/modules/fulfillment/grpc/index.d.ts +4 -4
  33. package/dist/modules/fulfillment/grpc/index.js +2 -2
  34. package/dist/modules/fulfillment/interfaces.d.ts +1 -1
  35. package/dist/modules/identity/gql/schema.generated.d.ts +361 -213
  36. package/dist/modules/identity/grpc/index.d.ts +10 -10
  37. package/dist/modules/identity/grpc/index.js +5 -5
  38. package/dist/modules/identity/interfaces.d.ts +1 -1
  39. package/dist/modules/identity/oidc/adapter.d.ts +1 -1
  40. package/dist/modules/identity/oidc/index.d.ts +1 -1
  41. package/dist/modules/identity/oidc/index.js +1 -1
  42. package/dist/modules/identity/oidc/interfaces.d.ts +11 -10
  43. package/dist/modules/identity/oidc/router.d.ts +1 -1
  44. package/dist/modules/identity/oidc/router.js +2 -2
  45. package/dist/modules/identity/oidc/user.d.ts +1 -1
  46. package/dist/modules/indexing/gql/federation.js +2 -2
  47. package/dist/modules/indexing/gql/schema.generated.d.ts +55 -50
  48. package/dist/modules/indexing/grpc/index.d.ts +2 -2
  49. package/dist/modules/indexing/grpc/index.js +1 -1
  50. package/dist/modules/indexing/interfaces.d.ts +1 -1
  51. package/dist/modules/invoicing/gql/federation.js +2 -2
  52. package/dist/modules/invoicing/gql/schema.generated.d.ts +148 -139
  53. package/dist/modules/invoicing/grpc/index.d.ts +2 -2
  54. package/dist/modules/invoicing/grpc/index.js +1 -1
  55. package/dist/modules/invoicing/interfaces.d.ts +1 -1
  56. package/dist/modules/notification/gql/federation.js +2 -2
  57. package/dist/modules/notification/gql/schema.generated.d.ts +100 -95
  58. package/dist/modules/notification/grpc/index.d.ts +2 -2
  59. package/dist/modules/notification/grpc/index.js +1 -1
  60. package/dist/modules/notification/interfaces.d.ts +1 -1
  61. package/dist/modules/ordering/gql/federation.js +2 -2
  62. package/dist/modules/ordering/gql/schema.generated.d.ts +686 -269
  63. package/dist/modules/ordering/gql/schema.generated.js +24 -12
  64. package/dist/modules/ordering/grpc/index.d.ts +2 -2
  65. package/dist/modules/ordering/grpc/index.js +1 -1
  66. package/dist/modules/ordering/interfaces.d.ts +1 -1
  67. package/dist/modules/ostorage/gql/federation.js +2 -2
  68. package/dist/modules/ostorage/gql/schema.generated.d.ts +135 -130
  69. package/dist/modules/ostorage/grpc/index.d.ts +2 -2
  70. package/dist/modules/ostorage/grpc/index.js +1 -1
  71. package/dist/modules/ostorage/interfaces.d.ts +1 -1
  72. package/dist/modules/payment/gql/federation.js +2 -2
  73. package/dist/modules/payment/gql/schema.generated.d.ts +65 -65
  74. package/dist/modules/payment/grpc/index.d.ts +2 -2
  75. package/dist/modules/payment/grpc/index.js +1 -1
  76. package/dist/modules/payment/interfaces.d.ts +1 -1
  77. package/dist/modules/resource/gql/federation.js +2 -2
  78. package/dist/modules/resource/gql/schema.generated.d.ts +331 -314
  79. package/dist/modules/resource/gql/schema.generated.js +6 -1
  80. package/dist/modules/resource/grpc/index.d.ts +22 -22
  81. package/dist/modules/resource/grpc/index.js +12 -12
  82. package/dist/modules/resource/interfaces.d.ts +1 -1
  83. package/dist/modules/scheduling/gql/federation.js +2 -2
  84. package/dist/modules/scheduling/gql/schema.generated.d.ts +105 -100
  85. package/dist/modules/scheduling/grpc/index.d.ts +2 -2
  86. package/dist/modules/scheduling/grpc/index.js +1 -1
  87. package/dist/modules/scheduling/interfaces.d.ts +1 -1
  88. package/dist/utils.d.ts +2 -2
  89. package/package.json +46 -45
package/CHANGELOG.md CHANGED
@@ -3,6 +3,32 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.1.5](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@1.1.4...@restorecommerce/facade@1.1.5) (2023-05-22)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **acs-client:** fix test imports ([3a092ef](https://github.com/restorecommerce/libs/commit/3a092ef3e34b45df0c121c3fef3f8a51d99acb96))
12
+ * **facade:** build error for null field ([aa7f405](https://github.com/restorecommerce/libs/commit/aa7f405aa3940be8d75abd3e10c6f29a19688d09))
13
+ * **facade:** downgrade nanoid, import koa-body, match test to object ([d05cee1](https://github.com/restorecommerce/libs/commit/d05cee10c7d631d54b5466e6122fee769505a6da))
14
+ * **facade:** fixed sub service name space ([f3266e7](https://github.com/restorecommerce/libs/commit/f3266e7461c7bb2db0a7be05fb79ff132f062ec5))
15
+ * **facade:** regenerated schema for changes in protos ([0da0851](https://github.com/restorecommerce/libs/commit/0da08515e4e1d05482d5881cbfe55523fc7fa368))
16
+ * **facade:** renamed service in protos and removed service names options from proto files, fixed typing issues. ([25a24f0](https://github.com/restorecommerce/libs/commit/25a24f063e2499c06c171f1265297500816879f2))
17
+ * **facade:** restore facade code-gen to previous working version ([294a55f](https://github.com/restorecommerce/libs/commit/294a55f7135aa4b072fdecefbd33baed9efeb4ca))
18
+ * **facade:** unit test ([748ab00](https://github.com/restorecommerce/libs/commit/748ab00483fa1893aa50006795c654834a7ffb57))
19
+ * failed unit tests ([0f06228](https://github.com/restorecommerce/libs/commit/0f062288ad929303a9544a3d30357b666dec555c))
20
+ * **protos:** restore nested attribute as its referenced in obligation masked properties in ACS ([d6536f9](https://github.com/restorecommerce/libs/commit/d6536f96dfc30eb1905c899af519d50778e2edee))
21
+ * **rc-grpc-clients, facade:** WIP optional fields ([98f0977](https://github.com/restorecommerce/libs/commit/98f097730503bd0fa021bc886ba55d477dafb89f))
22
+
23
+
24
+ ### Reverts
25
+
26
+ * Revert "chore: upgrade Apollo Server 4" ([90464f2](https://github.com/restorecommerce/libs/commit/90464f2ba77261406718a76d4a854ff7cbcfedf2))
27
+
28
+
29
+
30
+
31
+
6
32
  ## [1.1.4](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@1.1.3...@restorecommerce/facade@1.1.4) (2022-11-16)
7
33
 
8
34
 
package/codegen/index.js CHANGED
@@ -15,7 +15,8 @@ async function generateSchemaTypings({ schema, outputFile, typescript, typescrip
15
15
  plugins: [
16
16
  {
17
17
  typescript: {
18
- maybeValue: 'T | undefined',
18
+ maybeValue: 'T | null | undefined',
19
+ inputMaybeValue: 'T | null | undefined',
19
20
  ...(typescript !== null && typescript !== void 0 ? typescript : {})
20
21
  },
21
22
  },
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mergeSubscribeIntoSchema = exports.buildFederatedSubscriptionSchema = void 0;
4
4
  const federation_1 = require("@apollo/federation");
5
- const apollo_server_koa_1 = require("apollo-server-koa");
5
+ const graphql_tag_1 = require("graphql-tag");
6
6
  const index_1 = require("graphql/index");
7
7
  const graphql_1 = require("graphql");
8
8
  const definition_1 = require("graphql/type/definition");
@@ -12,7 +12,7 @@ const buildFederatedSubscriptionSchema = (subServices, config, namespace, schema
12
12
  // TODO There is currently no way of building a federated schema from GraphQLSchema Object
13
13
  // See https://github.com/apollographql/apollo-server/pull/4310
14
14
  const federatedSchema = (0, federation_1.buildSubgraphSchema)({
15
- typeDefs: (0, apollo_server_koa_1.gql)((0, index_1.printSchema)(schema)),
15
+ typeDefs: (0, graphql_tag_1.default)((0, index_1.printSchema)(schema)),
16
16
  resolvers
17
17
  });
18
18
  return {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTyping = exports.registerEnumTyping = exports.registerTyping = exports.recursiveEnumCheck = exports.getNameSpaceTypeName = exports.getRegisteredEnumTypings = exports.registerPackagesRecursive = exports.clearRegistry = exports.IGoogleProtobufAny = exports.scalarTypes = exports.registeredTypings = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  const definition_1 = require("graphql/type/definition");
6
- const graphql_upload_1 = require("graphql-upload");
6
+ const GraphQLUpload = require('graphql-upload/GraphQLUpload.js');
7
7
  const utils_1 = require("./utils");
8
8
  const types_1 = require("./types");
9
9
  const ts_proto_descriptors_1 = require("ts-proto-descriptors");
@@ -349,7 +349,7 @@ const resolveMeta = (key, field, rootObjType, objName, input) => {
349
349
  break;
350
350
  case ts_proto_descriptors_1.FieldDescriptorProto_Type.TYPE_BYTES:
351
351
  if (input) {
352
- result = graphql_upload_1.GraphQLUpload;
352
+ result = GraphQLUpload;
353
353
  break;
354
354
  }
355
355
  // TODO Output Buffer
@@ -1,8 +1,8 @@
1
1
  import { ProtoMetadata, ServiceClient, ServiceConfig, SubSpaceServiceConfig } from './types';
2
2
  import { ServiceDescriptorProto } from 'ts-proto-descriptors';
3
3
  import { GraphQLResolveInfo } from 'graphql';
4
- export declare type ResolverFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => Promise<TResult> | TResult;
5
- export declare type SubscribeResolverFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => AsyncGenerator<TResult>;
4
+ export type ResolverFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => Promise<TResult> | TResult;
5
+ export type SubscribeResolverFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => AsyncGenerator<TResult>;
6
6
  export declare const getGQLResolverFunctions: <T extends Record<string, any>, CTX extends ServiceClient<CTX, keyof CTX, T>, SRV = any, R = ResolverFn<any, any, ServiceClient<CTX, keyof CTX, T>, any>, B extends keyof T = any, NS extends keyof CTX = any>(service: ServiceDescriptorProto, key: NS, serviceKey: B, cfg: ServiceConfig) => { [key in keyof SRV]: R; };
7
7
  export declare const registerResolverFunction: <T extends Record<string, any>, CTX extends ServiceClient<CTX, keyof CTX, T>>(namespace: string, name: string, func: ResolverFn<any, any, ServiceClient<CTX, keyof CTX, T>, any>, mutation?: boolean, subspace?: string | undefined, service?: ServiceDescriptorProto) => void;
8
8
  export declare const generateResolver: (...namespaces: string[]) => any;
@@ -261,8 +261,9 @@ const generateSubServiceResolvers = (subServices, config, namespace) => {
261
261
  subServices.forEach((meta) => {
262
262
  var _a;
263
263
  meta.fileDescriptor.service.forEach(service => {
264
- if (meta.options && meta.options.services && meta.options.services[service.name]) {
265
- const subName = meta.options.services[service.name].options['service_name'];
264
+ if (service.name) {
265
+ // strip Service from end of String for sub service name
266
+ const subName = (0, utils_1.getServiceName)(service.name);
266
267
  const { mutations, queries } = (0, graphql_1.getWhitelistBlacklistConfig)(service, config, meta, subName);
267
268
  const func = (0, exports.getGQLResolverFunctions)(service, namespace, subName || namespace, config);
268
269
  Object.keys(func).forEach(k => {
@@ -354,11 +355,11 @@ const generateSubServiceResolvers = (subServices, config, namespace) => {
354
355
  if (config.root) {
355
356
  return (0, exports.generateResolver)(...(0, array_prototype_flat_1.default)(subServices.map(meta => {
356
357
  return meta.fileDescriptor.service.map(service => {
357
- if (meta.options && meta.options.services && meta.options.services[service.name]) {
358
- return meta.options.services[service.name].options['service_name'];
358
+ if (service.name) {
359
+ return (0, utils_1.getServiceName)(service.name);
359
360
  }
360
- return null;
361
- }).filter(s => s !== null);
361
+ return '';
362
+ }).filter(s => s !== '');
362
363
  })));
363
364
  }
364
365
  const finalResolver = (0, exports.generateResolver)(namespace);
@@ -4,7 +4,7 @@ import { GraphQLSchema, ThunkObjMap } from 'graphql';
4
4
  import { GraphQLFieldConfig, GraphQLFieldConfigMap } from 'graphql/type/definition';
5
5
  export declare const getGQLSchema: <TSource, TContext>(method: MethodDescriptorProto) => GraphQLFieldConfig<TSource, TContext, any>;
6
6
  export declare const getGQLSchemas: <TSource, TContext>(service: ServiceDescriptorProto) => GraphQLFieldConfigMap<TSource, TContext>;
7
- declare type SchemaBaseOrSub = ThunkObjMap<GraphQLFieldConfig<any, any>> | Map<string, ThunkObjMap<GraphQLFieldConfig<any, any>>>;
7
+ type SchemaBaseOrSub = ThunkObjMap<GraphQLFieldConfig<any, any>> | Map<string, ThunkObjMap<GraphQLFieldConfig<any, any>>>;
8
8
  export declare const registerResolverSchema: (namespace: string, name: string, schema: SchemaBaseOrSub, mutation: boolean | undefined, subspace: string | undefined, config: ServiceConfig) => void;
9
9
  export declare const generateSchema: (setup: {
10
10
  prefix: string;
@@ -189,8 +189,8 @@ const generateSubServiceSchemas = (subServices, config, namespace, prefix) => {
189
189
  subServices.forEach((meta) => {
190
190
  var _a;
191
191
  meta.fileDescriptor.service.forEach(service => {
192
- if (meta.options && meta.options.services && meta.options.services[service.name]) {
193
- const subName = meta.options.services[service.name].options['service_name'];
192
+ if (service.name) {
193
+ const subName = (0, utils_1.getServiceName)(service.name);
194
194
  const { mutations, queries } = (0, graphql_2.getWhitelistBlacklistConfig)(service, config, meta, subName);
195
195
  const schemas = (0, exports.getGQLSchemas)(service);
196
196
  Object.keys(schemas).forEach(key => {
@@ -218,8 +218,8 @@ const generateSubServiceSchemas = (subServices, config, namespace, prefix) => {
218
218
  if (config.root) {
219
219
  return (0, exports.generateSchema)((0, array_prototype_flat_1.default)(subServices.map(meta => {
220
220
  return meta.fileDescriptor.service.map(service => {
221
- if (meta.options && meta.options.services && meta.options.services[service.name]) {
222
- const subName = meta.options.services[service.name].options['service_name'];
221
+ if (service.name) {
222
+ const subName = (0, utils_1.getServiceName)(service.name);
223
223
  return {
224
224
  prefix: prefix + subName.substring(0, 1).toUpperCase() + subName.substring(1).toLowerCase(),
225
225
  namespace: subName
@@ -12,7 +12,7 @@ export interface GraphQLResolverMap<TContext = {}> {
12
12
  };
13
13
  }
14
14
  export declare const authSubjectType = ".io.restorecommerce.auth.Subject";
15
- export declare type ProtoMetaMessageOptions = {
15
+ export type ProtoMetaMessageOptions = {
16
16
  options?: {
17
17
  [key: string]: any;
18
18
  };
@@ -85,12 +85,12 @@ export interface ServiceConfig {
85
85
  export interface SubSpaceServiceConfig extends ServiceConfig {
86
86
  root: boolean;
87
87
  }
88
- export declare type ServiceClient<Context extends Pick<Context, Key>, Key extends keyof Context, T extends Record<string, any>> = {
88
+ export type ServiceClient<Context extends Pick<Context, Key>, Key extends keyof Context, T extends Record<string, any>> = {
89
89
  [V in Key]: {
90
90
  client: T;
91
91
  };
92
92
  };
93
- export declare type FederatedSchemaWithResolvers = {
93
+ export type FederatedSchemaWithResolvers = {
94
94
  federatedSchema: GraphQLSchema;
95
95
  resolvers: GraphQLResolverMap<any>;
96
96
  };
@@ -10,6 +10,8 @@ export declare const decodeBufferFields: (items: any[], bufferFields: string[])
10
10
  */
11
11
  export declare const convertEnumToInt: (inputTyping: TypingData, req: any) => any;
12
12
  export declare const snakeToCamel: (s: string) => string;
13
+ export declare const camelToSnake: (serviceName: string) => string;
14
+ export declare const getServiceName: (serviceName: string) => string;
13
15
  export declare const capitalize: (s: string) => string;
14
16
  export declare function camelCase(s: string): string;
15
17
  export declare let useSubscriptions: boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setUseSubscriptions = exports.useSubscriptions = exports.camelCase = exports.capitalize = exports.snakeToCamel = exports.convertEnumToInt = exports.decodeBufferFields = exports.getKeys = exports.convertyCamelToSnakeCase = exports.capitalizeProtoName = void 0;
3
+ exports.setUseSubscriptions = exports.useSubscriptions = exports.camelCase = exports.capitalize = exports.getServiceName = exports.camelToSnake = exports.snakeToCamel = exports.convertEnumToInt = exports.decodeBufferFields = exports.getKeys = exports.convertyCamelToSnakeCase = exports.capitalizeProtoName = void 0;
4
4
  const _ = require("lodash");
5
5
  const registry_1 = require("./registry");
6
6
  const capitalizeProtoName = (name) => {
@@ -126,6 +126,16 @@ const snakeToCamel = (s) => {
126
126
  .join('');
127
127
  };
128
128
  exports.snakeToCamel = snakeToCamel;
129
+ const camelToSnake = (serviceName) => {
130
+ // convert camel case to snake case
131
+ serviceName = serviceName.replace(/(?:^|\.?)([A-Z])/g, (x, y) => { return '_' + y.toLowerCase(); }).replace(/^_/, '');
132
+ return serviceName;
133
+ };
134
+ exports.camelToSnake = camelToSnake;
135
+ const getServiceName = (serviceName) => {
136
+ return serviceName.endsWith('Service') ? (0, exports.camelToSnake)(serviceName.substr(0, serviceName.length - 7)) : (0, exports.camelToSnake)(serviceName);
137
+ };
138
+ exports.getServiceName = getServiceName;
129
139
  const capitalize = (s) => {
130
140
  return s.substring(0, 1).toUpperCase() + s.substring(1);
131
141
  };
package/dist/index.d.ts CHANGED
@@ -1,10 +1,8 @@
1
- /// <reference types="koa-bodyparser" />
2
- /// <reference types="koa-websocket" />
3
1
  /// <reference types="node" />
4
2
  /// <reference types="node" />
5
- import Koa from 'koa';
6
3
  import { Logger } from 'winston';
7
4
  import { Server, ServerResponse } from 'http';
5
+ import Koa from "koa";
8
6
  import { AddressInfo } from 'net';
9
7
  import { Facade, FacadeBaseContext, FacadeModule, FacadeModuleBase, FacadeModulesContext } from './interfaces';
10
8
  import { KafkaProviderConfig } from '@restorecommerce/kafka-client';
package/dist/index.js CHANGED
@@ -15,14 +15,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.createFacade = exports.RestoreCommerceFacade = void 0;
18
- const koa_1 = require("koa");
19
18
  const logger_1 = require("@restorecommerce/logger");
20
19
  const http_1 = require("http");
21
- const apollo_server_koa_1 = require("apollo-server-koa");
20
+ const koa_1 = require("koa");
21
+ const bodyParser = require('koa-bodyparser');
22
+ const cors = require('@koa/cors');
23
+ const server_1 = require("@apollo/server");
24
+ const koa_2 = require("@as-integrations/koa");
22
25
  const graphql_1 = require("graphql");
23
26
  const gateway_1 = require("@apollo/gateway");
24
27
  const modules_1 = require("./modules");
25
- const apollo_server_core_1 = require("apollo-server-core");
28
+ const drainHttpServer_1 = require("@apollo/server/plugin/drainHttpServer");
29
+ const default_1 = require("@apollo/server/plugin/landingPage/default");
26
30
  const http_2 = require("http");
27
31
  const ws_1 = require("ws");
28
32
  const ws_2 = require("graphql-ws/lib/use/ws");
@@ -201,7 +205,7 @@ class RestoreCommerceFacade {
201
205
  subscription: schemaContext.apiSchema.getSubscriptionType()
202
206
  }));
203
207
  let schema = (0, graphql_tools_1.makeExecutableSchema)({
204
- typeDefs: (0, graphql_tag_1.gql)(typeDefs + `
208
+ typeDefs: (0, graphql_tag_1.default)(typeDefs + `
205
209
  type Query { sample: String }
206
210
  `),
207
211
  resolvers: {
@@ -225,12 +229,13 @@ class RestoreCommerceFacade {
225
229
  },
226
230
  }, wsServer);
227
231
  });
228
- const gqlServer = new apollo_server_koa_1.ApolloServer({
232
+ const gqlServer = new server_1.ApolloServer({
229
233
  gateway,
230
234
  introspection: true,
235
+ allowBatchedHttpRequests: true,
231
236
  plugins: [
232
- (0, apollo_server_core_1.ApolloServerPluginDrainHttpServer)({ httpServer: this._server }),
233
- (0, apollo_server_core_1.ApolloServerPluginLandingPageLocalDefault)({
237
+ (0, drainHttpServer_1.ApolloServerPluginDrainHttpServer)({ httpServer: this._server }),
238
+ (0, default_1.ApolloServerPluginLandingPageLocalDefault)({
234
239
  embed: true
235
240
  }),
236
241
  {
@@ -243,27 +248,23 @@ class RestoreCommerceFacade {
243
248
  },
244
249
  },
245
250
  ],
246
- debug: true,
251
+ includeStacktraceInErrorResponses: true,
247
252
  formatError: (error) => {
248
253
  this.logger.error('Error while processing request', { message: error.message });
249
254
  this.logger.debug('Error while processing request', { error });
250
255
  return {
251
256
  message: error.message,
252
257
  locations: error.locations,
253
- stack: error.stack,
258
+ stack: error
254
259
  };
255
260
  },
256
- context: ({ ctx }) => ctx
257
261
  });
258
262
  await gqlServer.start();
259
- const middleware = gqlServer.getMiddleware({
260
- path: '/graphql',
261
- cors: true,
262
- bodyParserConfig: {
263
- jsonLimit: '10mb'
264
- },
265
- });
266
- this.koa.use(middleware);
263
+ this.koa.use(cors());
264
+ this.koa.use(bodyParser());
265
+ this.koa.use((0, koa_2.koaMiddleware)(gqlServer, {
266
+ context: async ({ ctx }) => ctx,
267
+ }));
267
268
  }
268
269
  }
269
270
  exports.RestoreCommerceFacade = RestoreCommerceFacade;
@@ -1,12 +1,11 @@
1
1
  /// <reference types="koa-websocket" />
2
- /// <reference types="koa-bodyparser" />
3
2
  /// <reference types="node" />
4
3
  /// <reference types="node" />
5
4
  import Koa from 'koa';
6
5
  import { Logger } from 'winston';
7
6
  import { Server } from 'http';
8
7
  import { AddressInfo } from 'net';
9
- declare type RequireAtLeastOne<T, Keys extends keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
8
+ type RequireAtLeastOne<T, Keys extends keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
10
9
  [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
11
10
  }[Keys];
12
11
  export interface FacadeBaseContext extends Koa.Context {
@@ -22,9 +21,9 @@ export interface FacadeModule<TContext extends FacadeBaseContext = FacadeBaseCon
22
21
  export interface FacadeModuleFactory<TConfig = any, TContext extends FacadeBaseContext = FacadeBaseContext> extends FacadeModuleBase<TContext> {
23
22
  (config: TConfig): FacadeModule<TContext>;
24
23
  }
25
- export declare type ExtractModuleContext<TModule> = TModule extends FacadeModuleFactory<infer TConfig, infer TContext> ? TContext : TModule extends FacadeModule<infer TContext> ? TContext : never;
26
- export declare type FacadeModulesContext<T extends FacadeModuleBase[]> = (T[0] extends FacadeModuleBase ? ExtractModuleContext<T[0]> : FacadeBaseContext) & (T[1] extends FacadeModuleBase ? ExtractModuleContext<T[1]> : FacadeBaseContext) & (T[2] extends FacadeModuleBase ? ExtractModuleContext<T[2]> : FacadeBaseContext) & (T[3] extends FacadeModuleBase ? ExtractModuleContext<T[3]> : FacadeBaseContext) & (T[4] extends FacadeModuleBase ? ExtractModuleContext<T[4]> : FacadeBaseContext) & (T[5] extends FacadeModuleBase ? ExtractModuleContext<T[5]> : FacadeBaseContext) & (T[6] extends FacadeModuleBase ? ExtractModuleContext<T[6]> : FacadeBaseContext) & (T[7] extends FacadeModuleBase ? ExtractModuleContext<T[7]> : FacadeBaseContext) & (T[8] extends FacadeModuleBase ? ExtractModuleContext<T[8]> : FacadeBaseContext) & (T[9] extends FacadeModuleBase ? ExtractModuleContext<T[9]> : FacadeBaseContext);
27
- export declare type FacadeContext<T extends FacadeModuleBase[] | Facade<any> = []> = T extends FacadeModuleBase[] ? FacadeModulesContext<T> : T extends Facade<infer TFacadeModules> ? FacadeModulesContext<TFacadeModules> : FacadeBaseContext;
24
+ export type ExtractModuleContext<TModule> = TModule extends FacadeModuleFactory<infer TConfig, infer TContext> ? TContext : TModule extends FacadeModule<infer TContext> ? TContext : never;
25
+ export type FacadeModulesContext<T extends FacadeModuleBase[]> = (T[0] extends FacadeModuleBase ? ExtractModuleContext<T[0]> : FacadeBaseContext) & (T[1] extends FacadeModuleBase ? ExtractModuleContext<T[1]> : FacadeBaseContext) & (T[2] extends FacadeModuleBase ? ExtractModuleContext<T[2]> : FacadeBaseContext) & (T[3] extends FacadeModuleBase ? ExtractModuleContext<T[3]> : FacadeBaseContext) & (T[4] extends FacadeModuleBase ? ExtractModuleContext<T[4]> : FacadeBaseContext) & (T[5] extends FacadeModuleBase ? ExtractModuleContext<T[5]> : FacadeBaseContext) & (T[6] extends FacadeModuleBase ? ExtractModuleContext<T[6]> : FacadeBaseContext) & (T[7] extends FacadeModuleBase ? ExtractModuleContext<T[7]> : FacadeBaseContext) & (T[8] extends FacadeModuleBase ? ExtractModuleContext<T[8]> : FacadeBaseContext) & (T[9] extends FacadeModuleBase ? ExtractModuleContext<T[9]> : FacadeBaseContext);
26
+ export type FacadeContext<T extends FacadeModuleBase[] | Facade<any> = []> = T extends FacadeModuleBase[] ? FacadeModulesContext<T> : T extends Facade<infer TFacadeModules> ? FacadeModulesContext<TFacadeModules> : FacadeBaseContext;
28
27
  export interface Facade<TModules extends FacadeModuleBase[] = []> {
29
28
  readonly logger: Logger;
30
29
  readonly koa: Koa<any, FacadeModulesContext<TModules>>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FederatedAccessControlSchema = void 0;
4
- const apollo_server_koa_1 = require("apollo-server-koa");
4
+ const graphql_tag_1 = require("graphql-tag");
5
5
  const federation_1 = require("@apollo/federation");
6
6
  const schema_1 = require("./schema");
7
7
  const interfaces_1 = require("../interfaces");
@@ -11,7 +11,7 @@ const graphql_1 = require("graphql");
11
11
  // TODO There is currently no way of building a federated schema from GraphQLSchema Object
12
12
  // See https://github.com/apollographql/apollo-server/pull/4310
13
13
  const FederatedAccessControlSchema = (cfg) => (0, federation_1.buildSubgraphSchema)({
14
- typeDefs: (0, apollo_server_koa_1.gql)((0, graphql_1.printSchema)((0, schema_1.schema)(cfg))),
14
+ typeDefs: (0, graphql_tag_1.default)((0, graphql_1.printSchema)((0, schema_1.schema)(cfg))),
15
15
  resolvers: (0, protos_1.generateSubServiceResolvers)(types_1.subServices, cfg, interfaces_1.namespace)
16
16
  });
17
17
  exports.FederatedAccessControlSchema = FederatedAccessControlSchema;