@restorecommerce/facade 1.0.1 → 1.1.1

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 (56) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/codegen/index.js +1 -1
  3. package/dist/gql/protos/federation.d.ts +6 -0
  4. package/dist/gql/protos/federation.js +51 -0
  5. package/dist/gql/protos/graphql.d.ts +5 -27
  6. package/dist/gql/protos/graphql.js +3 -564
  7. package/dist/gql/protos/index.d.ts +3 -0
  8. package/dist/gql/protos/index.js +3 -0
  9. package/dist/gql/protos/registry.d.ts +2 -2
  10. package/dist/gql/protos/resolvers.d.ts +9 -0
  11. package/dist/gql/protos/resolvers.js +427 -0
  12. package/dist/gql/protos/schema.d.ts +14 -0
  13. package/dist/gql/protos/schema.js +234 -0
  14. package/dist/gql/protos/types.d.ts +20 -0
  15. package/dist/gql/protos/utils.d.ts +5 -0
  16. package/dist/gql/protos/utils.js +27 -1
  17. package/dist/index.d.ts +9 -9
  18. package/dist/index.js +78 -7
  19. package/dist/interfaces.d.ts +2 -0
  20. package/dist/modules/access-control/gql/schema.generated.d.ts +30 -0
  21. package/dist/modules/access-control/gql/schema.generated.js +7 -1
  22. package/dist/modules/catalog/gql/schema.generated.d.ts +30 -0
  23. package/dist/modules/catalog/gql/schema.generated.js +7 -1
  24. package/dist/modules/fulfillment/gql/schema.generated.d.ts +183 -113
  25. package/dist/modules/fulfillment/gql/schema.generated.js +13 -6
  26. package/dist/modules/identity/gql/federation.d.ts +1 -1
  27. package/dist/modules/identity/gql/federation.js +1 -9
  28. package/dist/modules/identity/gql/schema.generated.d.ts +35 -0
  29. package/dist/modules/identity/gql/schema.generated.js +7 -1
  30. package/dist/modules/identity/gql/types.js +2 -0
  31. package/dist/modules/indexing/gql/federation.d.ts +2 -2
  32. package/dist/modules/indexing/gql/federation.js +2 -2
  33. package/dist/modules/indexing/gql/schema.d.ts +2 -2
  34. package/dist/modules/indexing/gql/schema.generated.d.ts +43 -2
  35. package/dist/modules/indexing/gql/schema.generated.js +7 -0
  36. package/dist/modules/indexing/gql/schema.js +1 -2
  37. package/dist/modules/indexing/gql/types.d.ts +2 -0
  38. package/dist/modules/indexing/gql/types.js +5 -2
  39. package/dist/modules/indexing/interfaces.d.ts +2 -2
  40. package/dist/modules/invoicing/gql/schema.generated.d.ts +87 -8
  41. package/dist/modules/invoicing/gql/schema.generated.js +7 -1
  42. package/dist/modules/notification/gql/schema.generated.d.ts +30 -0
  43. package/dist/modules/notification/gql/schema.generated.js +7 -1
  44. package/dist/modules/ordering/gql/federation.js +4 -4
  45. package/dist/modules/ordering/gql/schema.generated.d.ts +257 -195
  46. package/dist/modules/ordering/gql/schema.generated.js +18 -1
  47. package/dist/modules/ostorage/gql/schema.generated.d.ts +30 -0
  48. package/dist/modules/ostorage/gql/schema.generated.js +7 -1
  49. package/dist/modules/payment/gql/schema.generated.d.ts +30 -0
  50. package/dist/modules/payment/gql/schema.generated.js +7 -1
  51. package/dist/modules/resource/gql/schema.generated.d.ts +114 -12
  52. package/dist/modules/resource/gql/schema.generated.js +7 -1
  53. package/dist/modules/scheduling/gql/schema.generated.d.ts +30 -0
  54. package/dist/modules/scheduling/gql/schema.generated.js +7 -1
  55. package/generate.ts +6 -3
  56. package/package.json +18 -9
package/CHANGELOG.md CHANGED
@@ -3,6 +3,33 @@
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.1](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@1.1.0...@restorecommerce/facade@1.1.1) (2022-10-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **facade:** regenerated schema typings for new proto files ([4e26e29](https://github.com/restorecommerce/libs/commit/4e26e2949d14dd0e2f7794b956a7d1107b8564ba))
12
+
13
+
14
+
15
+
16
+
17
+ # [1.1.0](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@1.0.1...@restorecommerce/facade@1.1.0) (2022-10-04)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **facade:** switch to apollo sandbox ([e2a1713](https://github.com/restorecommerce/libs/commit/e2a17133fe5f28ba65269232fd0ffbe230e6e416))
23
+
24
+
25
+ ### Features
26
+
27
+ * **facade:** add subscriptions ([d9006e9](https://github.com/restorecommerce/libs/commit/d9006e9ebcd1522a67373f8ca8bfa751c551b36f))
28
+
29
+
30
+
31
+
32
+
6
33
  ## [1.0.1](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@1.0.0...@restorecommerce/facade@1.0.1) (2022-08-25)
7
34
 
8
35
  **Note:** Version bump only for package @restorecommerce/facade
package/codegen/index.js CHANGED
@@ -7,7 +7,7 @@ const typescriptResolversPlugin = require("@graphql-codegen/typescript-resolvers
7
7
  const core_1 = require("@graphql-codegen/core");
8
8
  async function generateSchemaTypings({ schema, outputFile, typescript, typescriptResolvers }) {
9
9
  try {
10
- const codegenConfig = {
10
+ const codegenConfig /* typings wrong? */ = {
11
11
  // used by a plugin internally, although the 'typescript' plugin currently
12
12
  // returns the string output, rather than writing to a file
13
13
  filename: outputFile,
@@ -0,0 +1,6 @@
1
+ import { FederatedSchemaWithResolvers, GraphQLResolverMap, ProtoMetadata, ServiceClient, SubSpaceServiceConfig } from './types';
2
+ import { GraphQLSchema } from 'graphql/index';
3
+ import { GraphQLObjectType } from 'graphql';
4
+ import { GraphQLList } from 'graphql/type/definition';
5
+ export declare const buildFederatedSubscriptionSchema: <T, M extends Record<string, any>, CTX extends ServiceClient<CTX, keyof CTX, M>>(subServices: ProtoMetadata[], config: SubSpaceServiceConfig, namespace: string, schema: GraphQLSchema) => FederatedSchemaWithResolvers;
6
+ export declare const mergeSubscribeIntoSchema: (schema: GraphQLObjectType | GraphQLList<any> | null | undefined, resolvers: GraphQLResolverMap<any>[string]) => void;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeSubscribeIntoSchema = exports.buildFederatedSubscriptionSchema = void 0;
4
+ const federation_1 = require("@apollo/federation");
5
+ const apollo_server_koa_1 = require("apollo-server-koa");
6
+ const index_1 = require("graphql/index");
7
+ const graphql_1 = require("graphql");
8
+ const definition_1 = require("graphql/type/definition");
9
+ const resolvers_1 = require("./resolvers");
10
+ const buildFederatedSubscriptionSchema = (subServices, config, namespace, schema) => {
11
+ const resolvers = (0, resolvers_1.generateSubServiceResolvers)(subServices, config, namespace);
12
+ // TODO There is currently no way of building a federated schema from GraphQLSchema Object
13
+ // See https://github.com/apollographql/apollo-server/pull/4310
14
+ const federatedSchema = (0, federation_1.buildFederatedSchema)({
15
+ typeDefs: (0, apollo_server_koa_1.gql)((0, index_1.printSchema)(schema)),
16
+ resolvers
17
+ });
18
+ return {
19
+ federatedSchema,
20
+ resolvers
21
+ };
22
+ };
23
+ exports.buildFederatedSubscriptionSchema = buildFederatedSubscriptionSchema;
24
+ const mergeSubscribeIntoSchema = (schema, resolvers) => {
25
+ if (!schema || !resolvers) {
26
+ return;
27
+ }
28
+ Object.entries(resolvers).forEach(([key, val]) => {
29
+ if (schema instanceof definition_1.GraphQLList) {
30
+ (0, exports.mergeSubscribeIntoSchema)(schema.ofType, val);
31
+ return;
32
+ }
33
+ const field = schema.getFields()[key];
34
+ if (!field) {
35
+ return;
36
+ }
37
+ if ('resolve' in val || 'subscribe' in val) {
38
+ field.subscribe = val['subscribe'] || field.subscribe;
39
+ field.resolve = val['resolve'] || field.resolve;
40
+ return;
41
+ }
42
+ const fieldType = field.type;
43
+ if (fieldType instanceof definition_1.GraphQLScalarType) {
44
+ field.subscribe = val['subscribe'];
45
+ }
46
+ else if (fieldType instanceof graphql_1.GraphQLObjectType) {
47
+ (0, exports.mergeSubscribeIntoSchema)(fieldType, val);
48
+ }
49
+ });
50
+ };
51
+ exports.mergeSubscribeIntoSchema = mergeSubscribeIntoSchema;
@@ -1,33 +1,11 @@
1
- import { GraphQLInputField, GraphQLOutputType, GraphQLResolveInfo, GraphQLSchema, ThunkObjMap } from 'graphql';
2
- import { GraphQLEnumType, GraphQLFieldConfig, GraphQLFieldConfigMap, GraphQLInputObjectType, GraphQLInputType } from 'graphql/type/definition';
3
- import { ProtoMetadata, ServiceConfig, SubSpaceServiceConfig } from './types';
4
- import { MethodDescriptorProto, ServiceDescriptorProto } from 'ts-proto-descriptors';
5
- export declare const getGQLSchema: <TSource, TContext>(method: MethodDescriptorProto) => GraphQLFieldConfig<TSource, TContext, any>;
6
- export declare const getGQLSchemas: <TSource, TContext>(service: ServiceDescriptorProto) => GraphQLFieldConfigMap<TSource, TContext>;
1
+ import { GraphQLInputField, GraphQLOutputType } from 'graphql';
2
+ import { GraphQLEnumType, GraphQLInputObjectType, GraphQLInputType } from 'graphql/type/definition';
3
+ import { ProtoMetadata, ServiceConfig } from './types';
4
+ import { ServiceDescriptorProto } from 'ts-proto-descriptors';
5
+ export declare const Mutate: string[];
7
6
  export declare const preprocessGQLInput: (data: any, model: GraphQLInputObjectType | GraphQLEnumType | GraphQLInputField | GraphQLInputType) => Promise<any>;
8
7
  export declare const postProcessGQLValue: (data: any, model: GraphQLOutputType) => any;
9
- export declare type ResolverFn<TResult, TParent, TContext, TArgs> = (parent: TParent, args: TArgs, context: TContext, info: GraphQLResolveInfo) => Promise<TResult> | TResult;
10
- declare type ServiceClient<Context extends Pick<Context, Key>, Key extends keyof Context, T extends Record<string, any>> = {
11
- [V in Key]: {
12
- client: T;
13
- };
14
- };
15
- 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; };
16
- 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 | undefined) => void;
17
- export declare const generateResolver: (...namespaces: string[]) => any;
18
- declare type SchemaBaseOrSub = ThunkObjMap<GraphQLFieldConfig<any, any>> | Map<string, ThunkObjMap<GraphQLFieldConfig<any, any>>>;
19
- export declare const registerResolverSchema: (namespace: string, name: string, schema: SchemaBaseOrSub, mutation: boolean | undefined, subspace: string | undefined, config: ServiceConfig) => void;
20
- export declare const generateSchema: (setup: {
21
- prefix: string;
22
- namespace: string;
23
- }[]) => GraphQLSchema;
24
8
  export declare const getWhitelistBlacklistConfig: (metaService: ServiceDescriptorProto, config: ServiceConfig, meta: ProtoMetadata, entity: string) => {
25
9
  queries: Set<string>;
26
10
  mutations: Set<string>;
27
11
  };
28
- export declare const getAndGenerateSchema: <TSource, TContext>(service: ServiceDescriptorProto, namespace: string, prefix: string, cfg: ServiceConfig, meta: ProtoMetadata) => GraphQLSchema;
29
- export declare const getAndGenerateResolvers: <T extends Record<string, any>, CTX extends ServiceClient<CTX, keyof CTX, T>, SRV = any, R = ResolverFn<any, any, ServiceClient<CTX, keyof CTX, T>, any>, NS extends keyof CTX = any>(service: ServiceDescriptorProto, namespace: NS, cfg: ServiceConfig, meta: ProtoMetadata, subspace?: string | undefined, serviceKey?: string | undefined) => { [key in keyof SRV]: R; };
30
- export declare const generateSubServiceSchemas: (subServices: ProtoMetadata[], config: SubSpaceServiceConfig, namespace: string, prefix: string) => GraphQLSchema;
31
- export declare const generateSubServiceResolvers: <T, M extends Record<string, any>, CTX extends ServiceClient<CTX, keyof CTX, M>>(subServices: ProtoMetadata[], config: SubSpaceServiceConfig, namespace: string) => T;
32
- export declare function camelCase(s: string): string;
33
- export {};