http-request-manager 18.2.0 → 18.3.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.
- package/esm2022/lib/http-request-manager.module.mjs +5 -5
- package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +4 -4
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +4 -4
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +3 -3
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.mjs +3 -3
- package/esm2022/lib/interceptors/credentials.interceptor.mjs +3 -3
- package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +3 -3
- package/esm2022/lib/interceptors/request-error.interceptor.mjs +3 -3
- package/esm2022/lib/interceptors/request-header.interceptor.mjs +3 -3
- package/esm2022/lib/services/database-manager-services/database.manager.service.mjs +6 -6
- package/esm2022/lib/services/database-manager-services/db.storage.service.mjs +8 -8
- package/esm2022/lib/services/index.mjs +2 -1
- package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +3 -3
- package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs +3 -3
- package/esm2022/lib/services/request-manager-services/http-manager-signals.service.mjs +3 -3
- package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +5 -5
- package/esm2022/lib/services/request-manager-services/request-signals.service.mjs +3 -3
- package/esm2022/lib/services/request-manager-services/request.service.mjs +7 -5
- package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +143 -7
- package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +4 -3
- package/esm2022/lib/services/request-manager-state-service/models/index.mjs +2 -1
- package/esm2022/lib/services/request-manager-state-service/models/ws-options.model.mjs +12 -0
- package/esm2022/lib/services/utils/app.service.mjs +3 -3
- package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +3 -3
- package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +3 -3
- package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +3 -3
- package/esm2022/lib/services/utils/headers.service.mjs +3 -3
- package/esm2022/lib/services/utils/object-merger.service.mjs +5 -5
- package/esm2022/lib/services/utils/path-query.service.mjs +3 -3
- package/esm2022/lib/services/utils/utils.service.mjs +3 -3
- package/esm2022/lib/services/ws-manager-service/index.mjs +3 -0
- package/esm2022/lib/services/ws-manager-service/models/channel-info.model.mjs +10 -0
- package/esm2022/lib/services/ws-manager-service/models/channel-notification.model.mjs +12 -0
- package/esm2022/lib/services/ws-manager-service/models/index.mjs +6 -0
- package/esm2022/lib/services/ws-manager-service/models/user-info.model.mjs +11 -0
- package/esm2022/lib/services/ws-manager-service/models/user-message.model.mjs +12 -0
- package/esm2022/lib/services/ws-manager-service/models/user-name-info.model.mjs +12 -0
- package/esm2022/lib/services/ws-manager-service/websocket.service.mjs +133 -0
- package/fesm2022/http-request-manager.mjs +452 -117
- package/fesm2022/http-request-manager.mjs.map +1 -1
- package/http-request-manager-18.3.0.tgz +0 -0
- package/lib/services/database-manager-services/database.manager.service.d.ts +1 -1
- package/lib/services/database-manager-services/db.storage.service.d.ts +2 -2
- package/lib/services/index.d.ts +1 -0
- package/lib/services/request-manager-services/http-manager.service.d.ts +1 -1
- package/lib/services/request-manager-services/request.service.d.ts +2 -1
- package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +32 -8
- package/lib/services/request-manager-state-service/models/api-request.model.d.ts +4 -1
- package/lib/services/request-manager-state-service/models/index.d.ts +1 -0
- package/lib/services/request-manager-state-service/models/ws-options.model.d.ts +14 -0
- package/lib/services/utils/object-merger.service.d.ts +1 -1
- package/lib/services/ws-manager-service/index.d.ts +2 -0
- package/lib/services/ws-manager-service/models/channel-info.model.d.ts +10 -0
- package/lib/services/ws-manager-service/models/channel-notification.model.d.ts +14 -0
- package/lib/services/ws-manager-service/models/index.d.ts +5 -0
- package/lib/services/ws-manager-service/models/user-info.model.d.ts +11 -0
- package/lib/services/ws-manager-service/models/user-message.model.d.ts +15 -0
- package/lib/services/ws-manager-service/models/user-name-info.model.d.ts +14 -0
- package/lib/services/ws-manager-service/websocket.service.d.ts +21 -0
- package/package.json +1 -1
- package/http-request-manager-18.2.0.tgz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Inject, Injectable, Optional, inject } from '@angular/core';
|
|
2
2
|
import { ApiRequest } from '../request-manager-state-service/models';
|
|
3
3
|
import { SettingOptions } from '../local-storage-manager-service';
|
|
4
|
-
import { UtilsService } from '
|
|
4
|
+
import { UtilsService } from './utils.service';
|
|
5
5
|
import { CONFIG_SETTINGS_TOKEN } from '../../models/config-token.model';
|
|
6
6
|
import { ConfigHTTPOptions, ConfigOptions, LocalStorageOptions } from '../request-manager-services';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
@@ -53,10 +53,10 @@ export class ObjectMergerService {
|
|
|
53
53
|
mergedOptions.encrypted = (options && (typeof options.encrypted !== 'undefined')) ? options.encrypted : (configForRootOptions?.encrypted || false);
|
|
54
54
|
return mergedOptions;
|
|
55
55
|
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
57
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectMergerService, deps: [{ token: CONFIG_SETTINGS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
57
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectMergerService, providedIn: 'root' }); }
|
|
58
58
|
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectMergerService, decorators: [{
|
|
60
60
|
type: Injectable,
|
|
61
61
|
args: [{
|
|
62
62
|
providedIn: 'root'
|
|
@@ -67,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
67
67
|
}, {
|
|
68
68
|
type: Optional
|
|
69
69
|
}] }] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1lcmdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy91dGlscy9vYmplY3QtbWVyZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUtwRyxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQStELGFBQTZCO1FBQTdCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUY1RixVQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBR3pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3RFLENBQUM7SUFFRixZQUFZLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUU7UUFFdkMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2xJLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFL0MsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQTtRQUV4RyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLGFBQWEsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFFLENBQUE7UUFFNUUsYUFBYSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsR0FBRyxhQUFhLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFBO1FBRXJGLGFBQWEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssS0FBSyxDQUFDLElBQUksT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLEtBQUssSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRWpLLGFBQWEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUM7UUFFNUcsYUFBYSxDQUFDLFlBQVksR0FBRyxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxZQUFZLElBQUksS0FBSyxDQUFDO1FBRTlILGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQztRQUV0RyxPQUFPLGFBQWEsQ0FBQztJQUV2QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUU7UUFFbEQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ3RJLE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUFDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUE7UUFFekYsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUVuRCxlQUFlO1FBQ2YsYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sT0FBTyxDQUFDLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUV0SSx5SEFBeUg7UUFDekgsK0RBQStEO1FBQy9ELElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxPQUFPLENBQUMsT0FBTyxLQUFLLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkgsYUFBYSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELENBQUM7YUFBTSxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDeEMsOEVBQThFO1lBQzlFLElBQUksQ0FBQztnQkFDSCxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sYUFBYSxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCw2RUFBNkU7UUFDN0UsYUFBYSxDQUFDLFNBQVMsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sT0FBTyxDQUFDLFNBQVMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUUvSSxhQUFhLENBQUMsU0FBUyxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxPQUFPLENBQUMsU0FBUyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxJQUFJLEtBQUssQ0FBQyxDQUFBO1FBRWxKLE9BQU8sYUFBYSxDQUFDO0lBRXZCLENBQUM7K0dBL0RVLG1CQUFtQixrQkFJVixxQkFBcUI7bUhBSjlCLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFLYyxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcGlSZXF1ZXN0IH0gZnJvbSAnLi4vcmVxdWVzdC1tYW5hZ2VyLXN0YXRlLXNlcnZpY2UvbW9kZWxzJztcbmltcG9ydCB7IFNldHRpbmdPcHRpb25zIH0gZnJvbSAnLi4vbG9jYWwtc3RvcmFnZS1tYW5hZ2VyLXNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi91dGlscy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgQ09ORklHX1NFVFRJTkdTX1RPS0VOIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbmZpZy10b2tlbi5tb2RlbCc7XG5pbXBvcnQgeyBDb25maWdIVFRQT3B0aW9ucywgQ29uZmlnT3B0aW9ucywgTG9jYWxTdG9yYWdlT3B0aW9ucyB9IGZyb20gJy4uL3JlcXVlc3QtbWFuYWdlci1zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdE1lcmdlclNlcnZpY2Uge1xuXG4gIHV0aWxzID0gaW5qZWN0KFV0aWxzU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChDT05GSUdfU0VUVElOR1NfVE9LRU4pIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlnT3B0aW9ucz86IENvbmZpZ09wdGlvbnMpIHtcbiAgICAgIGlmICghdGhpcy5jb25maWdPcHRpb25zKSB0aGlzLmNvbmZpZ09wdGlvbnMgPSBDb25maWdPcHRpb25zLmFkYXB0KClcbiAgIH1cblxuICBtZXJnZU9wdGlvbnMob3B0aW9ucyA9IEFwaVJlcXVlc3QuYWRhcHQoKSkge1xuXG4gICAgY29uc3QgY29uZmlnRm9yUm9vdCA9ICh0aGlzLmNvbmZpZ09wdGlvbnM/Lmh0dHBSZXF1ZXN0T3B0aW9ucykgPyB0aGlzLmNvbmZpZ09wdGlvbnMuaHR0cFJlcXVlc3RPcHRpb25zIDogQ29uZmlnSFRUUE9wdGlvbnMuYWRhcHQoKVxuICAgIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSBBcGlSZXF1ZXN0LmFkYXB0KG9wdGlvbnMpXG5cbiAgICBtZXJnZWRPcHRpb25zLnNlcnZlciA9IChvcHRpb25zICYmIG9wdGlvbnMuc2VydmVyID09PSAnJykgPyBjb25maWdGb3JSb290Py5zZXJ2ZXIgfHwgJycgOiBvcHRpb25zLnNlcnZlclxuXG4gICAgbWVyZ2VkT3B0aW9ucy5wYXRoID0gWyAuLi5vcHRpb25zLnBhdGggfHwgW10sIC4uLmNvbmZpZ0ZvclJvb3Q/LnBhdGggfHwgW10gXVxuXG4gICAgbWVyZ2VkT3B0aW9ucy5oZWFkZXJzID0geyAuLi5vcHRpb25zLmhlYWRlcnMgfHwge30sIC4uLmNvbmZpZ0ZvclJvb3Q/LmhlYWRlcnMgfHwge30gfVxuXG4gICAgbWVyZ2VkT3B0aW9ucy5yZXRyeSA9IChvcHRpb25zICYmIChvcHRpb25zPy5yZXRyeT8udGltZXMgIT09IDAgfHwgb3B0aW9ucz8ucmV0cnk/LmRlbGF5ICE9PSAzKSkgPyBvcHRpb25zLnJldHJ5IDogY29uZmlnRm9yUm9vdD8ucmV0cnkgfHwgeyB0aW1lczogMCwgZGVsYXk6IDMgfTtcblxuICAgIG1lcmdlZE9wdGlvbnMucG9sbGluZyA9IChvcHRpb25zICYmIG9wdGlvbnM/LnBvbGxpbmcgIT09IDApID8gb3B0aW9ucy5wb2xsaW5nIDogY29uZmlnRm9yUm9vdD8ucG9sbGluZyB8fCAwO1xuXG4gICAgbWVyZ2VkT3B0aW9ucy5kaXNwbGF5RXJyb3IgPSAob3B0aW9ucyAmJiBvcHRpb25zPy5kaXNwbGF5RXJyb3IpID8gb3B0aW9ucy5kaXNwbGF5RXJyb3IgOiBjb25maWdGb3JSb290Py5kaXNwbGF5RXJyb3IgfHwgZmFsc2U7XG5cbiAgICBtZXJnZWRPcHRpb25zLnN0cmVhbSA9IChvcHRpb25zICYmIG9wdGlvbnM/LnN0cmVhbSkgPyBvcHRpb25zLnN0cmVhbSA6IGNvbmZpZ0ZvclJvb3Q/LnN0cmVhbSB8fCBmYWxzZTtcblxuICAgIHJldHVybiBtZXJnZWRPcHRpb25zO1xuXG4gIH1cblxuICBtZXJnZVN0b3JhZ2VPcHRpb25zKG9wdGlvbnMgPSBTZXR0aW5nT3B0aW9ucy5hZGFwdCgpKSB7XG5cbiAgICBjb25zdCBjb25maWdGb3JSb290ID0gKHRoaXMuY29uZmlnT3B0aW9ucz8uTG9jYWxTdG9yYWdlT3B0aW9ucykgPyB0aGlzLmNvbmZpZ09wdGlvbnMuTG9jYWxTdG9yYWdlT3B0aW9ucyA6IExvY2FsU3RvcmFnZU9wdGlvbnMuYWRhcHQoKVxuICAgIGNvbnN0IGNvbmZpZ0ZvclJvb3RPcHRpb25zID0gY29uZmlnRm9yUm9vdC5vcHRpb25zIHx8IExvY2FsU3RvcmFnZU9wdGlvbnMuYWRhcHQoKS5vcHRpb25zXG5cbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gU2V0dGluZ09wdGlvbnMuYWRhcHQob3B0aW9ucylcblxuICAgIC8vIHN0b3JhZ2UgdHlwZVxuICAgIG1lcmdlZE9wdGlvbnMuc3RvcmFnZSA9IChvcHRpb25zICYmICh0eXBlb2Ygb3B0aW9ucy5zdG9yYWdlICE9PSAndW5kZWZpbmVkJykpID8gb3B0aW9ucy5zdG9yYWdlIDogKGNvbmZpZ0ZvclJvb3RPcHRpb25zPy5zdG9yYWdlID8/IDApXG5cbiAgICAvLyBleHBpcmVzOiBwcmVmZXIgZXhwbGljaXQgbnVtZXJpYyBleHBpcmVzOyBpZiBub3QgcHJvdmlkZWQsIGNvbXB1dGUgZnJvbSBleHBpcmVzSW4gc3RyaW5nOyBvdGhlcndpc2UgdXNlIGNvbmZpZyBkZWZhdWx0XG4gICAgLy8gaWYgYW4gZXhwbGljaXQsIG5vbi16ZXJvIG51bWVyaWMgZXhwaXJlcyBpcyBwcm92aWRlZCwgdXNlIGl0XG4gICAgaWYgKG9wdGlvbnMgJiYgKHR5cGVvZiBvcHRpb25zLmV4cGlyZXMgIT09ICd1bmRlZmluZWQnKSAmJiBvcHRpb25zLmV4cGlyZXMgIT09IG51bGwgJiYgTnVtYmVyKG9wdGlvbnMuZXhwaXJlcykgPiAwKSB7XG4gICAgICBtZXJnZWRPcHRpb25zLmV4cGlyZXMgPSBOdW1iZXIob3B0aW9ucy5leHBpcmVzKTtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5leHBpcmVzSW4pIHtcbiAgICAgIC8vIGNvbXB1dGUgbnVtZXJpYyBlcG9jaCBmcm9tIGV4cGlyZXNJbiBzdHJpbmcgdXNpbmcgVXRpbHNTZXJ2aWNlIGlmIGF2YWlsYWJsZVxuICAgICAgdHJ5IHtcbiAgICAgICAgbWVyZ2VkT3B0aW9ucy5leHBpcmVzID0gdGhpcy51dGlscyA/IHRoaXMudXRpbHMuZXhwaXJlcyhvcHRpb25zLmV4cGlyZXNJbikgOiAwO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIG1lcmdlZE9wdGlvbnMuZXhwaXJlcyA9IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlZE9wdGlvbnMuZXhwaXJlcyA9IGNvbmZpZ0ZvclJvb3RPcHRpb25zPy5leHBpcmVzID8/IDA7XG4gICAgfVxuXG4gICAgLy8ga2VlcCBleHBpcmVzSW4gc3RyaW5nIGlmIGV4cGxpY2l0bHkgcHJvdmlkZWQsIG90aGVyd2lzZSB1c2UgY29uZmlnIGRlZmF1bHRcbiAgICBtZXJnZWRPcHRpb25zLmV4cGlyZXNJbiA9IChvcHRpb25zICYmICh0eXBlb2Ygb3B0aW9ucy5leHBpcmVzSW4gIT09ICd1bmRlZmluZWQnKSkgPyBvcHRpb25zLmV4cGlyZXNJbiA6IChjb25maWdGb3JSb290T3B0aW9ucz8uZXhwaXJlc0luIHx8ICcnKVxuXG4gICAgbWVyZ2VkT3B0aW9ucy5lbmNyeXB0ZWQgPSAob3B0aW9ucyAmJiAodHlwZW9mIG9wdGlvbnMuZW5jcnlwdGVkICE9PSAndW5kZWZpbmVkJykpID8gb3B0aW9ucy5lbmNyeXB0ZWQgOiAoY29uZmlnRm9yUm9vdE9wdGlvbnM/LmVuY3J5cHRlZCB8fCBmYWxzZSlcblxuICAgIHJldHVybiBtZXJnZWRPcHRpb25zO1xuXG4gIH1cblxufVxuIl19
|
|
@@ -42,10 +42,10 @@ export class PathQueryService {
|
|
|
42
42
|
isObject(val) {
|
|
43
43
|
return (val === null) ? false : ((typeof val === 'function') || (typeof val === 'object'));
|
|
44
44
|
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
46
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PathQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
46
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PathQueryService, providedIn: 'root' }); }
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PathQueryService, decorators: [{
|
|
49
49
|
type: Injectable,
|
|
50
50
|
args: [{
|
|
51
51
|
providedIn: 'root'
|
|
@@ -143,10 +143,10 @@ export class UtilsService {
|
|
|
143
143
|
}
|
|
144
144
|
return result.join(', ');
|
|
145
145
|
}
|
|
146
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
147
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
147
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, providedIn: 'root' }); }
|
|
148
148
|
}
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UtilsService, decorators: [{
|
|
150
150
|
type: Injectable,
|
|
151
151
|
args: [{
|
|
152
152
|
providedIn: 'root'
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from "./models/index";
|
|
2
|
+
export * from "./websocket.service";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3dzLW1hbmFnZXItc2VydmljZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vd2Vic29ja2V0LnNlcnZpY2VcIjtcblxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export class ChannelInfo {
|
|
2
|
+
constructor(name = '', canSubscribe = false) {
|
|
3
|
+
this.name = name;
|
|
4
|
+
this.canSubscribe = canSubscribe;
|
|
5
|
+
}
|
|
6
|
+
static adapt(item) {
|
|
7
|
+
return new ChannelInfo(item?.name, item?.canSubscribe);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1pbmZvLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy93cy1tYW5hZ2VyLXNlcnZpY2UvbW9kZWxzL2NoYW5uZWwtaW5mby5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUNTLE9BQU8sRUFBRSxFQUNULGVBQWUsS0FBSztRQURwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1QsaUJBQVksR0FBWixZQUFZLENBQVE7SUFDMUIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksV0FBVyxDQUNwQixJQUFJLEVBQUUsSUFBSSxFQUNWLElBQUksRUFBRSxZQUFZLENBQ25CLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENoYW5uZWxJbmZvSW50ZXJmYWNlIHtcbiAgbmFtZTogc3RyaW5nXG4gIGNhblN1YnNjcmliZTogYm9vbGVhblxufVxuXG5leHBvcnQgY2xhc3MgQ2hhbm5lbEluZm8gaW1wbGVtZW50cyBDaGFubmVsSW5mb0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5hbWUgPSAnJyxcbiAgICBwdWJsaWMgY2FuU3Vic2NyaWJlID0gZmFsc2UsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IENoYW5uZWxJbmZvIHtcblxuICAgIHJldHVybiBuZXcgQ2hhbm5lbEluZm8oXG4gICAgICBpdGVtPy5uYW1lLFxuICAgICAgaXRlbT8uY2FuU3Vic2NyaWJlLFxuICAgIClcblxuICB9XG5cbn1cblxuXG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class ChannelMessage {
|
|
2
|
+
constructor(fromUser = null, toUser = null, content = null, issued = new Date()) {
|
|
3
|
+
this.fromUser = fromUser;
|
|
4
|
+
this.toUser = toUser;
|
|
5
|
+
this.content = content;
|
|
6
|
+
this.issued = issued;
|
|
7
|
+
}
|
|
8
|
+
static adapt(item) {
|
|
9
|
+
return new ChannelMessage(item?.fromUser, item?.toUser, item?.content, item?.issued);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1ub3RpZmljYXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3dzLW1hbmFnZXItc2VydmljZS9tb2RlbHMvY2hhbm5lbC1ub3RpZmljYXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFDUyxXQUF3QixJQUFJLEVBQzVCLFNBQXNCLElBQUksRUFDMUIsVUFBdUIsSUFBSSxFQUMzQixTQUFTLElBQUksSUFBSSxFQUFFO1FBSG5CLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQWE7SUFDekIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksY0FBYyxDQUN2QixJQUFJLEVBQUUsUUFBUSxFQUNkLElBQUksRUFBRSxNQUFNLEVBQ1osSUFBSSxFQUFFLE9BQU8sRUFDYixJQUFJLEVBQUUsTUFBTSxDQUNiLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENoYW5uZWxNZXNzYWdlSW50ZXJmYWNlIHtcbiAgZnJvbVVzZXI6IHN0cmluZ3xudWxsXG4gIHRvVXNlcjogc3RyaW5nfG51bGxcbiAgY29udGVudDogc3RyaW5nfG51bGxcbiAgaXNzdWVkOiBEYXRlXG59XG5cbmV4cG9ydCBjbGFzcyBDaGFubmVsTWVzc2FnZSBpbXBsZW1lbnRzIENoYW5uZWxNZXNzYWdlSW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZnJvbVVzZXI6IHN0cmluZ3xudWxsID0gbnVsbCxcbiAgICBwdWJsaWMgdG9Vc2VyOiBzdHJpbmd8bnVsbCA9IG51bGwsXG4gICAgcHVibGljIGNvbnRlbnQ6IHN0cmluZ3xudWxsID0gbnVsbCxcbiAgICBwdWJsaWMgaXNzdWVkID0gbmV3IERhdGUoKSxcbiAgKSB7fVxuXG4gIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KTogQ2hhbm5lbE1lc3NhZ2Uge1xuXG4gICAgcmV0dXJuIG5ldyBDaGFubmVsTWVzc2FnZShcbiAgICAgIGl0ZW0/LmZyb21Vc2VyLFxuICAgICAgaXRlbT8udG9Vc2VyLFxuICAgICAgaXRlbT8uY29udGVudCxcbiAgICAgIGl0ZW0/Lmlzc3VlZCxcbiAgICApXG5cbiAgfVxuXG59XG5cblxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./channel-info.model";
|
|
2
|
+
export * from "./channel-notification.model";
|
|
3
|
+
export * from "./user-info.model";
|
|
4
|
+
export * from "./user-name-info.model";
|
|
5
|
+
export * from "./user-message.model";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3dzLW1hbmFnZXItc2VydmljZS9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY2hhbm5lbC1pbmZvLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jaGFubmVsLW5vdGlmaWNhdGlvbi5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXNlci1pbmZvLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91c2VyLW5hbWUtaW5mby5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXNlci1tZXNzYWdlLm1vZGVsXCI7XG5cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UserNameInfo } from "./user-name-info.model";
|
|
2
|
+
export class UserInfo {
|
|
3
|
+
constructor(username = '', name = UserNameInfo.adapt()) {
|
|
4
|
+
this.username = username;
|
|
5
|
+
this.name = name;
|
|
6
|
+
}
|
|
7
|
+
static adapt(item) {
|
|
8
|
+
return new UserInfo(item?.username, (item?.name) ? UserNameInfo.adapt(item.name) : UserNameInfo.adapt());
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pbmZvLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy93cy1tYW5hZ2VyLXNlcnZpY2UvbW9kZWxzL3VzZXItaW5mby5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFPckQsTUFBTSxPQUFPLFFBQVE7SUFFbkIsWUFDUyxXQUFXLEVBQUUsRUFDYixPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUU7UUFEM0IsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUNiLFNBQUksR0FBSixJQUFJLENBQXVCO0lBQ2pDLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFFckIsT0FBTyxJQUFJLFFBQVEsQ0FDakIsSUFBSSxFQUFFLFFBQVEsRUFDZCxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FDcEUsQ0FBQTtJQUVILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJOYW1lSW5mbyB9IGZyb20gXCIuL3VzZXItbmFtZS1pbmZvLm1vZGVsXCJcblxuZXhwb3J0IGludGVyZmFjZSBVc2VySW5mb0ludGVyZmFjZSB7XG4gIHVzZXJuYW1lOiBzdHJpbmdcbiAgbmFtZTogVXNlck5hbWVJbmZvXG59XG5cbmV4cG9ydCBjbGFzcyBVc2VySW5mbyBpbXBsZW1lbnRzIFVzZXJJbmZvSW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdXNlcm5hbWUgPSAnJyxcbiAgICBwdWJsaWMgbmFtZSA9IFVzZXJOYW1lSW5mby5hZGFwdCgpLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBVc2VySW5mbyB7XG5cbiAgICByZXR1cm4gbmV3IFVzZXJJbmZvKFxuICAgICAgaXRlbT8udXNlcm5hbWUsXG4gICAgICAoaXRlbT8ubmFtZSkgPyBVc2VyTmFtZUluZm8uYWRhcHQoaXRlbS5uYW1lKSA6IFVzZXJOYW1lSW5mby5hZGFwdCgpLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class UserMessage {
|
|
2
|
+
constructor(fromUser, toUser, content, issued) {
|
|
3
|
+
this.fromUser = fromUser;
|
|
4
|
+
this.toUser = toUser;
|
|
5
|
+
this.content = content;
|
|
6
|
+
this.issued = issued;
|
|
7
|
+
}
|
|
8
|
+
static adapt(item) {
|
|
9
|
+
return new UserMessage(item?.fromUser, item?.name?.toUser, item?.content, item?.name?.issued);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZXNzYWdlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy93cy1tYW5hZ2VyLXNlcnZpY2UvbW9kZWxzL3VzZXItbWVzc2FnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUNTLFFBQWtCLEVBQ2xCLE1BQWlCLEVBQ2pCLE9BQWdCLEVBQ2hCLE1BQWE7UUFIYixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFPO0lBQ25CLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFFckIsT0FBTyxJQUFJLFdBQVcsQ0FDcEIsSUFBSSxFQUFFLFFBQVEsRUFDZCxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFDbEIsSUFBSSxFQUFFLE9BQU8sRUFDYixJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FDbkIsQ0FBQTtJQUVILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJJbmZvIH0gZnJvbSBcIi4uXCJcblxuZXhwb3J0IGludGVyZmFjZSBVc2VyTWVzc2FnZUludGVyZmFjZSB7XG4gICAgZnJvbVVzZXI6IFVzZXJJbmZvLFxuICAgIHRvVXNlcj86IFVzZXJJbmZvLFxuICAgIGNvbnRlbnQ/OiBzdHJpbmcsXG4gICAgaXNzdWVkPzogRGF0ZSxcbn1cblxuZXhwb3J0IGNsYXNzIFVzZXJNZXNzYWdlIGltcGxlbWVudHMgVXNlck1lc3NhZ2VJbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBmcm9tVXNlcjogVXNlckluZm8sXG4gICAgcHVibGljIHRvVXNlcj86IFVzZXJJbmZvLFxuICAgIHB1YmxpYyBjb250ZW50Pzogc3RyaW5nLFxuICAgIHB1YmxpYyBpc3N1ZWQ/OiBEYXRlLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBVc2VyTWVzc2FnZSB7XG5cbiAgICByZXR1cm4gbmV3IFVzZXJNZXNzYWdlKFxuICAgICAgaXRlbT8uZnJvbVVzZXIsXG4gICAgICBpdGVtPy5uYW1lPy50b1VzZXIsXG4gICAgICBpdGVtPy5jb250ZW50LFxuICAgICAgaXRlbT8ubmFtZT8uaXNzdWVkLFxuICAgIClcblxuICB9XG5cbn1cblxuXG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class UserNameInfo {
|
|
2
|
+
constructor(first = '', last = '', email = '', connected = new Date()) {
|
|
3
|
+
this.first = first;
|
|
4
|
+
this.last = last;
|
|
5
|
+
this.email = email;
|
|
6
|
+
this.connected = connected;
|
|
7
|
+
}
|
|
8
|
+
static adapt(item) {
|
|
9
|
+
return new UserNameInfo(item?.first, item?.last, item?.email, item?.connected);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1uYW1lLWluZm8ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3dzLW1hbmFnZXItc2VydmljZS9tb2RlbHMvdXNlci1uYW1lLWluZm8ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLFlBQVk7SUFFdkIsWUFDUyxRQUFnQixFQUFFLEVBQ2xCLE9BQWUsRUFBRSxFQUNqQixRQUFnQixFQUFFLEVBQ2xCLFlBQWtCLElBQUksSUFBSSxFQUFFO1FBSDVCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQW1CO0lBQ2xDLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFFckIsT0FBTyxJQUFJLFlBQVksQ0FDckIsSUFBSSxFQUFFLEtBQUssRUFDWCxJQUFJLEVBQUUsSUFBSSxFQUNWLElBQUksRUFBRSxLQUFLLEVBQ1gsSUFBSSxFQUFFLFNBQVMsQ0FDaEIsQ0FBQTtJQUVILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVXNlck5hbWVJbmZvSW50ZXJmYWNlIHtcbiAgZmlyc3Q6IHN0cmluZ1xuICBsYXN0OiBzdHJpbmdcbiAgZW1haWw6IHN0cmluZ1xuICBjb25uZWN0ZWQ6IERhdGVcbn1cblxuZXhwb3J0IGNsYXNzIFVzZXJOYW1lSW5mbyBpbXBsZW1lbnRzIFVzZXJOYW1lSW5mb0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGZpcnN0OiBzdHJpbmcgPSAnJyxcbiAgICBwdWJsaWMgbGFzdDogc3RyaW5nID0gJycsXG4gICAgcHVibGljIGVtYWlsOiBzdHJpbmcgPSAnJyxcbiAgICBwdWJsaWMgY29ubmVjdGVkOiBEYXRlID0gbmV3IERhdGUoKSxcbiAgKSB7fVxuXG4gIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KTogVXNlck5hbWVJbmZvIHtcblxuICAgIHJldHVybiBuZXcgVXNlck5hbWVJbmZvKFxuICAgICAgaXRlbT8uZmlyc3QsXG4gICAgICBpdGVtPy5sYXN0LFxuICAgICAgaXRlbT8uZW1haWwsXG4gICAgICBpdGVtPy5jb25uZWN0ZWQsXG4gICAgKVxuXG4gIH1cblxufVxuXG5cbiJdfQ==
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class WebsocketService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.socket = null;
|
|
7
|
+
this.messages = new BehaviorSubject(null);
|
|
8
|
+
this.messages$ = this.messages.asObservable();
|
|
9
|
+
this.connectionStatus = new BehaviorSubject(false);
|
|
10
|
+
this.connectionStatus$ = this.connectionStatus.asObservable();
|
|
11
|
+
}
|
|
12
|
+
connect(url, jwtToken) {
|
|
13
|
+
if (this.socket)
|
|
14
|
+
return;
|
|
15
|
+
const URL = (jwtToken) ? `${url}?token=${jwtToken}` : url;
|
|
16
|
+
this.socket = new WebSocket(URL);
|
|
17
|
+
this.socket.onopen = (data) => {
|
|
18
|
+
console.log(`📡 Connected to WebSocket`);
|
|
19
|
+
this.connectionStatus.next(true);
|
|
20
|
+
};
|
|
21
|
+
this.socket.onmessage = (event) => {
|
|
22
|
+
try {
|
|
23
|
+
const data = JSON.parse(event.data);
|
|
24
|
+
if (data.error && data.error === 'JWT_INVALID') {
|
|
25
|
+
console.error('JWT validation failed. Authentication error!');
|
|
26
|
+
this.connectionStatus.next(false);
|
|
27
|
+
this.socket?.close();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.messages.next(data);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
console.error('Error parsing WebSocket message:', event.data);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
this.socket.onclose = () => {
|
|
37
|
+
console.log('WebSocket connection closed');
|
|
38
|
+
this.connectionStatus.next(false);
|
|
39
|
+
this.socket = null;
|
|
40
|
+
};
|
|
41
|
+
this.socket.onerror = (error) => {
|
|
42
|
+
console.error('WebSocket error:', error);
|
|
43
|
+
this.connectionStatus.next(false);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
disconnect() {
|
|
47
|
+
if (this.socket) {
|
|
48
|
+
this.socket.close();
|
|
49
|
+
this.socket = null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
subscribeToChannel(channel) {
|
|
53
|
+
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
54
|
+
this.socket.send(JSON.stringify({ type: 'subscribe', subscribedChannel: channel }));
|
|
55
|
+
console.log(`💬 Subscribed to channel: ${channel}`);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
console.error('WebSocket is not open. Cannot subscribe to channel.');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
unsubscribeToChannel(channel) {
|
|
62
|
+
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
63
|
+
this.socket.send(JSON.stringify({ type: 'unsubscribe', subscribedChannel: channel }));
|
|
64
|
+
console.log(`💬 Unsubscribed to channel: ${channel}`);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
console.error('WebSocket is not open. Cannot unsubscribed to channel.');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
sendMessage(channel, content) {
|
|
71
|
+
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
72
|
+
this.socket.send(JSON.stringify({ type: 'message', subscribedChannel: channel, content }));
|
|
73
|
+
console.log(`💬 Send message: ${content}`);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
console.error('WebSocket is not open. Cannot send message.');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
sendBroadcast(content) {
|
|
80
|
+
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
81
|
+
this.socket.send(JSON.stringify({ type: 'broadcast', content }));
|
|
82
|
+
console.log(`📢 Send broadcast: ${content}`);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
console.error('WebSocket is not open. Cannot send broadcast.');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
getAllChannels() {
|
|
89
|
+
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
90
|
+
this.socket.send(JSON.stringify({ type: 'getChannels' }));
|
|
91
|
+
console.log('🗂️ List of all channels');
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
console.error('WebSocket is not open. Cannot request channels.');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
createChannel(channel) {
|
|
98
|
+
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
99
|
+
this.socket.send(JSON.stringify({ type: 'createChannel', content: channel }));
|
|
100
|
+
console.log('🗂️ Created channel:', channel);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.error('WebSocket is not open. Cannot request channels.');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
deleteChannel(channel) {
|
|
107
|
+
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
108
|
+
this.socket.send(JSON.stringify({ type: 'deleteChannel', content: channel }));
|
|
109
|
+
console.log('🗂️ Delete channel:', channel);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
console.error('WebSocket is not open. Cannot request channels.');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
getUsersInChannel(channel) {
|
|
116
|
+
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
117
|
+
this.socket.send(JSON.stringify({ type: 'getUsers', subscribedChannel: channel }));
|
|
118
|
+
console.log(`👥 List all users in channel: ${channel}`);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
console.error('WebSocket is not open. Cannot request users.');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebsocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
125
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebsocketService, providedIn: 'root' }); }
|
|
126
|
+
}
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebsocketService, decorators: [{
|
|
128
|
+
type: Injectable,
|
|
129
|
+
args: [{
|
|
130
|
+
providedIn: 'root',
|
|
131
|
+
}]
|
|
132
|
+
}] });
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3dzLW1hbmFnZXItc2VydmljZS93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS25ELE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFLVSxXQUFNLEdBQXFCLElBQUksQ0FBQztRQUVoQyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDM0MsY0FBUyxHQUFvQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXpELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3hELHNCQUFpQixHQUF3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7S0E4SHRGO0lBNUhDLE9BQU8sQ0FBQyxHQUFXLEVBQUUsUUFBaUI7UUFFcEMsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFeEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFVBQVUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUUxRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJ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QyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7K0dBcElVLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2Vic29ja2V0U2VydmljZSB7XG5cbiAgcHJpdmF0ZSBzb2NrZXQ6IFdlYlNvY2tldCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgbWVzc2FnZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHB1YmxpYyBtZXNzYWdlcyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMubWVzc2FnZXMuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBjb25uZWN0aW9uU3RhdHVzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyBjb25uZWN0aW9uU3RhdHVzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuY29ubmVjdGlvblN0YXR1cy5hc09ic2VydmFibGUoKTtcblxuICBjb25uZWN0KHVybDogc3RyaW5nLCBqd3RUb2tlbj86IHN0cmluZykge1xuXG4gICAgaWYgKHRoaXMuc29ja2V0KSByZXR1cm47XG5cbiAgICBjb25zdCBVUkwgPSAoand0VG9rZW4pID8gYCR7dXJsfT90b2tlbj0ke2p3dFRva2VufWAgOiB1cmw7XG5cbiAgICB0aGlzLnNvY2tldCA9IG5ldyBXZWJTb2NrZXQoVVJMKTtcblxuICAgIHRoaXMuc29ja2V0Lm9ub3BlbiA9IChkYXRhKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhg8J+ToSBDb25uZWN0ZWQgdG8gV2ViU29ja2V0YCk7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25TdGF0dXMubmV4dCh0cnVlKTtcbiAgICB9O1xuXG4gICAgdGhpcy5zb2NrZXQub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7XG4gICAgICB0cnkge1xuXG4gICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuXG4gICAgICAgIGlmIChkYXRhLmVycm9yICYmIGRhdGEuZXJyb3IgPT09ICdKV1RfSU5WQUxJRCcpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdKV1QgdmFsaWRhdGlvbiBmYWlsZWQuIEF1dGhlbnRpY2F0aW9uIGVycm9yIScpO1xuICAgICAgICAgIHRoaXMuY29ubmVjdGlvblN0YXR1cy5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnNvY2tldD8uY2xvc2UoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1lc3NhZ2VzLm5leHQoZGF0YSk7XG5cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgV2ViU29ja2V0IG1lc3NhZ2U6JywgZXZlbnQuZGF0YSk7XG4gICAgICB9XG5cbiAgICB9O1xuXG4gICAgdGhpcy5zb2NrZXQub25jbG9zZSA9ICgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdXZWJTb2NrZXQgY29ubmVjdGlvbiBjbG9zZWQnKTtcbiAgICAgIHRoaXMuY29ubmVjdGlvblN0YXR1cy5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuc29ja2V0ID0gbnVsbDtcbiAgICB9O1xuXG4gICAgdGhpcy5zb2NrZXQub25lcnJvciA9IChlcnJvcikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IGVycm9yOicsIGVycm9yKTtcbiAgICAgIHRoaXMuY29ubmVjdGlvblN0YXR1cy5uZXh0KGZhbHNlKTtcbiAgICB9O1xuICB9XG5cbiAgZGlzY29ubmVjdCgpIHtcbiAgICBpZiAodGhpcy5zb2NrZXQpIHtcbiAgICAgIHRoaXMuc29ja2V0LmNsb3NlKCk7XG4gICAgICB0aGlzLnNvY2tldCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgc3Vic2NyaWJlVG9DaGFubmVsKGNoYW5uZWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvY2tldD8ucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcbiAgICAgIHRoaXMuc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAnc3Vic2NyaWJlJywgc3Vic2NyaWJlZENoYW5uZWw6IGNoYW5uZWwgfSkpO1xuICAgICAgY29uc29sZS5sb2coYPCfkqwgU3Vic2NyaWJlZCB0byBjaGFubmVsOiAke2NoYW5uZWx9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHN1YnNjcmliZSB0byBjaGFubmVsLicpO1xuICAgIH1cbiAgfVxuXG4gIHVuc3Vic2NyaWJlVG9DaGFubmVsKGNoYW5uZWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvY2tldD8ucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcbiAgICAgIHRoaXMuc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAndW5zdWJzY3JpYmUnLCBzdWJzY3JpYmVkQ2hhbm5lbDogY2hhbm5lbCB9KSk7XG4gICAgICBjb25zb2xlLmxvZyhg8J+SrCBVbnN1YnNjcmliZWQgdG8gY2hhbm5lbDogJHtjaGFubmVsfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXQgaXMgbm90IG9wZW4uIENhbm5vdCB1bnN1YnNjcmliZWQgdG8gY2hhbm5lbC4nKTtcbiAgICB9XG4gIH1cblxuICBzZW5kTWVzc2FnZShjaGFubmVsOiBzdHJpbmcsIGNvbnRlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLnNvY2tldD8ucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcbiAgICAgIHRoaXMuc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAnbWVzc2FnZScsIHN1YnNjcmliZWRDaGFubmVsOiBjaGFubmVsLCBjb250ZW50IH0pKTtcbiAgICAgICAgY29uc29sZS5sb2coYPCfkqwgU2VuZCBtZXNzYWdlOiAke2NvbnRlbnR9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHNlbmQgbWVzc2FnZS4nKTtcbiAgICB9XG4gIH1cblxuICBzZW5kQnJvYWRjYXN0KGNvbnRlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLnNvY2tldD8ucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcbiAgICAgIHRoaXMuc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAnYnJvYWRjYXN0JywgY29udGVudCB9KSk7XG4gICAgICBjb25zb2xlLmxvZyhg8J+ToiBTZW5kIGJyb2FkY2FzdDogJHtjb250ZW50fWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXQgaXMgbm90IG9wZW4uIENhbm5vdCBzZW5kIGJyb2FkY2FzdC4nKTtcbiAgICB9XG4gIH1cblxuICBnZXRBbGxDaGFubmVscygpIHtcbiAgICBpZiAodGhpcy5zb2NrZXQ/LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5PUEVOKSB7XG4gICAgICB0aGlzLnNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ2dldENoYW5uZWxzJyB9KSk7XG4gICAgICBjb25zb2xlLmxvZygn8J+Xgu+4jyBMaXN0IG9mIGFsbCBjaGFubmVscycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXQgaXMgbm90IG9wZW4uIENhbm5vdCByZXF1ZXN0IGNoYW5uZWxzLicpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUNoYW5uZWwoY2hhbm5lbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc29ja2V0Py5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdjcmVhdGVDaGFubmVsJywgY29udGVudDogY2hhbm5lbCB9KSk7XG4gICAgICBjb25zb2xlLmxvZygn8J+Xgu+4jyBDcmVhdGVkIGNoYW5uZWw6JywgY2hhbm5lbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHJlcXVlc3QgY2hhbm5lbHMuJyk7XG4gICAgfVxuICB9XG5cbiAgZGVsZXRlQ2hhbm5lbChjaGFubmVsOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zb2NrZXQ/LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5PUEVOKSB7XG4gICAgICB0aGlzLnNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ2RlbGV0ZUNoYW5uZWwnLCBjb250ZW50OiBjaGFubmVsIH0pKTtcbiAgICAgIGNvbnNvbGUubG9nKCfwn5eC77iPIERlbGV0ZSBjaGFubmVsOicsIGNoYW5uZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXQgaXMgbm90IG9wZW4uIENhbm5vdCByZXF1ZXN0IGNoYW5uZWxzLicpO1xuICAgIH1cbiAgfVxuXG4gIGdldFVzZXJzSW5DaGFubmVsKGNoYW5uZWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNvY2tldD8ucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0Lk9QRU4pIHtcbiAgICAgIHRoaXMuc29ja2V0LnNlbmQoSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAnZ2V0VXNlcnMnLCBzdWJzY3JpYmVkQ2hhbm5lbDogY2hhbm5lbCB9KSk7XG4gICAgICBjb25zb2xlLmxvZyhg8J+RpSBMaXN0IGFsbCB1c2VycyBpbiBjaGFubmVsOiAke2NoYW5uZWx9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3Blbi4gQ2Fubm90IHJlcXVlc3QgdXNlcnMuJyk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|