@alfresco/adf-process-services-cloud 7.0.0-alpha.6 → 7.0.0-alpha.6-11951477264
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/esm2022/lib/services/notification-cloud.service.mjs +17 -87
- package/esm2022/lib/services/public-api.mjs +2 -1
- package/esm2022/lib/services/web-socket.service.mjs +168 -0
- package/fesm2022/adf-process-services-cloud.mjs +192 -96
- package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
- package/lib/services/notification-cloud.service.d.ts +4 -31
- package/lib/services/public-api.d.ts +1 -0
- package/lib/services/web-socket.service.d.ts +31 -0
- package/package.json +4 -4
|
@@ -14,96 +14,26 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import {
|
|
18
|
-
import { HttpLink } from 'apollo-angular/http';
|
|
19
|
-
import { split, gql, InMemoryCache, ApolloLink } from '@apollo/client/core';
|
|
20
|
-
import { WebSocketLink } from '@apollo/client/link/ws';
|
|
21
|
-
import { onError } from '@apollo/client/link/error';
|
|
22
|
-
import { getMainDefinition } from '@apollo/client/utilities';
|
|
17
|
+
import { gql } from '@apollo/client/core';
|
|
23
18
|
import { Injectable } from '@angular/core';
|
|
24
|
-
import {
|
|
25
|
-
import { BaseCloudService } from './base-cloud.service';
|
|
26
|
-
import { AdfHttpClient } from '@alfresco/adf-core/api';
|
|
19
|
+
import { WebSocketService } from './web-socket.service';
|
|
27
20
|
import * as i0 from "@angular/core";
|
|
28
|
-
import * as i1 from "
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
export class NotificationCloudService extends BaseCloudService {
|
|
33
|
-
constructor(apollo, http, authService, adfHttpClient) {
|
|
34
|
-
super(adfHttpClient);
|
|
35
|
-
this.apollo = apollo;
|
|
36
|
-
this.http = http;
|
|
37
|
-
this.authService = authService;
|
|
38
|
-
this.adfHttpClient = adfHttpClient;
|
|
39
|
-
this.appsListening = [];
|
|
40
|
-
}
|
|
41
|
-
get webSocketHost() {
|
|
42
|
-
return this.contextRoot.split('://')[1];
|
|
43
|
-
}
|
|
44
|
-
get protocol() {
|
|
45
|
-
return this.contextRoot.split('://')[0] === 'https' ? 'wss' : 'ws';
|
|
46
|
-
}
|
|
47
|
-
initNotificationsForApp(appName) {
|
|
48
|
-
if (!this.appsListening.includes(appName)) {
|
|
49
|
-
this.appsListening.push(appName);
|
|
50
|
-
const httpLink = this.http.create({
|
|
51
|
-
uri: `${this.getBasePath(appName)}/notifications/graphql`
|
|
52
|
-
});
|
|
53
|
-
const webSocketLink = new WebSocketLink({
|
|
54
|
-
uri: `${this.protocol}://${this.webSocketHost}/${appName}/notifications/ws/graphql`,
|
|
55
|
-
options: {
|
|
56
|
-
reconnect: true,
|
|
57
|
-
lazy: true,
|
|
58
|
-
connectionParams: {
|
|
59
|
-
kaInterval: 2000,
|
|
60
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
61
|
-
'X-Authorization': 'Bearer ' + this.authService.getToken()
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
const link = split(({ query }) => {
|
|
66
|
-
const definition = getMainDefinition(query);
|
|
67
|
-
return definition.kind === 'OperationDefinition' && definition.operation === 'subscription';
|
|
68
|
-
}, webSocketLink, httpLink);
|
|
69
|
-
const errorLink = onError(({ graphQLErrors, operation, forward }) => {
|
|
70
|
-
if (graphQLErrors) {
|
|
71
|
-
for (const err of graphQLErrors) {
|
|
72
|
-
switch (err.extensions.code) {
|
|
73
|
-
case 'UNAUTHENTICATED': {
|
|
74
|
-
const oldHeaders = operation.getContext().headers;
|
|
75
|
-
operation.setContext({
|
|
76
|
-
headers: {
|
|
77
|
-
...oldHeaders,
|
|
78
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
79
|
-
'X-Authorization': 'Bearer ' + this.authService.getToken()
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
forward(operation);
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
default:
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
this.apollo.createNamed(appName, {
|
|
92
|
-
link: ApolloLink.from([errorLink, link]),
|
|
93
|
-
cache: new InMemoryCache({ merge: true }),
|
|
94
|
-
defaultOptions: {
|
|
95
|
-
watchQuery: {
|
|
96
|
-
errorPolicy: 'all'
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
}
|
|
21
|
+
import * as i1 from "./web-socket.service";
|
|
22
|
+
export class NotificationCloudService {
|
|
23
|
+
constructor(webSocketService) {
|
|
24
|
+
this.webSocketService = webSocketService;
|
|
101
25
|
}
|
|
102
26
|
makeGQLQuery(appName, gqlQuery) {
|
|
103
|
-
this.
|
|
104
|
-
|
|
27
|
+
return this.webSocketService.getSubscription({
|
|
28
|
+
apolloClientName: appName,
|
|
29
|
+
wsUrl: `${appName}/notifications`,
|
|
30
|
+
httpUrl: `${appName}/notifications/graphql`,
|
|
31
|
+
subscriptionOptions: {
|
|
32
|
+
query: gql(gqlQuery)
|
|
33
|
+
}
|
|
34
|
+
});
|
|
105
35
|
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NotificationCloudService, deps: [{ token: i1.
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NotificationCloudService, deps: [{ token: i1.WebSocketService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
107
37
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NotificationCloudService, providedIn: 'root' }); }
|
|
108
38
|
}
|
|
109
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NotificationCloudService, decorators: [{
|
|
@@ -111,5 +41,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
111
41
|
args: [{
|
|
112
42
|
providedIn: 'root'
|
|
113
43
|
}]
|
|
114
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWNsb3VkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1jbG91ZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBdUIsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFLdkQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdCQUFnQjtJQUcxRCxZQUFtQixNQUFjLEVBQVUsSUFBYyxFQUFVLFdBQWtDLEVBQVksYUFBNEI7UUFDekksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRE4sV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVU7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBdUI7UUFBWSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUY3SSxrQkFBYSxHQUFHLEVBQUUsQ0FBQztJQUluQixDQUFDO0lBRUQsSUFBWSxhQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVksUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkUsQ0FBQztJQUVELHVCQUF1QixDQUFDLE9BQWU7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUM5QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0I7YUFDNUQsQ0FBQyxDQUFDO1lBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUM7Z0JBQ3BDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLE1BQU0sSUFBSSxDQUFDLGFBQWEsSUFBSSxPQUFPLDJCQUEyQjtnQkFDbkYsT0FBTyxFQUFFO29CQUNMLFNBQVMsRUFBRSxJQUFJO29CQUNmLElBQUksRUFBRSxJQUFJO29CQUNWLGdCQUFnQixFQUFFO3dCQUNkLFVBQVUsRUFBRSxJQUFJO3dCQUNoQixnRUFBZ0U7d0JBQ2hFLGlCQUFpQixFQUFFLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtxQkFDN0Q7aUJBQ0o7YUFDSixDQUFDLENBQUM7WUFFSCxNQUFNLElBQUksR0FBRyxLQUFLLENBQ2QsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7Z0JBQ1YsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sVUFBVSxDQUFDLElBQUksS0FBSyxxQkFBcUIsSUFBSSxVQUFVLENBQUMsU0FBUyxLQUFLLGNBQWMsQ0FBQztZQUNoRyxDQUFDLEVBQ0QsYUFBYSxFQUNiLFFBQVEsQ0FDWCxDQUFDO1lBRUYsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7Z0JBQ2hFLElBQUksYUFBYSxFQUFFO29CQUNmLEtBQUssTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFO3dCQUM3QixRQUFRLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFOzRCQUN6QixLQUFLLGlCQUFpQixDQUFDLENBQUM7Z0NBQ3BCLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0NBQ2xELFNBQVMsQ0FBQyxVQUFVLENBQUM7b0NBQ2pCLE9BQU8sRUFBRTt3Q0FDTCxHQUFHLFVBQVU7d0NBQ2IsZ0VBQWdFO3dDQUNoRSxpQkFBaUIsRUFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUU7cUNBQzdEO2lDQUNKLENBQUMsQ0FBQztnQ0FDSCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0NBQ25CLE1BQU07NkJBQ1Q7NEJBQ0Q7Z0NBQ0ksTUFBTTt5QkFDYjtxQkFDSjtpQkFDSjtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO2dCQUM3QixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDeEMsS0FBSyxFQUFFLElBQUksYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBeUIsQ0FBQztnQkFDaEUsY0FBYyxFQUFFO29CQUNaLFVBQVUsRUFBRTt3QkFDUixXQUFXLEVBQUUsS0FBSztxQkFDckI7aUJBQ0o7YUFDSixDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBZSxFQUFFLFFBQWdCO1FBQzFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7OEdBbEZRLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnJCLE1BQU07OzJGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFwb2xsbyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEh0dHBMaW5rIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXIvaHR0cCc7XG5pbXBvcnQgeyBzcGxpdCwgZ3FsLCBJbk1lbW9yeUNhY2hlLCBBcG9sbG9MaW5rLCBJbk1lbW9yeUNhY2hlQ29uZmlnIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRMaW5rIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay93cyc7XG5pbXBvcnQgeyBvbkVycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay9lcnJvcic7XG5pbXBvcnQgeyBnZXRNYWluRGVmaW5pdGlvbiB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L3V0aWxpdGllcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNsb3VkU2VydmljZSB9IGZyb20gJy4vYmFzZS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFkZkh0dHBDbGllbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUvYXBpJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25DbG91ZFNlcnZpY2UgZXh0ZW5kcyBCYXNlQ2xvdWRTZXJ2aWNlIHtcbiAgICBhcHBzTGlzdGVuaW5nID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYXBvbGxvOiBBcG9sbG8sIHByaXZhdGUgaHR0cDogSHR0cExpbmssIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgcHJvdGVjdGVkIGFkZkh0dHBDbGllbnQ6IEFkZkh0dHBDbGllbnQpIHtcbiAgICAgICAgc3VwZXIoYWRmSHR0cENsaWVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgd2ViU29ja2V0SG9zdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dFJvb3Quc3BsaXQoJzovLycpWzFdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHByb3RvY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0Um9vdC5zcGxpdCgnOi8vJylbMF0gPT09ICdodHRwcycgPyAnd3NzJyA6ICd3cyc7XG4gICAgfVxuXG4gICAgaW5pdE5vdGlmaWNhdGlvbnNGb3JBcHAoYXBwTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5hcHBzTGlzdGVuaW5nLmluY2x1ZGVzKGFwcE5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLmFwcHNMaXN0ZW5pbmcucHVzaChhcHBOYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGh0dHBMaW5rID0gdGhpcy5odHRwLmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgdXJpOiBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9ub3RpZmljYXRpb25zL2dyYXBocWxgXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3Qgd2ViU29ja2V0TGluayA9IG5ldyBXZWJTb2NrZXRMaW5rKHtcbiAgICAgICAgICAgICAgICB1cmk6IGAke3RoaXMucHJvdG9jb2x9Oi8vJHt0aGlzLndlYlNvY2tldEhvc3R9LyR7YXBwTmFtZX0vbm90aWZpY2F0aW9ucy93cy9ncmFwaHFsYCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29ubmVjdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbGF6eTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvblBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAga2FJbnRlcnZhbDogMjAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICdYLUF1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyB0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuKClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBsaW5rID0gc3BsaXQoXG4gICAgICAgICAgICAgICAgKHsgcXVlcnkgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWZpbml0aW9uID0gZ2V0TWFpbkRlZmluaXRpb24ocXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVmaW5pdGlvbi5raW5kID09PSAnT3BlcmF0aW9uRGVmaW5pdGlvbicgJiYgZGVmaW5pdGlvbi5vcGVyYXRpb24gPT09ICdzdWJzY3JpcHRpb24nO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd2ViU29ja2V0TGluayxcbiAgICAgICAgICAgICAgICBodHRwTGlua1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgZXJyb3JMaW5rID0gb25FcnJvcigoeyBncmFwaFFMRXJyb3JzLCBvcGVyYXRpb24sIGZvcndhcmQgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChncmFwaFFMRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZXJyIG9mIGdyYXBoUUxFcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZXJyLmV4dGVuc2lvbnMuY29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1VOQVVUSEVOVElDQVRFRCc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2xkSGVhZGVycyA9IG9wZXJhdGlvbi5nZXRDb250ZXh0KCkuaGVhZGVycztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLnNldENvbnRleHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm9sZEhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdYLUF1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyB0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcndhcmQob3BlcmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuYXBvbGxvLmNyZWF0ZU5hbWVkKGFwcE5hbWUsIHtcbiAgICAgICAgICAgICAgICBsaW5rOiBBcG9sbG9MaW5rLmZyb20oW2Vycm9yTGluaywgbGlua10pLFxuICAgICAgICAgICAgICAgIGNhY2hlOiBuZXcgSW5NZW1vcnlDYWNoZSh7IG1lcmdlOiB0cnVlIH0gYXMgSW5NZW1vcnlDYWNoZUNvbmZpZyksXG4gICAgICAgICAgICAgICAgZGVmYXVsdE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgd2F0Y2hRdWVyeToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JQb2xpY3k6ICdhbGwnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1ha2VHUUxRdWVyeShhcHBOYW1lOiBzdHJpbmcsIGdxbFF1ZXJ5OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uc0ZvckFwcChhcHBOYW1lKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBvbGxvLnVzZShhcHBOYW1lKS5zdWJzY3JpYmUoeyBxdWVyeTogZ3FsKGdxbFF1ZXJ5KSB9KTtcbiAgICB9XG59XG4iXX0=
|
|
44
|
+
}], ctorParameters: function () { return [{ type: i1.WebSocketService }]; } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWNsb3VkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1jbG91ZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFLeEQsTUFBTSxPQUFPLHdCQUF3QjtJQUNqQyxZQUE2QixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFbkUsWUFBWSxDQUFDLE9BQWUsRUFBRSxRQUFnQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7WUFDekMsZ0JBQWdCLEVBQUUsT0FBTztZQUN6QixLQUFLLEVBQUUsR0FBRyxPQUFPLGdCQUFnQjtZQUNqQyxPQUFPLEVBQUUsR0FBRyxPQUFPLHdCQUF3QjtZQUMzQyxtQkFBbUIsRUFBRTtnQkFDakIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUM7YUFDdkI7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQVpRLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnJCLE1BQU07OzJGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGdxbCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2ViU29ja2V0U2VydmljZSB9IGZyb20gJy4vd2ViLXNvY2tldC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25DbG91ZFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgd2ViU29ja2V0U2VydmljZTogV2ViU29ja2V0U2VydmljZSkge31cblxuICAgIG1ha2VHUUxRdWVyeShhcHBOYW1lOiBzdHJpbmcsIGdxbFF1ZXJ5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2ViU29ja2V0U2VydmljZS5nZXRTdWJzY3JpcHRpb24oe1xuICAgICAgICAgICAgYXBvbGxvQ2xpZW50TmFtZTogYXBwTmFtZSxcbiAgICAgICAgICAgIHdzVXJsOiBgJHthcHBOYW1lfS9ub3RpZmljYXRpb25zYCxcbiAgICAgICAgICAgIGh0dHBVcmw6IGAke2FwcE5hbWV9L25vdGlmaWNhdGlvbnMvZ3JhcGhxbGAsXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25PcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgcXVlcnk6IGdxbChncWxRdWVyeSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -23,4 +23,5 @@ export * from './form-fields.interfaces';
|
|
|
23
23
|
export * from './base-cloud.service';
|
|
24
24
|
export * from './task-list-cloud.service.interface';
|
|
25
25
|
export * from './variable-mapper.sevice';
|
|
26
|
-
|
|
26
|
+
export * from './web-socket.service';
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvc2VydmljZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3VzZXItcHJlZmVyZW5jZS1jbG91ZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwtcHJlZmVyZW5jZS1jbG91ZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY2xvdWQtdG9rZW4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbi1jbG91ZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJlZmVyZW5jZS1jbG91ZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkcy5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1jbG91ZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1saXN0LWNsb3VkLnNlcnZpY2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdmFyaWFibGUtbWFwcGVyLnNldmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3dlYi1zb2NrZXQuc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { createClient } from 'graphql-ws';
|
|
18
|
+
import { Inject, Injectable } from '@angular/core';
|
|
19
|
+
import { AppConfigService, AuthenticationService } from '@alfresco/adf-core';
|
|
20
|
+
import { GraphQLWsLink } from '@apollo/client/link/subscriptions';
|
|
21
|
+
import { WebSocketLink } from '@apollo/client/link/ws';
|
|
22
|
+
import { from, HttpLink, InMemoryCache, split } from '@apollo/client/core';
|
|
23
|
+
import { getMainDefinition } from '@apollo/client/utilities';
|
|
24
|
+
import { Kind, OperationTypeNode } from 'graphql';
|
|
25
|
+
import { Apollo } from 'apollo-angular';
|
|
26
|
+
import { onError } from '@apollo/client/link/error';
|
|
27
|
+
import { RetryLink } from '@apollo/client/link/retry';
|
|
28
|
+
import { switchMap, take, tap } from 'rxjs/operators';
|
|
29
|
+
import { FeaturesServiceToken } from '@alfresco/adf-core/feature-flags';
|
|
30
|
+
import * as i0 from "@angular/core";
|
|
31
|
+
import * as i1 from "apollo-angular";
|
|
32
|
+
import * as i2 from "@alfresco/adf-core";
|
|
33
|
+
export class WebSocketService {
|
|
34
|
+
constructor(apollo, appConfigService, authService, featuresService) {
|
|
35
|
+
this.apollo = apollo;
|
|
36
|
+
this.appConfigService = appConfigService;
|
|
37
|
+
this.authService = authService;
|
|
38
|
+
this.featuresService = featuresService;
|
|
39
|
+
this.host = '';
|
|
40
|
+
this.subscriptionProtocol = 'transport-ws';
|
|
41
|
+
this.host = this.appConfigService.get('bpmHost', '');
|
|
42
|
+
}
|
|
43
|
+
getSubscription(options) {
|
|
44
|
+
const { apolloClientName, subscriptionOptions } = options;
|
|
45
|
+
this.authService.onLogout.pipe(take(1)).subscribe(() => {
|
|
46
|
+
if (this.apollo.use(apolloClientName)) {
|
|
47
|
+
this.apollo.removeClient(apolloClientName);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return this.featuresService.isOn$('studio-ws-graphql-subprotocol').pipe(tap((isOn) => {
|
|
51
|
+
if (isOn) {
|
|
52
|
+
this.subscriptionProtocol = 'graphql-ws';
|
|
53
|
+
}
|
|
54
|
+
}), switchMap(() => {
|
|
55
|
+
if (this.apollo.use(apolloClientName) === undefined) {
|
|
56
|
+
this.initSubscriptions(options);
|
|
57
|
+
}
|
|
58
|
+
return this.apollo.use(apolloClientName).subscribe({ errorPolicy: 'all', ...subscriptionOptions });
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
createUrl(serviceUrl, protocol = 'wss') {
|
|
62
|
+
const url = new URL(serviceUrl, this.host);
|
|
63
|
+
url.protocol = protocol;
|
|
64
|
+
return url.href;
|
|
65
|
+
}
|
|
66
|
+
initSubscriptions(options) {
|
|
67
|
+
switch (this.subscriptionProtocol) {
|
|
68
|
+
case 'graphql-ws':
|
|
69
|
+
this.createGraphQLWsLink(options);
|
|
70
|
+
break;
|
|
71
|
+
case 'transport-ws':
|
|
72
|
+
this.createTransportWsLink(options);
|
|
73
|
+
break;
|
|
74
|
+
default:
|
|
75
|
+
throw new Error('Unknown subscription protocol');
|
|
76
|
+
}
|
|
77
|
+
this.httpLink = options.httpUrl
|
|
78
|
+
? new HttpLink({
|
|
79
|
+
uri: this.createUrl(options.httpUrl, 'https')
|
|
80
|
+
})
|
|
81
|
+
: undefined;
|
|
82
|
+
const link = split(({ query }) => {
|
|
83
|
+
const definition = getMainDefinition(query);
|
|
84
|
+
return definition.kind === Kind.OPERATION_DEFINITION && definition.operation === OperationTypeNode.SUBSCRIPTION;
|
|
85
|
+
}, this.wsLink, this.httpLink);
|
|
86
|
+
const authLink = (operation, forward) => {
|
|
87
|
+
operation.setContext(({ headers }) => ({
|
|
88
|
+
headers: {
|
|
89
|
+
...headers,
|
|
90
|
+
...(this.subscriptionProtocol === 'graphql-ws' && { Authorization: `Bearer ${this.authService.getToken()}` }),
|
|
91
|
+
...(this.subscriptionProtocol === 'transport-ws' && { 'X-Authorization': `Bearer ${this.authService.getToken()}` })
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
return forward(operation);
|
|
95
|
+
};
|
|
96
|
+
const errorLink = onError(({ graphQLErrors, networkError, operation, forward }) => {
|
|
97
|
+
if (graphQLErrors) {
|
|
98
|
+
for (const error of graphQLErrors) {
|
|
99
|
+
if (error.extensions && error.extensions['code'] === 'UNAUTHENTICATED') {
|
|
100
|
+
authLink(operation, forward);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (networkError) {
|
|
105
|
+
console.error(`[Network error]: ${networkError}`);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
const retryLink = new RetryLink({
|
|
109
|
+
delay: {
|
|
110
|
+
initial: 300,
|
|
111
|
+
max: Number.POSITIVE_INFINITY,
|
|
112
|
+
jitter: true
|
|
113
|
+
},
|
|
114
|
+
attempts: {
|
|
115
|
+
max: 5,
|
|
116
|
+
retryIf: (error) => !!error
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
this.apollo.createNamed(options.apolloClientName, {
|
|
120
|
+
headers: {
|
|
121
|
+
...(this.subscriptionProtocol === 'graphql-ws' && { Authorization: `Bearer ${this.authService.getToken()}` }),
|
|
122
|
+
...(this.subscriptionProtocol === 'transport-ws' && { 'X-Authorization': `Bearer ${this.authService.getToken()}` })
|
|
123
|
+
},
|
|
124
|
+
link: from([authLink, retryLink, errorLink, link]),
|
|
125
|
+
cache: new InMemoryCache({ merge: true })
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
createTransportWsLink(options) {
|
|
129
|
+
this.wsLink = new WebSocketLink({
|
|
130
|
+
uri: this.createUrl(options.wsUrl, 'wss') + '/ws/graphql',
|
|
131
|
+
options: {
|
|
132
|
+
reconnect: true,
|
|
133
|
+
lazy: true,
|
|
134
|
+
connectionParams: {
|
|
135
|
+
kaInterval: 2000,
|
|
136
|
+
'X-Authorization': 'Bearer ' + this.authService.getToken()
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
createGraphQLWsLink(options) {
|
|
142
|
+
this.wsLink = new GraphQLWsLink(createClient({
|
|
143
|
+
url: this.createUrl(options.wsUrl, 'wss') + '/v2/ws/graphql',
|
|
144
|
+
connectionParams: {
|
|
145
|
+
Authorization: 'Bearer ' + this.authService.getToken()
|
|
146
|
+
},
|
|
147
|
+
on: {
|
|
148
|
+
error: () => {
|
|
149
|
+
this.apollo.removeClient(options.apolloClientName);
|
|
150
|
+
this.initSubscriptions(options);
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
lazy: true
|
|
154
|
+
}));
|
|
155
|
+
}
|
|
156
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: WebSocketService, deps: [{ token: i1.Apollo }, { token: i2.AppConfigService }, { token: i2.AuthenticationService }, { token: FeaturesServiceToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
157
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: WebSocketService, providedIn: 'root' }); }
|
|
158
|
+
}
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: WebSocketService, decorators: [{
|
|
160
|
+
type: Injectable,
|
|
161
|
+
args: [{
|
|
162
|
+
providedIn: 'root'
|
|
163
|
+
}]
|
|
164
|
+
}], ctorParameters: function () { return [{ type: i1.Apollo }, { type: i2.AppConfigService }, { type: i2.AuthenticationService }, { type: undefined, decorators: [{
|
|
165
|
+
type: Inject,
|
|
166
|
+
args: [FeaturesServiceToken]
|
|
167
|
+
}] }]; } });
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9zZXJ2aWNlcy93ZWItc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFHSCxJQUFJLEVBQ0osUUFBUSxFQUNSLGFBQWEsRUFJYixLQUFLLEVBRVIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBb0IsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQVkxRixNQUFNLE9BQU8sZ0JBQWdCO0lBTXpCLFlBQ3FCLE1BQWMsRUFDZCxnQkFB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Q0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLGFBQWE7WUFDekQsT0FBTyxFQUFFO2dCQUNMLFNBQVMsRUFBRSxJQUFJO2dCQUNmLElBQUksRUFBRSxJQUFJO2dCQUNWLGdCQUFnQixFQUFFO29CQUNkLFVBQVUsRUFBRSxJQUFJO29CQUNoQixpQkFBaUIsRUFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUU7aUJBQzdEO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBdUI7UUFDL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FDM0IsWUFBWSxDQUFDO1lBQ1QsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxnQkFBZ0I7WUFDNUQsZ0JBQWdCLEVBQUU7Z0JBQ2QsYUFBYSxFQUFFLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTthQUN6RDtZQUNELEVBQUUsRUFBRTtnQkFDQSxLQUFLLEVBQUUsR0FBRyxFQUFFO29CQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUNuRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7YUFDSjtZQUNELElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOzhHQXJKUSxnQkFBZ0IsNkdBVWIsb0JBQW9CO2tIQVZ2QixnQkFBZ0IsY0FGYixNQUFNOzsyRkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFXUSxNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlQ2xpZW50IH0gZnJvbSAnZ3JhcGhxbC13cyc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UsIEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBHcmFwaFFMV3NMaW5rIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay9zdWJzY3JpcHRpb25zJztcbmltcG9ydCB7IFdlYlNvY2tldExpbmsgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL3dzJztcbmltcG9ydCB7XG4gICAgRGVmYXVsdENvbnRleHQsXG4gICAgRmV0Y2hSZXN1bHQsXG4gICAgZnJvbSxcbiAgICBIdHRwTGluayxcbiAgICBJbk1lbW9yeUNhY2hlLFxuICAgIEluTWVtb3J5Q2FjaGVDb25maWcsXG4gICAgTmV4dExpbmssXG4gICAgT3BlcmF0aW9uLFxuICAgIHNwbGl0LFxuICAgIFN1YnNjcmlwdGlvbk9wdGlvbnNcbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBnZXRNYWluRGVmaW5pdGlvbiB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L3V0aWxpdGllcyc7XG5pbXBvcnQgeyBLaW5kLCBPcGVyYXRpb25UeXBlTm9kZSB9IGZyb20gJ2dyYXBocWwnO1xuaW1wb3J0IHsgQXBvbGxvIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgb25FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvZXJyb3InO1xuaW1wb3J0IHsgUmV0cnlMaW5rIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay9yZXRyeSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9PYnNlcnZhYmxlJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmVhdHVyZXNTZXJ2aWNlVG9rZW4sIElGZWF0dXJlc1NlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUvZmVhdHVyZS1mbGFncyc7XG5cbmludGVyZmFjZSBzZXJ2aWNlT3B0aW9ucyB7XG4gICAgYXBvbGxvQ2xpZW50TmFtZTogc3RyaW5nO1xuICAgIHdzVXJsOiBzdHJpbmc7XG4gICAgaHR0cFVybD86IHN0cmluZztcbiAgICBzdWJzY3JpcHRpb25PcHRpb25zOiBTdWJzY3JpcHRpb25PcHRpb25zO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdlYlNvY2tldFNlcnZpY2Uge1xuICAgIHByaXZhdGUgaG9zdCA9ICcnO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uUHJvdG9jb2w6ICdncmFwaHFsLXdzJyB8ICd0cmFuc3BvcnQtd3MnID0gJ3RyYW5zcG9ydC13cyc7XG4gICAgcHJpdmF0ZSB3c0xpbms6IEdyYXBoUUxXc0xpbmsgfCBXZWJTb2NrZXRMaW5rO1xuICAgIHByaXZhdGUgaHR0cExpbms6IEh0dHBMaW5rO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXBvbGxvOiBBcG9sbG8sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KEZlYXR1cmVzU2VydmljZVRva2VuKSBwcml2YXRlIGZlYXR1cmVzU2VydmljZTogSUZlYXR1cmVzU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmhvc3QgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0KCdicG1Ib3N0JywgJycpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdWJzY3JpcHRpb248VD4ob3B0aW9uczogc2VydmljZU9wdGlvbnMpOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PFQ+PiB7XG4gICAgICAgIGNvbnN0IHsgYXBvbGxvQ2xpZW50TmFtZSwgc3Vic2NyaXB0aW9uT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5vbkxvZ291dC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5hcG9sbG8udXNlKGFwb2xsb0NsaWVudE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcG9sbG8ucmVtb3ZlQ2xpZW50KGFwb2xsb0NsaWVudE5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mZWF0dXJlc1NlcnZpY2UuaXNPbiQoJ3N0dWRpby13cy1ncmFwaHFsLXN1YnByb3RvY29sJykucGlwZShcbiAgICAgICAgICAgIHRhcCgoaXNPbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc09uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uUHJvdG9jb2wgPSAnZ3JhcGhxbC13cyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFwb2xsby51c2UoYXBvbGxvQ2xpZW50TmFtZSkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRTdWJzY3JpcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcG9sbG8udXNlKGFwb2xsb0NsaWVudE5hbWUpLnN1YnNjcmliZTxUPih7IGVycm9yUG9saWN5OiAnYWxsJywgLi4uc3Vic2NyaXB0aW9uT3B0aW9ucyB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVVcmwoc2VydmljZVVybDogc3RyaW5nLCBwcm90b2NvbDogJ2h0dHBzJyB8ICd3c3MnID0gJ3dzcycpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHNlcnZpY2VVcmwsIHRoaXMuaG9zdCk7XG4gICAgICAgIHVybC5wcm90b2NvbCA9IHByb3RvY29sO1xuXG4gICAgICAgIHJldHVybiB1cmwuaHJlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTdWJzY3JpcHRpb25zKG9wdGlvbnM6IHNlcnZpY2VPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCkge1xuICAgICAgICAgICAgY2FzZSAnZ3JhcGhxbC13cyc6XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVHcmFwaFFMV3NMaW5rKG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndHJhbnNwb3J0LXdzJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVRyYW5zcG9ydFdzTGluayhvcHRpb25zKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHN1YnNjcmlwdGlvbiBwcm90b2NvbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5odHRwTGluayA9IG9wdGlvbnMuaHR0cFVybFxuICAgICAgICAgICAgPyBuZXcgSHR0cExpbmsoe1xuICAgICAgICAgICAgICAgICAgdXJpOiB0aGlzLmNyZWF0ZVVybChvcHRpb25zLmh0dHBVcmwsICdodHRwcycpXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICBjb25zdCBsaW5rID0gc3BsaXQoXG4gICAgICAgICAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IGdldE1haW5EZWZpbml0aW9uKHF1ZXJ5KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmaW5pdGlvbi5raW5kID09PSBLaW5kLk9QRVJBVElPTl9ERUZJTklUSU9OICYmIGRlZmluaXRpb24ub3BlcmF0aW9uID09PSBPcGVyYXRpb25UeXBlTm9kZS5TVUJTQ1JJUFRJT047XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy53c0xpbmssXG4gICAgICAgICAgICB0aGlzLmh0dHBMaW5rXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgYXV0aExpbmsgPSAob3BlcmF0aW9uOiBPcGVyYXRpb24sIGZvcndhcmQ6IE5leHRMaW5rKSA9PiB7XG4gICAgICAgICAgICBvcGVyYXRpb24uc2V0Q29udGV4dCgoeyBoZWFkZXJzIH06IERlZmF1bHRDb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgLi4uKHRoaXMuc3Vic2NyaXB0aW9uUHJvdG9jb2wgPT09ICdncmFwaHFsLXdzJyAmJiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuKCl9YCB9KSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKHRoaXMuc3Vic2NyaXB0aW9uUHJvdG9jb2wgPT09ICd0cmFuc3BvcnQtd3MnICYmIHsgJ1gtQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHt0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuKCl9YCB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHJldHVybiBmb3J3YXJkKG9wZXJhdGlvbik7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZXJyb3JMaW5rID0gb25FcnJvcigoeyBncmFwaFFMRXJyb3JzLCBuZXR3b3JrRXJyb3IsIG9wZXJhdGlvbiwgZm9yd2FyZCB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoZ3JhcGhRTEVycm9ycykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZ3JhcGhRTEVycm9ycykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IuZXh0ZW5zaW9ucyAmJiBlcnJvci5leHRlbnNpb25zWydjb2RlJ10gPT09ICdVTkFVVEhFTlRJQ0FURUQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRoTGluayhvcGVyYXRpb24sIGZvcndhcmQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmV0d29ya0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgW05ldHdvcmsgZXJyb3JdOiAke25ldHdvcmtFcnJvcn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcmV0cnlMaW5rID0gbmV3IFJldHJ5TGluayh7XG4gICAgICAgICAgICBkZWxheToge1xuICAgICAgICAgICAgICAgIGluaXRpYWw6IDMwMCxcbiAgICAgICAgICAgICAgICBtYXg6IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxcbiAgICAgICAgICAgICAgICBqaXR0ZXI6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdHRlbXB0czoge1xuICAgICAgICAgICAgICAgIG1heDogNSxcbiAgICAgICAgICAgICAgICByZXRyeUlmOiAoZXJyb3IpID0+ICEhZXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcG9sbG8uY3JlYXRlTmFtZWQob3B0aW9ucy5hcG9sbG9DbGllbnROYW1lLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgLi4uKHRoaXMuc3Vic2NyaXB0aW9uUHJvdG9jb2wgPT09ICdncmFwaHFsLXdzJyAmJiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuKCl9YCB9KSxcbiAgICAgICAgICAgICAgICAuLi4odGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCA9PT0gJ3RyYW5zcG9ydC13cycgJiYgeyAnWC1BdXRob3JpemF0aW9uJzogYEJlYXJlciAke3RoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKX1gIH0pXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGluazogZnJvbShbYXV0aExpbmssIHJldHJ5TGluaywgZXJyb3JMaW5rLCBsaW5rXSksXG4gICAgICAgICAgICBjYWNoZTogbmV3IEluTWVtb3J5Q2FjaGUoeyBtZXJnZTogdHJ1ZSB9IGFzIEluTWVtb3J5Q2FjaGVDb25maWcpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVHJhbnNwb3J0V3NMaW5rKG9wdGlvbnM6IHNlcnZpY2VPcHRpb25zKSB7XG4gICAgICAgIHRoaXMud3NMaW5rID0gbmV3IFdlYlNvY2tldExpbmsoe1xuICAgICAgICAgICAgdXJpOiB0aGlzLmNyZWF0ZVVybChvcHRpb25zLndzVXJsLCAnd3NzJykgKyAnL3dzL2dyYXBocWwnLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHJlY29ubmVjdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBsYXp5OiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25QYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAga2FJbnRlcnZhbDogMjAwMCxcbiAgICAgICAgICAgICAgICAgICAgJ1gtQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVHcmFwaFFMV3NMaW5rKG9wdGlvbnM6IHNlcnZpY2VPcHRpb25zKSB7XG4gICAgICAgIHRoaXMud3NMaW5rID0gbmV3IEdyYXBoUUxXc0xpbmsoXG4gICAgICAgICAgICBjcmVhdGVDbGllbnQoe1xuICAgICAgICAgICAgICAgIHVybDogdGhpcy5jcmVhdGVVcmwob3B0aW9ucy53c1VybCwgJ3dzcycpICsgJy92Mi93cy9ncmFwaHFsJyxcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uUGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBvbGxvLnJlbW92ZUNsaWVudChvcHRpb25zLmFwb2xsb0NsaWVudE5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0U3Vic2NyaXB0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbGF6eTogdHJ1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|