@angular/platform-browser 17.0.0-next.8 → 17.0.0-rc.1
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/animations/async/index.d.ts +1 -1
- package/animations/index.d.ts +1 -14
- package/esm2022/animations/async/src/async_animation_renderer.mjs +3 -2
- package/esm2022/animations/src/module.mjs +8 -8
- package/esm2022/animations/src/private_export.mjs +1 -2
- package/esm2022/animations/src/providers.mjs +4 -7
- package/esm2022/src/browser/meta.mjs +3 -3
- package/esm2022/src/browser/title.mjs +3 -3
- package/esm2022/src/browser/xhr.mjs +3 -3
- package/esm2022/src/browser.mjs +4 -4
- package/esm2022/src/dom/dom_renderer.mjs +19 -19
- package/esm2022/src/dom/events/dom_events.mjs +3 -3
- package/esm2022/src/dom/events/event_manager.mjs +3 -3
- package/esm2022/src/dom/events/hammer_gestures.mjs +10 -10
- package/esm2022/src/dom/events/key_events.mjs +3 -3
- package/esm2022/src/dom/shared_styles_host.mjs +23 -52
- package/esm2022/src/hydration.mjs +1 -4
- package/esm2022/src/security/dom_sanitization_service.mjs +6 -6
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/browser.mjs +4 -4
- package/fesm2022/animations/async.mjs +3 -2
- package/fesm2022/animations/async.mjs.map +1 -1
- package/fesm2022/animations.mjs +14 -111
- package/fesm2022/animations.mjs.map +1 -1
- package/fesm2022/platform-browser.mjs +81 -113
- package/fesm2022/platform-browser.mjs.map +1 -1
- package/fesm2022/testing.mjs +5 -5
- package/index.d.ts +6 -11
- package/package.json +4 -4
- package/testing/index.d.ts +1 -1
- package/esm2022/animations/src/animation_builder.mjs +0 -106
package/fesm2022/testing.mjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Angular v17.0.0-
|
2
|
+
* @license Angular v17.0.0-rc.1
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -26,9 +26,9 @@ const platformBrowserTesting = createPlatformFactory(platformCore, 'browserTesti
|
|
26
26
|
* @publicApi
|
27
27
|
*/
|
28
28
|
class BrowserTestingModule {
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-
|
30
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-
|
31
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: BrowserTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
30
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: BrowserTestingModule, exports: [BrowserModule] }); }
|
31
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: BrowserTestingModule, providers: [
|
32
32
|
{ provide: APP_ID, useValue: 'a' },
|
33
33
|
provideZoneChangeDetection(),
|
34
34
|
{ provide: PlatformLocation, useClass: MockPlatformLocation },
|
@@ -36,7 +36,7 @@ class BrowserTestingModule {
|
|
36
36
|
{ provide: ɵEffectScheduler, useExisting: ɵZoneAwareQueueingScheduler },
|
37
37
|
], imports: [BrowserModule] }); }
|
38
38
|
}
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: BrowserTestingModule, decorators: [{
|
40
40
|
type: NgModule,
|
41
41
|
args: [{
|
42
42
|
exports: [BrowserModule],
|
package/index.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Angular v17.0.0-
|
2
|
+
* @license Angular v17.0.0-rc.1
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -475,7 +475,6 @@ export declare class HammerModule {
|
|
475
475
|
* Helper type to represent a Hydration feature.
|
476
476
|
*
|
477
477
|
* @publicApi
|
478
|
-
* @developerPreview
|
479
478
|
*/
|
480
479
|
export declare interface HydrationFeature<FeatureKind extends HydrationFeatureKind> {
|
481
480
|
ɵkind: FeatureKind;
|
@@ -487,7 +486,6 @@ export declare interface HydrationFeature<FeatureKind extends HydrationFeatureKi
|
|
487
486
|
* @see {@link HydrationFeature}
|
488
487
|
*
|
489
488
|
* @publicApi
|
490
|
-
* @developerPreview
|
491
489
|
*/
|
492
490
|
export declare const enum HydrationFeatureKind {
|
493
491
|
NoHttpTransferCache = 0,
|
@@ -675,7 +673,6 @@ export declare const platformBrowser: (extraProviders?: StaticProvider[]) => Pla
|
|
675
673
|
* @returns A set of providers to enable hydration.
|
676
674
|
*
|
677
675
|
* @publicApi
|
678
|
-
* @developerPreview
|
679
676
|
*/
|
680
677
|
export declare function provideClientHydration(...features: HydrationFeature<HydrationFeatureKind>[]): EnvironmentProviders;
|
681
678
|
|
@@ -694,7 +691,7 @@ export declare function provideProtractorTestingSupport(): Provider[];
|
|
694
691
|
|
695
692
|
/**
|
696
693
|
* A [DI token](guide/glossary#di-token "DI token definition") that indicates whether styles
|
697
|
-
* of destroyed components should be
|
694
|
+
* of destroyed components should be removed from DOM.
|
698
695
|
*
|
699
696
|
* By default, the value is set to `true`.
|
700
697
|
* @publicApi
|
@@ -829,7 +826,6 @@ export declare const VERSION: Version;
|
|
829
826
|
* particular request should be cached.
|
830
827
|
*
|
831
828
|
* @publicApi
|
832
|
-
* @developerPreview
|
833
829
|
*/
|
834
830
|
export declare function withHttpTransferCacheOptions(options: HttpTransferCacheOptions): HydrationFeature<HydrationFeatureKind.HttpTransferCacheOptions>;
|
835
831
|
|
@@ -838,7 +834,6 @@ export declare function withHttpTransferCacheOptions(options: HttpTransferCacheO
|
|
838
834
|
* server and other one on the browser.
|
839
835
|
*
|
840
836
|
* @publicApi
|
841
|
-
* @developerPreview
|
842
837
|
*/
|
843
838
|
export declare function withNoHttpTransferCache(): HydrationFeature<HydrationFeatureKind.NoHttpTransferCache>;
|
844
839
|
|
@@ -884,7 +879,7 @@ export declare class ɵDomRendererFactory2 implements RendererFactory2, OnDestro
|
|
884
879
|
private readonly eventManager;
|
885
880
|
private readonly sharedStylesHost;
|
886
881
|
private readonly appId;
|
887
|
-
private
|
882
|
+
private removeStylesOnCompDestroy;
|
888
883
|
private readonly doc;
|
889
884
|
readonly platformId: Object;
|
890
885
|
readonly ngZone: NgZone;
|
@@ -892,7 +887,7 @@ export declare class ɵDomRendererFactory2 implements RendererFactory2, OnDestro
|
|
892
887
|
private readonly rendererByCompId;
|
893
888
|
private readonly defaultRenderer;
|
894
889
|
private readonly platformIsServer;
|
895
|
-
constructor(eventManager: EventManager, sharedStylesHost: ɵSharedStylesHost, appId: string,
|
890
|
+
constructor(eventManager: EventManager, sharedStylesHost: ɵSharedStylesHost, appId: string, removeStylesOnCompDestroy: boolean, doc: Document, platformId: Object, ngZone: NgZone, nonce?: string | null);
|
896
891
|
createRenderer(element: any, type: RendererType2 | null): Renderer2;
|
897
892
|
private getOrCreateRenderer;
|
898
893
|
ngOnDestroy(): void;
|
@@ -1027,13 +1022,13 @@ export declare class ɵSharedStylesHost implements OnDestroy {
|
|
1027
1022
|
private readonly platformIsServer;
|
1028
1023
|
constructor(doc: Document, appId: string, nonce?: string | null | undefined, platformId?: object);
|
1029
1024
|
addStyles(styles: string[]): void;
|
1030
|
-
|
1031
|
-
visitStyleElement(style: string, callback: (node: HTMLStyleElement) => void): void;
|
1025
|
+
removeStyles(styles: string[]): void;
|
1032
1026
|
ngOnDestroy(): void;
|
1033
1027
|
addHost(hostNode: Node): void;
|
1034
1028
|
removeHost(hostNode: Node): void;
|
1035
1029
|
private getAllStyles;
|
1036
1030
|
private onStyleAdded;
|
1031
|
+
private onStyleRemoved;
|
1037
1032
|
private collectServerRenderedStyles;
|
1038
1033
|
private changeUsageCount;
|
1039
1034
|
private getStyleElement;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@angular/platform-browser",
|
3
|
-
"version": "17.0.0-
|
3
|
+
"version": "17.0.0-rc.1",
|
4
4
|
"description": "Angular - library for using Angular in a web browser",
|
5
5
|
"author": "angular",
|
6
6
|
"license": "MIT",
|
@@ -11,9 +11,9 @@
|
|
11
11
|
"tslib": "^2.3.0"
|
12
12
|
},
|
13
13
|
"peerDependencies": {
|
14
|
-
"@angular/animations": "17.0.0-
|
15
|
-
"@angular/core": "17.0.0-
|
16
|
-
"@angular/common": "17.0.0-
|
14
|
+
"@angular/animations": "17.0.0-rc.1",
|
15
|
+
"@angular/core": "17.0.0-rc.1",
|
16
|
+
"@angular/common": "17.0.0-rc.1"
|
17
17
|
},
|
18
18
|
"peerDependenciesMeta": {
|
19
19
|
"@angular/animations": {
|
package/testing/index.d.ts
CHANGED
@@ -1,106 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @license
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
4
|
-
*
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
7
|
-
*/
|
8
|
-
import { AnimationBuilder, AnimationFactory, sequence } from '@angular/animations';
|
9
|
-
import { DOCUMENT } from '@angular/common';
|
10
|
-
import { Inject, Injectable, RendererFactory2, ViewEncapsulation } from '@angular/core';
|
11
|
-
import * as i0 from "@angular/core";
|
12
|
-
export class BrowserAnimationBuilder extends AnimationBuilder {
|
13
|
-
constructor(rootRenderer, doc) {
|
14
|
-
super();
|
15
|
-
this._nextAnimationId = 0;
|
16
|
-
const typeData = { id: '0', encapsulation: ViewEncapsulation.None, styles: [], data: { animation: [] } };
|
17
|
-
this._renderer = rootRenderer.createRenderer(doc.body, typeData);
|
18
|
-
}
|
19
|
-
build(animation) {
|
20
|
-
const id = this._nextAnimationId.toString();
|
21
|
-
this._nextAnimationId++;
|
22
|
-
const entry = Array.isArray(animation) ? sequence(animation) : animation;
|
23
|
-
issueAnimationCommand(this._renderer, null, id, 'register', [entry]);
|
24
|
-
return new BrowserAnimationFactory(id, this._renderer);
|
25
|
-
}
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: BrowserAnimationBuilder, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
27
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: BrowserAnimationBuilder }); }
|
28
|
-
}
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: BrowserAnimationBuilder, decorators: [{
|
30
|
-
type: Injectable
|
31
|
-
}], ctorParameters: () => [{ type: i0.RendererFactory2 }, { type: Document, decorators: [{
|
32
|
-
type: Inject,
|
33
|
-
args: [DOCUMENT]
|
34
|
-
}] }] });
|
35
|
-
class BrowserAnimationFactory extends AnimationFactory {
|
36
|
-
constructor(_id, _renderer) {
|
37
|
-
super();
|
38
|
-
this._id = _id;
|
39
|
-
this._renderer = _renderer;
|
40
|
-
}
|
41
|
-
create(element, options) {
|
42
|
-
return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);
|
43
|
-
}
|
44
|
-
}
|
45
|
-
export class RendererAnimationPlayer {
|
46
|
-
constructor(id, element, options, _renderer) {
|
47
|
-
this.id = id;
|
48
|
-
this.element = element;
|
49
|
-
this._renderer = _renderer;
|
50
|
-
this.parentPlayer = null;
|
51
|
-
this._started = false;
|
52
|
-
this.totalTime = 0;
|
53
|
-
this._command('create', options);
|
54
|
-
}
|
55
|
-
_listen(eventName, callback) {
|
56
|
-
return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);
|
57
|
-
}
|
58
|
-
_command(command, ...args) {
|
59
|
-
return issueAnimationCommand(this._renderer, this.element, this.id, command, args);
|
60
|
-
}
|
61
|
-
onDone(fn) {
|
62
|
-
this._listen('done', fn);
|
63
|
-
}
|
64
|
-
onStart(fn) {
|
65
|
-
this._listen('start', fn);
|
66
|
-
}
|
67
|
-
onDestroy(fn) {
|
68
|
-
this._listen('destroy', fn);
|
69
|
-
}
|
70
|
-
init() {
|
71
|
-
this._command('init');
|
72
|
-
}
|
73
|
-
hasStarted() {
|
74
|
-
return this._started;
|
75
|
-
}
|
76
|
-
play() {
|
77
|
-
this._command('play');
|
78
|
-
this._started = true;
|
79
|
-
}
|
80
|
-
pause() {
|
81
|
-
this._command('pause');
|
82
|
-
}
|
83
|
-
restart() {
|
84
|
-
this._command('restart');
|
85
|
-
}
|
86
|
-
finish() {
|
87
|
-
this._command('finish');
|
88
|
-
}
|
89
|
-
destroy() {
|
90
|
-
this._command('destroy');
|
91
|
-
}
|
92
|
-
reset() {
|
93
|
-
this._command('reset');
|
94
|
-
this._started = false;
|
95
|
-
}
|
96
|
-
setPosition(p) {
|
97
|
-
this._command('setPosition', p);
|
98
|
-
}
|
99
|
-
getPosition() {
|
100
|
-
return this._renderer.engine.players[+this.id]?.getPosition() ?? 0;
|
101
|
-
}
|
102
|
-
}
|
103
|
-
function issueAnimationCommand(renderer, element, id, command, args) {
|
104
|
-
return renderer.setProperty(element, `@@${id}:${command}`, args);
|
105
|
-
}
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uX2J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMvc3JjL2FuaW1hdGlvbl9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBd0QsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdkksT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFpQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFHckcsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGdCQUFnQjtJQUkzRCxZQUFZLFlBQThCLEVBQW9CLEdBQWE7UUFDekUsS0FBSyxFQUFFLENBQUM7UUFKRixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFLM0IsTUFBTSxRQUFRLEdBQ1YsRUFBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUUsRUFBRSxFQUFDLEVBQ3JFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFzQixDQUFDO0lBQ3hGLENBQUM7SUFFUSxLQUFLLENBQUMsU0FBZ0Q7UUFDN0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FB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LElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVyxDQUFDLENBQVM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckUsQ0FBQztDQUdGO0FBRUQsU0FBUyxxQkFBcUIsQ0FDMUIsUUFBMkIsRUFBRSxPQUFZLEVBQUUsRUFBVSxFQUFFLE9BQWUsRUFBRSxJQUFXO0lBQ3JGLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25GYWN0b3J5LCBBbmltYXRpb25NZXRhZGF0YSwgQW5pbWF0aW9uT3B0aW9ucywgQW5pbWF0aW9uUGxheWVyLCBzZXF1ZW5jZX0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgdHlwZSB7ybVBbmltYXRpb25SZW5kZXJlciBhcyBBbmltYXRpb25SZW5kZXJlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucy9icm93c2VyJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXJGYWN0b3J5MiwgUmVuZGVyZXJUeXBlMiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQnJvd3NlckFuaW1hdGlvbkJ1aWxkZXIgZXh0ZW5kcyBBbmltYXRpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBfbmV4dEFuaW1hdGlvbklkID0gMDtcbiAgcHJpdmF0ZSBfcmVuZGVyZXI6IEFuaW1hdGlvblJlbmRlcmVyO1xuXG4gIGNvbnN0cnVjdG9yKHJvb3RSZW5kZXJlcjogUmVuZGVyZXJGYWN0b3J5MiwgQEluamVjdChET0NVTUVOVCkgZG9jOiBEb2N1bWVudCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgdHlwZURhdGEgPVxuICAgICAgICB7aWQ6ICcwJywgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSwgc3R5bGVzOiBbXSwgZGF0YToge2FuaW1hdGlvbjogW119fSBhc1xuICAgICAgICBSZW5kZXJlclR5cGUyO1xuICAgIHRoaXMuX3JlbmRlcmVyID0gcm9vdFJlbmRlcmVyLmNyZWF0ZVJlbmRlcmVyKGRvYy5ib2R5LCB0eXBlRGF0YSkgYXMgQW5pbWF0aW9uUmVuZGVyZXI7XG4gIH1cblxuICBvdmVycmlkZSBidWlsZChhbmltYXRpb246IEFuaW1hdGlvbk1ldGFkYXRhfEFuaW1hdGlvbk1ldGFkYXRhW10pOiBBbmltYXRpb25GYWN0b3J5IHtcbiAgICBjb25zdCBpZCA9IHRoaXMuX25leHRBbmltYXRpb25JZC50b1N0cmluZygpO1xuICAgIHRoaXMuX25leHRBbmltYXRpb25JZCsrO1xuICAgIGNvbnN0IGVudHJ5ID0gQXJyYXkuaXNBcnJheShhbmltYXRpb24pID8gc2VxdWVuY2UoYW5pbWF0aW9uKSA6IGFuaW1hdGlvbjtcbiAgICBpc3N1ZUFuaW1hdGlvbkNvbW1hbmQodGhpcy5fcmVuZGVyZXIsIG51bGwsIGlkLCAncmVnaXN0ZXInLCBbZW50cnldKTtcbiAgICByZXR1cm4gbmV3IEJyb3dzZXJBbmltYXRpb25GYWN0b3J5KGlkLCB0aGlzLl9yZW5kZXJlcik7XG4gIH1cbn1cblxuY2xhc3MgQnJvd3NlckFuaW1hdGlvbkZhY3RvcnkgZXh0ZW5kcyBBbmltYXRpb25GYWN0b3J5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaWQ6IHN0cmluZywgcHJpdmF0ZSBfcmVuZGVyZXI6IEFuaW1hdGlvblJlbmRlcmVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNyZWF0ZShlbGVtZW50OiBhbnksIG9wdGlvbnM/OiBBbmltYXRpb25PcHRpb25zKTogQW5pbWF0aW9uUGxheWVyIHtcbiAgICByZXR1cm4gbmV3IFJlbmRlcmVyQW5pbWF0aW9uUGxheWVyKHRoaXMuX2lkLCBlbGVtZW50LCBvcHRpb25zIHx8IHt9LCB0aGlzLl9yZW5kZXJlcik7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlbmRlcmVyQW5pbWF0aW9uUGxheWVyIGltcGxlbWVudHMgQW5pbWF0aW9uUGxheWVyIHtcbiAgcHVibGljIHBhcmVudFBsYXllcjogQW5pbWF0aW9uUGxheWVyfG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zdGFydGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwdWJsaWMgaWQ6IHN0cmluZywgcHVibGljIGVsZW1lbnQ6IGFueSwgb3B0aW9uczogQW5pbWF0aW9uT3B0aW9ucyxcbiAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBBbmltYXRpb25SZW5kZXJlcikge1xuICAgIHRoaXMuX2NvbW1hbmQoJ2NyZWF0ZScsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuKGV2ZW50TmFtZTogc3RyaW5nLCBjYWxsYmFjazogKGV2ZW50OiBhbnkpID0+IGFueSk6ICgpID0+IHZvaWQge1xuICAgIHJldHVybiB0aGlzLl9yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50LCBgQEAke3RoaXMuaWR9OiR7ZXZlbnROYW1lfWAsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbW1hbmQoY29tbWFuZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIHJldHVybiBpc3N1ZUFuaW1hdGlvbkNvbW1hbmQodGhpcy5fcmVuZGVyZXIsIHRoaXMuZWxlbWVudCwgdGhpcy5pZCwgY29tbWFuZCwgYXJncyk7XG4gIH1cblxuICBvbkRvbmUoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9saXN0ZW4oJ2RvbmUnLCBmbik7XG4gIH1cblxuICBvblN0YXJ0KGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fbGlzdGVuKCdzdGFydCcsIGZuKTtcbiAgfVxuXG4gIG9uRGVzdHJveShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX2xpc3RlbignZGVzdHJveScsIGZuKTtcbiAgfVxuXG4gIGluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fY29tbWFuZCgnaW5pdCcpO1xuICB9XG5cbiAgaGFzU3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZDtcbiAgfVxuXG4gIHBsYXkoKTogdm9pZCB7XG4gICAgdGhpcy5fY29tbWFuZCgncGxheScpO1xuICAgIHRoaXMuX3N0YXJ0ZWQgPSB0cnVlO1xuICB9XG5cbiAgcGF1c2UoKTogdm9pZCB7XG4gICAgdGhpcy5fY29tbWFuZCgncGF1c2UnKTtcbiAgfVxuXG4gIHJlc3RhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5fY29tbWFuZCgncmVzdGFydCcpO1xuICB9XG5cbiAgZmluaXNoKCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbW1hbmQoJ2ZpbmlzaCcpO1xuICB9XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb21tYW5kKCdkZXN0cm95Jyk7XG4gIH1cblxuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb21tYW5kKCdyZXNldCcpO1xuICAgIHRoaXMuX3N0YXJ0ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHNldFBvc2l0aW9uKHA6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2NvbW1hbmQoJ3NldFBvc2l0aW9uJywgcCk7XG4gIH1cblxuICBnZXRQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yZW5kZXJlci5lbmdpbmUucGxheWVyc1srdGhpcy5pZF0/LmdldFBvc2l0aW9uKCkgPz8gMDtcbiAgfVxuXG4gIHB1YmxpYyB0b3RhbFRpbWUgPSAwO1xufVxuXG5mdW5jdGlvbiBpc3N1ZUFuaW1hdGlvbkNvbW1hbmQoXG4gICAgcmVuZGVyZXI6IEFuaW1hdGlvblJlbmRlcmVyLCBlbGVtZW50OiBhbnksIGlkOiBzdHJpbmcsIGNvbW1hbmQ6IHN0cmluZywgYXJnczogYW55W10pOiBhbnkge1xuICByZXR1cm4gcmVuZGVyZXIuc2V0UHJvcGVydHkoZWxlbWVudCwgYEBAJHtpZH06JHtjb21tYW5kfWAsIGFyZ3MpO1xufVxuIl19
|