UNPKG

@ogs-gmbh/ngx-translate

Version:

A lightweight, REST-based Angular i18n library designed for seamless internationalization with minimal setup. It supports dynamic language switching & flexible translation management via RESTful APIs.

58 lines 16 kB
import { APP_INITIALIZER } from "@angular/core"; import { HttpClient } from "@angular/common/http"; import { PreloadingStrategies } from "../enums/preloading-strategies.enum"; import { TRANSLATION_PRELOAD_TOKEN } from "../tokens/preload.token"; import { TranslationHttpSerivce } from "../services/translation-http.serivce"; import { TranslationService } from "../services/translation.service"; import { TranslationStoreService } from "../services/translation-store.service"; const handleInitializationStrategy = (httpClient, translationHttpService, translationStoreService, translationSerivce, scopes) => () => void translationSerivce.preloadByCurrentLocale(httpClient, translationStoreService, translationHttpService, scopes).subscribe(); const handleRuntimeStrategy = (httpClient, translationHttpService, translationStoreService, translationSerivce, scopes) => () => { translationSerivce.preloadByCurrentLocale(httpClient, translationStoreService, translationHttpService, scopes).subscribe(); return translationSerivce; }; export const provideTranslationPreload = (preloadProvider) => { switch (preloadProvider.preloadingStrategy) { case PreloadingStrategies.INITIALIZATION: { return { provide: APP_INITIALIZER, useFactory: (httpClient, translationHttpService, translationStoreService, translationSerivce) => handleInitializationStrategy(httpClient, translationHttpService, translationStoreService, translationSerivce, preloadProvider.scopes), deps: [HttpClient, TranslationHttpSerivce, TranslationStoreService, TranslationService], multi: true }; } case PreloadingStrategies.RUNTIME: { return { provide: TRANSLATION_PRELOAD_TOKEN, useFactory: (httpClient, translationHttpService, translationStoreService, translationSerivce) => handleRuntimeStrategy(httpClient, translationHttpService, translationStoreService, translationSerivce, preloadProvider.scopes), deps: [HttpClient, TranslationHttpSerivce, TranslationStoreService, TranslationService], multi: false }; } } }; const handleReactiveInitializationStrategy = (httpClient, translationHttpService, translationStoreService, translationSerivce, scopes) => () => void translationSerivce.preloadByLocale(httpClient, translationStoreService, translationHttpService, scopes).subscribe(); const handleReactiveRuntimeStrategy = (httpClient, translationHttpService, translationStoreService, translationSerivce, scopes) => () => { translationSerivce.preloadByLocale(httpClient, translationStoreService, translationHttpService, scopes).subscribe(); return translationSerivce; }; export const provideTranslationPreloadReactive = (preloadProvider) => { switch (preloadProvider.preloadingStrategy) { case PreloadingStrategies.INITIALIZATION: { return { provide: APP_INITIALIZER, useFactory: (httpClient, translationHttpService, translationStoreService, translationSerivce) => handleReactiveInitializationStrategy(httpClient, translationHttpService, translationStoreService, translationSerivce, preloadProvider.scopes), deps: [HttpClient, TranslationHttpSerivce, TranslationStoreService, TranslationService], multi: true }; } case PreloadingStrategies.RUNTIME: { return { provide: TRANSLATION_PRELOAD_TOKEN, useFactory: (httpClient, translationHttpService, translationStoreService, translationSerivce) => handleReactiveRuntimeStrategy(httpClient, translationHttpService, translationStoreService, translationSerivce, preloadProvider.scopes), deps: [HttpClient, TranslationHttpSerivce, TranslationStoreService, TranslationService], multi: false }; } } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvcHJlbG9hZC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHaEYsTUFBTSw0QkFBNEIsR0FBRyxDQUNuQyxVQUFnQyxFQUNoQyxzQkFBd0QsRUFDeEQsdUJBQTBELEVBQzFELGtCQUFnRCxFQUNoRCxNQUFzRCxFQUMxQyxFQUFFLENBQUMsR0FBUyxFQUFFLENBQUMsS0FBSyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFHN0osTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixVQUFnQyxFQUNoQyxzQkFBd0QsRUFDeEQsdUJBQTBELEVBQzFELGtCQUFnRCxFQUNoRCxNQUFzRCxFQUNsQixFQUFFLENBQUMsR0FBaUMsRUFBRTtJQUMxRSxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFM0gsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFD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Q1YsVUFBZ0MsRUFDaEMsc0JBQXdELEVBQ3hELHVCQUEwRCxFQUMxRCxrQkFBZ0QsRUFDaEQsRUFBRSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDO2dCQUMzSSxJQUFJLEVBQUUsQ0FBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLENBQUU7Z0JBQ3pGLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBGYWN0b3J5UHJvdmlkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgUHJlbG9hZGluZ1N0cmF0ZWdpZXMgfSBmcm9tIFwiLi4vZW51bXMvcHJlbG9hZGluZy1zdHJhdGVnaWVzLmVudW1cIjtcbmltcG9ydCB7IFRSQU5TTEFUSU9OX1BSRUxPQURfVE9LRU4gfSBmcm9tIFwiLi4vdG9rZW5zL3ByZWxvYWQudG9rZW5cIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uSHR0cFNlcml2Y2UgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJhbnNsYXRpb24taHR0cC5zZXJpdmNlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblByZWxvYWRQcm92aWRlciB9IGZyb20gXCIuLi90eXBlcy9wcm92aWRlci50eXBlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TdG9yZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJhbnNsYXRpb24tc3RvcmUuc2VydmljZVwiO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHNlc2xpbnQvbWF4LXBhcmFtcyAqL1xuY29uc3QgaGFuZGxlSW5pdGlhbGl6YXRpb25TdHJhdGVneSA9IChcbiAgaHR0cENsaWVudDogUmVhZG9ubHk8SHR0cENsaWVudD4sXG4gIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uSHR0cFNlcml2Y2U+LFxuICB0cmFuc2xhdGlvblN0b3JlU2VydmljZTogUmVhZG9ubHk8VHJhbnNsYXRpb25TdG9yZVNlcnZpY2U+LFxuICB0cmFuc2xhdGlvblNlcml2Y2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT4sXG4gIHNjb3BlczogUmVhZG9ubHk8QXJyYXk8c3RyaW5nIHwgbnVsbD4gfCBzdHJpbmcgfCBudWxsPlxuKTogKCkgPT4gdm9pZCA9PiAoKTogdm9pZCA9PiB2b2lkIHRyYW5zbGF0aW9uU2VyaXZjZS5wcmVsb2FkQnlDdXJyZW50TG9jYWxlKGh0dHBDbGllbnQsIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlLCBzY29wZXMpLnN1YnNjcmliZSgpO1xuLyogZXNsaW50LWVuYWJsZSBAdHNlc2xpbnQvbWF4LXBhcmFtcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHRzZXNsaW50L21heC1wYXJhbXMgKi9cbmNvbnN0IGhhbmRsZVJ1bnRpbWVTdHJhdGVneSA9IChcbiAgaHR0cENsaWVudDogUmVhZG9ubHk8SHR0cENsaWVudD4sXG4gIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uSHR0cFNlcml2Y2U+LFxuICB0cmFuc2xhdGlvblN0b3JlU2VydmljZTogUmVhZG9ubHk8VHJhbnNsYXRpb25TdG9yZVNlcnZpY2U+LFxuICB0cmFuc2xhdGlvblNlcml2Y2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT4sXG4gIHNjb3BlczogUmVhZG9ubHk8QXJyYXk8c3RyaW5nIHwgbnVsbD4gfCBzdHJpbmcgfCBudWxsPlxuKTogKCkgPT4gUmVhZG9ubHk8VHJhbnNsYXRpb25TZXJ2aWNlPiA9PiAoKTogUmVhZG9ubHk8VHJhbnNsYXRpb25TZXJ2aWNlPiA9PiB7XG4gIHRyYW5zbGF0aW9uU2VyaXZjZS5wcmVsb2FkQnlDdXJyZW50TG9jYWxlKGh0dHBDbGllbnQsIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlLCBzY29wZXMpLnN1YnNjcmliZSgpO1xuXG4gIHJldHVybiB0cmFuc2xhdGlvblNlcml2Y2U7XG59O1xuLyogZXNsaW50LWVuYWJsZSBAdHNlc2xpbnQvbWF4LXBhcmFtcyAqL1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZVRyYW5zbGF0aW9uUHJlbG9hZCA9IChwcmVsb2FkUHJvdmlkZXI6IFJlYWRvbmx5PFRyYW5zbGF0aW9uUHJlbG9hZFByb3ZpZGVyPik6IEZhY3RvcnlQcm92aWRlciA9PiB7XG4gIHN3aXRjaCAocHJlbG9hZFByb3ZpZGVyLnByZWxvYWRpbmdTdHJhdGVneSkge1xuICAgIGNhc2UgUHJlbG9hZGluZ1N0cmF0ZWdpZXMuSU5JVElBTElaQVRJT046IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICAgIGh0dHBDbGllbnQ6IFJlYWRvbmx5PEh0dHBDbGllbnQ+LFxuICAgICAgICAgIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uSHR0cFNlcml2Y2U+LFxuICAgICAgICAgIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlOiBSZWFkb25seTxUcmFuc2xhdGlvblN0b3JlU2VydmljZT4sXG4gICAgICAgICAgdHJhbnNsYXRpb25TZXJpdmNlOiBSZWFkb25seTxUcmFuc2xhdGlvblNlcnZpY2U+XG4gICAgICAgICk6ICgpID0+IHZvaWQgPT4gaGFuZGxlSW5pdGlhbGl6YXRpb25TdHJhdGVneShodHRwQ2xpZW50LCB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlLCB0cmFuc2xhdGlvblN0b3JlU2VydmljZSwgdHJhbnNsYXRpb25TZXJpdmNlLCBwcmVsb2FkUHJvdmlkZXIuc2NvcGVzKSxcbiAgICAgICAgZGVwczogWyBIdHRwQ2xpZW50LCBUcmFuc2xhdGlvbkh0dHBTZXJpdmNlLCBUcmFuc2xhdGlvblN0b3JlU2VydmljZSwgVHJhbnNsYXRpb25TZXJ2aWNlIF0sXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgUHJlbG9hZGluZ1N0cmF0ZWdpZXMuUlVOVElNRToge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogVFJBTlNMQVRJT05fUFJFTE9BRF9UT0tFTixcbiAgICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICAgIGh0dHBDbGllbnQ6IFJlYWRvbmx5PEh0dHBDbGllbnQ+LFxuICAgICAgICAgIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uSHR0cFNlcml2Y2U+LFxuICAgICAgICAgIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlOiBSZWFkb25seTxUcmFuc2xhdGlvblN0b3JlU2VydmljZT4sXG4gICAgICAgICAgdHJhbnNsYXRpb25TZXJpdmNlOiBSZWFkb25seTxUcmFuc2xhdGlvblNlcnZpY2U+XG4gICAgICAgICk6ICgpID0+IHZvaWQgPT4gaGFuZGxlUnVudGltZVN0cmF0ZWd5KGh0dHBDbGllbnQsIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2UsIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCB0cmFuc2xhdGlvblNlcml2Y2UsIHByZWxvYWRQcm92aWRlci5zY29wZXMpLFxuICAgICAgICBkZXBzOiBbIEh0dHBDbGllbnQsIFRyYW5zbGF0aW9uSHR0cFNlcml2Y2UsIFRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCBUcmFuc2xhdGlvblNlcnZpY2UgXSxcbiAgICAgICAgbXVsdGk6IGZhbHNlXG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuLyogZXNsaW50LWRpc2FibGUgQHRzZXNsaW50L21heC1wYXJhbXMgKi9cbmNvbnN0IGhhbmRsZVJlYWN0aXZlSW5pdGlhbGl6YXRpb25TdHJhdGVneSA9IChcbiAgaHR0cENsaWVudDogUmVhZG9ubHk8SHR0cENsaWVudD4sXG4gIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uSHR0cFNlcml2Y2U+LFxuICB0cmFuc2xhdGlvblN0b3JlU2VydmljZTogUmVhZG9ubHk8VHJhbnNsYXRpb25TdG9yZVNlcnZpY2U+LFxuICB0cmFuc2xhdGlvblNlcml2Y2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT4sXG4gIHNjb3BlczogUmVhZG9ubHk8QXJyYXk8c3RyaW5nIHwgbnVsbD4gfCBzdHJpbmcgfCBudWxsPlxuKTogKCkgPT4gdm9pZCA9PiAoKTogdm9pZCA9PiB2b2lkIHRyYW5zbGF0aW9uU2VyaXZjZS5wcmVsb2FkQnlMb2NhbGUoaHR0cENsaWVudCwgdHJhbnNsYXRpb25TdG9yZVNlcnZpY2UsIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2UsIHNjb3Blcykuc3Vic2NyaWJlKCk7XG4vKiBlc2xpbnQtZW5hYmxlIEB0c2VzbGludC9tYXgtcGFyYW1zICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHNlc2xpbnQvbWF4LXBhcmFtcyAqL1xuY29uc3QgaGFuZGxlUmVhY3RpdmVSdW50aW1lU3RyYXRlZ3kgPSAoXG4gIGh0dHBDbGllbnQ6IFJlYWRvbmx5PEh0dHBDbGllbnQ+LFxuICB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlOiBSZWFkb25seTxUcmFuc2xhdGlvbkh0dHBTZXJpdmNlPixcbiAgdHJhbnNsYXRpb25TdG9yZVNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlPixcbiAgdHJhbnNsYXRpb25TZXJpdmNlOiBSZWFkb25seTxUcmFuc2xhdGlvblNlcnZpY2U+LFxuICBzY29wZXM6IFJlYWRvbmx5PEFycmF5PHN0cmluZyB8IG51bGw+IHwgc3RyaW5nIHwgbnVsbD5cbik6ICgpID0+IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT4gPT4gKCk6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT4gPT4ge1xuICB0cmFuc2xhdGlvblNlcml2Y2UucHJlbG9hZEJ5TG9jYWxlKGh0dHBDbGllbnQsIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlLCBzY29wZXMpLnN1YnNjcmliZSgpO1xuXG4gIHJldHVybiB0cmFuc2xhdGlvblNlcml2Y2U7XG59O1xuLyogZXNsaW50LWVuYWJsZSBAdHNlc2xpbnQvbWF4LXBhcmFtcyAqL1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZVRyYW5zbGF0aW9uUHJlbG9hZFJlYWN0aXZlID0gKHByZWxvYWRQcm92aWRlcjogUmVhZG9ubHk8VHJhbnNsYXRpb25QcmVsb2FkUHJvdmlkZXI+KTogRmFjdG9yeVByb3ZpZGVyID0+IHtcbiAgc3dpdGNoIChwcmVsb2FkUHJvdmlkZXIucHJlbG9hZGluZ1N0cmF0ZWd5KSB7XG4gICAgY2FzZSBQcmVsb2FkaW5nU3RyYXRlZ2llcy5JTklUSUFMSVpBVElPTjoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgICAgaHR0cENsaWVudDogUmVhZG9ubHk8SHR0cENsaWVudD4sXG4gICAgICAgICAgdHJhbnNsYXRpb25IdHRwU2VydmljZTogUmVhZG9ubHk8VHJhbnNsYXRpb25IdHRwU2VyaXZjZT4sXG4gICAgICAgICAgdHJhbnNsYXRpb25TdG9yZVNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlPixcbiAgICAgICAgICB0cmFuc2xhdGlvblNlcml2Y2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT5cbiAgICAgICAgKSA9PiBoYW5kbGVSZWFjdGl2ZUluaXRpYWxpemF0aW9uU3RyYXRlZ3koaHR0cENsaWVudCwgdHJhbnNsYXRpb25IdHRwU2VydmljZSwgdHJhbnNsYXRpb25TdG9yZVNlcnZpY2UsIHRyYW5zbGF0aW9uU2VyaXZjZSwgcHJlbG9hZFByb3ZpZGVyLnNjb3BlcyksXG4gICAgICAgIGRlcHM6IFsgSHR0cENsaWVudCwgVHJhbnNsYXRpb25IdHRwU2VyaXZjZSwgVHJhbnNsYXRpb25TdG9yZVNlcnZpY2UsIFRyYW5zbGF0aW9uU2VydmljZSBdLFxuICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIFByZWxvYWRpbmdTdHJhdGVnaWVzLlJVTlRJTUU6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IFRSQU5TTEFUSU9OX1BSRUxPQURfVE9LRU4sXG4gICAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgICBodHRwQ2xpZW50OiBSZWFkb25seTxIdHRwQ2xpZW50PixcbiAgICAgICAgICB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlOiBSZWFkb25seTxUcmFuc2xhdGlvbkh0dHBTZXJpdmNlPixcbiAgICAgICAgICB0cmFuc2xhdGlvblN0b3JlU2VydmljZTogUmVhZG9ubHk8VHJhbnNsYXRpb25TdG9yZVNlcnZpY2U+LFxuICAgICAgICAgIHRyYW5zbGF0aW9uU2VyaXZjZTogUmVhZG9ubHk8VHJhbnNsYXRpb25TZXJ2aWNlPlxuICAgICAgICApID0+IGhhbmRsZVJlYWN0aXZlUnVudGltZVN0cmF0ZWd5KGh0dHBDbGllbnQsIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2UsIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCB0cmFuc2xhdGlvblNlcml2Y2UsIHByZWxvYWRQcm92aWRlci5zY29wZXMpLFxuICAgICAgICBkZXBzOiBbIEh0dHBDbGllbnQsIFRyYW5zbGF0aW9uSHR0cFNlcml2Y2UsIFRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCBUcmFuc2xhdGlvblNlcnZpY2UgXSxcbiAgICAgICAgbXVsdGk6IGZhbHNlXG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuIl19