http-request-manager 18.4.5 → 18.4.7
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/fesm2022/http-request-manager.mjs +366 -126
- package/fesm2022/http-request-manager.mjs.map +1 -1
- package/http-request-manager-18.4.7.tgz +0 -0
- package/package.json +3 -5
- package/types/http-request-manager.d.ts +1731 -0
- package/esm2022/http-request-manager.mjs +0 -5
- package/esm2022/lib/http-request-manager.module.mjs +0 -162
- package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +0 -152
- package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +0 -61
- package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +0 -173
- package/esm2022/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.mjs +0 -184
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +0 -80
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +0 -42
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +0 -88
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +0 -11
- package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +0 -29
- package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +0 -9
- package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +0 -12
- package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +0 -14
- package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +0 -325
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +0 -277
- package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +0 -64
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.mjs +0 -13
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.mjs +0 -13
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.mjs +0 -136
- package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/services/state-request-demo.service.mjs +0 -97
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.mjs +0 -9
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.mjs +0 -12
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.mjs +0 -14
- package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.mjs +0 -336
- package/esm2022/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.mjs +0 -12
- package/esm2022/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.mjs +0 -36
- package/esm2022/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.mjs +0 -34
- package/esm2022/lib/index.mjs +0 -4
- package/esm2022/lib/interceptors/credentials.interceptor.mjs +0 -14
- package/esm2022/lib/interceptors/index.mjs +0 -5
- package/esm2022/lib/interceptors/models/error-settings.model.mjs +0 -10
- package/esm2022/lib/interceptors/models/index.mjs +0 -2
- package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +0 -47
- package/esm2022/lib/interceptors/request-error.interceptor.mjs +0 -49
- package/esm2022/lib/interceptors/request-header.interceptor.mjs +0 -41
- package/esm2022/lib/models/config-http-options.model.mjs +0 -18
- package/esm2022/lib/models/config-local-storage-options.model.mjs +0 -12
- package/esm2022/lib/models/config-options.model.mjs +0 -12
- package/esm2022/lib/models/config-token.model.mjs +0 -8
- package/esm2022/lib/models/data-type.enum.mjs +0 -7
- package/esm2022/lib/models/database-storage.model.mjs +0 -10
- package/esm2022/lib/models/index.mjs +0 -8
- package/esm2022/lib/models/retry-options.model.mjs +0 -10
- package/esm2022/lib/services/database-manager-service/database.manager.service.mjs +0 -171
- package/esm2022/lib/services/database-manager-service/db.storage.service.mjs +0 -183
- package/esm2022/lib/services/database-manager-service/index.mjs +0 -4
- package/esm2022/lib/services/database-manager-service/models/index.mjs +0 -2
- package/esm2022/lib/services/database-manager-service/models/table-schema.mjs +0 -19
- package/esm2022/lib/services/index.mjs +0 -9
- package/esm2022/lib/services/local-storage-manager-service/index.mjs +0 -4
- package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +0 -308
- package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs +0 -277
- package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +0 -13
- package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +0 -6
- package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +0 -17
- package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +0 -10
- package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +0 -13
- package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +0 -7
- package/esm2022/lib/services/request-manager-services/http-manager-signals.service.mjs +0 -199
- package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +0 -207
- package/esm2022/lib/services/request-manager-services/index.mjs +0 -7
- package/esm2022/lib/services/request-manager-services/request-signals.service.mjs +0 -170
- package/esm2022/lib/services/request-manager-services/request.service.mjs +0 -192
- package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +0 -9
- package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +0 -10
- package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +0 -5
- package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +0 -33
- package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +0 -19
- package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +0 -592
- package/esm2022/lib/services/request-manager-state-service/index.mjs +0 -3
- package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +0 -22
- package/esm2022/lib/services/request-manager-state-service/models/index.mjs +0 -5
- package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +0 -10
- package/esm2022/lib/services/request-manager-state-service/models/ws-options.model.mjs +0 -15
- package/esm2022/lib/services/request-manager-state-service/models/ws-user.model.mjs +0 -10
- package/esm2022/lib/services/store-state-manager-service/index.mjs +0 -3
- package/esm2022/lib/services/store-state-manager-service/models/index.mjs +0 -2
- package/esm2022/lib/services/store-state-manager-service/models/state-storage-options.model.mjs +0 -12
- package/esm2022/lib/services/store-state-manager-service/store-state-manager.service.mjs +0 -71
- package/esm2022/lib/services/utils/app.service.mjs +0 -26
- package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +0 -186
- package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +0 -35
- package/esm2022/lib/services/utils/encryption/index.mjs +0 -4
- package/esm2022/lib/services/utils/encryption/random.mjs +0 -52
- package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +0 -77
- package/esm2022/lib/services/utils/headers.service.mjs +0 -21
- package/esm2022/lib/services/utils/index.mjs +0 -6
- package/esm2022/lib/services/utils/object-merger.service.mjs +0 -70
- package/esm2022/lib/services/utils/path-query.service.mjs +0 -54
- package/esm2022/lib/services/utils/utils.service.mjs +0 -155
- package/esm2022/lib/services/ws-manager-service/index.mjs +0 -3
- package/esm2022/lib/services/ws-manager-service/models/channel-info.model.mjs +0 -10
- package/esm2022/lib/services/ws-manager-service/models/channel-notification.model.mjs +0 -14
- package/esm2022/lib/services/ws-manager-service/models/communication-type.enum.mjs +0 -7
- package/esm2022/lib/services/ws-manager-service/models/index.mjs +0 -5
- package/esm2022/lib/services/ws-manager-service/models/user-message.model.mjs +0 -12
- package/esm2022/lib/services/ws-manager-service/services/websocket.service.mjs +0 -178
- package/esm2022/public-api.mjs +0 -11
- package/http-request-manager-18.4.5.tgz +0 -0
- package/index.d.ts +0 -5
- package/lib/http-request-manager.module.d.ts +0 -39
- package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +0 -46
- package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +0 -37
- package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +0 -56
- package/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.d.ts +0 -55
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +0 -26
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +0 -13
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +0 -27
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +0 -12
- package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +0 -16
- package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +0 -8
- package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +0 -110
- package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +0 -124
- package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +0 -15
- package/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.d.ts +0 -16
- package/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.d.ts +0 -14
- package/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.d.ts +0 -42
- package/lib/http-request-services-demo/request-manager-ws-demo/services/state-request-demo.service.d.ts +0 -15
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.d.ts +0 -8
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
- package/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.d.ts +0 -106
- package/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.d.ts +0 -14
- package/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.d.ts +0 -11
- package/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.d.ts +0 -14
- package/lib/index.d.ts +0 -3
- package/lib/interceptors/credentials.interceptor.d.ts +0 -8
- package/lib/interceptors/index.d.ts +0 -4
- package/lib/interceptors/models/error-settings.model.d.ts +0 -10
- package/lib/interceptors/models/index.d.ts +0 -1
- package/lib/interceptors/proxy-debugger.interceptor.d.ts +0 -12
- package/lib/interceptors/request-error.interceptor.d.ts +0 -10
- package/lib/interceptors/request-header.interceptor.d.ts +0 -15
- package/lib/models/config-http-options.model.d.ts +0 -21
- package/lib/models/config-local-storage-options.model.d.ts +0 -13
- package/lib/models/config-options.model.d.ts +0 -12
- package/lib/models/config-token.model.d.ts +0 -8
- package/lib/models/data-type.enum.d.ts +0 -5
- package/lib/models/database-storage.model.d.ts +0 -10
- package/lib/models/index.d.ts +0 -7
- package/lib/models/retry-options.model.d.ts +0 -10
- package/lib/services/database-manager-service/database.manager.service.d.ts +0 -33
- package/lib/services/database-manager-service/db.storage.service.d.ts +0 -26
- package/lib/services/database-manager-service/index.d.ts +0 -3
- package/lib/services/database-manager-service/models/index.d.ts +0 -1
- package/lib/services/database-manager-service/models/table-schema.d.ts +0 -11
- package/lib/services/index.d.ts +0 -7
- package/lib/services/local-storage-manager-service/index.d.ts +0 -3
- package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +0 -86
- package/lib/services/local-storage-manager-service/local-storage-signals-manager.service.d.ts +0 -64
- package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +0 -15
- package/lib/services/local-storage-manager-service/models/index.d.ts +0 -5
- package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +0 -15
- package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +0 -10
- package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +0 -15
- package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +0 -5
- package/lib/services/request-manager-services/http-manager-signals.service.d.ts +0 -38
- package/lib/services/request-manager-services/http-manager.service.d.ts +0 -41
- package/lib/services/request-manager-services/index.d.ts +0 -6
- package/lib/services/request-manager-services/request-signals.service.d.ts +0 -26
- package/lib/services/request-manager-services/request.service.d.ts +0 -28
- package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +0 -2
- package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +0 -2
- package/lib/services/request-manager-services/rxjs-operators/index.d.ts +0 -4
- package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +0 -2
- package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +0 -2
- package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +0 -90
- package/lib/services/request-manager-state-service/index.d.ts +0 -2
- package/lib/services/request-manager-state-service/models/api-request.model.d.ts +0 -32
- package/lib/services/request-manager-state-service/models/index.d.ts +0 -4
- package/lib/services/request-manager-state-service/models/request-options.model.d.ts +0 -10
- package/lib/services/request-manager-state-service/models/ws-options.model.d.ts +0 -22
- package/lib/services/request-manager-state-service/models/ws-user.model.d.ts +0 -10
- package/lib/services/store-state-manager-service/index.d.ts +0 -2
- package/lib/services/store-state-manager-service/models/index.d.ts +0 -1
- package/lib/services/store-state-manager-service/models/state-storage-options.model.d.ts +0 -13
- package/lib/services/store-state-manager-service/store-state-manager.service.d.ts +0 -23
- package/lib/services/utils/app.service.d.ts +0 -8
- package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +0 -17
- package/lib/services/utils/encryption/encryption-test.service.d.ts +0 -10
- package/lib/services/utils/encryption/index.d.ts +0 -3
- package/lib/services/utils/encryption/random.d.ts +0 -7
- package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +0 -14
- package/lib/services/utils/headers.service.d.ts +0 -10
- package/lib/services/utils/index.d.ts +0 -5
- package/lib/services/utils/object-merger.service.d.ts +0 -14
- package/lib/services/utils/path-query.service.d.ts +0 -11
- package/lib/services/utils/utils.service.d.ts +0 -24
- package/lib/services/ws-manager-service/index.d.ts +0 -2
- package/lib/services/ws-manager-service/models/channel-info.model.d.ts +0 -10
- package/lib/services/ws-manager-service/models/channel-notification.model.d.ts +0 -17
- package/lib/services/ws-manager-service/models/communication-type.enum.d.ts +0 -5
- package/lib/services/ws-manager-service/models/index.d.ts +0 -4
- package/lib/services/ws-manager-service/models/user-message.model.d.ts +0 -14
- package/lib/services/ws-manager-service/services/websocket.service.d.ts +0 -24
- package/public-api.d.ts +0 -7
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from "./http-manager-state.store";
|
|
2
|
-
export * from "./models/index";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1zZXJ2aWNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2h0dHAtbWFuYWdlci1zdGF0ZS5zdG9yZVwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvaW5kZXhcIjtcbiJdfQ==
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { RetryOptions } from "../../request-manager-services";
|
|
2
|
-
export class ApiRequest {
|
|
3
|
-
constructor(server = '', path, headers, adapter, mapper, polling, retry, stream, displayError, saveAs, fileContentHeader, ws) {
|
|
4
|
-
this.server = server;
|
|
5
|
-
this.path = path;
|
|
6
|
-
this.headers = headers;
|
|
7
|
-
this.adapter = adapter;
|
|
8
|
-
this.mapper = mapper;
|
|
9
|
-
this.polling = polling;
|
|
10
|
-
this.retry = retry;
|
|
11
|
-
this.stream = stream;
|
|
12
|
-
this.displayError = displayError;
|
|
13
|
-
this.saveAs = saveAs;
|
|
14
|
-
this.fileContentHeader = fileContentHeader;
|
|
15
|
-
this.ws = ws;
|
|
16
|
-
}
|
|
17
|
-
static adapt(item) {
|
|
18
|
-
const server = Array.isArray(item?.server) ? item.server.join('/') : item?.server || '';
|
|
19
|
-
return new ApiRequest(server, (item?.path) ? item.path : [], (item?.headers) ? item.headers : {}, item?.adapter, item?.mapper, item?.polling ? Math.floor(item.polling) : 0, item?.retry ? RetryOptions.adapt(item.retry) : RetryOptions.adapt(), (item?.stream) ? item.stream : false, (item?.displayError) ? item.displayError : false, item?.saveAs, item?.fileContentHeader, item?.ws);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlcXVlc3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1zZXJ2aWNlL21vZGVscy9hcGktcmVxdWVzdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFrQjdELE1BQU0sT0FBTyxVQUFVO0lBRXJCLFlBQ1MsU0FBUyxFQUFFLEVBQ1gsSUFBWSxFQUNaLE9BQWEsRUFDYixPQUFhLEVBQ2IsTUFBWSxFQUNaLE9BQWdCLEVBQ2hCLEtBQW9CLEVBQ3BCLE1BQWdCLEVBQ2hCLFlBQXNCLEVBQ3RCLE1BQWUsRUFDZixpQkFBMEIsRUFDMUIsRUFBYztRQVhkLFdBQU0sR0FBTixNQUFNLENBQUs7UUFDWCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBTTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQU07UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFNO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFlO1FBQ3BCLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQVU7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNmLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUztRQUMxQixPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQ3BCLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFFckIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUV4RixPQUFPLElBQUksVUFBVSxDQUNuQixNQUFNLEVBQ04sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDN0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDbkMsSUFBSSxFQUFFLE9BQU8sRUFDYixJQUFJLEVBQUUsTUFBTSxFQUNaLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzVDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQ25FLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQ3BDLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQ2hELElBQUksRUFBRSxNQUFNLEVBQ1osSUFBSSxFQUFFLGlCQUFpQixFQUN2QixJQUFJLEVBQUUsRUFBRSxDQUNULENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXRyeU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vcmVxdWVzdC1tYW5hZ2VyLXNlcnZpY2VzXCJcbmltcG9ydCB7IFdTT3B0aW9ucyB9IGZyb20gXCIuL3dzLW9wdGlvbnMubW9kZWxcIlxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlcXVlc3RJbnRlcmZhY2Uge1xuICBzZXJ2ZXI6IHN0cmluZ1xuICBwYXRoPzogYW55W11cbiAgaGVhZGVycz86IGFueVxuICBhZGFwdGVyPzogYW55XG4gIG1hcHBlcj86IGFueVxuICBwb2xsaW5nPzogbnVtYmVyIC8vIHNlY29uZHMgKHVuZGVmaW5lZCB8IDAgPSBub25lKVxuICByZXRyeT86IFJldHJ5T3B0aW9uc1xuICBzdHJlYW0/OiBib29sZWFuXG4gIGRpc3BsYXlFcnJvcj86IGJvb2xlYW5cbiAgc2F2ZUFzPzogc3RyaW5nXG4gIGZpbGVDb250ZW50SGVhZGVyPzogc3RyaW5nXG4gIHdzPzogV1NPcHRpb25zIC8vIFdlYnNvY2tldCBPcHRpb25zXG59XG5cbmV4cG9ydCBjbGFzcyBBcGlSZXF1ZXN0IGltcGxlbWVudHMgQXBpUmVxdWVzdEludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNlcnZlciA9ICcnLFxuICAgIHB1YmxpYyBwYXRoPzogYW55W10sXG4gICAgcHVibGljIGhlYWRlcnM/OiBhbnksXG4gICAgcHVibGljIGFkYXB0ZXI/OiBhbnksXG4gICAgcHVibGljIG1hcHBlcj86IGFueSxcbiAgICBwdWJsaWMgcG9sbGluZz86IG51bWJlcixcbiAgICBwdWJsaWMgcmV0cnk/OiBSZXRyeU9wdGlvbnMsXG4gICAgcHVibGljIHN0cmVhbT86IGJvb2xlYW4sXG4gICAgcHVibGljIGRpc3BsYXlFcnJvcj86IGJvb2xlYW4sXG4gICAgcHVibGljIHNhdmVBcz86IHN0cmluZyxcbiAgICBwdWJsaWMgZmlsZUNvbnRlbnRIZWFkZXI/OiBzdHJpbmcsXG4gICAgcHVibGljIHdzPzogV1NPcHRpb25zLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBBcGlSZXF1ZXN0IHtcblxuICAgIGNvbnN0IHNlcnZlciA9IEFycmF5LmlzQXJyYXkoaXRlbT8uc2VydmVyKSA/IGl0ZW0uc2VydmVyLmpvaW4oJy8nKSA6IGl0ZW0/LnNlcnZlciB8fCAnJztcblxuICAgIHJldHVybiBuZXcgQXBpUmVxdWVzdChcbiAgICAgIHNlcnZlcixcbiAgICAgIChpdGVtPy5wYXRoKSA/IGl0ZW0ucGF0aCA6IFtdLFxuICAgICAgKGl0ZW0/LmhlYWRlcnMpID8gaXRlbS5oZWFkZXJzIDoge30sXG4gICAgICBpdGVtPy5hZGFwdGVyLFxuICAgICAgaXRlbT8ubWFwcGVyLFxuICAgICAgaXRlbT8ucG9sbGluZyA/IE1hdGguZmxvb3IoaXRlbS5wb2xsaW5nKSA6IDAsXG4gICAgICBpdGVtPy5yZXRyeSA/IFJldHJ5T3B0aW9ucy5hZGFwdChpdGVtLnJldHJ5KSA6IFJldHJ5T3B0aW9ucy5hZGFwdCgpLFxuICAgICAgKGl0ZW0/LnN0cmVhbSkgPyBpdGVtLnN0cmVhbSA6IGZhbHNlLFxuICAgICAgKGl0ZW0/LmRpc3BsYXlFcnJvcikgPyBpdGVtLmRpc3BsYXlFcnJvciA6IGZhbHNlLFxuICAgICAgaXRlbT8uc2F2ZUFzLFxuICAgICAgaXRlbT8uZmlsZUNvbnRlbnRIZWFkZXIsXG4gICAgICBpdGVtPy53cyxcbiAgICApXG5cbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from "./api-request.model";
|
|
2
|
-
export * from "./request-options.model";
|
|
3
|
-
export * from "./ws-options.model";
|
|
4
|
-
export * from "./ws-user.model";
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1zZXJ2aWNlL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYXBpLXJlcXVlc3QubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlcXVlc3Qtb3B0aW9ucy5tb2RlbFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi93cy1vcHRpb25zLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi93cy11c2VyLm1vZGVsXCI7XG5cbiJdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export class RequestOptions {
|
|
2
|
-
constructor(path = [], headers = {}) {
|
|
3
|
-
this.path = path;
|
|
4
|
-
this.headers = headers;
|
|
5
|
-
}
|
|
6
|
-
static adapt(item) {
|
|
7
|
-
return new RequestOptions(item?.path, item?.headers);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1vcHRpb25zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9yZXF1ZXN0LW1hbmFnZXItc3RhdGUtc2VydmljZS9tb2RlbHMvcmVxdWVzdC1vcHRpb25zLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQ1MsT0FBYyxFQUFFLEVBQ2hCLFVBQVUsRUFBRTtRQURaLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBSztJQUNsQixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLE9BQU8sSUFBSSxjQUFjLENBQ3ZCLElBQUksRUFBRSxJQUFJLEVBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FDZCxDQUFBO0lBRUgsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZSB7XG4gICAgcGF0aDogYW55W10sXG4gICAgaGVhZGVyczogYW55LFxufVxuXG5leHBvcnQgY2xhc3MgUmVxdWVzdE9wdGlvbnMgaW1wbGVtZW50cyBSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhdGg6IGFueVtdID0gW10sXG4gICAgcHVibGljIGhlYWRlcnMgPSB7fSxcbiAgKSB7fVxuXG4gIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KTogUmVxdWVzdE9wdGlvbnMge1xuXG4gICAgcmV0dXJuIG5ldyBSZXF1ZXN0T3B0aW9ucyhcbiAgICAgIGl0ZW0/LnBhdGgsXG4gICAgICBpdGVtPy5oZWFkZXJzLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export class WSOptions {
|
|
2
|
-
constructor(id = '', wsServer = '', jwtToken = '', permissions, channels, userAdapter, retry) {
|
|
3
|
-
this.id = id;
|
|
4
|
-
this.wsServer = wsServer;
|
|
5
|
-
this.jwtToken = jwtToken;
|
|
6
|
-
this.permissions = permissions;
|
|
7
|
-
this.channels = channels;
|
|
8
|
-
this.userAdapter = userAdapter;
|
|
9
|
-
this.retry = retry;
|
|
10
|
-
}
|
|
11
|
-
static adapt(item) {
|
|
12
|
-
return new WSOptions(item?.id, item?.wsServer, item?.jwtToken, (item?.permissions) ? item.permissions.split(',').map((p) => p.trim()) : [], item?.channels, item?.userAdapter, item?.retry);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3Mtb3B0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvcmVxdWVzdC1tYW5hZ2VyLXN0YXRlLXNlcnZpY2UvbW9kZWxzL3dzLW9wdGlvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxPQUFPLFNBQVM7SUFFcEIsWUFDUyxLQUFhLEVBQUUsRUFDZixXQUFtQixFQUFFLEVBQ3JCLFdBQW1CLEVBQUUsRUFDckIsV0FBc0IsRUFDdEIsUUFBbUIsRUFDbkIsV0FBb0IsRUFDcEIsS0FBb0I7UUFOcEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBVztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFTO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQWU7SUFDMUIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksU0FBUyxDQUNsQixJQUFJLEVBQUUsRUFBRSxFQUNSLElBQUksRUFBRSxRQUFRLEVBQ2QsSUFBSSxFQUFFLFFBQVEsRUFDZCxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNuRixJQUFJLEVBQUUsUUFBUSxFQUNkLElBQUksRUFBRSxXQUFXLEVBQ2pCLElBQUksRUFBRSxLQUFLLENBQ1osQ0FBQTtJQUVILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJldHJ5T3B0aW9ucyB9IGZyb20gXCIuLi8uLi9yZXF1ZXN0LW1hbmFnZXItc2VydmljZXNcIlxuaW1wb3J0IHsgV1NVc2VyIH0gZnJvbSBcIi4vd3MtdXNlci5tb2RlbFwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgV1NPcHRpb25zSW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nLFxuICAgIHdzU2VydmVyOiBzdHJpbmcsXG4gICAgand0VG9rZW46IHN0cmluZyxcbiAgICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdLFxuICAgIGNoYW5uZWxzPzogc3RyaW5nW10sXG4gICAgdXNlckFkYXB0ZXI/OiBXU1VzZXIsXG4gICAgcmV0cnk/OiBSZXRyeU9wdGlvbnNcbn1cblxuZXhwb3J0IGNsYXNzIFdTT3B0aW9ucyBpbXBsZW1lbnRzIFdTT3B0aW9uc0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGlkOiBzdHJpbmcgPSAnJyxcbiAgICBwdWJsaWMgd3NTZXJ2ZXI6IHN0cmluZyA9ICcnLFxuICAgIHB1YmxpYyBqd3RUb2tlbjogc3RyaW5nID0gJycsXG4gICAgcHVibGljIHBlcm1pc3Npb25zPzogc3RyaW5nW10sXG4gICAgcHVibGljIGNoYW5uZWxzPzogc3RyaW5nW10sXG4gICAgcHVibGljIHVzZXJBZGFwdGVyPzogV1NVc2VyLFxuICAgIHB1YmxpYyByZXRyeT86IFJldHJ5T3B0aW9uc1xuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBXU09wdGlvbnMge1xuXG4gICAgcmV0dXJuIG5ldyBXU09wdGlvbnMoXG4gICAgICBpdGVtPy5pZCxcbiAgICAgIGl0ZW0/LndzU2VydmVyLFxuICAgICAgaXRlbT8uand0VG9rZW4sXG4gICAgICAoaXRlbT8ucGVybWlzc2lvbnMpID8gaXRlbS5wZXJtaXNzaW9ucy5zcGxpdCgnLCcpLm1hcCgocDogc3RyaW5nKSA9PiBwLnRyaW0oKSkgOiBbXSxcbiAgICAgIGl0ZW0/LmNoYW5uZWxzLFxuICAgICAgaXRlbT8udXNlckFkYXB0ZXIsXG4gICAgICBpdGVtPy5yZXRyeVxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export class WSUser {
|
|
2
|
-
constructor(id = '', adapter) {
|
|
3
|
-
this.id = id;
|
|
4
|
-
this.adapter = adapter;
|
|
5
|
-
}
|
|
6
|
-
static adapt(item) {
|
|
7
|
-
return new WSUser(item?.id, item?.adapter);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtdXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvcmVxdWVzdC1tYW5hZ2VyLXN0YXRlLXNlcnZpY2UvbW9kZWxzL3dzLXVzZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLE1BQU07SUFFakIsWUFDUyxLQUFhLEVBQUUsRUFDZixPQUFrQjtRQURsQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsWUFBTyxHQUFQLE9BQU8sQ0FBVztJQUN4QixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLE9BQU8sSUFBSSxNQUFNLENBQ2YsSUFBSSxFQUFFLEVBQUUsRUFDUixJQUFJLEVBQUUsT0FBTyxDQUNkLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXRyeU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vcmVxdWVzdC1tYW5hZ2VyLXNlcnZpY2VzXCJcblxuZXhwb3J0IGludGVyZmFjZSBXU1VzZXJJbnRlcmZhY2Uge1xuICBpZDogc3RyaW5nLFxuICBhZGFwdGVyPzogRnVuY3Rpb24sXG59XG5cbmV4cG9ydCBjbGFzcyBXU1VzZXIgaW1wbGVtZW50cyBXU1VzZXJJbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpZDogc3RyaW5nID0gJycsXG4gICAgcHVibGljIGFkYXB0ZXI/OiBGdW5jdGlvbixcbiAgKSB7fVxuXG4gIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KTogV1NVc2VyIHtcblxuICAgIHJldHVybiBuZXcgV1NVc2VyKFxuICAgICAgaXRlbT8uaWQsXG4gICAgICBpdGVtPy5hZGFwdGVyLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from "./store-state-manager.service";
|
|
2
|
-
export * from "./models/index";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3N0b3JlLXN0YXRlLW1hbmFnZXItc2VydmljZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9zdG9yZS1zdGF0ZS1tYW5hZ2VyLnNlcnZpY2VcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2luZGV4XCI7XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from "./state-storage-options.model";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3N0b3JlLXN0YXRlLW1hbmFnZXItc2VydmljZS9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3N0YXRlLXN0b3JhZ2Utb3B0aW9ucy5tb2RlbFwiO1xuXG4iXX0=
|
package/esm2022/lib/services/store-state-manager-service/models/state-storage-options.model.mjs
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { SettingOptions } from "../../local-storage-manager-service";
|
|
2
|
-
export class StateStorageOptions {
|
|
3
|
-
constructor(store, options, model) {
|
|
4
|
-
this.store = store;
|
|
5
|
-
this.options = options;
|
|
6
|
-
this.model = model;
|
|
7
|
-
}
|
|
8
|
-
static adapt(item) {
|
|
9
|
-
return new StateStorageOptions(item?.store ?? 'temp', item?.options ? SettingOptions.adapt(item.options) : SettingOptions.adapt(), item?.model);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtc3RvcmFnZS1vcHRpb25zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZS1zdGF0ZS1tYW5hZ2VyLXNlcnZpY2UvbW9kZWxzL3N0YXRlLXN0b3JhZ2Utb3B0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFRckUsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixZQUNTLEtBQWMsRUFDZCxPQUF3QixFQUN4QixLQUEyQjtRQUYzQixVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBc0I7SUFDakMsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUNyQixPQUFPLElBQUksbUJBQW1CLENBQzVCLElBQUksRUFBRSxLQUFLLElBQUksTUFBTSxFQUNyQixJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUMzRSxJQUFJLEVBQUUsS0FBSyxDQUNaLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXR0aW5nT3B0aW9ucyB9IGZyb20gXCIuLi8uLi9sb2NhbC1zdG9yYWdlLW1hbmFnZXItc2VydmljZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlU3RvcmFnZU9wdGlvbnNJbnRlcmZhY2Uge1xuICBzdG9yZT86IHN0cmluZztcbiAgb3B0aW9ucz86IFNldHRpbmdPcHRpb25zO1xuICBtb2RlbD86IChzdGF0ZTogYW55KSA9PiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBTdGF0ZVN0b3JhZ2VPcHRpb25zIGltcGxlbWVudHMgU3RhdGVTdG9yYWdlT3B0aW9uc0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN0b3JlPzogc3RyaW5nLFxuICAgIHB1YmxpYyBvcHRpb25zPzogU2V0dGluZ09wdGlvbnMsXG4gICAgcHVibGljIG1vZGVsPzogKHN0YXRlOiBhbnkpID0+IGFueVxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBTdGF0ZVN0b3JhZ2VPcHRpb25zIHtcbiAgICByZXR1cm4gbmV3IFN0YXRlU3RvcmFnZU9wdGlvbnMoXG4gICAgICBpdGVtPy5zdG9yZSA/PyAndGVtcCcsXG4gICAgICBpdGVtPy5vcHRpb25zID8gU2V0dGluZ09wdGlvbnMuYWRhcHQoaXRlbS5vcHRpb25zKSA6IFNldHRpbmdPcHRpb25zLmFkYXB0KCksXG4gICAgICBpdGVtPy5tb2RlbFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { LocalStorageManagerService } from './../local-storage-manager-service/local-storage-manager.service';
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { ComponentStore } from '@ngrx/component-store';
|
|
4
|
-
import { StateStorageOptions } from './models/state-storage-options.model';
|
|
5
|
-
import { Subscription, take } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./models/state-storage-options.model";
|
|
8
|
-
export class StoreStateManagerService extends ComponentStore {
|
|
9
|
-
constructor(options = StateStorageOptions.adapt()) {
|
|
10
|
-
super(StoreStateManagerService.init(options));
|
|
11
|
-
this.options = options;
|
|
12
|
-
this.localStorageManagerService = inject(LocalStorageManagerService);
|
|
13
|
-
this.subscriptions = new Subscription;
|
|
14
|
-
this.settings = null;
|
|
15
|
-
this.isRestoring = false;
|
|
16
|
-
// Selectors
|
|
17
|
-
this.data$ = this.select((state) => {
|
|
18
|
-
const model = this.options.model;
|
|
19
|
-
return (typeof model === 'function' && !model.prototype) ? model(state) : state;
|
|
20
|
-
});
|
|
21
|
-
// Updaters
|
|
22
|
-
this.updateData = this.updater((state, data) => {
|
|
23
|
-
const key = Object.keys(data)[0];
|
|
24
|
-
const hasKey = Object.keys(state).includes(key);
|
|
25
|
-
if (!hasKey)
|
|
26
|
-
return state;
|
|
27
|
-
const newState = { ...state, [key]: data[key] };
|
|
28
|
-
this.updateState(newState);
|
|
29
|
-
return { ...state, ...newState };
|
|
30
|
-
});
|
|
31
|
-
this.init(options);
|
|
32
|
-
}
|
|
33
|
-
static init(options) {
|
|
34
|
-
const model = options?.model;
|
|
35
|
-
return (model) ? model() : {};
|
|
36
|
-
}
|
|
37
|
-
init(options) {
|
|
38
|
-
this.settings = options;
|
|
39
|
-
this.localStorageManagerService.createStore({
|
|
40
|
-
name: this.settings?.store,
|
|
41
|
-
data: this.settings?.model(),
|
|
42
|
-
options: this.settings?.options,
|
|
43
|
-
});
|
|
44
|
-
this.localStorageManagerService.store$(this.settings?.store)
|
|
45
|
-
.subscribe(data => this.setState(data));
|
|
46
|
-
}
|
|
47
|
-
restoreState() {
|
|
48
|
-
return this.localStorageManagerService.store$(this.settings?.store)
|
|
49
|
-
.pipe(take(1))
|
|
50
|
-
.subscribe(data => {
|
|
51
|
-
this.updateData(data);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
updateState(state) {
|
|
55
|
-
if (this.isRestoring)
|
|
56
|
-
return;
|
|
57
|
-
this.localStorageManagerService.updateStore({
|
|
58
|
-
name: this.settings?.store,
|
|
59
|
-
data: state
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StoreStateManagerService, deps: [{ token: i1.StateStorageOptions }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
63
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StoreStateManagerService, providedIn: 'root' }); }
|
|
64
|
-
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StoreStateManagerService, decorators: [{
|
|
66
|
-
type: Injectable,
|
|
67
|
-
args: [{
|
|
68
|
-
providedIn: 'root'
|
|
69
|
-
}]
|
|
70
|
-
}], ctorParameters: () => [{ type: i1.StateStorageOptions }] });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtc3RhdGUtbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yZS1zdGF0ZS1tYW5hZ2VyLXNlcnZpY2Uvc3RvcmUtc3RhdGUtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBTzFDLE1BQU0sT0FBTyx3QkFBd0UsU0FBUSxjQUFpQjtJQVM1RyxZQUNVLFVBQStCLG1CQUFtQixDQUFDLEtBQUssRUFBRTtRQUVsRSxLQUFLLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFGckMsWUFBTyxHQUFQLE9BQU8sQ0FBbUQ7UUFScEUsK0JBQTBCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFFL0Qsa0JBQWEsR0FBRyxJQUFJLFlBQVksQ0FBQTtRQUNoQyxhQUFRLEdBQVEsSUFBSSxDQUFBO1FBRVosZ0JBQVcsR0FBRyxLQUFLLENBQUE7UUFrRDNCLFlBQVk7UUFDSCxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ2pDLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO1FBRUgsV0FBVztRQUNGLGVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQVMsRUFBRSxFQUFFO1lBRXRELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7WUFFL0MsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxLQUFLLENBQUE7WUFDekIsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDMUIsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUE7UUFFbEMsQ0FBQyxDQUFDLENBQUE7UUE3REEsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwQixDQUFDO0lBRU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUE0QjtRQUU5QyxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFBO1FBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUUsS0FBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFFOUMsQ0FBQztJQUVELElBQUksQ0FBQyxPQUE2QjtRQUVoQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUV2QixJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxDQUFDO1lBQzFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUs7WUFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQzVCLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU87U0FDaEMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQzthQUMzRCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFFekMsQ0FBQztJQUVELFlBQVk7UUFFVixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7YUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3ZCLENBQUMsQ0FBQyxDQUFBO0lBRUosQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUcsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFNO1FBQzNCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLENBQUM7WUFDMUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSztZQUMxQixJQUFJLEVBQUUsS0FBSztTQUNaLENBQUMsQ0FBQTtJQUVKLENBQUM7K0dBdkRVLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbFN0b3JhZ2VNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vLi4vbG9jYWwtc3RvcmFnZS1tYW5hZ2VyLXNlcnZpY2UvbG9jYWwtc3RvcmFnZS1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBTdGF0ZVN0b3JhZ2VPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMvc3RhdGUtc3RvcmFnZS1vcHRpb25zLm1vZGVsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgdGFrZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlU3RvcmVNYW5hZ2VyRGF0YTxUPiB7fVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdG9yZVN0YXRlTWFuYWdlclNlcnZpY2U8VCBleHRlbmRzIG9iamVjdCA9IFN0YXRlU3RvcmVNYW5hZ2VyRGF0YTxhbnk+PiBleHRlbmRzIENvbXBvbmVudFN0b3JlPFQ+IHtcblxuICBsb2NhbFN0b3JhZ2VNYW5hZ2VyU2VydmljZSA9IGluamVjdChMb2NhbFN0b3JhZ2VNYW5hZ2VyU2VydmljZSlcblxuICBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvblxuICBzZXR0aW5nczogYW55ID0gbnVsbFxuXG4gIHByaXZhdGUgaXNSZXN0b3JpbmcgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3B0aW9uczogU3RhdGVTdG9yYWdlT3B0aW9ucyA9IFN0YXRlU3RvcmFnZU9wdGlvbnMuYWRhcHQoKVxuICApIHtcbiAgICBzdXBlcihTdG9yZVN0YXRlTWFuYWdlclNlcnZpY2UuaW5pdChvcHRpb25zKSlcbiAgICB0aGlzLmluaXQob3B0aW9ucylcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGluaXQob3B0aW9uczogU3RhdGVTdG9yYWdlT3B0aW9ucyk6IGFueSB7XG5cbiAgICBjb25zdCBtb2RlbCA9IG9wdGlvbnM/Lm1vZGVsXG4gICAgcmV0dXJuIChtb2RlbCkgPyAobW9kZWwgYXMgKCkgPT4gYW55KSgpIDoge31cblxuICB9XG5cbiAgaW5pdChvcHRpb25zPzogU3RhdGVTdG9yYWdlT3B0aW9ucykge1xuXG4gICAgdGhpcy5zZXR0aW5ncyA9IG9wdGlvbnNcblxuICAgIHRoaXMubG9jYWxTdG9yYWdlTWFuYWdlclNlcnZpY2UuY3JlYXRlU3RvcmUoe1xuICAgICAgbmFtZTogdGhpcy5zZXR0aW5ncz8uc3RvcmUsXG4gICAgICBkYXRhOiB0aGlzLnNldHRpbmdzPy5tb2RlbCgpLFxuICAgICAgb3B0aW9uczogdGhpcy5zZXR0aW5ncz8ub3B0aW9ucyxcbiAgICB9KVxuXG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VNYW5hZ2VyU2VydmljZS5zdG9yZSQodGhpcy5zZXR0aW5ncz8uc3RvcmUpXG4gICAgLnN1YnNjcmliZShkYXRhID0+IHRoaXMuc2V0U3RhdGUoZGF0YSkpXG5cbiAgfVxuXG4gIHJlc3RvcmVTdGF0ZSgpOiBTdWJzY3JpcHRpb24ge1xuXG4gICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yYWdlTWFuYWdlclNlcnZpY2Uuc3RvcmUkKHRoaXMuc2V0dGluZ3M/LnN0b3JlKVxuICAgIC5waXBlKHRha2UoMSkpXG4gICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMudXBkYXRlRGF0YShkYXRhKVxuICAgIH0pXG5cbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKHN0YXRlOiBhbnkpIHtcbiAgICBpZih0aGlzLmlzUmVzdG9yaW5nKSByZXR1cm5cbiAgICB0aGlzLmxvY2FsU3RvcmFnZU1hbmFnZXJTZXJ2aWNlLnVwZGF0ZVN0b3JlKHtcbiAgICAgIG5hbWU6IHRoaXMuc2V0dGluZ3M/LnN0b3JlLFxuICAgICAgZGF0YTogc3RhdGVcbiAgICB9KVxuXG4gIH1cblxuICAvLyBTZWxlY3RvcnNcbiAgcmVhZG9ubHkgZGF0YSQgPSB0aGlzLnNlbGVjdCgoc3RhdGU6IGFueSkgPT4ge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5vcHRpb25zLm1vZGVsO1xuICAgIHJldHVybiAodHlwZW9mIG1vZGVsID09PSAnZnVuY3Rpb24nICYmICFtb2RlbC5wcm90b3R5cGUpID8gbW9kZWwoc3RhdGUpIDogc3RhdGVcbiAgfSk7XG5cbiAgLy8gVXBkYXRlcnNcbiAgcmVhZG9ubHkgdXBkYXRlRGF0YSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGRhdGE6IGFueSkgPT4ge1xuXG4gICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoZGF0YSlbMF1cbiAgICBjb25zdCBoYXNLZXkgPSBPYmplY3Qua2V5cyhzdGF0ZSkuaW5jbHVkZXMoa2V5KVxuXG4gICAgaWYgKCFoYXNLZXkpIHJldHVybiBzdGF0ZVxuICAgIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSwgW2tleV06IGRhdGFba2V5XSB9XG4gICAgdGhpcy51cGRhdGVTdGF0ZShuZXdTdGF0ZSlcbiAgICByZXR1cm4geyAuLi5zdGF0ZSwgLi4ubmV3U3RhdGUgfVxuXG4gIH0pXG5cbn1cbiJdfQ==
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { APP_ID, Inject, Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
// Must provide a value for APP_ID in AppModule->Providers
|
|
4
|
-
// providers: [
|
|
5
|
-
// {
|
|
6
|
-
// provide: APP_ID,
|
|
7
|
-
// useValue: "056991ac-3537-43ab-b5b9-83edf6554eff",
|
|
8
|
-
// },
|
|
9
|
-
export class AppService {
|
|
10
|
-
constructor(id) {
|
|
11
|
-
this.id = id;
|
|
12
|
-
this.appID = this.id;
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppService, deps: [{ token: APP_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
15
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppService, providedIn: 'root' }); }
|
|
16
|
-
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppService, decorators: [{
|
|
18
|
-
type: Injectable,
|
|
19
|
-
args: [{
|
|
20
|
-
providedIn: 'root'
|
|
21
|
-
}]
|
|
22
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
23
|
-
type: Inject,
|
|
24
|
-
args: [APP_ID]
|
|
25
|
-
}] }] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3V0aWxzL2FwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0QsMERBQTBEO0FBQzFELGVBQWU7QUFDZixNQUFNO0FBQ04sdUJBQXVCO0FBQ3ZCLHdEQUF3RDtBQUN4RCxPQUFPO0FBS1AsTUFBTSxPQUFPLFVBQVU7SUFJckIsWUFBb0MsRUFBVTtRQUFWLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBO0lBQ3RCLENBQUM7K0dBTlUsVUFBVSxrQkFJRCxNQUFNO21IQUpmLFVBQVUsY0FGVCxNQUFNOzs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS2MsTUFBTTsyQkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lELCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gTXVzdCBwcm92aWRlIGEgdmFsdWUgZm9yIEFQUF9JRCBpbiBBcHBNb2R1bGUtPlByb3ZpZGVyc1xuLy8gcHJvdmlkZXJzOiBbXG4vLyAgIHtcbi8vICAgICBwcm92aWRlOiBBUFBfSUQsXG4vLyAgICAgdXNlVmFsdWU6IFwiMDU2OTkxYWMtMzUzNy00M2FiLWI1YjktODNlZGY2NTU0ZWZmXCIsXG4vLyAgIH0sXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcFNlcnZpY2Uge1xuXG4gIGFwcElEOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFQUF9JRCkgcHJpdmF0ZSBpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hcHBJRCA9IHRoaXMuaWRcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, EMPTY, from } from 'rxjs';
|
|
3
|
-
import { map, catchError } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class AsymmetricalEncryptionService {
|
|
6
|
-
constructor() { }
|
|
7
|
-
generateKeyPair(modulusLength = 2048) {
|
|
8
|
-
// modulusLength - 1024, 2048, 4096
|
|
9
|
-
// hash - SHA-256
|
|
10
|
-
return from(crypto.subtle.generateKey({
|
|
11
|
-
name: "RSA-OAEP",
|
|
12
|
-
modulusLength,
|
|
13
|
-
publicExponent: new Uint8Array([1, 0, 1]), // 65537
|
|
14
|
-
hash: { name: "SHA-256" }
|
|
15
|
-
}, true, // Extractable keys
|
|
16
|
-
["encrypt", "decrypt"]));
|
|
17
|
-
}
|
|
18
|
-
encryptData(publicKey, data) {
|
|
19
|
-
const encodedData = new TextEncoder().encode(data);
|
|
20
|
-
return from(crypto.subtle.encrypt({
|
|
21
|
-
name: "RSA-OAEP"
|
|
22
|
-
}, publicKey, encodedData)).pipe(map(enc => this.arrayBufferToBase64(enc)));
|
|
23
|
-
}
|
|
24
|
-
decryptData(privateKey, encryptedData) {
|
|
25
|
-
const encStr = this.base64ToArrayBuffer(encryptedData);
|
|
26
|
-
return from(crypto.subtle.decrypt({
|
|
27
|
-
name: "RSA-OAEP"
|
|
28
|
-
}, privateKey, encStr).then(decryptedData => {
|
|
29
|
-
return new TextDecoder().decode(decryptedData);
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
pemToArrayBuffer(pem) {
|
|
33
|
-
const b64 = pem.replace(/(-----BEGIN (RSA )?(PRIVATE|PUBLIC) KEY-----|-----END (RSA )?(PRIVATE|PUBLIC) KEY-----|\n)/g, '');
|
|
34
|
-
const binaryString = atob(b64);
|
|
35
|
-
const len = binaryString.length;
|
|
36
|
-
const buffer = new ArrayBuffer(len);
|
|
37
|
-
const view = new Uint8Array(buffer);
|
|
38
|
-
for (let i = 0; i < len; i++) {
|
|
39
|
-
view[i] = binaryString.charCodeAt(i);
|
|
40
|
-
}
|
|
41
|
-
return buffer;
|
|
42
|
-
}
|
|
43
|
-
base64ToArrayBuffer(base64) {
|
|
44
|
-
const binaryString = atob(base64);
|
|
45
|
-
const len = binaryString.length;
|
|
46
|
-
const buffer = new ArrayBuffer(len);
|
|
47
|
-
const view = new Uint8Array(buffer);
|
|
48
|
-
for (let i = 0; i < len; i++) {
|
|
49
|
-
view[i] = binaryString.charCodeAt(i);
|
|
50
|
-
}
|
|
51
|
-
return buffer;
|
|
52
|
-
}
|
|
53
|
-
arrayBufferToBase64(buffer) {
|
|
54
|
-
let binary = '';
|
|
55
|
-
const bytes = new Uint8Array(buffer);
|
|
56
|
-
const len = bytes.byteLength;
|
|
57
|
-
for (let i = 0; i < len; i++) {
|
|
58
|
-
binary += String.fromCharCode(bytes[i]);
|
|
59
|
-
}
|
|
60
|
-
return window.btoa(binary);
|
|
61
|
-
}
|
|
62
|
-
base64ToPEM(base64Key, publicKey = true) {
|
|
63
|
-
const keyType = (publicKey) ? 'PUBLIC' : 'PRIVATE';
|
|
64
|
-
const header = `-----BEGIN ${keyType} KEY-----\n`;
|
|
65
|
-
const footer = `\n-----END ${keyType} KEY-----`;
|
|
66
|
-
const keyBody = base64Key.match(/.{1,64}/g)?.join("\n") || "";
|
|
67
|
-
return header + keyBody + footer;
|
|
68
|
-
}
|
|
69
|
-
pemToCryptoKey(pem, algorithm, extractable, keyUsages, format = "pkcs8" //"raw" | "pkcs8" | "spki"
|
|
70
|
-
) {
|
|
71
|
-
const buffer = this.pemToArrayBuffer(pem);
|
|
72
|
-
console.log('buffer found ', buffer);
|
|
73
|
-
return from(crypto.subtle.importKey(format, buffer, algorithm, extractable, keyUsages));
|
|
74
|
-
}
|
|
75
|
-
// TESTING
|
|
76
|
-
testGenerateKeys() {
|
|
77
|
-
const testSequence = new BehaviorSubject("");
|
|
78
|
-
const testSequence$ = testSequence.asObservable();
|
|
79
|
-
testSequence.next("Test Generating Keys");
|
|
80
|
-
// GENERATE KEYS
|
|
81
|
-
this.generateKeyPair().subscribe((data) => {
|
|
82
|
-
console.log("GEN-GENERATED KEYS: ", data);
|
|
83
|
-
crypto.subtle.exportKey('spki', data.publicKey)
|
|
84
|
-
.then(key => {
|
|
85
|
-
const publicKeyBase64 = this.arrayBufferToBase64(key);
|
|
86
|
-
console.log("GEN-EXPORT PUBLIC KEY: ", this.base64ToPEM(publicKeyBase64, true));
|
|
87
|
-
});
|
|
88
|
-
crypto.subtle.exportKey('pkcs8', data.privateKey)
|
|
89
|
-
.then(key => {
|
|
90
|
-
const privateKeyBase64 = this.arrayBufferToBase64(key);
|
|
91
|
-
console.log("GEN-EXPORT PRIVATE KEY: ", this.base64ToPEM(privateKeyBase64, false));
|
|
92
|
-
});
|
|
93
|
-
// TEST WITH GENERATED KEYS
|
|
94
|
-
this.encryptData(data.publicKey, "Sample Data here - Mike Bonifacio")
|
|
95
|
-
.subscribe((enc) => {
|
|
96
|
-
console.log("GEN-ENCRYPT==>: ", enc);
|
|
97
|
-
this.decryptData(data.privateKey, enc).subscribe((dec) => {
|
|
98
|
-
testSequence.next('Test Passed');
|
|
99
|
-
testSequence.complete();
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
return testSequence$;
|
|
104
|
-
}
|
|
105
|
-
testDecryptionWithKeys() {
|
|
106
|
-
const testSequence = new BehaviorSubject("");
|
|
107
|
-
const testSequence$ = testSequence.asObservable();
|
|
108
|
-
testSequence.next("Test Generating Keys");
|
|
109
|
-
const privateKey = `-----BEGIN PRIVATE KEY-----
|
|
110
|
-
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDKVBkCWNb9eHVF
|
|
111
|
-
twAA5mdAyvXFix3WavdrsoYRkvtCl8ogDBQf8f6N0bRkDF1zcVHRrNAEyozXDtuD
|
|
112
|
-
kFgSiivBFREI7fiS3sOvduq6FaGXzX0IY6oaVMu8oOPgDvC0yvoohR+0Qxq2d6lP
|
|
113
|
-
SPyHeKQaxP4KxzCJJzB1XAcbd2eFzUUDv25mNlwdVkmW8FI/sAxnJLgPTW78dzfX
|
|
114
|
-
Ddfk+nxdIqxVKSLATnL0kMN7aGJx24UozioAIpzvvvF5/+7HTd1gi6NeCqrAYr3g
|
|
115
|
-
iP364AE26CFwFvHnafO9uNQhlQ+uiNnOoInXByfFGVP+RidSpfLzaxDjs6RDwpol
|
|
116
|
-
h098btONAgMBAAECggEAAVhHM2OD5IkUtuowwcKNaCTKGmrClRE3gMuzJeBsSJEy
|
|
117
|
-
uAReUFILZylcnhegDytSti2vDA9T7xqtO6CU0p3V8LpU89JMOPRb/deirI4UXSpx
|
|
118
|
-
xbNyjirOO6bnrNlOWfKexdQQsikYPzF2iM1Scpr1u9ZDCHZOl1ZYSrkve5My4coP
|
|
119
|
-
3Gx6tTBqL0jQBfcpf4ES8BH3JSawR/MgqzDS74+bI2VH+kvuPAC1L4fBgaV3VUv0
|
|
120
|
-
nFzim5A3s5VaXPgJbEIghP9BkYGFkeT9ma3nliEZWc96AzsmowFn1ayCvrNVPo9R
|
|
121
|
-
ECD2NnttBiCJZt3H93sR9+OTeA8Bls+aZGlKd5mLAQKBgQDpf8nIYUm/Zmls7/lQ
|
|
122
|
-
QBUSGHEYrbjNsEejQsPgNDtg2EVSxdUkvTn7Wb+HExTk09Z5bNvhaO2532/FH9y8
|
|
123
|
-
ahSXafiMXpfR2olwXdOB9yXXl4F5C0LGnmzGim4OSeWzAX0JCL470KaS0QN3EmoG
|
|
124
|
-
9F0YCfMnZXNTweSSx4xvlO6ggQKBgQDd01uIolm7z1DIWCwNERAXP2GDwcvxyzYK
|
|
125
|
-
YqJfKDeHt2t6yIzZMMotnPDy+OlcdGspIIHkB5a+SZN5Nt7DUKg/MnyOZ3KbVq41
|
|
126
|
-
k7dR4Ka3LRnGkesy7lSr7ef1rfquyR75OXJQcPWvkFcLu0TMiQhvptatZ8VN+F4n
|
|
127
|
-
fDQELRotDQKBgQCgN+AUT7VT0QjcCBnRV/ddUEoiPenFsYSmYMSYzh5ESIHg1wB2
|
|
128
|
-
0iS79Iw4Of6nOTg8X1bM57vfQ5Kk90T2P+/bKYqzfqC8DTErWiYsUpKzyTC9Bt4N
|
|
129
|
-
/Vz0Kr5zrX8ggg/yp/4oevYhXav8AzWfigNq4EDpMnKc8TlPAf+5/L50gQKBgQC2
|
|
130
|
-
mLPhPhr1gUszD3l7bA89w7uGlLFHoQoj9FtKTzWervp3QLzIT+QtNeIVb5XQuDg5
|
|
131
|
-
y3uAdEq+6pvNjMBEMJG+K9Xh9v+dJPYUPjsJ2A4D/MkZ7qWX8B2cxSJK1uLim8W2
|
|
132
|
-
S3ZxBvsGgJ9WldmlMCvUlJZkeWYtr4P5psC+q02/xQKBgQCDII/jcV2+lRM2iNTe
|
|
133
|
-
vBijZSaNMEWOK/Y+/HFK8GYKXnB+xNWhrm8rKgWGzpDJAUPMh9Tt+leW9LKEBuzF
|
|
134
|
-
Y1bGblmGm1zsPWpIx05Fdtv9eOJmFnXbGzIsYyhadZnPcQOWhqxtpVxSuul0Jc7Q
|
|
135
|
-
XNq4qPaPXhbQAshgtyBt75DMkw==
|
|
136
|
-
-----END PRIVATE KEY-----`;
|
|
137
|
-
const pubKey = `-----BEGIN PUBLIC KEY-----
|
|
138
|
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylQZAljW/Xh1RbcAAOZn
|
|
139
|
-
QMr1xYsd1mr3a7KGEZL7QpfKIAwUH/H+jdG0ZAxdc3FR0azQBMqM1w7bg5BYEoor
|
|
140
|
-
wRURCO34kt7Dr3bquhWhl819CGOqGlTLvKDj4A7wtMr6KIUftEMatnepT0j8h3ik
|
|
141
|
-
GsT+CscwiScwdVwHG3dnhc1FA79uZjZcHVZJlvBSP7AMZyS4D01u/Hc31w3X5Pp8
|
|
142
|
-
XSKsVSkiwE5y9JDDe2hicduFKM4qACKc777xef/ux03dYIujXgqqwGK94Ij9+uAB
|
|
143
|
-
NughcBbx52nzvbjUIZUProjZzqCJ1wcnxRlT/kYnUqXy82sQ47OkQ8KaJYdPfG7T
|
|
144
|
-
jQIDAQAB
|
|
145
|
-
-----END PUBLIC KEY-----`;
|
|
146
|
-
const algorithm = {
|
|
147
|
-
name: "RSA-OAEP",
|
|
148
|
-
modulusLength: 2048,
|
|
149
|
-
publicExponent: new Uint8Array([1, 0, 1]),
|
|
150
|
-
hash: "SHA-256"
|
|
151
|
-
};
|
|
152
|
-
// ENCRYPT
|
|
153
|
-
this.pemToCryptoKey(pubKey, algorithm, true, ["encrypt"], "spki").subscribe((keyPublic) => {
|
|
154
|
-
// console.log("PUBLIC KEY: ", keyPublic)
|
|
155
|
-
this.encryptData(keyPublic, "Sample Data here - Mike Bonifacio")
|
|
156
|
-
.subscribe((str) => {
|
|
157
|
-
console.log("ENCRYPTED STRING: ", str);
|
|
158
|
-
testSequence.next('encrypted string success');
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
const enc = "r7UOuEGBZ6jbVTOIBuv9jFOEtRiedmS27hfW40k7XKCTsQ5VhWup0qu2BA2ANZaGKii/uehJ/RSPiyfGbJ6leJrat0mA1hPqH/XodaBzLMDigvdYM1NSXFZMDa40OpLUIXbPlAvybjcGu7Bal+LMA8htHrFu/OmM/fHI66xOzzpuXSYx0OkWjtY81rUQ1FFkvrkx2jGFPZ0p+Nw/v3Q4cJnet6V63vCueFlD749VMcVXo7pvz4AIPpB+IOy3kbxaYTPakLVioJERU6GFMXWkECuRvohhS9CETcORZtRVRkvhcHk3lxgIhfqojUKYgD6K5dDELDPsWIS+iTG1XIQIlg==";
|
|
162
|
-
// DECRYPTION
|
|
163
|
-
this.pemToCryptoKey(privateKey, algorithm, false, ["decrypt"], "pkcs8").subscribe((key) => {
|
|
164
|
-
// console.log("DECRYPT ===", key)
|
|
165
|
-
this.decryptData(key, enc)
|
|
166
|
-
.pipe(catchError(err => {
|
|
167
|
-
console.log("ERROR: ", err);
|
|
168
|
-
return EMPTY;
|
|
169
|
-
})).subscribe((str) => {
|
|
170
|
-
console.log("DECRYPTED STRING: ", str);
|
|
171
|
-
testSequence.next('decrypted string success');
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
return testSequence$;
|
|
175
|
-
}
|
|
176
|
-
;
|
|
177
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsymmetricalEncryptionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
178
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsymmetricalEncryptionService, providedIn: 'root' }); }
|
|
179
|
-
}
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsymmetricalEncryptionService, decorators: [{
|
|
181
|
-
type: Injectable,
|
|
182
|
-
args: [{
|
|
183
|
-
providedIn: 'root'
|
|
184
|
-
}]
|
|
185
|
-
}], ctorParameters: () => [] });
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bW1ldHJpY2FsLWVuY3J5cHRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvdXRpbHMvZW5jcnlwdGlvbi9hc3ltbWV0cmljYWwtZW5jcnlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWMsSUFBSSxFQUFNLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS2pELE1BQU0sT0FBTyw2QkFBNkI7SUFFeEMsZ0JBQWUsQ0FBQztJQUVoQixlQUFlLENBQUMsYUFBYSxHQUFHLElBQUk7UUFFbEMsbUNBQW1DO1FBQ25DLGlCQUFpQjtRQUVsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDbEM7WUFDRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixhQUFhO1lBQ2IsY0FBYyxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVE7WUFDbkQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUMxQixFQUNELElBQUksRUFBRSxtQkFBbUI7UUFDekIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQ3ZCLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFFRCxXQUFXLENBQUMsU0FBb0IsRUFBRSxJQUFZO1FBRTVDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRWxELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxN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QUFDLFNBQVMsQ0FBQyxFQUNYLE9BQU8sQ0FDUixDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBRWxCLGtDQUFrQztZQUVsQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7aUJBQ3pCLElBQUksQ0FDSCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzVCLE9BQU8sS0FBSyxDQUFBO1lBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdkMsWUFBWSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUFBO1FBRUosQ0FBQyxDQUFDLENBQUE7UUFFRixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBQUEsQ0FBQzsrR0FoUlMsNkJBQTZCO21IQUE3Qiw2QkFBNkIsY0FGNUIsTUFBTTs7NEZBRVAsNkJBQTZCO2tCQUh6QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXN5bW1ldHJpY2FsRW5jcnlwdGlvblNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZW5lcmF0ZUtleVBhaXIobW9kdWx1c0xlbmd0aCA9IDIwNDgpOiBPYnNlcnZhYmxlPENyeXB0b0tleVBhaXI+IHtcbiAgXG4gICAgLy8gbW9kdWx1c0xlbmd0aCAtIDEwMjQsIDIwNDgsIDQwOTZcbiAgICAvLyBoYXNoIC0gU0hBLTI1NlxuXG4gICByZXR1cm4gZnJvbShjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlJTQS1PQUVQXCIsXG4gICAgICAgIG1vZHVsdXNMZW5ndGgsXG4gICAgICAgIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhBcnJheShbMSwgMCwgMV0pLCAvLyA2NTUzN1xuICAgICAgICBoYXNoOiB7IG5hbWU6IFwiU0hBLTI1NlwiIH1cbiAgICAgIH0sXG4gICAgICB0cnVlLCAvLyBFeHRyYWN0YWJsZSBrZXlzXG4gICAgICBbXCJlbmNyeXB0XCIsIFwiZGVjcnlwdFwiXVxuICAgICkpXG5cbiAgfVxuXG4gIGVuY3J5cHREYXRhKHB1YmxpY0tleTogQ3J5cHRvS2V5LCBkYXRhOiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IGVuY29kZWREYXRhID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGRhdGEpXG5cbiAgICByZXR1cm4gZnJvbShjcnlwdG8uc3VidGxlLmVuY3J5cHQoXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiUlNBLU9BRVBcIlxuICAgICAgfSxcbiAgICAgIHB1YmxpY0tleSxcbiAgICAgIGVuY29kZWREYXRhXG4gICAgKSkucGlwZShcbiAgICAgIG1hcChlbmMgPT4gdGhpcy5hcnJheUJ1ZmZlclRvQmFzZTY0KGVuYykpXG4gICAgKVxuXG4gIH1cblxuICBkZWNyeXB0RGF0YShwcml2YXRlS2V5OiBDcnlwdG9LZXksIGVuY3J5cHRlZERhdGE6IHN0cmluZykge1xuXG4gICAgY29uc3QgZW5jU3RyID0gdGhpcy5iYXNlNjRUb0FycmF5QnVmZmVyKGVuY3J5cHRlZERhdGEpXG5cbiAgICByZXR1cm4gZnJvbShjcnlwdG8uc3VidGxlLmRlY3J5cHQoXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiUlNBLU9BRVBcIlxuICAgICAgfSxcbiAgICAgIHByaXZhdGVLZXksXG4gICAgICBlbmNTdHJcbiAgICApLnRoZW4oZGVjcnlwdGVkRGF0YSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGRlY3J5cHRlZERhdGEpXG4gICAgfSkpXG5cbiAgfVxuXG4gIHBlbVRvQXJyYXlCdWZmZXIocGVtOiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG5cbiAgICBjb25zdCBiNjQgPSBwZW0ucmVwbGFjZSgvKC0tLS0tQkVHSU4gKFJTQSApPyhQUklWQVRFfFBVQkxJQykgS0VZLS0tLS18LS0tLS1FTkQgKFJTQSApPyhQUklWQVRFfFBVQkxJQykgS0VZLS0tLS18XFxuKS9nLCAnJylcbiAgICBjb25zdCBiaW5hcnlTdHJpbmcgPSBhdG9iKGI2NClcbiAgICBjb25zdCBsZW4gPSBiaW5hcnlTdHJpbmcubGVuZ3RoXG4gICAgY29uc3QgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGxlbilcbiAgICBjb25zdCB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgdmlld1tpXSA9IGJpbmFyeVN0cmluZy5jaGFyQ29kZUF0KGkpXG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1ZmZlclxuXG4gIH1cblxuICBiYXNlNjRUb0FycmF5QnVmZmVyKGJhc2U2NDogc3RyaW5nKTogQXJyYXlCdWZmZXIge1xuICAgIFxuICAgIGNvbnN0IGJpbmFyeVN0cmluZyA9IGF0b2IoYmFzZTY0KTtcbiAgICBjb25zdCBsZW4gPSBiaW5hcnlTdHJpbmcubGVuZ3RoO1xuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihsZW4pO1xuICAgIGNvbnN0IHZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICB2aWV3W2ldID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfVxuXG4gIGFycmF5QnVmZmVyVG9CYXNlNjQoYnVmZmVyOiBBcnJheUJ1ZmZlcik6IHN0cmluZyB7XG5cbiAgICBsZXQgYmluYXJ5ID0gJyc7XG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICAgIGNvbnN0IGxlbiA9IGJ5dGVzLmJ5dGVMZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdpbmRvdy5idG9hKGJpbmFyeSlcblxuICB9XG5cbiAgYmFzZTY0VG9QRU0oYmFzZTY0S2V5OiBzdHJpbmcsIHB1YmxpY0tleSA9IHRydWUpIHtcblxuICAgIGNvbnN0IGtleVR5cGUgPSAocHVibGljS2V5KSA/ICdQVUJMSUMnIDogJ1BSSVZBVEUnXG5cbiAgICBjb25zdCBoZWFkZXIgPSBgLS0tLS1CRUdJTiAke2tleVR5cGV9IEtFWS0tLS0tXFxuYFxuICAgIGNvbnN0IGZvb3RlciA9IGBcXG4tLS0tLUVORCAke2tleVR5cGV9IEtFWS0tLS0tYFxuXG4gICAgY29uc3Qga2V5Qm9keSA9IGJhc2U2NEtleS5tYXRjaCgvLnsxLDY0fS9nKT8uam9pbihcIlxcblwiKSB8fCBcIlwiXG5cbiAgICByZXR1cm4gaGVhZGVyICsga2V5Qm9keSArIGZvb3RlclxuXG4gIH1cblxuICBwZW1Ub0NyeXB0b0tleShcbiAgICBwZW06IHN0cmluZywgXG4gICAgYWxnb3JpdGhtOiBSc2FIYXNoZWRLZXlHZW5QYXJhbXMsIFxuICAgIGV4dHJhY3RhYmxlOiBib29sZWFuLCBcbiAgICBrZXlVc2FnZXM6IEtleVVzYWdlW10sXG4gICAgZm9ybWF0OiBhbnkgPSBcInBrY3M4XCIgLy9cInJhd1wiIHwgXCJwa2NzOFwiIHwgXCJzcGtpXCJcbiAgICApIHtcbiAgICBcbiAgICBjb25zdCBidWZmZXIgPSB0aGlzLnBlbVRvQXJyYXlCdWZmZXIocGVtKTtcblxuICAgIGNvbnNvbGUubG9nKCdidWZmZXIgZm91bmQgJywgYnVmZmVyKTtcbiAgICBcbiAgICByZXR1cm4gZnJvbShjcnlwdG8uc3VidGxlLmltcG9ydEtleShcbiAgICAgIGZvcm1hdCxcbiAgICAgIGJ1ZmZlcixcbiAgICAgIGFsZ29yaXRobSxcbiAgICAgIGV4dHJhY3RhYmxlLFxuICAgICAga2V5VXNhZ2VzXG4gICAgKSlcblxuICB9XG4gIFxuICAvLyBURVNUSU5HXG5cbiAgdGVzdEdlbmVyYXRlS2V5cygpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGNvbnN0IHRlc3RTZXF1ZW5jZTogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oXCJcIik7XG4gICAgY29uc3QgdGVzdFNlcXVlbmNlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGVzdFNlcXVlbmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRlc3RTZXF1ZW5jZS5uZXh0KFwiVGVzdCBHZW5lcmF0aW5nIEtleXNcIik7XG5cbiAgICAvLyBHRU5FUkFURSBLRVlTXG4gICAgdGhpcy5nZW5lcmF0ZUtleVBhaXIoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcblxuICAgICAgY29uc29sZS5sb2coXCJHRU4tR0VORVJBVEVEIEtFWVM6IFwiLCBkYXRhKVxuXG4gICAgICBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgnc3BraScsIGRhdGEucHVibGljS2V5KVxuICAgICAgLnRoZW4oa2V5ID0+IHtcbiAgICAgICAgY29uc3QgcHVibGljS2V5QmFzZTY0ID0gdGhpcy5hcnJheUJ1ZmZlclRvQmFzZTY0KGtleSk7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiR0VOLUVYUE9SVCBQVUJMSUMgS0VZOiBcIiwgdGhpcy5iYXNlNjRUb1BFTShwdWJsaWNLZXlCYXNlNjQsIHRydWUpKTtcbiAgICAgIH0pXG5cbiAgICAgIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCdwa2NzOCcsIGRhdGEucHJpdmF0ZUtleSlcbiAgICAgIC50aGVuKGtleSA9PiB7XG4gICAgICAgIGNvbnN0IHByaXZhdGVLZXlCYXNlNjQgPSB0aGlzLmFycmF5QnVmZmVyVG9CYXNlNjQoa2V5KTtcbiAgICAgICAgY29uc29sZS5sb2coXCJHRU4tRVhQT1JUIFBSSVZBVEUgS0VZOiBcIiwgdGhpcy5iYXNlNjRUb1BFTShwcml2YXRlS2V5QmFzZTY0LCBmYWxzZSkpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFRFU1QgV0lUSCBHRU5FUkFURUQgS0VZU1xuICAgICAgdGhpcy5lbmNyeXB0RGF0YShkYXRhLnB1YmxpY0tleSwgXCJTYW1wbGUgRGF0YSBoZXJlIC0gTWlrZSBCb25pZmFjaW9cIilcbiAgICAgICAgICAuc3Vic2NyaWJlKChlbmMpID0+IHtcblxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJHRU4tRU5DUllQVD09PjogXCIsIGVuYylcblxuICAgICAgICAgICAgdGhpcy5kZWNyeXB0RGF0YShkYXRhLnByaXZhdGVLZXksIGVuYykuc3Vic2NyaWJlKChkZWMpID0+IHtcbiAgICAgICAgICAgICAgdGVzdFNlcXVlbmNlLm5leHQoJ1Rlc3QgUGFzc2VkJyk7XG4gICAgICAgICAgICAgIHRlc3RTZXF1ZW5jZS5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSlcblxuICAgICAgICAgIH0pXG5cbiAgICB9KVxuICAgIHJldHVybiB0ZXN0U2VxdWVuY2UkO1xuXG4gIH1cblxuICB0ZXN0RGVjcnlwdGlvbldpdGhLZXlzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgdGVzdFNlcXVlbmNlOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihcIlwiKTtcbiAgICBjb25zdCB0ZXN0U2VxdWVuY2UkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0ZXN0U2VxdWVuY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGVzdFNlcXVlbmNlLm5leHQoXCJUZXN0IEdlbmVyYXRpbmcgS2V5c1wiKTtcblxuICAgIGNvbnN0IHByaXZhdGVLZXkgPSBgLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tXG4gICAgTUlJRXZ3SUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2t3Z2dTbEFnRUFBb0lCQVFES1ZCa0NXTmI5ZUhWRlxuICAgIHR3QUE1bWRBeXZYRml4M1dhdmRyc29ZUmt2dENsOG9nREJRZjhmNk4wYlJrREYxemNWSFJyTkFFeW96WER0dURcbiAgICBrRmdTaWl2QkZSRUk3ZmlTM3NPdmR1cTZGYUdYelgwSVk2b2FWTXU4b09QZ0R2QzB5dm9vaFIrMFF4cTJkNmxQXG4gICAgU1B5SGVLUWF4UDRLeHpDSkp6QjFYQWNiZDJlRnpVVUR2MjVtTmx3ZFZrbVc4Rkkvc0F4bkpMZ1BUVzc4ZHpmWFxuICAgIERkZmsrbnhkSXF4VktTTEFUbkwwa01ON2FHSngyNFVvemlvQUlwenZ2dkY1Lys3SFRkMWdpNk5lQ3FyQVlyM2dcbiAgICBpUDM2NEFFMjZDRndGdkhuYWZPOXVOUWhsUSt1aU5uT29JblhCeWZGR1ZQK1JpZFNwZkx6YXhEanM2UkR3cG9sXG4gICAgaDA5OGJ0T05BZ01CQUFFQ2dnRUFBVmhITTJPRDVJa1V0dW93d2NLTmFDVEtHbXJDbFJFM2dNdXpKZUJzU0pFeVxuICAgIHVBUmVVRklMWnlsY25oZWdEeXRTdGkydkRBOVQ3eHF0TzZDVTBwM1Y4THBVODlKTU9QUmIvZGVpckk0VVhTcHhcbiAgICB4Yk55amlyT082Ym5yTmxPV2ZLZXhkUVFzaWtZUHpGMmlNMVNjcHIxdTlaRENIWk9sMVpZU3JrdmU1TXk0Y29QXG4gICAgM0d4NnRUQnFMMGpRQmZjcGY0RVM4QkgzSlNhd1IvTWdxekRTNzQrYkkyVkgra3Z1UEFDMUw0ZkJnYVYzVlV2MFxuICAgIG5GemltNUEzczVWYVhQZ0piRUlnaFA5QmtZR0ZrZVQ5bWEzbmxpRVpXYzk2QXpzbW93Rm4xYXlDdnJOVlBvOVJcbiAgICBFQ0QyTm50dEJpQ0padDNIOTNzUjkrT1RlQThCbHMrYVpHbEtkNW1MQVFLQmdRRHBmOG5JWVVtL1ptbHM3L2xRXG4gICAgUUJVU0dIRVlyYmpOc0VlalFzUGdORHRnMkVWU3hkVWt2VG43V2IrSEV4VGswOVo1Yk52aGFPMjUzMi9GSDl5OFxuICAgIGFoU1hhZmlNWHBmUjJvbHdYZE9COXlYWGw0RjVDMExHbm16R2ltNE9TZVd6QVgwSkNMNDcwS2FTMFFOM0Vtb0dcbiAgICA5RjBZQ2ZNblpYTlR3ZVNTeDR4dmxPNmdnUUtCZ1FEZDAxdUlvbG03ejFESVdDd05FUkFYUDJHRHdjdnh5ellLXG4gICAgWXFKZktEZUh0MnQ2eUl6Wk1Nb3RuUER5K09sY2RHc3BJSUhrQjVhK1NaTjVOdDdEVUtnL01ueU9aM0tiVnE0MVxuICAgIGs3ZFI0S2EzTFJuR2tlc3k3bFNyN2VmMXJmcXV5Ujc1T1hKUWNQV3ZrRmNMdTBUTWlRaHZwdGF0WjhWTitGNG5cbiAgICBmRFFFTFJvdERRS0JnUUNnTitBVVQ3VlQwUWpjQ0JuUlYvZGRVRW9pUGVuRnNZU21ZTVNZemg1RVNJSGcxd0IyXG4gICAgMGlTNzlJdzRPZjZuT1RnOFgxYk01N3ZmUTVLazkwVDJQKy9iS1lxemZxQzhEVEVyV2lZc1VwS3p5VEM5QnQ0TlxuICAgIC9WejBLcjV6clg4Z2dnL3lwLzRvZXZZaFhhdjhBeldmaWdOcTRFRHBNbktjOFRsUEFmKzUvTDUwZ1FLQmdRQzJcbiAgICBtTFBoUGhyMWdVc3pEM2w3YkE4OXc3dUdsTEZIb1FvajlGdEtUeldlcnZwM1FMeklUK1F0TmVJVmI1WFF1RGc1XG4gICAgeTN1QWRFcSs2cHZOak1CRU1KRytLOVhoOXYrZEpQWVVQanNKMkE0RC9Na1o3cVdYOEIyY3hTSksxdUxpbThXMlxuICAgIFMzWnhCdnNHZ0o5V2xkbWxNQ3ZVbEpaa2VXWXRyNFA1cHNDK3EwMi94UUtCZ1FDRElJL2pjVjIrbFJNMmlOVGVcbiAgICB2QmlqWlNhTk1FV09LL1krL0hGSzhHWUtYbkIreE5XaHJtOHJLZ1dHenBESkFVUE1oOVR0K2xlVzlMS0VCdXpGXG4gICAgWTFiR2JsbUdtMXpzUFdwSXgwNUZkdHY5ZU9KbUZuWGJHeklzWXloYWRablBjUU9XaHF4dHBWeFN1dWwwSmM3UVxuICAgIFhOcTRxUGFQWGhiUUFzaGd0eUJ0NzVETWt3PT1cbiAgICAtLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tYFxuICAgIFxuICAgICAgICBjb25zdCBwdWJLZXkgPSBgLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbiAgICBNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXlsUVpBbGpXL1hoMVJiY0FBT1puXG4gICAgUU1yMXhZc2QxbXIzYTdLR0VaTDdRcGZLSUF3VUgvSCtqZEcwWkF4ZGMzRlIwYXpRQk1xTTF3N2JnNUJZRW9vclxuICAgIHdSVVJDTzM0a3Q3RHIzYnF1aFdobDgxOUNHT3FHbFRMdktEajRBN3d0TXI2S0lVZnRFTWF0bmVwVDBqOGgzaWtcbiAgICBHc1QrQ3Njd2lTY3dkVndIRzNkbmhjMUZBNzl1WmpaY0hWWkpsdkJTUDdBTVp5UzREMDF1L0hjMzF3M1g1UHA4XG4gICAgWFNLc1ZTa2l3RTV5OUpERGUyaGljZHVGS000cUFDS2M3Nzd4ZWYvdXgwM2RZSXVqWGdxcXdHSzk0SWo5K3VBQlxuICAgIE51Z2hjQmJ4NTJuenZialVJWlVQcm9qWnpxQ0oxd2NueFJsVC9rWW5VcVh5ODJzUTQ3T2tROEthSllkUGZHN1RcbiAgICBqUUlEQVFBQlxuICAgIC0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLWBcblxuICAgIGNvbnN0IGFsZ29yaXRobTogUnNhSGFzaGVkS2V5R2VuUGFyYW1zID0ge1xuICAgICAgbmFtZTogXCJSU0EtT0FFUFwiLFxuICAgICAgbW9kdWx1c0xlbmd0aDogMjA0OCxcbiAgICAgIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhBcnJheShbMSwgMCwgMV0pLFxuICAgICAgaGFzaDogXCJTSEEtMjU2XCJcbiAgICB9O1xuXG4gICAgLy8gRU5DUllQVFxuICAgIHRoaXMucGVtVG9DcnlwdG9LZXkoXG4gICAgICBwdWJLZXksXG4gICAgICBhbGdvcml0aG0sXG4gICAgICB0cnVlLFxuICAgICAgW1wiZW5jcnlwdFwiXSxcbiAgICAgIFwic3BraVwiXG4gICAgKS5zdWJzY3JpYmUoKGtleVB1YmxpYykgPT4ge1xuXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIlBVQkxJQyBLRVk6IFwiLCBrZXlQdWJsaWMpXG5cbiAgICAgIHRoaXMuZW5jcnlwdERhdGEoa2V5UHVibGljLCBcIlNhbXBsZSBEYXRhIGhlcmUgLSBNaWtlIEJvbmlmYWNpb1wiKVxuICAgICAgLnN1YnNjcmliZSgoc3RyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRU5DUllQVEVEIFNUUklORzogXCIsIHN0cik7XG4gICAgICAgIHRlc3RTZXF1ZW5jZS5uZXh0KCdlbmNyeXB0ZWQgc3RyaW5nIHN1Y2Nlc3MnKTtcbiAgICAgIH0pXG5cbiAgICB9KVxuXG4gICAgY29uc3QgZW5jID0gXCJyN1VPdUVHQlo2amJWVE9JQnV2OWpGT0V0UmllZG1TMjdoZlc0MGs3WEtDVHNRNVZoV3VwMHF1MkJBMkFOWmFHS2lpL3VlaEovUlNQaXlmR2JKNmxlSnJhdDBtQTFoUHFIL1hvZGFCekxNRGlndmRZTTFOU1hGWk1EYTQwT3BMVUlYYlBsQXZ5YmpjR3U3QmFsK0xNQThodEhyRnUvT21NL2ZISTY2eE96enB1WFNZeDBPa1dqdFk4MXJVUTFGRmt2cmt4MmpHRlBaMHArTncvdjNRNGNKbmV0NlY2M3ZDdWVGbEQ3NDlWTWNWWG83cHZ6NEFJUHBCK0lPeTNrYnhhWVRQYWtMVmlvSkVSVTZHRk1YV2tFQ3VSdm9oaFM5Q0VUY09SWnRSVlJrdmhjSGszbHhnSWhmcW9qVUtZZ0Q2SzVkREVMRFBzV0lTK2lURzFYSVFJbGc9PVwiO1xuXG4gICAgLy8gREVDUllQVElPTlxuICAgIHRoaXMucGVtVG9DcnlwdG9LZXkoXG4gICAgICBwcml2YXRlS2V5LFxuICAgICAgYWxnb3JpdGhtLFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJkZWNyeXB0XCJdLFxuICAgICAgXCJwa2NzOFwiXG4gICAgKS5zdWJzY3JpYmUoKGtleSkgPT4ge1xuXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIkRFQ1JZUFQgPT09XCIsIGtleSlcblxuICAgICAgdGhpcy5kZWNyeXB0RGF0YShrZXksIGVuYylcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJFUlJPUjogXCIsIGVycik7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgoc3RyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiREVDUllQVEVEIFNUUklORzogXCIsIHN0cik7XG4gICAgICAgIHRlc3RTZXF1ZW5jZS5uZXh0KCdkZWNyeXB0ZWQgc3RyaW5nIHN1Y2Nlc3MnKTtcbiAgICAgIH0pXG5cbiAgICB9KVxuXG4gICAgcmV0dXJuIHRlc3RTZXF1ZW5jZSQ7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class EncryptionTestService {
|
|
4
|
-
constructor() { }
|
|
5
|
-
isBase64(str) {
|
|
6
|
-
const base64Pattern = /^(?:[A-Z0-9+/]{4})*(?:[A-Z0-9+/]{2}==|[A-Z0-9+/]{3}=)?$/i;
|
|
7
|
-
return base64Pattern.test(str);
|
|
8
|
-
}
|
|
9
|
-
isHexadecimal(str) {
|
|
10
|
-
const hexPattern = /^[0-9a-fA-F]+$/;
|
|
11
|
-
return hexPattern.test(str) && (str.length % 2 === 0);
|
|
12
|
-
}
|
|
13
|
-
hasHighEntropy(str) {
|
|
14
|
-
const uniqueChars = new Set(str).size;
|
|
15
|
-
return uniqueChars > str.length * 0.6;
|
|
16
|
-
}
|
|
17
|
-
isEncrypted(str) {
|
|
18
|
-
if (typeof str !== 'string') {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
if (this.isBase64(str) || this.isHexadecimal(str)) {
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
return this.hasHighEntropy(str);
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EncryptionTestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EncryptionTestService, providedIn: 'root' }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EncryptionTestService, decorators: [{
|
|
30
|
-
type: Injectable,
|
|
31
|
-
args: [{
|
|
32
|
-
providedIn: 'root'
|
|
33
|
-
}]
|
|
34
|
-
}], ctorParameters: () => [] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi10ZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3V0aWxzL2VuY3J5cHRpb24vZW5jcnlwdGlvbi10ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxnQkFBZ0IsQ0FBQztJQUVULFFBQVEsQ0FBQyxHQUFXO1FBQzFCLE1BQU0sYUFBYSxHQUFHLDBEQUEwRCxDQUFDO1FBQ2pGLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQVc7UUFDL0IsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFDcEMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFXO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0QyxPQUFPLFdBQVcsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVc7UUFFckIsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVsQyxDQUFDOytHQS9CVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFbmNyeXB0aW9uVGVzdFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHJpdmF0ZSBpc0Jhc2U2NChzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGJhc2U2NFBhdHRlcm4gPSAvXig/OltBLVowLTkrL117NH0pKig/OltBLVowLTkrL117Mn09PXxbQS1aMC05Ky9dezN9PSk/JC9pO1xuICAgIHJldHVybiBiYXNlNjRQYXR0ZXJuLnRlc3Qoc3RyKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNIZXhhZGVjaW1hbChzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGhleFBhdHRlcm4gPSAvXlswLTlhLWZBLUZdKyQvO1xuICAgIHJldHVybiBoZXhQYXR0ZXJuLnRlc3Qoc3RyKSAmJiAoc3RyLmxlbmd0aCAlIDIgPT09IDApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNIaWdoRW50cm9weShzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHVuaXF1ZUNoYXJzID0gbmV3IFNldChzdHIpLnNpemU7XG4gICAgcmV0dXJuIHVuaXF1ZUNoYXJzID4gc3RyLmxlbmd0aCAqIDAuNjtcbiAgfVxuXG4gIGlzRW5jcnlwdGVkKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0Jhc2U2NChzdHIpIHx8IHRoaXMuaXNIZXhhZGVjaW1hbChzdHIpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYXNIaWdoRW50cm9weShzdHIpO1xuXG4gIH1cblxufVxuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from "./asymmetrical-encryption.service";
|
|
2
|
-
export * from './symmetrical-encryption.service';
|
|
3
|
-
export * from './random';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3V0aWxzL2VuY3J5cHRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYXN5bW1ldHJpY2FsLWVuY3J5cHRpb24uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSAnLi9zeW1tZXRyaWNhbC1lbmNyeXB0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3JhbmRvbSc7XG5cbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
export const Random = () => {
|
|
2
|
-
const typedArray = new Uint8Array(1);
|
|
3
|
-
const randomValue = crypto.getRandomValues(typedArray)[0];
|
|
4
|
-
const randomFloat = randomValue / Math.pow(2, 8);
|
|
5
|
-
return randomFloat;
|
|
6
|
-
};
|
|
7
|
-
export const RandomNumber = (min, max) => {
|
|
8
|
-
return Math.floor(Random() * max) + min;
|
|
9
|
-
};
|
|
10
|
-
export const RandomNumbers = (min, max, length) => {
|
|
11
|
-
const numbers = [];
|
|
12
|
-
for (let i = 0; i < length; i++)
|
|
13
|
-
numbers.push(Math.floor(Random() * max) + min);
|
|
14
|
-
return numbers;
|
|
15
|
-
};
|
|
16
|
-
export const RandomNumbersUnique = (min, max, length) => {
|
|
17
|
-
let count = 0;
|
|
18
|
-
// Adjust the length if it exceeds the number of unique numbers possible in the range
|
|
19
|
-
if (length > (max - min + 1)) {
|
|
20
|
-
console.error('error encountered');
|
|
21
|
-
length = max - min + 1;
|
|
22
|
-
}
|
|
23
|
-
console.log('length', length);
|
|
24
|
-
const numbers = [];
|
|
25
|
-
const maxAttempts = length * 100; // Safeguard to prevent infinite loops
|
|
26
|
-
while (numbers.length < length && count < maxAttempts) {
|
|
27
|
-
const num = Math.floor(Random() * max) + min;
|
|
28
|
-
if (!numbers.includes(num)) {
|
|
29
|
-
numbers.push(num);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (count >= maxAttempts) {
|
|
33
|
-
throw new Error('Maximum attempts exceeded while generating unique numbers');
|
|
34
|
-
}
|
|
35
|
-
return numbers;
|
|
36
|
-
};
|
|
37
|
-
export const RandomStr = () => {
|
|
38
|
-
const typedArray = new Uint8Array(8);
|
|
39
|
-
const array = new Uint32Array(1);
|
|
40
|
-
crypto.getRandomValues(array);
|
|
41
|
-
return array[0].toString(36);
|
|
42
|
-
};
|
|
43
|
-
export const RandomSignature = () => {
|
|
44
|
-
const typedArray = new Uint8Array(8);
|
|
45
|
-
const array = new Uint32Array(1);
|
|
46
|
-
crypto.getRandomValues(array);
|
|
47
|
-
return array[0];
|
|
48
|
-
};
|
|
49
|
-
export const UUID = () => {
|
|
50
|
-
return self.crypto.randomUUID();
|
|
51
|
-
};
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy91dGlscy9lbmNyeXB0aW9uL3JhbmRvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFO0lBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekQsTUFBTSxXQUFXLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2hELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsRUFBRTtJQUN2RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFBO0FBQ3pDLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDeEUsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFBO0lBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxNQUFjLEVBQUUsRUFBRTtJQUM5RSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFZCxxRkFBcUY7SUFDckYsSUFBSSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUIsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBQzdCLE1BQU0sV0FBVyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUUsQ0FBQyxzQ0FBc0M7SUFFekUsT0FBTyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFFdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7UUFFN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLElBQUksV0FBVyxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFO0lBRTVCLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDN0IsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBRTlCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFFbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDaEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM3QixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUVqQixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQTtBQUNqQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUmFuZG9tID0gKCkgPT4ge1xuICBjb25zdCB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoMSlcbiAgY29uc3QgcmFuZG9tVmFsdWUgPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHR5cGVkQXJyYXkpWzBdXG4gIGNvbnN0IHJhbmRvbUZsb2F0ID0gcmFuZG9tVmFsdWUgLyBNYXRoLnBvdygyLCA4KVxuICByZXR1cm4gcmFuZG9tRmxvYXRcbn1cblxuZXhwb3J0IGNvbnN0IFJhbmRvbU51bWJlciA9IChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+IHtcbiAgcmV0dXJuIE1hdGguZmxvb3IoUmFuZG9tKCkgKiBtYXgpICsgbWluXG59XG5cbmV4cG9ydCBjb25zdCBSYW5kb21OdW1iZXJzID0gKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpID0+IHtcbiAgY29uc3QgbnVtYmVyczogbnVtYmVyW10gPSBbXVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSBudW1iZXJzLnB1c2goTWF0aC5mbG9vcihSYW5kb20oKSAqIG1heCkgKyBtaW4pXG4gIHJldHVybiBudW1iZXJzXG59XG5cbmV4cG9ydCBjb25zdCBSYW5kb21OdW1iZXJzVW5pcXVlID0gKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpID0+IHtcbiAgbGV0IGNvdW50ID0gMDtcblxuICAvLyBBZGp1c3QgdGhlIGxlbmd0aCBpZiBpdCBleGNlZWRzIHRoZSBudW1iZXIgb2YgdW5pcXVlIG51bWJlcnMgcG9zc2libGUgaW4gdGhlIHJhbmdlXG4gIGlmIChsZW5ndGggPiAobWF4IC0gbWluICsgMSkpIHtcbiAgICBjb25zb2xlLmVycm9yKCdlcnJvciBlbmNvdW50ZXJlZCcpO1xuICAgIGxlbmd0aCA9IG1heCAtIG1pbiArIDE7XG4gIH1cblxuICBjb25zb2xlLmxvZygnbGVuZ3RoJywgbGVuZ3RoKTtcbiAgY29uc3QgbnVtYmVyczogbnVtYmVyW10gPSBbXTtcbiAgY29uc3QgbWF4QXR0ZW1wdHMgPSBsZW5ndGggKiAxMDAgOyAvLyBTYWZlZ3VhcmQgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wc1xuXG4gIHdoaWxlIChudW1iZXJzLmxlbmd0aCA8IGxlbmd0aCAmJiBjb3VudCA8IG1heEF0dGVtcHRzKSB7XG5cbiAgICBjb25zdCBudW0gPSBNYXRoLmZsb29yKFJhbmRvbSgpICogbWF4KSArIG1pbjtcblxuICAgIGlmICghbnVtYmVycy5pbmNsdWRlcyhudW0pKSB7XG4gICAgICBudW1iZXJzLnB1c2gobnVtKTtcbiAgICB9XG4gIH1cblxuICBpZiAoY291bnQgPj0gbWF4QXR0ZW1wdHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01heGltdW0gYXR0ZW1wdHMgZXhjZWVkZWQgd2hpbGUgZ2VuZXJhdGluZyB1bmlxdWUgbnVtYmVycycpO1xuICB9XG5cbiAgcmV0dXJuIG51bWJlcnM7XG59O1xuXG5leHBvcnQgY29uc3QgUmFuZG9tU3RyID0gKCkgPT4ge1xuXG4gIGNvbnN0IHR5cGVkQXJyYXkgPSBuZXcgVWludDhBcnJheSg4KVxuICBjb25zdCBhcnJheSA9IG5ldyBVaW50MzJBcnJheSgxKVxuICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGFycmF5KVxuICByZXR1cm4gYXJyYXlbMF0udG9TdHJpbmcoMzYpXG5cbn1cblxuZXhwb3J0IGNvbnN0IFJhbmRvbVNpZ25hdHVyZSA9ICgpID0+IHtcblxuICBjb25zdCB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoOClcbiAgY29uc3QgYXJyYXkgPSBuZXcgVWludDMyQXJyYXkoMSlcbiAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhcnJheSlcbiAgcmV0dXJuIGFycmF5WzBdXG5cbn1cblxuZXhwb3J0IGNvbnN0IFVVSUQgPSAoKSA9PiB7XG4gIHJldHVybiBzZWxmLmNyeXB0by5yYW5kb21VVUlEKClcbn1cblxuXG4iXX0=
|