@restorecommerce/facade 0.1.31 → 0.1.36

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 CHANGED
@@ -3,6 +3,52 @@
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
+ ## [0.1.36](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.1.35...@restorecommerce/facade@0.1.36) (2021-12-09)
7
+
8
+ **Note:** Version bump only for package @restorecommerce/facade
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.1.35](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.1.34...@restorecommerce/facade@0.1.35) (2021-12-09)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **facade:** updated generated schema for facade module due to changes in proto files. ([c57d5fa](https://github.com/restorecommerce/libs/commit/c57d5faaea1dbd287727f7c7678e6cfe34dba92d))
20
+
21
+
22
+
23
+
24
+
25
+ ## [0.1.34](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.1.33...@restorecommerce/facade@0.1.34) (2021-12-06)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * **facade:** Added streaming response handling for mutations and queries. ([199db2d](https://github.com/restorecommerce/libs/commit/199db2d51f5a1d08ec2af09579df9c742ae0bbb1))
31
+
32
+
33
+
34
+
35
+
36
+ ## [0.1.33](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.1.32...@restorecommerce/facade@0.1.33) (2021-11-08)
37
+
38
+ **Note:** Version bump only for package @restorecommerce/facade
39
+
40
+
41
+
42
+
43
+
44
+ ## [0.1.32](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.1.31...@restorecommerce/facade@0.1.32) (2021-11-05)
45
+
46
+ **Note:** Version bump only for package @restorecommerce/facade
47
+
48
+
49
+
50
+
51
+
6
52
  ## [0.1.31](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.1.30...@restorecommerce/facade@0.1.31) (2021-10-25)
7
53
 
8
54
  **Note:** Version bump only for package @restorecommerce/facade
@@ -2,6 +2,7 @@ import { GraphQLInputField, GraphQLResolveInfo, GraphQLSchema } from "graphql";
2
2
  import { GraphQLEnumType, GraphQLFieldConfig, GraphQLFieldConfigMap, GraphQLInputObjectType, GraphQLInputType, Thunk } from "graphql/type/definition";
3
3
  import { ServiceConfig, SubService, SubSpaceServiceConfig } from "./types";
4
4
  import { MethodDescriptorProto, ServiceDescriptorProto } from "ts-proto-descriptors/google/protobuf/descriptor";
5
+ import { GrpcClientConfig } from "@restorecommerce/grpc-client";
5
6
  export declare const getGQLSchema: <TSource, TContext>(method: MethodDescriptorProto) => GraphQLFieldConfig<TSource, TContext, {
6
7
  [argName: string]: any;
7
8
  }>;
@@ -13,7 +14,7 @@ declare type ServiceClient<Context extends Pick<Context, Key>, Key extends keyof
13
14
  client: T;
14
15
  };
15
16
  };
16
- 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) => { [key in keyof SRV]: R; };
17
+ 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, grpcClientConfig: GrpcClientConfig) => { [key in keyof SRV]: R; };
17
18
  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) => void;
18
19
  export declare const generateResolver: (...namespaces: string[]) => any;
19
20
  export declare const registerResolverSchema: (namespace: string, name: string, schema: Thunk<GraphQLFieldConfig<any, any>>, mutation?: boolean, subspace?: string | undefined) => void;
@@ -6,6 +6,8 @@ const definition_1 = require("graphql/type/definition");
6
6
  const types_1 = require("./types");
7
7
  const registry_1 = require("./registry");
8
8
  const utils_1 = require("./utils");
9
+ const stream = require("stream");
10
+ const _ = require("lodash");
9
11
  const typeCache = new Map();
10
12
  const Mutate = ['Create', 'Update', 'Upsert'];
11
13
  const getGQLSchema = (method) => {
@@ -93,7 +95,7 @@ const recursiveUploadToBuffer = async (data, model) => {
93
95
  return data;
94
96
  };
95
97
  exports.recursiveUploadToBuffer = recursiveUploadToBuffer;
96
- const getGQLResolverFunctions = (service, key, serviceKey) => {
98
+ const getGQLResolverFunctions = (service, key, serviceKey, grpcClientConfig) => {
97
99
  if (!service.method) {
98
100
  return {};
99
101
  }
@@ -117,6 +119,7 @@ const getGQLResolverFunctions = (service, key, serviceKey) => {
117
119
  }
118
120
  }
119
121
  obj[method.name] = async (args, context) => {
122
+ var _a;
120
123
  const client = context[key].client;
121
124
  const service = client[serviceKey];
122
125
  try {
@@ -133,11 +136,57 @@ const getGQLResolverFunctions = (service, key, serviceKey) => {
133
136
  req.subject.token = authToken.split(' ')[1];
134
137
  }
135
138
  }
136
- // TODO Handle client-stream methods
137
139
  const result = await service[method.name](req);
140
+ const bufferFields = utils_1.getKeys((_a = grpcClientConfig) === null || _a === void 0 ? void 0 : _a.bufferFields);
141
+ if (result instanceof stream.Readable) {
142
+ let operationStatus = { code: 0, message: '' };
143
+ let aggregatedResponse = await new Promise((resolve, reject) => {
144
+ let response = {};
145
+ result.on('data', (chunk) => {
146
+ const chunkObj = _.cloneDeep(chunk);
147
+ if (!response) {
148
+ response = chunk;
149
+ }
150
+ else {
151
+ Object.assign(response, chunk);
152
+ }
153
+ const existingBufferFields = _.intersection(Object.keys(chunk), bufferFields);
154
+ for (let bufferField of existingBufferFields) {
155
+ if (chunkObj[bufferField] && chunkObj[bufferField].value) {
156
+ if (response[bufferField] && response[bufferField].value && !_.isArray(response[bufferField].value)) {
157
+ response[bufferField].value = [];
158
+ }
159
+ let data = JSON.parse(chunkObj[bufferField].value.toString());
160
+ if (_.isArray(data)) {
161
+ for (let dataObj of data) {
162
+ response[bufferField].value.push(dataObj);
163
+ }
164
+ }
165
+ else {
166
+ response[bufferField].value.push(data);
167
+ }
168
+ }
169
+ }
170
+ });
171
+ result.on('error', (err) => {
172
+ console.error(err);
173
+ operationStatus.code = err.code ? err.code : 500;
174
+ operationStatus.message = err.message;
175
+ });
176
+ result.on('end', () => {
177
+ if (_.isEmpty(operationStatus.message)) {
178
+ operationStatus.code = 200;
179
+ operationStatus.message = 'success';
180
+ }
181
+ resolve(response);
182
+ });
183
+ });
184
+ return { details: aggregatedResponse, operationStatus };
185
+ }
186
+ let items = utils_1.decodeBufferFields(result.items, bufferFields);
138
187
  return {
139
188
  details: {
140
- items: result.items,
189
+ items: items,
141
190
  operationStatus: result.operationStatus // overall status
142
191
  },
143
192
  };
@@ -210,10 +259,79 @@ const MutateResolver = async (req, ctx, schema) => {
210
259
  if (authToken && authToken.startsWith('Bearer ')) {
211
260
  subject.token = authToken.split(' ')[1];
212
261
  }
262
+ // TODO identify google.protobufAny from config
263
+ for (let item of input.items) {
264
+ let keys = Object.keys(item);
265
+ for (let key of keys) {
266
+ if (item[key] && item[key].value) {
267
+ item[key] = { typeUrl: '', value: Buffer.from(JSON.stringify(item.data.value)) };
268
+ }
269
+ }
270
+ }
213
271
  const result = await service[method]({
214
272
  items: input === null || input === void 0 ? void 0 : input.items,
215
273
  subject
216
274
  });
275
+ // TODO read from grpcClientConfig
276
+ // const bufferFields = getKeys((grpcClientConfig as any)?.bufferFields);
277
+ const bufferFields = [];
278
+ if (result instanceof stream.Readable) {
279
+ let operationStatus = { code: 0, message: '' };
280
+ let aggregatedResponse = await new Promise((resolve, reject) => {
281
+ let response = {};
282
+ result.on('data', (chunk) => {
283
+ const chunkObj = _.cloneDeep(chunk);
284
+ if (!response) {
285
+ response = chunk;
286
+ }
287
+ else {
288
+ Object.assign(response, chunk);
289
+ }
290
+ const existingBufferFields = _.intersection(Object.keys(chunk), bufferFields);
291
+ for (let bufferField of existingBufferFields) {
292
+ if (chunkObj[bufferField] && chunkObj[bufferField].value) {
293
+ if (response[bufferField] && response[bufferField].value && !_.isArray(response[bufferField].value)) {
294
+ response[bufferField].value = [];
295
+ }
296
+ let data = JSON.parse(chunkObj[bufferField].value.toString());
297
+ if (_.isArray(data)) {
298
+ for (let dataObj of data) {
299
+ response[bufferField].value.push(dataObj);
300
+ }
301
+ }
302
+ else {
303
+ response[bufferField].value.push(data);
304
+ }
305
+ }
306
+ }
307
+ });
308
+ result.on('error', (err) => {
309
+ console.error(err);
310
+ operationStatus.code = err.code ? err.code : 500;
311
+ operationStatus.message = err.message;
312
+ });
313
+ result.on('end', () => {
314
+ if (_.isEmpty(operationStatus.message)) {
315
+ operationStatus.code = 200;
316
+ operationStatus.message = 'success';
317
+ }
318
+ resolve(response);
319
+ });
320
+ });
321
+ return { details: { items: aggregatedResponse, operationStatus } };
322
+ }
323
+ // TODO identify google.protobufAny from config
324
+ // let items = decodeBufferFields(result.items, bufferFields);
325
+ for (let item of result.items) {
326
+ if (item && item.payload) {
327
+ const keys = Object.keys(item.payload);
328
+ for (let bufferField of keys) {
329
+ if (item.payload[bufferField] && item.payload[bufferField].value) {
330
+ item.payload[bufferField].value = JSON.parse(item.payload[bufferField].value.toString());
331
+ }
332
+ }
333
+ }
334
+ }
217
335
  return {
218
336
  details: {
219
337
  items: result.items,
@@ -470,7 +588,7 @@ const getAndGenerateSchema = (service, namespace, prefix, cfg, queryList) => {
470
588
  exports.getAndGenerateSchema = getAndGenerateSchema;
471
589
  const getAndGenerateResolvers = (service, namespace, cfg, queryList, subspace = undefined, serviceKey = undefined) => {
472
590
  const { mutations, queries } = exports.getWhitelistBlacklistConfig(service, queryList, cfg);
473
- const func = exports.getGQLResolverFunctions(service, namespace, serviceKey || subspace || namespace);
591
+ const func = exports.getGQLResolverFunctions(service, namespace, serviceKey || subspace || namespace, cfg.client);
474
592
  Object.keys(func).forEach(k => {
475
593
  exports.registerResolverFunction(namespace, k, func[k], !queries.has(k) && mutations.has(k), subspace);
476
594
  });
@@ -497,7 +615,7 @@ exports.generateSubServiceSchemas = generateSubServiceSchemas;
497
615
  const generateSubServiceResolvers = (subServices, config, namespace) => {
498
616
  subServices.forEach((sub) => {
499
617
  const { mutations, queries } = exports.getWhitelistBlacklistConfig(sub.service, sub.queries, config);
500
- const func = exports.getGQLResolverFunctions(sub.service, namespace, sub.name || namespace);
618
+ const func = exports.getGQLResolverFunctions(sub.service, namespace, sub.name || namespace, config.client);
501
619
  Object.keys(func).forEach(k => {
502
620
  exports.registerResolverFunction(config.root ? sub.name : namespace, k, func[k], !queries.has(k) && mutations.has(k), config.root ? undefined : sub.name);
503
621
  });
@@ -1,2 +1,4 @@
1
1
  export declare const capitalizeProtoName: (name: string) => string;
2
2
  export declare const convertyCamelToSnakeCase: (entity: string) => string;
3
+ export declare const getKeys: (obj: any) => string[];
4
+ export declare const decodeBufferFields: (items: any, bufferFields: string[]) => any;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertyCamelToSnakeCase = exports.capitalizeProtoName = void 0;
3
+ exports.decodeBufferFields = exports.getKeys = exports.convertyCamelToSnakeCase = exports.capitalizeProtoName = void 0;
4
+ const _ = require("lodash");
4
5
  const capitalizeProtoName = (name) => {
5
6
  return name.replace(/(?:\.|^|_)(\w)/g, v => v.toUpperCase()).replace(/[._]/g, '');
6
7
  };
@@ -10,3 +11,40 @@ const convertyCamelToSnakeCase = (entity) => {
10
11
  return entity.replace(/(?:^|\.?)([A-Z])/g, (x, y) => { return '_' + y.toLowerCase(); }).replace(/^_/, '');
11
12
  };
12
13
  exports.convertyCamelToSnakeCase = convertyCamelToSnakeCase;
14
+ const getKeys = (obj) => {
15
+ let set = new Set();
16
+ if (obj) {
17
+ const keys = Object.keys(obj);
18
+ for (let key of keys) {
19
+ if (typeof obj[key] === 'string') {
20
+ set.add(obj[key]);
21
+ }
22
+ else if (Array.isArray(obj[key])) {
23
+ for (let value of obj[key]) {
24
+ set.add(value);
25
+ }
26
+ }
27
+ }
28
+ }
29
+ return Array.from(set);
30
+ };
31
+ exports.getKeys = getKeys;
32
+ const decodeBufferFields = (items, bufferFields) => {
33
+ if (bufferFields && bufferFields.length > 0 && items && items.length > 0) {
34
+ for (let item of items) {
35
+ if (item && item.payload) {
36
+ const existingBufferFields = _.intersection(Object.keys(item.payload), bufferFields);
37
+ for (let bufferField of existingBufferFields) {
38
+ if (item.payload[bufferField] && item.payload[bufferField].value) {
39
+ item.payload[bufferField].value = JSON.parse(item.payload[bufferField].value.toString());
40
+ }
41
+ }
42
+ }
43
+ }
44
+ return items;
45
+ }
46
+ else {
47
+ return items;
48
+ }
49
+ };
50
+ exports.decodeBufferFields = decodeBufferFields;
@@ -82,6 +82,7 @@ export declare type IIoRestorecommerceRuleTarget = {
82
82
  export declare type IIoRestorecommerceAttributeAttribute = {
83
83
  id?: Maybe<Scalars['String']>;
84
84
  value?: Maybe<Scalars['String']>;
85
+ attribute?: Maybe<Array<IIoRestorecommerceAttributeAttribute>>;
85
86
  };
86
87
  export declare type IIoRestorecommerceAccessControlContext = {
87
88
  subject?: Maybe<IGoogleProtobufAny>;
@@ -119,6 +120,7 @@ export declare type IoRestorecommerceAttributeAttribute = {
119
120
  __typename?: 'IoRestorecommerceAttributeAttribute';
120
121
  id?: Maybe<Scalars['String']>;
121
122
  value?: Maybe<Scalars['String']>;
123
+ attribute?: Maybe<Array<IoRestorecommerceAttributeAttribute>>;
122
124
  };
123
125
  export declare type IoRestorecommercePolicyPolicyRq = {
124
126
  __typename?: 'IoRestorecommercePolicyPolicyRQ';
@@ -145,15 +147,44 @@ export declare enum IoRestorecommerceRuleEffect {
145
147
  }
146
148
  export declare type IoRestorecommerceRuleContextQuery = {
147
149
  __typename?: 'IoRestorecommerceRuleContextQuery';
148
- filters?: Maybe<Array<IoRestorecommerceRuleContextQueryFilter>>;
150
+ filters?: Maybe<Array<IoRestorecommerceFilterFilterOp>>;
149
151
  query?: Maybe<Scalars['String']>;
150
152
  };
151
- export declare type IoRestorecommerceRuleContextQueryFilter = {
152
- __typename?: 'IoRestorecommerceRuleContextQueryFilter';
153
+ export declare type IoRestorecommerceFilterFilterOp = {
154
+ __typename?: 'IoRestorecommerceFilterFilterOp';
155
+ filter?: Maybe<Array<IoRestorecommerceFilterFilter>>;
156
+ operator?: Maybe<IoRestorecommerceFilterFilterOpOperator>;
157
+ };
158
+ export declare type IoRestorecommerceFilterFilter = {
159
+ __typename?: 'IoRestorecommerceFilterFilter';
153
160
  field?: Maybe<Scalars['String']>;
154
- operation?: Maybe<Scalars['String']>;
161
+ operation?: Maybe<IoRestorecommerceFilterFilterOperation>;
155
162
  value?: Maybe<Scalars['String']>;
163
+ type?: Maybe<IoRestorecommerceFilterFilterValueType>;
164
+ filters?: Maybe<Array<IoRestorecommerceFilterFilterOp>>;
156
165
  };
166
+ export declare enum IoRestorecommerceFilterFilterOperation {
167
+ Eq = 0,
168
+ Lt = 1,
169
+ Lte = 2,
170
+ Gt = 3,
171
+ Gte = 4,
172
+ IsEmpty = 5,
173
+ ILike = 6,
174
+ In = 7,
175
+ Neq = 8
176
+ }
177
+ export declare enum IoRestorecommerceFilterFilterValueType {
178
+ String = 0,
179
+ Number = 1,
180
+ Boolean = 2,
181
+ Date = 3,
182
+ Array = 4
183
+ }
184
+ export declare enum IoRestorecommerceFilterFilterOpOperator {
185
+ And = 0,
186
+ Or = 1
187
+ }
157
188
  export declare type AccessControlPolicyQuery = {
158
189
  __typename?: 'AccessControlPolicyQuery';
159
190
  Read?: Maybe<ProtoIoRestorecommercePolicyPolicyListResponse>;
@@ -194,6 +225,11 @@ export declare type IoRestorecommerceMetaMeta = {
194
225
  modified?: Maybe<Scalars['Float']>;
195
226
  modifiedBy?: Maybe<Scalars['String']>;
196
227
  owner?: Maybe<Array<IoRestorecommerceAttributeAttribute>>;
228
+ acl?: Maybe<Array<IoRestorecommerceAttributeAttributeObj>>;
229
+ };
230
+ export declare type IoRestorecommerceAttributeAttributeObj = {
231
+ __typename?: 'IoRestorecommerceAttributeAttributeObj';
232
+ attribute?: Maybe<IoRestorecommerceAttributeAttribute>;
197
233
  };
198
234
  export declare type IoRestorecommerceStatusStatus = {
199
235
  __typename?: 'IoRestorecommerceStatusStatus';
@@ -261,28 +297,6 @@ export declare type IIoRestorecommerceFilterFilter = {
261
297
  type?: Maybe<IoRestorecommerceFilterFilterValueType>;
262
298
  filters?: Maybe<Array<IIoRestorecommerceFilterFilterOp>>;
263
299
  };
264
- export declare enum IoRestorecommerceFilterFilterOperation {
265
- Eq = 0,
266
- Lt = 1,
267
- Lte = 2,
268
- Gt = 3,
269
- Gte = 4,
270
- IsEmpty = 5,
271
- ILike = 6,
272
- In = 7,
273
- Neq = 8
274
- }
275
- export declare enum IoRestorecommerceFilterFilterValueType {
276
- String = 0,
277
- Number = 1,
278
- Boolean = 2,
279
- Date = 3,
280
- Array = 4
281
- }
282
- export declare enum IoRestorecommerceFilterFilterOpOperator {
283
- And = 0,
284
- Or = 1
285
- }
286
300
  export declare enum IoRestorecommerceResourcebaseFilterOpOperator {
287
301
  And = 0,
288
302
  Or = 1
@@ -399,6 +413,10 @@ export declare type IIoRestorecommerceMetaMeta = {
399
413
  modified?: Maybe<Scalars['Float']>;
400
414
  modifiedBy?: Maybe<Scalars['String']>;
401
415
  owner?: Maybe<Array<IIoRestorecommerceAttributeAttribute>>;
416
+ acl?: Maybe<Array<IIoRestorecommerceAttributeAttributeObj>>;
417
+ };
418
+ export declare type IIoRestorecommerceAttributeAttributeObj = {
419
+ attribute?: Maybe<IIoRestorecommerceAttributeAttribute>;
402
420
  };
403
421
  export declare enum ModeType {
404
422
  Create = "CREATE",
@@ -446,14 +464,9 @@ export declare type IIoRestorecommerceRuleRule = {
446
464
  evaluationCacheable?: Maybe<Scalars['Boolean']>;
447
465
  };
448
466
  export declare type IIoRestorecommerceRuleContextQuery = {
449
- filters?: Maybe<Array<IIoRestorecommerceRuleContextQueryFilter>>;
467
+ filters?: Maybe<Array<IIoRestorecommerceFilterFilterOp>>;
450
468
  query?: Maybe<Scalars['String']>;
451
469
  };
452
- export declare type IIoRestorecommerceRuleContextQueryFilter = {
453
- field?: Maybe<Scalars['String']>;
454
- operation?: Maybe<Scalars['String']>;
455
- value?: Maybe<Scalars['String']>;
456
- };
457
470
  export declare type AccessControlPolicySetMutation = {
458
471
  __typename?: 'AccessControlPolicySetMutation';
459
472
  Mutate?: Maybe<ProtoIoRestorecommercePolicySetPolicySetListResponse>;
@@ -531,7 +544,11 @@ export declare type ResolversTypes = ResolversObject<{
531
544
  IoRestorecommerceRuleRuleRQ: ResolverTypeWrapper<IoRestorecommerceRuleRuleRq>;
532
545
  IoRestorecommerceRuleEffect: IoRestorecommerceRuleEffect;
533
546
  IoRestorecommerceRuleContextQuery: ResolverTypeWrapper<IoRestorecommerceRuleContextQuery>;
534
- IoRestorecommerceRuleContextQueryFilter: ResolverTypeWrapper<IoRestorecommerceRuleContextQueryFilter>;
547
+ IoRestorecommerceFilterFilterOp: ResolverTypeWrapper<IoRestorecommerceFilterFilterOp>;
548
+ IoRestorecommerceFilterFilter: ResolverTypeWrapper<IoRestorecommerceFilterFilter>;
549
+ IoRestorecommerceFilterFilterOperation: IoRestorecommerceFilterFilterOperation;
550
+ IoRestorecommerceFilterFilterValueType: IoRestorecommerceFilterFilterValueType;
551
+ IoRestorecommerceFilterFilterOpOperator: IoRestorecommerceFilterFilterOpOperator;
535
552
  AccessControlPolicyQuery: ResolverTypeWrapper<AccessControlPolicyQuery>;
536
553
  ProtoIoRestorecommercePolicyPolicyListResponse: ResolverTypeWrapper<ProtoIoRestorecommercePolicyPolicyListResponse>;
537
554
  IoRestorecommercePolicyPolicyListResponse: ResolverTypeWrapper<IoRestorecommercePolicyPolicyListResponse>;
@@ -539,6 +556,7 @@ export declare type ResolversTypes = ResolversObject<{
539
556
  IoRestorecommercePolicyPolicy: ResolverTypeWrapper<IoRestorecommercePolicyPolicy>;
540
557
  IoRestorecommerceMetaMeta: ResolverTypeWrapper<IoRestorecommerceMetaMeta>;
541
558
  Float: ResolverTypeWrapper<Scalars['Float']>;
559
+ IoRestorecommerceAttributeAttributeObj: ResolverTypeWrapper<IoRestorecommerceAttributeAttributeObj>;
542
560
  IoRestorecommerceStatusStatus: ResolverTypeWrapper<IoRestorecommerceStatusStatus>;
543
561
  IIoRestorecommerceResourcebaseReadRequest: IIoRestorecommerceResourcebaseReadRequest;
544
562
  IIoRestorecommerceResourcebaseSort: IIoRestorecommerceResourcebaseSort;
@@ -549,9 +567,6 @@ export declare type ResolversTypes = ResolversObject<{
549
567
  IoRestorecommerceResourcebaseFilterValueType: IoRestorecommerceResourcebaseFilterValueType;
550
568
  IIoRestorecommerceFilterFilterOp: IIoRestorecommerceFilterFilterOp;
551
569
  IIoRestorecommerceFilterFilter: IIoRestorecommerceFilterFilter;
552
- IoRestorecommerceFilterFilterOperation: IoRestorecommerceFilterFilterOperation;
553
- IoRestorecommerceFilterFilterValueType: IoRestorecommerceFilterFilterValueType;
554
- IoRestorecommerceFilterFilterOpOperator: IoRestorecommerceFilterFilterOpOperator;
555
570
  IoRestorecommerceResourcebaseFilterOpOperator: IoRestorecommerceResourcebaseFilterOpOperator;
556
571
  IIoRestorecommerceResourcebaseFieldFilter: IIoRestorecommerceResourcebaseFieldFilter;
557
572
  AccessControlRuleQuery: ResolverTypeWrapper<AccessControlRuleQuery>;
@@ -570,6 +585,7 @@ export declare type ResolversTypes = ResolversObject<{
570
585
  IIoRestorecommercePolicyPolicyList: IIoRestorecommercePolicyPolicyList;
571
586
  IIoRestorecommercePolicyPolicy: IIoRestorecommercePolicyPolicy;
572
587
  IIoRestorecommerceMetaMeta: IIoRestorecommerceMetaMeta;
588
+ IIoRestorecommerceAttributeAttributeObj: IIoRestorecommerceAttributeAttributeObj;
573
589
  ModeType: ModeType;
574
590
  ProtoIoRestorecommerceResourcebaseDeleteResponse: ResolverTypeWrapper<ProtoIoRestorecommerceResourcebaseDeleteResponse>;
575
591
  IoRestorecommerceResourcebaseDeleteResponse: ResolverTypeWrapper<IoRestorecommerceResourcebaseDeleteResponse>;
@@ -578,7 +594,6 @@ export declare type ResolversTypes = ResolversObject<{
578
594
  IIoRestorecommerceRuleRuleList: IIoRestorecommerceRuleRuleList;
579
595
  IIoRestorecommerceRuleRule: IIoRestorecommerceRuleRule;
580
596
  IIoRestorecommerceRuleContextQuery: IIoRestorecommerceRuleContextQuery;
581
- IIoRestorecommerceRuleContextQueryFilter: IIoRestorecommerceRuleContextQueryFilter;
582
597
  AccessControlPolicySetMutation: ResolverTypeWrapper<AccessControlPolicySetMutation>;
583
598
  IIoRestorecommercePolicySetPolicySetList: IIoRestorecommercePolicySetPolicySetList;
584
599
  IIoRestorecommercePolicySetPolicySet: IIoRestorecommercePolicySetPolicySet;
@@ -608,7 +623,8 @@ export declare type ResolversParentTypes = ResolversObject<{
608
623
  IoRestorecommercePolicyPolicyRQ: IoRestorecommercePolicyPolicyRq;
609
624
  IoRestorecommerceRuleRuleRQ: IoRestorecommerceRuleRuleRq;
610
625
  IoRestorecommerceRuleContextQuery: IoRestorecommerceRuleContextQuery;
611
- IoRestorecommerceRuleContextQueryFilter: IoRestorecommerceRuleContextQueryFilter;
626
+ IoRestorecommerceFilterFilterOp: IoRestorecommerceFilterFilterOp;
627
+ IoRestorecommerceFilterFilter: IoRestorecommerceFilterFilter;
612
628
  AccessControlPolicyQuery: AccessControlPolicyQuery;
613
629
  ProtoIoRestorecommercePolicyPolicyListResponse: ProtoIoRestorecommercePolicyPolicyListResponse;
614
630
  IoRestorecommercePolicyPolicyListResponse: IoRestorecommercePolicyPolicyListResponse;
@@ -616,6 +632,7 @@ export declare type ResolversParentTypes = ResolversObject<{
616
632
  IoRestorecommercePolicyPolicy: IoRestorecommercePolicyPolicy;
617
633
  IoRestorecommerceMetaMeta: IoRestorecommerceMetaMeta;
618
634
  Float: Scalars['Float'];
635
+ IoRestorecommerceAttributeAttributeObj: IoRestorecommerceAttributeAttributeObj;
619
636
  IoRestorecommerceStatusStatus: IoRestorecommerceStatusStatus;
620
637
  IIoRestorecommerceResourcebaseReadRequest: IIoRestorecommerceResourcebaseReadRequest;
621
638
  IIoRestorecommerceResourcebaseSort: IIoRestorecommerceResourcebaseSort;
@@ -640,6 +657,7 @@ export declare type ResolversParentTypes = ResolversObject<{
640
657
  IIoRestorecommercePolicyPolicyList: IIoRestorecommercePolicyPolicyList;
641
658
  IIoRestorecommercePolicyPolicy: IIoRestorecommercePolicyPolicy;
642
659
  IIoRestorecommerceMetaMeta: IIoRestorecommerceMetaMeta;
660
+ IIoRestorecommerceAttributeAttributeObj: IIoRestorecommerceAttributeAttributeObj;
643
661
  ProtoIoRestorecommerceResourcebaseDeleteResponse: ProtoIoRestorecommerceResourcebaseDeleteResponse;
644
662
  IoRestorecommerceResourcebaseDeleteResponse: IoRestorecommerceResourcebaseDeleteResponse;
645
663
  IIoRestorecommerceResourcebaseDeleteRequest: IIoRestorecommerceResourcebaseDeleteRequest;
@@ -647,7 +665,6 @@ export declare type ResolversParentTypes = ResolversObject<{
647
665
  IIoRestorecommerceRuleRuleList: IIoRestorecommerceRuleRuleList;
648
666
  IIoRestorecommerceRuleRule: IIoRestorecommerceRuleRule;
649
667
  IIoRestorecommerceRuleContextQuery: IIoRestorecommerceRuleContextQuery;
650
- IIoRestorecommerceRuleContextQueryFilter: IIoRestorecommerceRuleContextQueryFilter;
651
668
  AccessControlPolicySetMutation: AccessControlPolicySetMutation;
652
669
  IIoRestorecommercePolicySetPolicySetList: IIoRestorecommercePolicySetPolicySetList;
653
670
  IIoRestorecommercePolicySetPolicySet: IIoRestorecommercePolicySetPolicySet;
@@ -718,6 +735,7 @@ export declare type IoRestorecommerceRuleTargetResolvers<ContextType = AccessCon
718
735
  export declare type IoRestorecommerceAttributeAttributeResolvers<ContextType = AccessControlContext, ParentType extends ResolversParentTypes['IoRestorecommerceAttributeAttribute'] = ResolversParentTypes['IoRestorecommerceAttributeAttribute']> = ResolversObject<{
719
736
  id?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
720
737
  value?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
738
+ attribute?: Resolver<Maybe<Array<ResolversTypes['IoRestorecommerceAttributeAttribute']>>, ParentType, ContextType>;
721
739
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
722
740
  }>;
723
741
  export declare type IoRestorecommercePolicyPolicyRqResolvers<ContextType = AccessControlContext, ParentType extends ResolversParentTypes['IoRestorecommercePolicyPolicyRQ'] = ResolversParentTypes['IoRestorecommercePolicyPolicyRQ']> = ResolversObject<{
@@ -744,16 +762,45 @@ export declare type IoRestorecommerceRuleEffectResolvers = {
744
762
  DENY: 1;
745
763
  };
746
764
  export declare type IoRestorecommerceRuleContextQueryResolvers<ContextType = AccessControlContext, ParentType extends ResolversParentTypes['IoRestorecommerceRuleContextQuery'] = ResolversParentTypes['IoRestorecommerceRuleContextQuery']> = ResolversObject<{
747
- filters?: Resolver<Maybe<Array<ResolversTypes['IoRestorecommerceRuleContextQueryFilter']>>, ParentType, ContextType>;
765
+ filters?: Resolver<Maybe<Array<ResolversTypes['IoRestorecommerceFilterFilterOp']>>, ParentType, ContextType>;
748
766
  query?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
749
767
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
750
768
  }>;
751
- export declare type IoRestorecommerceRuleContextQueryFilterResolvers<ContextType = AccessControlContext, ParentType extends ResolversParentTypes['IoRestorecommerceRuleContextQueryFilter'] = ResolversParentTypes['IoRestorecommerceRuleContextQueryFilter']> = ResolversObject<{
769
+ export declare type IoRestorecommerceFilterFilterOpResolvers<ContextType = AccessControlContext, ParentType extends ResolversParentTypes['IoRestorecommerceFilterFilterOp'] = ResolversParentTypes['IoRestorecommerceFilterFilterOp']> = ResolversObject<{
770
+ filter?: Resolver<Maybe<Array<ResolversTypes['IoRestorecommerceFilterFilter']>>, ParentType, ContextType>;
771
+ operator?: Resolver<Maybe<ResolversTypes['IoRestorecommerceFilterFilterOpOperator']>, ParentType, ContextType>;
772
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
773
+ }>;
774
+ export declare type IoRestorecommerceFilterFilterResolvers<ContextType = AccessControlContext, ParentType extends ResolversParentTypes['IoRestorecommerceFilterFilter'] = ResolversParentTypes['IoRestorecommerceFilterFilter']> = ResolversObject<{
752
775
  field?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
753
- operation?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
776
+ operation?: Resolver<Maybe<ResolversTypes['IoRestorecommerceFilterFilterOperation']>, ParentType, ContextType>;
754
777
  value?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
778
+ type?: Resolver<Maybe<ResolversTypes['IoRestorecommerceFilterFilterValueType']>, ParentType, ContextType>;
779
+ filters?: Resolver<Maybe<Array<ResolversTypes['IoRestorecommerceFilterFilterOp']>>, ParentType, ContextType>;
755
780
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
756
781
  }>;
782
+ export declare type IoRestorecommerceFilterFilterOperationResolvers = {
783
+ eq: 'undefined';
784
+ lt: 1;
785
+ lte: 2;
786
+ gt: 3;
787
+ gte: 4;
788
+ isEmpty: 5;
789
+ iLike: 6;
790
+ in: 7;
791
+ neq: 8;
792
+ };
793
+ export declare type IoRestorecommerceFilterFilterValueTypeResolvers = {
794
+ STRING: 'undefined';
795
+ NUMBER: 1;
796
+ BOOLEAN: 2;
797
+ DATE: 3;
798
+ ARRAY: 4;
799
+ };
800
+ export declare type IoRestorecommerceFilterFilterOpOperatorResolvers = {
801
+ and: 'undefined';
802
+ or: 1;
803
+ };
757
804
  export declare type AccessControlPolicyQueryResolvers<ContextType = AccessControlContext, ParentType extends ResolversParentTypes['AccessControlPolicyQuery'] = ResolversParentTypes['AccessControlPolicyQuery']> = ResolversObject<{
758
805
  Read?: Resolver<Maybe<ResolversTypes['ProtoIoRestorecommercePolicyPolicyListResponse']>, ParentType, ContextType, RequireFields<AccessControlPolicyQueryReadArgs, 'input'>>;
759
806
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@@ -790,6 +837,11 @@ export declare type IoRestorecommerceMetaMetaResolvers<ContextType = AccessContr
790
837
  modified?: Resolver<Maybe<ResolversTypes['Float']>, ParentType, ContextType>;
791
838
  modifiedBy?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
792
839
  owner?: Resolver<Maybe<Array<ResolversTypes['IoRestorecommerceAttributeAttribute']>>, ParentType, ContextType>;
840
+ acl?: Resolver<Maybe<Array<ResolversTypes['IoRestorecommerceAttributeAttributeObj']>>, ParentType, ContextType>;
841
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
842
+ }>;
843
+ export declare type IoRestorecommerceAttributeAttributeObjResolvers<ContextType = AccessControlContext, ParentType extends ResolversParentTypes['IoRestorecommerceAttributeAttributeObj'] = ResolversParentTypes['IoRestorecommerceAttributeAttributeObj']> = ResolversObject<{
844
+ attribute?: Resolver<Maybe<ResolversTypes['IoRestorecommerceAttributeAttribute']>, ParentType, ContextType>;
793
845
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
794
846
  }>;
795
847
  export declare type IoRestorecommerceStatusStatusResolvers<ContextType = AccessControlContext, ParentType extends ResolversParentTypes['IoRestorecommerceStatusStatus'] = ResolversParentTypes['IoRestorecommerceStatusStatus']> = ResolversObject<{
@@ -821,28 +873,6 @@ export declare type IoRestorecommerceResourcebaseFilterValueTypeResolvers = {
821
873
  DATE: 3;
822
874
  ARRAY: 4;
823
875
  };
824
- export declare type IoRestorecommerceFilterFilterOperationResolvers = {
825
- eq: 'undefined';
826
- lt: 1;
827
- lte: 2;
828
- gt: 3;
829
- gte: 4;
830
- isEmpty: 5;
831
- iLike: 6;
832
- in: 7;
833
- neq: 8;
834
- };
835
- export declare type IoRestorecommerceFilterFilterValueTypeResolvers = {
836
- STRING: 'undefined';
837
- NUMBER: 1;
838
- BOOLEAN: 2;
839
- DATE: 3;
840
- ARRAY: 4;
841
- };
842
- export declare type IoRestorecommerceFilterFilterOpOperatorResolvers = {
843
- and: 'undefined';
844
- or: 1;
845
- };
846
876
  export declare type IoRestorecommerceResourcebaseFilterOpOperatorResolvers = {
847
877
  and: 'undefined';
848
878
  or: 1;
@@ -958,20 +988,22 @@ export declare type Resolvers<ContextType = AccessControlContext> = ResolversObj
958
988
  IoRestorecommerceRuleRuleRQ?: IoRestorecommerceRuleRuleRqResolvers<ContextType>;
959
989
  IoRestorecommerceRuleEffect?: IoRestorecommerceRuleEffectResolvers;
960
990
  IoRestorecommerceRuleContextQuery?: IoRestorecommerceRuleContextQueryResolvers<ContextType>;
961
- IoRestorecommerceRuleContextQueryFilter?: IoRestorecommerceRuleContextQueryFilterResolvers<ContextType>;
991
+ IoRestorecommerceFilterFilterOp?: IoRestorecommerceFilterFilterOpResolvers<ContextType>;
992
+ IoRestorecommerceFilterFilter?: IoRestorecommerceFilterFilterResolvers<ContextType>;
993
+ IoRestorecommerceFilterFilterOperation?: IoRestorecommerceFilterFilterOperationResolvers;
994
+ IoRestorecommerceFilterFilterValueType?: IoRestorecommerceFilterFilterValueTypeResolvers;
995
+ IoRestorecommerceFilterFilterOpOperator?: IoRestorecommerceFilterFilterOpOperatorResolvers;
962
996
  AccessControlPolicyQuery?: AccessControlPolicyQueryResolvers<ContextType>;
963
997
  ProtoIoRestorecommercePolicyPolicyListResponse?: ProtoIoRestorecommercePolicyPolicyListResponseResolvers<ContextType>;
964
998
  IoRestorecommercePolicyPolicyListResponse?: IoRestorecommercePolicyPolicyListResponseResolvers<ContextType>;
965
999
  IoRestorecommercePolicyPolicyResponse?: IoRestorecommercePolicyPolicyResponseResolvers<ContextType>;
966
1000
  IoRestorecommercePolicyPolicy?: IoRestorecommercePolicyPolicyResolvers<ContextType>;
967
1001
  IoRestorecommerceMetaMeta?: IoRestorecommerceMetaMetaResolvers<ContextType>;
1002
+ IoRestorecommerceAttributeAttributeObj?: IoRestorecommerceAttributeAttributeObjResolvers<ContextType>;
968
1003
  IoRestorecommerceStatusStatus?: IoRestorecommerceStatusStatusResolvers<ContextType>;
969
1004
  IoRestorecommerceResourcebaseSortSortOrder?: IoRestorecommerceResourcebaseSortSortOrderResolvers;
970
1005
  IoRestorecommerceResourcebaseFilterOperation?: IoRestorecommerceResourcebaseFilterOperationResolvers;
971
1006
  IoRestorecommerceResourcebaseFilterValueType?: IoRestorecommerceResourcebaseFilterValueTypeResolvers;
972
- IoRestorecommerceFilterFilterOperation?: IoRestorecommerceFilterFilterOperationResolvers;
973
- IoRestorecommerceFilterFilterValueType?: IoRestorecommerceFilterFilterValueTypeResolvers;
974
- IoRestorecommerceFilterFilterOpOperator?: IoRestorecommerceFilterFilterOpOperatorResolvers;
975
1007
  IoRestorecommerceResourcebaseFilterOpOperator?: IoRestorecommerceResourcebaseFilterOpOperatorResolvers;
976
1008
  AccessControlRuleQuery?: AccessControlRuleQueryResolvers<ContextType>;
977
1009
  ProtoIoRestorecommerceRuleRuleListResponse?: ProtoIoRestorecommerceRuleRuleListResponseResolvers<ContextType>;