@meshmakers/octo-services 2.0.2304-14001 → 2.0.2304-23001
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/README.md +24 -28
- package/esm2020/lib/models/pagedGraphResultDto.mjs +8 -4
- package/esm2020/lib/octo-services.module.mjs +28 -28
- package/esm2020/lib/options/octo-service-options.mjs +7 -3
- package/esm2020/lib/services/octo-graph-ql-service-base.mjs +95 -95
- package/esm2020/lib/shared/graphQL.mjs +13 -13
- package/esm2020/meshmakers-octo-services.mjs +4 -4
- package/esm2020/public-api.mjs +9 -9
- package/fesm2015/meshmakers-octo-services.mjs +137 -129
- package/fesm2015/meshmakers-octo-services.mjs.map +1 -1
- package/fesm2020/meshmakers-octo-services.mjs +137 -129
- package/fesm2020/meshmakers-octo-services.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/models/pagedGraphResultDto.d.ts +5 -4
- package/lib/octo-services.module.d.ts +9 -9
- package/lib/options/octo-service-options.d.ts +5 -4
- package/lib/services/octo-graph-ql-service-base.d.ts +21 -20
- package/lib/shared/graphQL.d.ts +5 -5
- package/package.json +8 -8
- package/public-api.d.ts +5 -5
package/README.md
CHANGED
|
@@ -1,28 +1,24 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Run `ng generate component component-name --project
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## Further help
|
|
26
|
-
|
|
27
|
-
To get more help on the Angular CLI use `ng help` or go check out
|
|
28
|
-
the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
|
|
1
|
+
# OctoServices
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project octo-services` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project octo-services`.
|
|
8
|
+
> Note: Don't forget to add `--project octo-services` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build octo-services` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build octo-services`, go to the dist folder `cd dist/octo-services` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test octo-services` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import { PagedResultDto } from "@meshmakers/shared-services";
|
|
2
|
-
export class PagedGraphResultDto extends PagedResultDto {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { PagedResultDto } from "@meshmakers/shared-services";
|
|
2
|
+
export class PagedGraphResultDto extends PagedResultDto {
|
|
3
|
+
constructor() {
|
|
4
|
+
super();
|
|
5
|
+
this.document = null;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZWRHcmFwaFJlc3VsdER0by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvb2N0by1zZXJ2aWNlcy9zcmMvbGliL21vZGVscy9wYWdlZEdyYXBoUmVzdWx0RHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxNQUFNLE9BQU8sbUJBQTBCLFNBQVEsY0FBaUI7SUFJOUQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGFnZWRSZXN1bHREdG99IGZyb20gXCJAbWVzaG1ha2Vycy9zaGFyZWQtc2VydmljZXNcIjtcblxuZXhwb3J0IGNsYXNzIFBhZ2VkR3JhcGhSZXN1bHREdG88UCwgQz4gZXh0ZW5kcyBQYWdlZFJlc3VsdER0bzxDPiB7XG5cbiAgZG9jdW1lbnQ6IFAgfCBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmRvY3VtZW50ID0gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { OctoServiceOptions } from "./options/octo-service-options";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class OctoServicesModule {
|
|
5
|
-
static forRoot(octoServiceOptions) {
|
|
6
|
-
return {
|
|
7
|
-
ngModule: OctoServicesModule,
|
|
8
|
-
providers: [
|
|
9
|
-
{
|
|
10
|
-
provide: OctoServiceOptions,
|
|
11
|
-
useValue: octoServiceOptions
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
OctoServicesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
18
|
-
OctoServicesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
19
|
-
OctoServicesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
21
|
-
type: NgModule,
|
|
22
|
-
args: [{
|
|
23
|
-
declarations: [],
|
|
24
|
-
imports: [],
|
|
25
|
-
exports: []
|
|
26
|
-
}]
|
|
27
|
-
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { OctoServiceOptions } from "./options/octo-service-options";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class OctoServicesModule {
|
|
5
|
+
static forRoot(octoServiceOptions) {
|
|
6
|
+
return {
|
|
7
|
+
ngModule: OctoServicesModule,
|
|
8
|
+
providers: [
|
|
9
|
+
{
|
|
10
|
+
provide: OctoServiceOptions,
|
|
11
|
+
useValue: octoServiceOptions
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
OctoServicesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OctoServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
+
OctoServicesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: OctoServicesModule });
|
|
19
|
+
OctoServicesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OctoServicesModule });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: OctoServicesModule, decorators: [{
|
|
21
|
+
type: NgModule,
|
|
22
|
+
args: [{
|
|
23
|
+
declarations: [],
|
|
24
|
+
imports: [],
|
|
25
|
+
exports: []
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2N0by1zZXJ2aWNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL29jdG8tc2VydmljZXMvc3JjL2xpYi9vY3RvLXNlcnZpY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFRbEUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFzQztRQUNuRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGtCQUFrQjtvQkFDM0IsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7YUFDRjtTQUNGLENBQUE7SUFDSCxDQUFDOzsrR0FYVSxrQkFBa0I7Z0hBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09jdG9TZXJ2aWNlT3B0aW9uc30gZnJvbSBcIi4vb3B0aW9ucy9vY3RvLXNlcnZpY2Utb3B0aW9uc1wiO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBPY3RvU2VydmljZXNNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChvY3RvU2VydmljZU9wdGlvbnM6IE9jdG9TZXJ2aWNlT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8T2N0b1NlcnZpY2VzTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBPY3RvU2VydmljZXNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE9jdG9TZXJ2aWNlT3B0aW9ucyxcbiAgICAgICAgICB1c2VWYWx1ZTogb2N0b1NlcnZpY2VPcHRpb25zXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
export class OctoServiceOptions {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export class OctoServiceOptions {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.assetServices = null;
|
|
4
|
+
this.defaultDataSourceId = undefined;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2N0by1zZXJ2aWNlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL29jdG8tc2VydmljZXMvc3JjL2xpYi9vcHRpb25zL29jdG8tc2VydmljZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0I7UUFDRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBPY3RvU2VydmljZU9wdGlvbnMge1xuICBhc3NldFNlcnZpY2VzOiBzdHJpbmcgfCBudWxsO1xuICBkZWZhdWx0RGF0YVNvdXJjZUlkPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYXNzZXRTZXJ2aWNlcyA9IG51bGw7XG4gICAgdGhpcy5kZWZhdWx0RGF0YVNvdXJjZUlkID0gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
import { finalize, map } from "rxjs/operators";
|
|
2
|
-
import { PagedGraphResultDto } from "../models/pagedGraphResultDto";
|
|
3
|
-
import { PagedResultDto } from "@meshmakers/shared-services";
|
|
4
|
-
import { InMemoryCache } from '@apollo/client/core';
|
|
5
|
-
export class OctoGraphQLServiceBase {
|
|
6
|
-
constructor(apollo, httpLink, octoServiceOptions) {
|
|
7
|
-
this.apollo = apollo;
|
|
8
|
-
this.httpLink = httpLink;
|
|
9
|
-
this.octoServiceOptions = octoServiceOptions;
|
|
10
|
-
}
|
|
11
|
-
getEntities(tenantId, variables, queryNode, watchQuery, f) {
|
|
12
|
-
const query = watchQuery ? this.prepareWatchQuery(tenantId, variables, queryNode) : this.prepareQuery(tenantId, variables, queryNode);
|
|
13
|
-
return query.pipe(map(result => {
|
|
14
|
-
const resultSet = new PagedResultDto();
|
|
15
|
-
if (result.errors) {
|
|
16
|
-
console.error(result.errors);
|
|
17
|
-
throw Error("Error in GraphQL statement.");
|
|
18
|
-
}
|
|
19
|
-
else if (result.data) {
|
|
20
|
-
f(resultSet, result.data);
|
|
21
|
-
}
|
|
22
|
-
return resultSet;
|
|
23
|
-
}));
|
|
24
|
-
}
|
|
25
|
-
getGraphEntities(tenantId, variables, queryNode, watchQuery, f) {
|
|
26
|
-
const query = watchQuery ? this.prepareWatchQuery(tenantId, variables, queryNode) : this.prepareQuery(tenantId, variables, queryNode);
|
|
27
|
-
return query.pipe(map(result => {
|
|
28
|
-
const resultSet = new PagedGraphResultDto();
|
|
29
|
-
if (result.errors) {
|
|
30
|
-
console.error(result.errors);
|
|
31
|
-
throw Error("Error in GraphQL statement.");
|
|
32
|
-
}
|
|
33
|
-
else if (result.data) {
|
|
34
|
-
f(resultSet, result.data);
|
|
35
|
-
}
|
|
36
|
-
return resultSet;
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
getEntityDetail(tenantId, variables, queryNode, watchQuery, f) {
|
|
40
|
-
const query = watchQuery ? this.prepareWatchQuery(tenantId, variables, queryNode) : this.prepareQuery(tenantId, variables, queryNode);
|
|
41
|
-
return query.pipe(map(result => {
|
|
42
|
-
if (result.errors) {
|
|
43
|
-
console.error(result.errors);
|
|
44
|
-
throw Error("Error in GraphQL statement.");
|
|
45
|
-
}
|
|
46
|
-
else if (result.data) {
|
|
47
|
-
return f(result.data);
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
}));
|
|
51
|
-
}
|
|
52
|
-
createUpdateEntity(tenantId, variables, queryNode, f) {
|
|
53
|
-
this.createApolloForTenant(tenantId);
|
|
54
|
-
return this.apollo.use(tenantId).mutate({
|
|
55
|
-
mutation: queryNode,
|
|
56
|
-
variables: variables
|
|
57
|
-
}).pipe(map(value => f(value.data)), finalize(() => this.apollo.use(tenantId).client.reFetchObservableQueries(true)));
|
|
58
|
-
}
|
|
59
|
-
deleteEntity(tenantId, variables, queryNode, f) {
|
|
60
|
-
this.createApolloForTenant(tenantId);
|
|
61
|
-
return this.apollo.use(tenantId).mutate({
|
|
62
|
-
mutation: queryNode,
|
|
63
|
-
variables: variables
|
|
64
|
-
}).pipe(map(value => f(value.data)), finalize(() => this.apollo.use(tenantId).
|
|
65
|
-
}
|
|
66
|
-
createApolloForTenant(tenantId) {
|
|
67
|
-
const result = this.apollo.use(tenantId);
|
|
68
|
-
if (result) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
const uri = `${this.octoServiceOptions.assetServices}tenants/${tenantId}/GraphQL`;
|
|
72
|
-
this.apollo.createNamed(tenantId, {
|
|
73
|
-
link: this.httpLink.create({ uri }),
|
|
74
|
-
cache: new InMemoryCache({
|
|
75
|
-
dataIdFromObject: o => o
|
|
76
|
-
}),
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
prepareWatchQuery(tenantId, variables, queryNode) {
|
|
80
|
-
this.createApolloForTenant(tenantId);
|
|
81
|
-
return this.apollo.use(tenantId).watchQuery({
|
|
82
|
-
query: queryNode,
|
|
83
|
-
variables: variables
|
|
84
|
-
}).valueChanges;
|
|
85
|
-
}
|
|
86
|
-
prepareQuery(tenantId, variables, queryNode) {
|
|
87
|
-
this.createApolloForTenant(tenantId);
|
|
88
|
-
return this.apollo.use(tenantId).query({
|
|
89
|
-
query: queryNode,
|
|
90
|
-
variables: variables,
|
|
91
|
-
fetchPolicy: "network-only"
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2N0by1ncmFwaC1xbC1zZXJ2aWNlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL29jdG8tc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9vY3RvLWdyYXBoLXFsLXNlcnZpY2UtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsUUFBUSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxZQUFvQixNQUFjLEVBQVUsUUFBa0IsRUFBVSxrQkFBc0M7UUFBMUYsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQzlHLENBQUM7SUFFUyxXQUFXLENBQThCLFFBQWdCLEVBQUUsU0FBb0IsRUFBRSxTQUF1QixFQUFFLFVBQW1CLEVBQUUsQ0FBZ0U7UUFFdk0sTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQXFCLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQXFCLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUssT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUU3QixNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsRUFBVyxDQUFDO1lBRWhELElBQUksTUFBTSxDQUFDLE1BQU0sRUFB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QztJQUVPLGlCQUFpQixDQUFxQixRQUFnQixFQUFFLFNBQW9CLEVBQUUsU0FBdUI7UUFDM0csSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFVO1lBQ25ELEtBQUssRUFBRSxTQUFTO1lBQ2hCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDbEIsQ0FBQztJQUVPLFlBQVksQ0FBcUIsUUFBZ0IsRUFBRSxTQUFvQixFQUFFLFNBQXVCO1FBQ3RHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBVTtZQUM5QyxLQUFLLEVBQUUsU0FBUztZQUNoQixTQUFTLEVBQUUsU0FBUztZQUNwQixXQUFXLEVBQUUsY0FBYztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RvY3VtZW50Tm9kZX0gZnJvbSBcImdyYXBocWxcIjtcclxuaW1wb3J0IHtmaW5hbGl6ZSwgbWFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtBcG9sbG99IGZyb20gXCJhcG9sbG8tYW5ndWxhclwiO1xyXG5pbXBvcnQge09jdG9TZXJ2aWNlT3B0aW9uc30gZnJvbSBcIi4uL29wdGlvbnMvb2N0by1zZXJ2aWNlLW9wdGlvbnNcIjtcclxuaW1wb3J0IHtQYWdlZEdyYXBoUmVzdWx0RHRvfSBmcm9tIFwiLi4vbW9kZWxzL3BhZ2VkR3JhcGhSZXN1bHREdG9cIjtcclxuaW1wb3J0IHtQYWdlZFJlc3VsdER0b30gZnJvbSBcIkBtZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlc1wiO1xyXG5pbXBvcnQge0h0dHBMaW5rfSBmcm9tICdhcG9sbG8tYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHtJbk1lbW9yeUNhY2hlfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBPY3RvR3JhcGhRTFNlcnZpY2VCYXNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcG9sbG86IEFwb2xsbywgcHJpdmF0ZSBodHRwTGluazogSHR0cExpbmssIHByaXZhdGUgb2N0b1NlcnZpY2VPcHRpb25zOiBPY3RvU2VydmljZU9wdGlvbnMpIHtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRFbnRpdGllczxUUmVzdWx0LCBURW50aXR5LCBUVmFyaWFibGU+KHRlbmFudElkOiBzdHJpbmcsIHZhcmlhYmxlczogVFZhcmlhYmxlLCBxdWVyeU5vZGU6IERvY3VtZW50Tm9kZSwgd2F0Y2hRdWVyeTogYm9vbGVhbiwgZjogKHJlc3VsdFNldDogUGFnZWRSZXN1bHREdG88VEVudGl0eT4sIHJlc3VsdDogVFJlc3VsdCkgPT4gdm9pZCkge1xyXG5cclxuICAgIGNvbnN0IHF1ZXJ5ID0gd2F0Y2hRdWVyeSA/IHRoaXMucHJlcGFyZVdhdGNoUXVlcnk8VFJlc3VsdCwgVFZhcmlhYmxlPih0ZW5hbnRJZCwgdmFyaWFibGVzLCBxdWVyeU5vZGUpIDogdGhpcy5wcmVwYXJlUXVlcnk8VFJlc3VsdCwgVFZhcmlhYmxlPih0ZW5hbnRJZCwgdmFyaWFibGVzLCBxdWVyeU5vZGUpO1xyXG4gICAgcmV0dXJuIHF1ZXJ5LnBpcGUobWFwKHJlc3VsdCA9PiB7XHJcblxyXG4gICAgICBjb25zdCByZXN1bHRTZXQgPSBuZXcgUGFnZWRSZXN1bHREdG88VEVudGl0eT4oKTtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihyZXN1bHQuZXJyb3JzKTtcclxuICAgICAgICB0aHJvdyBFcnJvcihcIkVycm9yIGluIEdyYXBoUUwgc3RhdGVtZW50LlwiKVxyXG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5kYXRhKSB7XHJcbiAgICAgICAgZihyZXN1bHRTZXQsIHJlc3VsdC5kYXRhKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcmVzdWx0U2V0O1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEdyYXBoRW50aXRpZXM8VFJlc3VsdCwgVFAsIFRDLCBUVmFyaWFibGU+KHRlbmFudElkOiBzdHJpbmcsIHZhcmlhYmxlczogVFZhcmlhYmxlLCBxdWVyeU5vZGU6IERvY3VtZW50Tm9kZSwgd2F0Y2hRdWVyeTogYm9vbGVhbiwgZjogKHJlc3VsdFNldDogUGFnZWRHcmFwaFJlc3VsdER0bzxUUCwgVEM+LCByZXN1bHQ6IFRSZXN1bHQpID0+IHZvaWQpIHtcclxuXHJcbiAgICBjb25zdCBxdWVyeSA9IHdhdGNoUXVlcnkgPyB0aGlzLnByZXBhcmVXYXRjaFF1ZXJ5PFRSZXN1bHQsIFRWYXJpYWJsZT4odGVuYW50SWQsIHZhcmlhYmxlcywgcXVlcnlOb2RlKSA6IHRoaXMucHJlcGFyZVF1ZXJ5PFRSZXN1bHQsIFRWYXJpYWJsZT4odGVuYW50SWQsIHZhcmlhYmxlcywgcXVlcnlOb2RlKTtcclxuICAgIHJldHVybiBxdWVyeS5waXBlKG1hcChyZXN1bHQgPT4ge1xyXG5cclxuICAgICAgY29uc3QgcmVzdWx0U2V0ID0gbmV3IFBhZ2VkR3JhcGhSZXN1bHREdG88VFAsIFRDPigpO1xyXG5cclxuICAgICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKHJlc3VsdC5lcnJvcnMpO1xyXG4gICAgICAgIHRocm93IEVycm9yKFwiRXJyb3IgaW4gR3JhcGhRTCBzdGF0ZW1lbnQuXCIpXHJcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0LmRhdGEpIHtcclxuICAgICAgICBmKHJlc3VsdFNldCwgcmVzdWx0LmRhdGEpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByZXN1bHRTZXQ7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RW50aXR5RGV0YWlsPFRSZXN1bHQsIFRFbnRpdHksIFRWYXJpYWJsZT4odGVuYW50SWQ6IHN0cmluZywgdmFyaWFibGVzOiBUVmFyaWFibGUsIHF1ZXJ5Tm9kZTogRG9jdW1lbnROb2RlLCB3YXRjaFF1ZXJ5OiBib29sZWFuLCBmOiAocmVzdWx0OiBUUmVzdWx0KSA9PiBURW50aXR5KSB7XHJcblxyXG4gICAgY29uc3QgcXVlcnkgPSB3YXRjaFF1ZXJ5ID8gdGhpcy5wcmVwYXJlV2F0Y2hRdWVyeTxUUmVzdWx0LCBUVmFyaWFibGU+KHRlbmFudElkLCB2YXJpYWJsZXMsIHF1ZXJ5Tm9kZSkgOiB0aGlzLnByZXBhcmVRdWVyeTxUUmVzdWx0LCBUVmFyaWFibGU+KHRlbmFudElkLCB2YXJpYWJsZXMsIHF1ZXJ5Tm9kZSk7XHJcbiAgICByZXR1cm4gcXVlcnkucGlwZShtYXAocmVzdWx0ID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihyZXN1bHQuZXJyb3JzKTtcclxuICAgICAgICB0aHJvdyBFcnJvcihcIkVycm9yIGluIEdyYXBoUUwgc3RhdGVtZW50LlwiKVxyXG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5kYXRhKSB7XHJcbiAgICAgICAgcmV0dXJuIGYocmVzdWx0LmRhdGEpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZVVwZGF0ZUVudGl0eTxUUmVzdWx0LCBURW50aXR5LCBUVmFyaWFibGU+KHRlbmFudElkOiBzdHJpbmcsIHZhcmlhYmxlczogVFZhcmlhYmxlLCBxdWVyeU5vZGU6IERvY3VtZW50Tm9kZSwgZjogKHJlc3VsdDogVFJlc3VsdCkgPT4gVEVudGl0eSkge1xyXG5cclxuICAgIHRoaXMuY3JlYXRlQXBvbGxvRm9yVGVuYW50KHRlbmFudElkKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5hcG9sbG8udXNlKHRlbmFudElkKS5tdXRhdGU8VFJlc3VsdD4oe1xyXG4gICAgICBtdXRhdGlvbjogcXVlcnlOb2RlLFxyXG4gICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlc1xyXG4gICAgfSkucGlwZShcclxuICAgICAgbWFwKHZhbHVlID0+IGYodmFsdWUuZGF0YSkpLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmFwb2xsby51c2UodGVuYW50SWQpLmNsaWVudC5yZUZldGNoT2JzZXJ2YWJsZVF1ZXJpZXModHJ1ZSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGRlbGV0ZUVudGl0eTxUUmVzdWx0LCBUVmFyaWFibGU+KHRlbmFudElkOiBzdHJpbmcsIHZhcmlhYmxlczogVFZhcmlhYmxlLCBxdWVyeU5vZGU6IERvY3VtZW50Tm9kZSwgZjogKHJlc3VsdDogVFJlc3VsdCkgPT4gYm9vbGVhbikge1xyXG4gICAgdGhpcy5jcmVhdGVBcG9sbG9Gb3JUZW5hbnQodGVuYW50SWQpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmFwb2xsby51c2UodGVuYW50SWQpLm11dGF0ZTxUUmVzdWx0Pih7XHJcbiAgICAgIG11dGF0aW9uOiBxdWVyeU5vZGUsXHJcbiAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzXHJcbiAgICB9KS5waXBlKFxyXG4gICAgICBtYXAodmFsdWUgPT4gZih2YWx1ZS5kYXRhKSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuYXBvbGxvLnVzZSh0ZW5hbnRJZCkuZ2V0Q2xpZW50KCkucmVGZXRjaE9ic2VydmFibGVRdWVyaWVzKHRydWUpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQXBvbGxvRm9yVGVuYW50KHRlbmFudElkOiBzdHJpbmcpIHtcclxuXHJcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmFwb2xsby51c2UodGVuYW50SWQpO1xyXG4gICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdXJpID0gYCR7dGhpcy5vY3RvU2VydmljZU9wdGlvbnMuYXNzZXRTZXJ2aWNlc310ZW5hbnRzLyR7dGVuYW50SWR9L0dyYXBoUUxgO1xyXG5cclxuICAgIHRoaXMuYXBvbGxvLmNyZWF0ZU5hbWVkKHRlbmFudElkLFxyXG4gICAgICB7XHJcbiAgICAgICAgbGluazogdGhpcy5odHRwTGluay5jcmVhdGUoe3VyaX0pLFxyXG4gICAgICAgIGNhY2hlOiBuZXcgSW5NZW1vcnlDYWNoZSh7XHJcbiAgICAgICAgICBkYXRhSWRGcm9tT2JqZWN0OiBvID0+IDxzdHJpbmc+by5ydElkXHJcbiAgICAgICAgfSksXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlV2F0Y2hRdWVyeTxUUmVzdWx0LCBUVmFyaWFibGU+KHRlbmFudElkOiBzdHJpbmcsIHZhcmlhYmxlczogVFZhcmlhYmxlLCBxdWVyeU5vZGU6IERvY3VtZW50Tm9kZSkge1xyXG4gICAgdGhpcy5jcmVhdGVBcG9sbG9Gb3JUZW5hbnQodGVuYW50SWQpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmFwb2xsby51c2UodGVuYW50SWQpLndhdGNoUXVlcnk8VFJlc3VsdD4oe1xyXG4gICAgICBxdWVyeTogcXVlcnlOb2RlLFxyXG4gICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlc1xyXG4gICAgfSkudmFsdWVDaGFuZ2VzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlUXVlcnk8VFJlc3VsdCwgVFZhcmlhYmxlPih0ZW5hbnRJZDogc3RyaW5nLCB2YXJpYWJsZXM6IFRWYXJpYWJsZSwgcXVlcnlOb2RlOiBEb2N1bWVudE5vZGUpIHtcclxuICAgIHRoaXMuY3JlYXRlQXBvbGxvRm9yVGVuYW50KHRlbmFudElkKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5hcG9sbG8udXNlKHRlbmFudElkKS5xdWVyeTxUUmVzdWx0Pih7XHJcbiAgICAgIHF1ZXJ5OiBxdWVyeU5vZGUsXHJcbiAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxyXG4gICAgICBmZXRjaFBvbGljeTogXCJuZXR3b3JrLW9ubHlcIlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
|
|
1
|
+
import { finalize, map } from "rxjs/operators";
|
|
2
|
+
import { PagedGraphResultDto } from "../models/pagedGraphResultDto";
|
|
3
|
+
import { PagedResultDto } from "@meshmakers/shared-services";
|
|
4
|
+
import { InMemoryCache } from '@apollo/client/core';
|
|
5
|
+
export class OctoGraphQLServiceBase {
|
|
6
|
+
constructor(apollo, httpLink, octoServiceOptions) {
|
|
7
|
+
this.apollo = apollo;
|
|
8
|
+
this.httpLink = httpLink;
|
|
9
|
+
this.octoServiceOptions = octoServiceOptions;
|
|
10
|
+
}
|
|
11
|
+
getEntities(tenantId, variables, queryNode, watchQuery, f) {
|
|
12
|
+
const query = watchQuery ? this.prepareWatchQuery(tenantId, variables, queryNode) : this.prepareQuery(tenantId, variables, queryNode);
|
|
13
|
+
return query.pipe(map(result => {
|
|
14
|
+
const resultSet = new PagedResultDto();
|
|
15
|
+
if (result.errors) {
|
|
16
|
+
console.error(result.errors);
|
|
17
|
+
throw Error("Error in GraphQL statement.");
|
|
18
|
+
}
|
|
19
|
+
else if (result.data) {
|
|
20
|
+
f(resultSet, result.data);
|
|
21
|
+
}
|
|
22
|
+
return resultSet;
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
getGraphEntities(tenantId, variables, queryNode, watchQuery, f) {
|
|
26
|
+
const query = watchQuery ? this.prepareWatchQuery(tenantId, variables, queryNode) : this.prepareQuery(tenantId, variables, queryNode);
|
|
27
|
+
return query.pipe(map(result => {
|
|
28
|
+
const resultSet = new PagedGraphResultDto();
|
|
29
|
+
if (result.errors) {
|
|
30
|
+
console.error(result.errors);
|
|
31
|
+
throw Error("Error in GraphQL statement.");
|
|
32
|
+
}
|
|
33
|
+
else if (result.data) {
|
|
34
|
+
f(resultSet, result.data);
|
|
35
|
+
}
|
|
36
|
+
return resultSet;
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
getEntityDetail(tenantId, variables, queryNode, watchQuery, f) {
|
|
40
|
+
const query = watchQuery ? this.prepareWatchQuery(tenantId, variables, queryNode) : this.prepareQuery(tenantId, variables, queryNode);
|
|
41
|
+
return query.pipe(map(result => {
|
|
42
|
+
if (result.errors) {
|
|
43
|
+
console.error(result.errors);
|
|
44
|
+
throw Error("Error in GraphQL statement.");
|
|
45
|
+
}
|
|
46
|
+
else if (result.data) {
|
|
47
|
+
return f(result.data);
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
createUpdateEntity(tenantId, variables, queryNode, f) {
|
|
53
|
+
this.createApolloForTenant(tenantId);
|
|
54
|
+
return this.apollo.use(tenantId).mutate({
|
|
55
|
+
mutation: queryNode,
|
|
56
|
+
variables: variables
|
|
57
|
+
}).pipe(map(value => f(value.data)), finalize(() => this.apollo.use(tenantId).client.reFetchObservableQueries(true)));
|
|
58
|
+
}
|
|
59
|
+
deleteEntity(tenantId, variables, queryNode, f) {
|
|
60
|
+
this.createApolloForTenant(tenantId);
|
|
61
|
+
return this.apollo.use(tenantId).mutate({
|
|
62
|
+
mutation: queryNode,
|
|
63
|
+
variables: variables
|
|
64
|
+
}).pipe(map(value => f(value.data)), finalize(() => this.apollo.use(tenantId).client.reFetchObservableQueries(true)));
|
|
65
|
+
}
|
|
66
|
+
createApolloForTenant(tenantId) {
|
|
67
|
+
const result = this.apollo.use(tenantId);
|
|
68
|
+
if (result) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const uri = `${this.octoServiceOptions.assetServices}tenants/${tenantId}/GraphQL`;
|
|
72
|
+
this.apollo.createNamed(tenantId, {
|
|
73
|
+
link: this.httpLink.create({ uri }),
|
|
74
|
+
cache: new InMemoryCache({
|
|
75
|
+
dataIdFromObject: o => o['rtId']
|
|
76
|
+
}),
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
prepareWatchQuery(tenantId, variables, queryNode) {
|
|
80
|
+
this.createApolloForTenant(tenantId);
|
|
81
|
+
return this.apollo.use(tenantId).watchQuery({
|
|
82
|
+
query: queryNode,
|
|
83
|
+
variables: variables
|
|
84
|
+
}).valueChanges;
|
|
85
|
+
}
|
|
86
|
+
prepareQuery(tenantId, variables, queryNode) {
|
|
87
|
+
this.createApolloForTenant(tenantId);
|
|
88
|
+
return this.apollo.use(tenantId).query({
|
|
89
|
+
query: queryNode,
|
|
90
|
+
variables: variables,
|
|
91
|
+
fetchPolicy: "network-only"
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2N0by1ncmFwaC1xbC1zZXJ2aWNlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL29jdG8tc2VydmljZXMvc3JjL2xpYi9zZXJ2aWNlcy9vY3RvLWdyYXBoLXFsLXNlcnZpY2UtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsUUFBUSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFJbEQsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxZQUFvQixNQUFjLEVBQVUsUUFBa0IsRUFBVSxrQkFBc0M7UUFBMUYsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQzlHLENBQUM7SUFFUyxXQUFXLENBQXlELFFBQWdCLEVBQUUsU0FBb0IsRUFBRSxTQUF1QixFQUFFLFVBQW1CLEVBQUUsQ0FBZ0U7UUFFbE8sTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQXFCLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQXFCLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUssT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUU3QixNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsRUFBVyxDQUFDO1lBRWhELElBQUksTUFBTSxDQUFDLE1BQU0sRUFB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QztJQUVPLGlCQUFpQixDQUFnRCxRQUFnQixFQUFFLFNBQW9CLEVBQUUsU0FBdUI7UUFDdEksSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFVO1lBQ25ELEtBQUssRUFBRSxTQUFTO1lBQ2hCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDbEIsQ0FBQztJQUVPLFlBQVksQ0FBZ0QsUUFBZ0IsRUFBRSxTQUFvQixFQUFFLFNBQXVCO1FBQ2pJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBVTtZQUM5QyxLQUFLLEVBQUUsU0FBUztZQUNoQixTQUFTLEVBQUUsU0FBUztZQUNwQixXQUFXLEVBQUUsY0FBYztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RvY3VtZW50Tm9kZX0gZnJvbSBcImdyYXBocWxcIjtcbmltcG9ydCB7ZmluYWxpemUsIG1hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge0Fwb2xsb30gZnJvbSBcImFwb2xsby1hbmd1bGFyXCI7XG5pbXBvcnQge09jdG9TZXJ2aWNlT3B0aW9uc30gZnJvbSBcIi4uL29wdGlvbnMvb2N0by1zZXJ2aWNlLW9wdGlvbnNcIjtcbmltcG9ydCB7UGFnZWRHcmFwaFJlc3VsdER0b30gZnJvbSBcIi4uL21vZGVscy9wYWdlZEdyYXBoUmVzdWx0RHRvXCI7XG5pbXBvcnQge1BhZ2VkUmVzdWx0RHRvfSBmcm9tIFwiQG1lc2htYWtlcnMvc2hhcmVkLXNlcnZpY2VzXCI7XG5pbXBvcnQge0h0dHBMaW5rfSBmcm9tICdhcG9sbG8tYW5ndWxhci9odHRwJztcbmltcG9ydCB7SW5NZW1vcnlDYWNoZX0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge09wZXJhdGlvblZhcmlhYmxlc30gZnJvbSBcIkBhcG9sbG8vY2xpZW50L2NvcmUvdHlwZXNcIjtcbmltcG9ydCB7RW1wdHlPYmplY3R9IGZyb20gXCJhcG9sbG8tYW5ndWxhci90eXBlc1wiO1xuXG5leHBvcnQgY2xhc3MgT2N0b0dyYXBoUUxTZXJ2aWNlQmFzZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcG9sbG86IEFwb2xsbywgcHJpdmF0ZSBodHRwTGluazogSHR0cExpbmssIHByaXZhdGUgb2N0b1NlcnZpY2VPcHRpb25zOiBPY3RvU2VydmljZU9wdGlvbnMpIHtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRFbnRpdGllczxUUmVzdWx0LCBURW50aXR5LCBUVmFyaWFibGUgZXh0ZW5kcyBPcGVyYXRpb25WYXJpYWJsZXM+KHRlbmFudElkOiBzdHJpbmcsIHZhcmlhYmxlczogVFZhcmlhYmxlLCBxdWVyeU5vZGU6IERvY3VtZW50Tm9kZSwgd2F0Y2hRdWVyeTogYm9vbGVhbiwgZjogKHJlc3VsdFNldDogUGFnZWRSZXN1bHREdG88VEVudGl0eT4sIHJlc3VsdDogVFJlc3VsdCkgPT4gdm9pZCkge1xuXG4gICAgY29uc3QgcXVlcnkgPSB3YXRjaFF1ZXJ5ID8gdGhpcy5wcmVwYXJlV2F0Y2hRdWVyeTxUUmVzdWx0LCBUVmFyaWFibGU+KHRlbmFudElkLCB2YXJpYWJsZXMsIHF1ZXJ5Tm9kZSkgOiB0aGlzLnByZXBhcmVRdWVyeTxUUmVzdWx0LCBUVmFyaWFibGU+KHRlbmFudElkLCB2YXJpYWJsZXMsIHF1ZXJ5Tm9kZSk7XG4gICAgcmV0dXJuIHF1ZXJ5LnBpcGUobWFwKHJlc3VsdCA9PiB7XG5cbiAgICAgIGNvbnN0IHJlc3VsdFNldCA9IG5ldyBQYWdlZFJlc3VsdER0bzxURW50aXR5PigpO1xuXG4gICAgICBpZiAocmVzdWx0LmVycm9ycykge1xuICAgICAgICBjb25zb2xlLmVycm9yKHJlc3VsdC5lcnJvcnMpO1xuICAgICAgICB0aHJvdyBFcnJvcihcIkVycm9yIGluIEdyYXBoUUwgc3RhdGVtZW50LlwiKVxuICAgICAgfSBlbHNlIGlmIChyZXN1bHQuZGF0YSkge1xuICAgICAgICBmKHJlc3VsdFNldCwgcmVzdWx0LmRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdFNldDtcbiAgICB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0R3JhcGhFbnRpdGllczxUUmVzdWx0LCBUUCwgVEMsIFRWYXJpYWJsZSBleHRlbmRzIE9wZXJhdGlvblZhcmlhYmxlcz4odGVuYW50SWQ6IHN0cmluZywgdmFyaWFibGVzOiBUVmFyaWFibGUsIHF1ZXJ5Tm9kZTogRG9jdW1lbnROb2RlLCB3YXRjaFF1ZXJ5OiBib29sZWFuLCBmOiAocmVzdWx0U2V0OiBQYWdlZEdyYXBoUmVzdWx0RHRvPFRQLCBUQz4sIHJlc3VsdDogVFJlc3VsdCkgPT4gdm9pZCkge1xuXG4gICAgY29uc3QgcXVlcnkgPSB3YXRjaFF1ZXJ5ID8gdGhpcy5wcmVwYXJlV2F0Y2hRdWVyeTxUUmVzdWx0LCBUVmFyaWFibGU+KHRlbmFudElkLCB2YXJpYWJsZXMsIHF1ZXJ5Tm9kZSkgOiB0aGlzLnByZXBhcmVRdWVyeTxUUmVzdWx0LCBUVmFyaWFibGU+KHRlbmFudElkLCB2YXJpYWJsZXMsIHF1ZXJ5Tm9kZSk7XG4gICAgcmV0dXJuIHF1ZXJ5LnBpcGUobWFwKHJlc3VsdCA9PiB7XG5cbiAgICAgIGNvbnN0IHJlc3VsdFNldCA9IG5ldyBQYWdlZEdyYXBoUmVzdWx0RHRvPFRQLCBUQz4oKTtcblxuICAgICAgaWYgKHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihyZXN1bHQuZXJyb3JzKTtcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJFcnJvciBpbiBHcmFwaFFMIHN0YXRlbWVudC5cIilcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0LmRhdGEpIHtcbiAgICAgICAgZihyZXN1bHRTZXQsIHJlc3VsdC5kYXRhKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRTZXQ7XG4gICAgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEVudGl0eURldGFpbDxUUmVzdWx0LCBURW50aXR5LCBUVmFyaWFibGUgZXh0ZW5kcyBPcGVyYXRpb25WYXJpYWJsZXM+KHRlbmFudElkOiBzdHJpbmcsIHZhcmlhYmxlczogVFZhcmlhYmxlLCBxdWVyeU5vZGU6IERvY3VtZW50Tm9kZSwgd2F0Y2hRdWVyeTogYm9vbGVhbiwgZjogKHJlc3VsdDogVFJlc3VsdCkgPT4gVEVudGl0eSkge1xuXG4gICAgY29uc3QgcXVlcnkgPSB3YXRjaFF1ZXJ5ID8gdGhpcy5wcmVwYXJlV2F0Y2hRdWVyeTxUUmVzdWx0LCBUVmFyaWFibGU+KHRlbmFudElkLCB2YXJpYWJsZXMsIHF1ZXJ5Tm9kZSkgOiB0aGlzLnByZXBhcmVRdWVyeTxUUmVzdWx0LCBUVmFyaWFibGU+KHRlbmFudElkLCB2YXJpYWJsZXMsIHF1ZXJ5Tm9kZSk7XG4gICAgcmV0dXJuIHF1ZXJ5LnBpcGUobWFwKHJlc3VsdCA9PiB7XG5cbiAgICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IocmVzdWx0LmVycm9ycyk7XG4gICAgICAgIHRocm93IEVycm9yKFwiRXJyb3IgaW4gR3JhcGhRTCBzdGF0ZW1lbnQuXCIpXG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5kYXRhKSB7XG4gICAgICAgIHJldHVybiBmKHJlc3VsdC5kYXRhKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVVcGRhdGVFbnRpdHk8VFJlc3VsdCwgVEVudGl0eSwgVFZhcmlhYmxlIGV4dGVuZHMgT3BlcmF0aW9uVmFyaWFibGVzPih0ZW5hbnRJZDogc3RyaW5nLCB2YXJpYWJsZXM6IFRWYXJpYWJsZSwgcXVlcnlOb2RlOiBEb2N1bWVudE5vZGUsIGY6IChyZXN1bHQ6IFRSZXN1bHQgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiBURW50aXR5KSB7XG5cbiAgICB0aGlzLmNyZWF0ZUFwb2xsb0ZvclRlbmFudCh0ZW5hbnRJZCk7XG5cbiAgICByZXR1cm4gdGhpcy5hcG9sbG8udXNlKHRlbmFudElkKS5tdXRhdGU8VFJlc3VsdD4oe1xuICAgICAgbXV0YXRpb246IHF1ZXJ5Tm9kZSxcbiAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCh2YWx1ZSA9PiBmKHZhbHVlLmRhdGEpKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuYXBvbGxvLnVzZSh0ZW5hbnRJZCkuY2xpZW50LnJlRmV0Y2hPYnNlcnZhYmxlUXVlcmllcyh0cnVlKSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlbGV0ZUVudGl0eTxUUmVzdWx0LCBUVmFyaWFibGUgZXh0ZW5kcyBPcGVyYXRpb25WYXJpYWJsZXM+KHRlbmFudElkOiBzdHJpbmcsIHZhcmlhYmxlczogVFZhcmlhYmxlLCBxdWVyeU5vZGU6IERvY3VtZW50Tm9kZSwgZjogKHJlc3VsdDogVFJlc3VsdCB8IG51bGwgfCB1bmRlZmluZWQpID0+IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNyZWF0ZUFwb2xsb0ZvclRlbmFudCh0ZW5hbnRJZCk7XG5cbiAgICByZXR1cm4gdGhpcy5hcG9sbG8udXNlKHRlbmFudElkKS5tdXRhdGU8VFJlc3VsdD4oe1xuICAgICAgbXV0YXRpb246IHF1ZXJ5Tm9kZSxcbiAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCh2YWx1ZSA9PiBmKHZhbHVlLmRhdGEpKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuYXBvbGxvLnVzZSh0ZW5hbnRJZCkuY2xpZW50LnJlRmV0Y2hPYnNlcnZhYmxlUXVlcmllcyh0cnVlKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBcG9sbG9Gb3JUZW5hbnQodGVuYW50SWQ6IHN0cmluZykge1xuXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5hcG9sbG8udXNlKHRlbmFudElkKTtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdXJpID0gYCR7dGhpcy5vY3RvU2VydmljZU9wdGlvbnMuYXNzZXRTZXJ2aWNlc310ZW5hbnRzLyR7dGVuYW50SWR9L0dyYXBoUUxgO1xuXG4gICAgdGhpcy5hcG9sbG8uY3JlYXRlTmFtZWQodGVuYW50SWQsXG4gICAgICB7XG4gICAgICAgIGxpbms6IHRoaXMuaHR0cExpbmsuY3JlYXRlKHt1cml9KSxcbiAgICAgICAgY2FjaGU6IG5ldyBJbk1lbW9yeUNhY2hlKHtcbiAgICAgICAgICBkYXRhSWRGcm9tT2JqZWN0OiBvID0+IDxzdHJpbmc+b1sncnRJZCddXG4gICAgICAgIH0pLFxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVXYXRjaFF1ZXJ5PFRSZXN1bHQsIFRWYXJpYWJsZSBleHRlbmRzIE9wZXJhdGlvblZhcmlhYmxlcz4odGVuYW50SWQ6IHN0cmluZywgdmFyaWFibGVzOiBUVmFyaWFibGUsIHF1ZXJ5Tm9kZTogRG9jdW1lbnROb2RlKSB7XG4gICAgdGhpcy5jcmVhdGVBcG9sbG9Gb3JUZW5hbnQodGVuYW50SWQpO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBvbGxvLnVzZSh0ZW5hbnRJZCkud2F0Y2hRdWVyeTxUUmVzdWx0Pih7XG4gICAgICBxdWVyeTogcXVlcnlOb2RlLFxuICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXNcbiAgICB9KS52YWx1ZUNoYW5nZXM7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVRdWVyeTxUUmVzdWx0LCBUVmFyaWFibGUgZXh0ZW5kcyBPcGVyYXRpb25WYXJpYWJsZXM+KHRlbmFudElkOiBzdHJpbmcsIHZhcmlhYmxlczogVFZhcmlhYmxlLCBxdWVyeU5vZGU6IERvY3VtZW50Tm9kZSkge1xuICAgIHRoaXMuY3JlYXRlQXBvbGxvRm9yVGVuYW50KHRlbmFudElkKTtcblxuICAgIHJldHVybiB0aGlzLmFwb2xsby51c2UodGVuYW50SWQpLnF1ZXJ5PFRSZXN1bHQ+KHtcbiAgICAgIHF1ZXJ5OiBxdWVyeU5vZGUsXG4gICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlcyxcbiAgICAgIGZldGNoUG9saWN5OiBcIm5ldHdvcmstb25seVwiXG4gICAgfSk7XG4gIH1cblxuXG59XG4iXX0=
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export class GraphQL {
|
|
2
|
-
static getCursor(position) {
|
|
3
|
-
return btoa(`arrayconnection:${position}`);
|
|
4
|
-
}
|
|
5
|
-
static offsetToCursor(offset) {
|
|
6
|
-
if (!offset) {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
return this.getCursor(offset - 1);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
export const GraphQLCloneIgnoredProperties = ["id", "rtId", "__typename"];
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class GraphQL {
|
|
2
|
+
static getCursor(position) {
|
|
3
|
+
return btoa(`arrayconnection:${position}`);
|
|
4
|
+
}
|
|
5
|
+
static offsetToCursor(offset) {
|
|
6
|
+
if (!offset) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
return this.getCursor(offset - 1);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export const GraphQLCloneIgnoredProperties = ["id", "rtId", "__typename"];
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhRTC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvb2N0by1zZXJ2aWNlcy9zcmMvbGliL3NoYXJlZC9ncmFwaFFMLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxPQUFPO0lBRVgsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFnQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFjO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgR3JhcGhRTCB7XG5cbiAgcHVibGljIHN0YXRpYyBnZXRDdXJzb3IocG9zaXRpb246IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGJ0b2EoYGFycmF5Y29ubmVjdGlvbjoke3Bvc2l0aW9ufWApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZmZzZXRUb0N1cnNvcihvZmZzZXQ6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghb2Zmc2V0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDdXJzb3Iob2Zmc2V0IC0gMSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEdyYXBoUUxDbG9uZUlnbm9yZWRQcm9wZXJ0aWVzID0gW1wiaWRcIiwgXCJydElkXCIsIFwiX190eXBlbmFtZVwiXTtcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaG1ha2Vycy1vY3RvLXNlcnZpY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9vY3RvLXNlcnZpY2VzL3NyYy9tZXNobWFrZXJzLW9jdG8tc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/services/octo-graph-ql-service-base';
|
|
5
|
-
export * from './lib/options/octo-service-options';
|
|
6
|
-
export * from './lib/octo-services.module';
|
|
7
|
-
export * from './lib/models/pagedGraphResultDto';
|
|
8
|
-
export * from './lib/shared/graphQL';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of octo-services
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/services/octo-graph-ql-service-base';
|
|
5
|
+
export * from './lib/options/octo-service-options';
|
|
6
|
+
export * from './lib/octo-services.module';
|
|
7
|
+
export * from './lib/models/pagedGraphResultDto';
|
|
8
|
+
export * from './lib/shared/graphQL';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvb2N0by1zZXJ2aWNlcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygb2N0by1zZXJ2aWNlc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL29jdG8tZ3JhcGgtcWwtc2VydmljZS1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wdGlvbnMvb2N0by1zZXJ2aWNlLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb2N0by1zZXJ2aWNlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3BhZ2VkR3JhcGhSZXN1bHREdG8nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2dyYXBoUUwnO1xuIl19
|