@restorecommerce/resource-base-interface 1.6.4 → 1.7.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.
Files changed (65) hide show
  1. package/eslint.config.mjs +22 -0
  2. package/lib/core/GraphResourcesServiceBase.d.ts +9 -5
  3. package/lib/core/GraphResourcesServiceBase.d.ts.map +1 -0
  4. package/lib/core/GraphResourcesServiceBase.js +79 -110
  5. package/lib/core/GraphResourcesServiceBase.js.map +1 -1
  6. package/lib/core/ResourcesAPI.d.ts +26 -19
  7. package/lib/core/ResourcesAPI.d.ts.map +1 -0
  8. package/lib/core/ResourcesAPI.js +275 -398
  9. package/lib/core/ResourcesAPI.js.map +1 -1
  10. package/lib/core/ServiceBase.d.ts +29 -10
  11. package/lib/core/ServiceBase.d.ts.map +1 -0
  12. package/lib/core/ServiceBase.js +137 -242
  13. package/lib/core/ServiceBase.js.map +1 -1
  14. package/lib/core/index.d.ts +5 -0
  15. package/lib/core/index.d.ts.map +1 -0
  16. package/lib/core/index.js +21 -0
  17. package/lib/core/index.js.map +1 -0
  18. package/lib/core/interfaces.d.ts +6 -72
  19. package/lib/core/interfaces.d.ts.map +1 -0
  20. package/lib/core/interfaces.js +18 -31
  21. package/lib/core/interfaces.js.map +1 -1
  22. package/lib/core/utils.d.ts +3 -1
  23. package/lib/core/utils.d.ts.map +1 -0
  24. package/lib/core/utils.js +28 -32
  25. package/lib/core/utils.js.map +1 -1
  26. package/lib/experimental/AccessControlledServiceBase.d.ts +30 -0
  27. package/lib/experimental/AccessControlledServiceBase.d.ts.map +1 -0
  28. package/lib/experimental/AccessControlledServiceBase.js +232 -0
  29. package/lib/experimental/AccessControlledServiceBase.js.map +1 -0
  30. package/lib/experimental/ClientRegister.d.ts +22 -0
  31. package/lib/experimental/ClientRegister.d.ts.map +1 -0
  32. package/lib/experimental/ClientRegister.js +33 -0
  33. package/lib/experimental/ClientRegister.js.map +1 -0
  34. package/lib/experimental/Pipe.d.ts +6 -0
  35. package/lib/experimental/Pipe.d.ts.map +1 -0
  36. package/lib/experimental/Pipe.js +14 -0
  37. package/lib/experimental/Pipe.js.map +1 -0
  38. package/lib/experimental/ResourceAggregator.d.ts +35 -0
  39. package/lib/experimental/ResourceAggregator.d.ts.map +1 -0
  40. package/lib/experimental/ResourceAggregator.js +94 -0
  41. package/lib/experimental/ResourceAggregator.js.map +1 -0
  42. package/lib/experimental/ResourceAwaitQueue.d.ts +12 -0
  43. package/lib/experimental/ResourceAwaitQueue.d.ts.map +1 -0
  44. package/lib/experimental/ResourceAwaitQueue.js +34 -0
  45. package/lib/experimental/ResourceAwaitQueue.js.map +1 -0
  46. package/lib/experimental/ResourceMap.d.ts +16 -0
  47. package/lib/experimental/ResourceMap.d.ts.map +1 -0
  48. package/lib/experimental/ResourceMap.js +51 -0
  49. package/lib/experimental/ResourceMap.js.map +1 -0
  50. package/lib/{core → experimental}/WorkerBase.d.ts +10 -14
  51. package/lib/experimental/WorkerBase.d.ts.map +1 -0
  52. package/lib/{core → experimental}/WorkerBase.js +44 -30
  53. package/lib/experimental/WorkerBase.js.map +1 -0
  54. package/lib/experimental/index.d.ts +7 -0
  55. package/lib/experimental/index.d.ts.map +1 -0
  56. package/lib/experimental/index.js +23 -0
  57. package/lib/experimental/index.js.map +1 -0
  58. package/lib/index.d.ts +5 -7
  59. package/lib/index.d.ts.map +1 -0
  60. package/lib/index.js +84 -144
  61. package/lib/index.js.map +1 -1
  62. package/lib/tsconfig.tsbuildinfo +1 -0
  63. package/package.json +23 -28
  64. package/tsconfig.json +11 -25
  65. package/lib/core/WorkerBase.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pipe = void 0;
4
+ class Pipe {
5
+ value;
6
+ constructor(value) {
7
+ this.value = value;
8
+ }
9
+ then(fn) {
10
+ return new Pipe(fn(this.value));
11
+ }
12
+ }
13
+ exports.Pipe = Pipe;
14
+ //# sourceMappingURL=Pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pipe.js","sourceRoot":"","sources":["../../src/experimental/Pipe.ts"],"names":[],"mappings":";;;AAAA,MAAa,IAAI;IAEG;IADlB,YACkB,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IACvB,CAAC;IAEG,IAAI,CAAI,EAAe;QAC5B,OAAO,IAAI,IAAI,CAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;CACF;AARD,oBAQC"}
@@ -0,0 +1,35 @@
1
+ import { type ServiceConfig } from '@restorecommerce/service-config';
2
+ import { type Logger } from '@restorecommerce/logger';
3
+ import { Resource, ResourceList, ResourceListResponse } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/resource_base';
4
+ import { type CallContext } from 'nice-grpc-common';
5
+ import { Subject } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/auth';
6
+ import { ResourceMap, OnMissingCallback } from './ResourceMap';
7
+ import { ClientRegister, CRUDServiceDefinition } from './ClientRegister';
8
+ export type Aggregation<T extends ResourceListResponse & ResourceList = any, C = any> = T & C;
9
+ export type ResolverParams<T = any, M = ResolverMap<T>> = [string, Map<string, T>, M?, T?];
10
+ export type ArrayResolverParams<T = any, M = ResolverMap<T>> = [string, Map<string, T>, M[]?, T[]?];
11
+ export type ElementOf<T = any> = T extends Array<infer E> ? E : T;
12
+ export type ResolverMap<T = any> = {
13
+ [K in keyof T]?: ResolverParams<T[K]> | ArrayResolverParams<T[K]> | T[K];
14
+ } & {};
15
+ export type ResolvedNode<T, M> = T extends ResolverParams ? (T[2] extends object ? Resolved<T[3] & T[2], T[2]> : T[3]) : M extends object ? Resolved<T & M, M> : T;
16
+ export type Resolved<T extends ResolverMap, M extends ResolverMap> = {
17
+ [K in keyof T]?: T[K] extends object ? ResolvedNode<T[K], M[K]> : T[K];
18
+ };
19
+ export declare const Resolver: <T, M>(search_key: string, source: Map<string, T>, map?: M) => ResolverParams<T, M>;
20
+ export declare const ArrayResolver: <T, M>(search_key: string, source: Map<string, T>, map?: M) => ArrayResolverParams<T, M>;
21
+ export declare class ResourceAggregator {
22
+ protected readonly cfg: ServiceConfig;
23
+ protected readonly logger: Logger;
24
+ protected readonly register: ClientRegister;
25
+ constructor(cfg: ServiceConfig, logger: Logger, register?: ClientRegister);
26
+ getByIds<R extends Resource>(ids: string | string[], service: CRUDServiceDefinition, subject?: Subject, context?: CallContext): Promise<ResourceMap<R>>;
27
+ aggregate<T extends object, C>(target: T, sources: {
28
+ service: CRUDServiceDefinition;
29
+ map_by_ids: (target: T) => string[];
30
+ container: string;
31
+ entity?: string;
32
+ }[], template?: C, subject?: Subject, context?: CallContext, strict?: OnMissingCallback): Promise<Aggregation<T, C>>;
33
+ }
34
+ export declare function resolve<T, M extends ResolverMap>(entity: T, resolverMap?: M): Resolved<T & M, M>;
35
+ //# sourceMappingURL=ResourceAggregator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceAggregator.d.ts","sourceRoot":"","sources":["../../src/experimental/ResourceAggregator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResourceAggregator = exports.ArrayResolver = exports.Resolver = void 0;
4
+ exports.resolve = resolve;
5
+ const resource_base_1 = require("@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/resource_base");
6
+ const ResourceMap_1 = require("./ResourceMap");
7
+ const ClientRegister_1 = require("./ClientRegister");
8
+ const Resolver = (search_key, source, map) => [
9
+ search_key,
10
+ source,
11
+ map,
12
+ {},
13
+ ];
14
+ exports.Resolver = Resolver;
15
+ const ArrayResolver = (search_key, source, map) => [
16
+ search_key,
17
+ source,
18
+ [map],
19
+ []
20
+ ];
21
+ exports.ArrayResolver = ArrayResolver;
22
+ class ResourceAggregator {
23
+ cfg;
24
+ logger;
25
+ register;
26
+ constructor(cfg, logger, register = new ClientRegister_1.ClientRegister(cfg, logger)) {
27
+ this.cfg = cfg;
28
+ this.logger = logger;
29
+ this.register = register;
30
+ }
31
+ async getByIds(ids, service, subject, context) {
32
+ ids = [...new Set([ids].flatMap(id => id).filter(id => id))];
33
+ const request = ids?.length ? {
34
+ filters: [{
35
+ filters: [
36
+ {
37
+ field: '_key',
38
+ operation: resource_base_1.Filter_Operation.in,
39
+ value: JSON.stringify(ids),
40
+ type: resource_base_1.Filter_ValueType.ARRAY,
41
+ }
42
+ ]
43
+ }],
44
+ limit: ids.length,
45
+ subject,
46
+ } : undefined;
47
+ const client = this.register.get(service);
48
+ const response = request && await client.read(request, context);
49
+ const map = new ResourceMap_1.ResourceMap(response?.items?.map((item) => item.payload), service?.name?.toString());
50
+ return map;
51
+ }
52
+ async aggregate(target, sources, template, subject, context, strict = ResourceMap_1.DEFAULT_STRICT_CALLBACK) {
53
+ const ids = sources.map(source => source.map_by_ids(target));
54
+ const source_map = await Promise.all(sources.map((source, i) => this.getByIds(ids[i] ?? [], source.service, subject, context)));
55
+ const aggregation = Object.assign(target, ...sources.map((source, i) => ({
56
+ [source.container]: new ResourceMap_1.ResourceMap(source_map[i].getMany(ids[i]?.flatMap(ids => ids) ?? [], strict), source.entity)
57
+ })));
58
+ return aggregation;
59
+ }
60
+ }
61
+ exports.ResourceAggregator = ResourceAggregator;
62
+ function resolve(entity, resolverMap) {
63
+ if (!entity) {
64
+ return;
65
+ }
66
+ else if (Array.isArray(entity)) {
67
+ return entity.map(value => resolve(value, resolverMap[0]));
68
+ }
69
+ else {
70
+ return Object.assign(entity, ...Object.entries(resolverMap ?? {}).map(([k, r]) => {
71
+ const id = typeof r?.[0] === 'string' && entity[r[0]];
72
+ if (!id) {
73
+ return {
74
+ [k]: resolve(entity[k], r)
75
+ };
76
+ }
77
+ else if (Array.isArray(id)) {
78
+ return {
79
+ [k]: id.map(id => r[2]
80
+ ? resolve(r[1]?.get(id.toString()), r[2])
81
+ : r[1]?.get(id.toString()))
82
+ };
83
+ }
84
+ else if (typeof id === 'string') {
85
+ return {
86
+ [k]: r[2]
87
+ ? resolve(r[1]?.get(id), r[2])
88
+ : r[1]?.get(id)
89
+ };
90
+ }
91
+ }).filter(e => e));
92
+ }
93
+ }
94
+ //# sourceMappingURL=ResourceAggregator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceAggregator.js","sourceRoot":"","sources":["../../src/experimental/ResourceAggregator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export type ResourceAwaitFunc<T> = (resource?: T) => void;
2
+ export type ResourceAwaitMutex<T> = {
3
+ resolve: ResourceAwaitFunc<T>;
4
+ reject: (error?: any) => void;
5
+ };
6
+ export declare class ResourceAwaitQueue<T, K = string> extends Map<K, ResourceAwaitMutex<T>> {
7
+ set(key: K, value: ResourceAwaitMutex<T>): this;
8
+ await(key: K, timeout?: number): Promise<T>;
9
+ resolve(key: K, resource?: T): void;
10
+ reject(key: K, error?: any): void;
11
+ }
12
+ //# sourceMappingURL=ResourceAwaitQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceAwaitQueue.d.ts","sourceRoot":"","sources":["../../src/experimental/ResourceAwaitQueue.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;AAE1D,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAClC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF,qBAAa,kBAAkB,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAClE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAS3C,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;IAgBpC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;IAK5B,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG;CAIlC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResourceAwaitQueue = void 0;
4
+ class ResourceAwaitQueue extends Map {
5
+ set(key, value) {
6
+ if (this.has(key)) {
7
+ value.reject(new Error('Resource in use!'));
8
+ }
9
+ else {
10
+ return super.set(key, value);
11
+ }
12
+ }
13
+ async await(key, timeout) {
14
+ return new Promise((resolve, reject) => {
15
+ this.set(key, { resolve, reject });
16
+ if (timeout) {
17
+ setTimeout(() => reject({
18
+ code: 500,
19
+ message: `Event ${key} did not respond before timeout of ${timeout}ms!`
20
+ }), timeout);
21
+ }
22
+ });
23
+ }
24
+ resolve(key, resource) {
25
+ this.get(key)?.resolve(resource);
26
+ this.delete(key);
27
+ }
28
+ reject(key, error) {
29
+ this.get(key)?.reject(error);
30
+ this.delete(key);
31
+ }
32
+ }
33
+ exports.ResourceAwaitQueue = ResourceAwaitQueue;
34
+ //# sourceMappingURL=ResourceAwaitQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceAwaitQueue.js","sourceRoot":"","sources":["../../src/experimental/ResourceAwaitQueue.ts"],"names":[],"mappings":";;;AAQA,MAAa,kBAAkC,SAAQ,GAA6B;IAClE,GAAG,CAAC,GAAM,EAAE,KAA4B;QACtD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9C,CAAC;aACI,CAAC;YACJ,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,GAAM,EAAE,OAAgB;QACzC,OAAO,IAAI,OAAO,CAChB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACnC,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CACR,GAAG,EAAE,CAAC,MAAM,CAAC;oBACX,IAAI,EAAE,GAAG;oBACT,OAAO,EAAE,SAAS,GAAG,sCAAsC,OAAO,KAAK;iBACxE,CAAC,EAAE,OAAO,CACZ,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,OAAO,CAAC,GAAM,EAAE,QAAY;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,GAAM,EAAE,KAAW;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACF;AAnCD,gDAmCC"}
@@ -0,0 +1,16 @@
1
+ import { Resource } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/resource_base';
2
+ export type OnMissingCallback = (id?: string, entity?: string) => any;
3
+ export declare const DEFAULT_STRICT_CALLBACK: OnMissingCallback;
4
+ export declare const DEFAULT_STATUS_CALLBACK: OnMissingCallback;
5
+ export declare class ResourceMap<T extends Resource = any> extends Map<string, T> {
6
+ readonly entity: string;
7
+ protected _all?: T[];
8
+ get all(): T[];
9
+ constructor(items?: T[], entity?: string);
10
+ set(key: string, value: T): this;
11
+ clear(): void;
12
+ delete(key: string): boolean;
13
+ get(id: string, onMissing?: OnMissingCallback): T;
14
+ getMany(ids: string[], onMissing?: OnMissingCallback): T[];
15
+ }
16
+ //# sourceMappingURL=ResourceMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceMap.d.ts","sourceRoot":"","sources":["../../src/experimental/ResourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACT,MAAM,yFAAyF,CAAC;AAMjG,MAAM,MAAM,iBAAiB,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;AAEtE,eAAO,MAAM,uBAAuB,EAAE,iBAKrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,iBAOpC,CAAC;AAEH,qBAAa,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,GAAG,CAAE,SAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;aAUrD,MAAM;IATxB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAErB,IAAW,GAAG,QAGb;gBAGC,KAAK,CAAC,EAAE,CAAC,EAAE,EACK,MAAM,SAA8B;IAStC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAKzB,KAAK;IAKL,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,GAAG,CACjB,EAAE,EAAE,MAAM,EACV,SAAS,GAAE,iBAA2C,GACrD,CAAC;IAUG,OAAO,CACZ,GAAG,EAAE,MAAM,EAAE,EACb,SAAS,GAAE,iBAA2C,GACrD,CAAC,EAAE;CAGP"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResourceMap = exports.DEFAULT_STATUS_CALLBACK = exports.DEFAULT_STRICT_CALLBACK = void 0;
4
+ const DEFAULT_STRICT_CALLBACK = (id, entity) => {
5
+ throw new Error(`Resource missing: { id: ${id}, entity: ${entity} }!`);
6
+ };
7
+ exports.DEFAULT_STRICT_CALLBACK = DEFAULT_STRICT_CALLBACK;
8
+ const DEFAULT_STATUS_CALLBACK = (id, entity) => ({
9
+ id,
10
+ code: 404,
11
+ message: `${entity ?? 'Entity'} ${id} is missing!`
12
+ });
13
+ exports.DEFAULT_STATUS_CALLBACK = DEFAULT_STATUS_CALLBACK;
14
+ class ResourceMap extends Map {
15
+ entity;
16
+ _all;
17
+ get all() {
18
+ this._all = this._all ?? [...this.values()];
19
+ return this._all;
20
+ }
21
+ constructor(items, entity = items[0]?.constructor?.name) {
22
+ super(items?.filter(item => item).map(item => [item.id, item]));
23
+ this.entity = entity;
24
+ }
25
+ set(key, value) {
26
+ delete this._all;
27
+ return super.set(key, value);
28
+ }
29
+ clear() {
30
+ delete this._all;
31
+ return super.clear();
32
+ }
33
+ delete(key) {
34
+ delete this._all;
35
+ return super.delete(key);
36
+ }
37
+ get(id, onMissing = exports.DEFAULT_STRICT_CALLBACK) {
38
+ if (id && onMissing && !this.has(id)) {
39
+ const error = onMissing(id, this.entity);
40
+ if (error) {
41
+ throw error;
42
+ }
43
+ }
44
+ return super.get(id);
45
+ }
46
+ getMany(ids, onMissing = exports.DEFAULT_STRICT_CALLBACK) {
47
+ return ids?.map(id => this.get(id, onMissing));
48
+ }
49
+ }
50
+ exports.ResourceMap = ResourceMap;
51
+ //# sourceMappingURL=ResourceMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceMap.js","sourceRoot":"","sources":["../../src/experimental/ResourceMap.ts"],"names":[],"mappings":";;;AAUO,MAAM,uBAAuB,GAAsB,CACxD,EAAW,EACX,MAAe,EACf,EAAE;IACF,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,aAAa,MAAM,KAAK,CAAC,CAAC;AACzE,CAAC,CAAC;AALW,QAAA,uBAAuB,2BAKlC;AAEK,MAAM,uBAAuB,GAAsB,CACxD,EAAW,EACX,MAAe,EACP,EAAE,CAAC,CAAC;IACZ,EAAE;IACF,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,cAAc;CACnD,CAAC,CAAC;AAPU,QAAA,uBAAuB,2BAOjC;AAEH,MAAa,WAAsC,SAAQ,GAAc;IAUrD;IATR,IAAI,CAAO;IAErB,IAAW,GAAG;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,YACE,KAAW,EACK,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI;QAEpD,KAAK,CAAC,KAAK,EAAE,MAAM,CACjB,IAAI,CAAC,EAAE,CAAC,IAAI,CACb,CAAC,GAAG,CACH,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CACxB,CAAC,CAAC;QANa,WAAM,GAAN,MAAM,CAA8B;IAOtD,CAAC;IAEe,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC;QACjB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEe,KAAK;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC;QACjB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEe,MAAM,CAAC,GAAW;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC;QACjB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEe,GAAG,CACjB,EAAU,EACV,YAA+B,+BAAuB;QAEtD,IAAI,EAAE,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAEM,OAAO,CACZ,GAAa,EACb,YAA+B,+BAAuB;QAEtD,OAAO,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IACjD,CAAC;CACF;AArDD,kCAqDC"}
@@ -1,15 +1,14 @@
1
- import { Provider } from 'nconf';
2
- import type { ServiceImplementation } from 'nice-grpc';
3
- import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
4
- import { RedisClientType as RedisClient } from 'redis';
5
- import { Logger } from 'winston';
1
+ import { type ServiceImplementation } from 'nice-grpc';
2
+ import { type CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
6
3
  import { Server, OffsetStore, DatabaseProvider, CommandInterface } from '@restorecommerce/chassis-srv';
7
4
  import { Events, Topic } from '@restorecommerce/kafka-client';
5
+ import { type Logger } from '@restorecommerce/logger';
8
6
  import { BindConfig } from '@restorecommerce/chassis-srv/lib/microservice/transport/provider/grpc/index';
9
7
  import { ProtoMetadata } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/commandinterface';
10
- import { ServiceBase } from './ServiceBase';
11
- export type ServiceConfig = Provider;
8
+ import { type ServiceConfig } from '@restorecommerce/service-config';
9
+ import { ServiceBase } from '../index';
12
10
  export type ReflectionService = ServiceImplementation<any>;
11
+ export type EventHandler = (msg: any, context?: any, config?: any, eventName?: string) => Promise<any>;
13
12
  export interface ServiceBindConfig<T extends CompatServiceDefinition> extends BindConfig<T> {
14
13
  name: string;
15
14
  meta: ProtoMetadata;
@@ -20,7 +19,6 @@ export declare abstract class WorkerBase {
20
19
  private _server;
21
20
  private _db;
22
21
  private _events;
23
- private _redisClient;
24
22
  private _offsetStore;
25
23
  private _reflectionService;
26
24
  private _commandInterface;
@@ -36,18 +34,14 @@ export declare abstract class WorkerBase {
36
34
  protected set offsetStore(value: OffsetStore);
37
35
  get events(): Events;
38
36
  protected set events(value: Events);
39
- get redisClient(): RedisClient;
40
- protected set redisClient(value: RedisClient);
41
37
  get commandInterface(): CommandInterface;
42
38
  protected set commandInterface(value: CommandInterface);
43
39
  get reflectionService(): ReflectionService;
44
40
  protected set reflectionService(value: ReflectionService);
45
41
  protected readonly services: Map<string, CommandInterface | import("nice-grpc").RawServiceImplementation<any, {}> | ServiceBase<any, any>>;
46
42
  protected readonly topics: Map<string, Topic>;
47
- protected readonly serviceActions: Map<string, (msg: any, context: any, config: any, eventName: string) => Promise<void>>;
48
- protected readonly jobService: {
49
- handleQueuedJob: (msg: any, context: any, config: any, eventName: string) => Promise<Logger>;
50
- };
43
+ protected readonly eventHandlers: Map<string, EventHandler>;
44
+ protected readonly jobHandler: ServiceImplementation<any>;
51
45
  /**
52
46
  * Override this factory function and return a list of ServiceBindConfig[].
53
47
  * Each ServiceBindConfig expects a ServiceBase implementation,
@@ -57,6 +51,7 @@ export declare abstract class WorkerBase {
57
51
  protected abstract initServices(): Promise<ServiceBindConfig<any>[]>;
58
52
  protected bindServices(configs: ServiceBindConfig<any>[]): Promise<void>;
59
53
  protected bindCommandInterface(configs: ServiceBindConfig<any>[]): Promise<void>;
54
+ protected bindJobHandler(): Promise<void>;
60
55
  protected bindRefelctions(configs: ServiceBindConfig<any>[]): Promise<void>;
61
56
  protected bindHealthCheck(): Promise<void>;
62
57
  protected bindHandler(serviceName: string, functionName: string): (msg: any, context: any, config: any, eventName: string) => Promise<any>;
@@ -64,3 +59,4 @@ export declare abstract class WorkerBase {
64
59
  start(cfg?: ServiceConfig, logger?: Logger): Promise<any>;
65
60
  stop(): Promise<any>;
66
61
  }
62
+ //# sourceMappingURL=WorkerBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerBase.d.ts","sourceRoot":"","sources":["../../src/experimental/WorkerBase.ts"],"names":[],"mappings":"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"}
@@ -9,17 +9,16 @@ const commandinterface_1 = require("@restorecommerce/rc-grpc-clients/dist/genera
9
9
  const health_1 = require("@restorecommerce/rc-grpc-clients/dist/generated-server/grpc/health/v1/health");
10
10
  const nice_grpc_server_reflection_1 = require("nice-grpc-server-reflection");
11
11
  const service_config_1 = require("@restorecommerce/service-config");
12
+ const acs_client_1 = require("@restorecommerce/acs-client");
12
13
  class WorkerBase {
13
- constructor() {
14
- this.services = new Map();
15
- this.topics = new Map();
16
- this.serviceActions = new Map();
17
- this.jobService = {
18
- handleQueuedJob: (msg, context, config, eventName) => {
19
- return this.serviceActions.get(msg?.type)(msg?.data?.payload, context, config, msg?.type).then(() => this.logger?.info(`Job ${msg?.type} done.`), (err) => this.logger?.error(`Job ${msg?.type} failed: ${err}`));
20
- }
21
- };
22
- }
14
+ _cfg;
15
+ _logger;
16
+ _server;
17
+ _db;
18
+ _events;
19
+ _offsetStore;
20
+ _reflectionService;
21
+ _commandInterface;
23
22
  get cfg() {
24
23
  return this._cfg;
25
24
  }
@@ -56,12 +55,6 @@ class WorkerBase {
56
55
  set events(value) {
57
56
  this._events = value;
58
57
  }
59
- get redisClient() {
60
- return this._redisClient;
61
- }
62
- set redisClient(value) {
63
- this._redisClient = value;
64
- }
65
58
  get commandInterface() {
66
59
  return this._commandInterface;
67
60
  }
@@ -74,16 +67,25 @@ class WorkerBase {
74
67
  set reflectionService(value) {
75
68
  this._reflectionService = value;
76
69
  }
70
+ services = new Map();
71
+ topics = new Map();
72
+ eventHandlers = new Map();
73
+ jobHandler = {
74
+ handleQueuedJob: (msg, context, config, eventName) => {
75
+ return this.eventHandlers.get(msg?.type)(msg?.data?.payload, context, config, msg?.type).then(() => this.logger?.info(`Job ${msg?.type} done.`), (err) => this.logger?.error(`Job ${msg?.type} failed: ${err}`));
76
+ }
77
+ };
77
78
  async bindServices(configs) {
78
- this.logger?.debug('bind Services', configs);
79
+ this.logger?.verbose('bind Services');
79
80
  const serviceNames = this.cfg.get('serviceNames');
80
- configs.map(config => {
81
+ configs.forEach(config => {
82
+ this.logger?.debug('bind Service:', serviceNames?.[config.name] ?? config.name);
81
83
  this.services.set(serviceNames?.[config.name] ?? config.name, config.implementation);
82
84
  });
83
85
  await Promise.all(configs.map(config => this.server.bind(serviceNames?.[config.name] ?? config.name, config)));
84
86
  }
85
87
  async bindCommandInterface(configs) {
86
- this.logger?.debug('bind CommandInterface');
88
+ this.logger?.verbose('bind CommandInterface');
87
89
  this.commandInterface = [...this.services.values()].find(service => service instanceof chassis_srv_1.CommandInterface);
88
90
  if (this.commandInterface) {
89
91
  return;
@@ -93,7 +95,11 @@ class WorkerBase {
93
95
  this.logger?.warn('CommandInterface not initialized', 'serviceNames:cis for CommandInterface not set!');
94
96
  return;
95
97
  }
96
- this.commandInterface = new chassis_srv_1.CommandInterface(this.server, this.cfg, this.logger, this.events, this.redisClient);
98
+ const redisConfig = this.cfg.get('redis');
99
+ redisConfig.db = this.cfg.get('redis:db-indexes:db-subject');
100
+ const redisClient = (0, redis_1.createClient)(redisConfig);
101
+ await redisClient.connect();
102
+ this.commandInterface = new chassis_srv_1.CommandInterface(this.server, this.cfg, this.logger, this.events, redisClient);
97
103
  this.services.set(serviceName, this.commandInterface);
98
104
  configs.push({
99
105
  name: serviceName,
@@ -106,8 +112,17 @@ class WorkerBase {
106
112
  implementation: this.commandInterface,
107
113
  });
108
114
  }
109
- bindRefelctions(configs) {
110
- this.logger?.debug('bind ReflectionService');
115
+ async bindJobHandler() {
116
+ this.logger?.verbose('bind JobHandler');
117
+ const serviceName = this.cfg.get('serviceNames:cis');
118
+ if (!serviceName) {
119
+ this.logger?.warn('JobHandler not initialized', 'serviceNames:jobs for JobHandler not set!');
120
+ return;
121
+ }
122
+ this.services.set(serviceName, this.jobHandler);
123
+ }
124
+ async bindRefelctions(configs) {
125
+ this.logger?.verbose('bind ReflectionService');
111
126
  const serviceName = this.cfg.get('serviceNames:reflection');
112
127
  if (!serviceName) {
113
128
  this.logger?.warn('ReflectionService not initialized', 'serviceNames:reflection for ReflectionService not set!');
@@ -125,7 +140,7 @@ class WorkerBase {
125
140
  });
126
141
  }
127
142
  async bindHealthCheck() {
128
- this.logger?.debug('bind HealthCheckService');
143
+ this.logger?.verbose('bind HealthCheckService');
129
144
  const name = this.cfg.get('serviceNames:health');
130
145
  if (!name) {
131
146
  this.logger?.warn('HealthCheckService not initialized', 'serviceNames:health for HealthCheckService not set!');
@@ -153,7 +168,7 @@ class WorkerBase {
153
168
  };
154
169
  }
155
170
  async bindEvents() {
156
- this.logger?.debug('bind Events');
171
+ this.logger?.verbose('bind Events');
157
172
  const serviceNames = this.cfg.get('serviceNames');
158
173
  const kafkaCfg = this.cfg.get('events:kafka');
159
174
  this.events = new kafka_client_1.Events(kafkaCfg, this.logger);
@@ -163,14 +178,14 @@ class WorkerBase {
163
178
  const topicName = value.topic;
164
179
  const topic = await this.events.topic(topicName);
165
180
  const offsetValue = await this.offsetStore.getOffset(topicName);
166
- this.logger?.info('subscribing to topic with offset value', topicName, offsetValue);
181
+ this.logger?.verbose('subscribing to topic with offset value', topicName, offsetValue);
167
182
  Object.entries(value.events ?? {}).forEach(([eventName, handler]) => {
168
183
  const i = handler.lastIndexOf('.');
169
184
  const name = handler.slice(0, i);
170
185
  const serviceName = serviceNames?.[name] ?? name;
171
186
  const functionName = handler.slice(i + 1);
172
- this.serviceActions.set(eventName, this.bindHandler(serviceName, functionName));
173
- topic.on(eventName, this.serviceActions.get(eventName), { startingOffset: offsetValue });
187
+ this.eventHandlers.set(eventName, this.bindHandler(serviceName, functionName));
188
+ topic.on(eventName, this.eventHandlers.get(eventName), { startingOffset: offsetValue });
174
189
  });
175
190
  this.topics.set(key, topic);
176
191
  }));
@@ -190,9 +205,7 @@ class WorkerBase {
190
205
  }
191
206
  this.server = new chassis_srv_1.Server(this.cfg.get('server'), this.logger);
192
207
  this.db = await chassis_srv_1.database.get(this.cfg.get('database:main'), this.logger);
193
- const redisConfig = this.cfg.get('redis');
194
- redisConfig.db = this.cfg.get('redis:db-indexes:db-subject');
195
- this.redisClient = (0, redis_1.createClient)(redisConfig);
208
+ await this.bindJobHandler();
196
209
  await this.bindEvents();
197
210
  const serviceConfigs = await this.initServices();
198
211
  await this.bindServices(serviceConfigs);
@@ -200,6 +213,7 @@ class WorkerBase {
200
213
  await this.bindHealthCheck();
201
214
  await this.bindRefelctions(serviceConfigs);
202
215
  // start server
216
+ await (0, acs_client_1.initAuthZ)(this.cfg);
203
217
  await this.server.start();
204
218
  this.logger?.info('Server started successfully');
205
219
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerBase.js","sourceRoot":"","sources":["../../src/experimental/WorkerBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './ClientRegister';
2
+ export * from './ResourceAggregator';
3
+ export * from './ResourceAwaitQueue';
4
+ export * from './ResourceMap';
5
+ export * from './WorkerBase';
6
+ export * from './Pipe';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/experimental/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ClientRegister"), exports);
18
+ __exportStar(require("./ResourceAggregator"), exports);
19
+ __exportStar(require("./ResourceAwaitQueue"), exports);
20
+ __exportStar(require("./ResourceMap"), exports);
21
+ __exportStar(require("./WorkerBase"), exports);
22
+ __exportStar(require("./Pipe"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/experimental/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,uDAAqC;AACrC,uDAAqC;AACrC,gDAA8B;AAC9B,+CAA6B;AAC7B,yCAAuB"}
package/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { ReadRequest } from './core/interfaces';
1
2
  /**
2
3
  * convertToObject takes input contained in the proto structure defined in resource_base proto
3
4
  * and converts it into Object understandable by the underlying DB implementation in chassis-srv
@@ -9,11 +10,8 @@ export declare const convertToObject: (input: any, obj?: any, currentOperator?:
9
10
  /**
10
11
  * converts input filters to json object understandable by chassis-srv for AQL conversion
11
12
  * @param input input filters object
12
- * @returns json object understandable by chassiss-rv for AQL conversion
13
+ * @returns json object understandable by chassis-srv for AQL conversion
13
14
  */
14
- export declare const toObject: (input: any) => {};
15
- export { ResourcesAPIBase } from './core/ResourcesAPI';
16
- export { ServiceBase } from './core/ServiceBase';
17
- export { WorkerBase } from './core/WorkerBase';
18
- export { GraphResourcesServiceBase } from './core/GraphResourcesServiceBase';
19
- export { Filter, FilterOp, FilterOperation, FilterValueType, GraphFilters, GraphFilter, OperatorType, TraversalOptions, } from './core/interfaces';
15
+ export declare const toObject: (input: ReadRequest) => Record<string, any> | Record<string, any>[];
16
+ export * from './core';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA0D,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA6GxG;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,UAAW,GAAG,QAAQ,GAAG,oBAAoB,MAAM,QA0C9E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,UAAW,WAAW,gDAa1C,CAAC;AAEF,cAAc,QAAQ,CAAC"}