@angular/platform-browser-dynamic 13.1.0-next.2 → 13.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","sources":["../../../../../../packages/platform-browser-dynamic/testing/src/dom_test_component_renderer.ts","../../../../../../packages/platform-browser-dynamic/testing/src/metadata_overrider.ts","../../../../../../packages/platform-browser-dynamic/testing/src/compiler_factory.ts","../../../../../../packages/platform-browser-dynamic/testing/src/platform_core_dynamic_testing.ts","../../../../../../packages/platform-browser-dynamic/testing/src/private_export_testing.ts","../../../../../../packages/platform-browser-dynamic/testing/src/testing.ts","../../../../../../packages/platform-browser-dynamic/testing/public_api.ts","../../../../../../packages/platform-browser-dynamic/testing/index.ts","../../../../../../packages/platform-browser-dynamic/testing/testing.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\nimport {TestComponentRenderer} from '@angular/core/testing';\n\n/**\n * A DOM based implementation of the TestComponentRenderer.\n */\n@Injectable()\nexport class DOMTestComponentRenderer extends TestComponentRenderer {\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n }\n\n override insertRootElement(rootElId: string) {\n this.removeAllRootElements();\n const rootElement = getDOM().getDefaultDocument().createElement('div');\n rootElement.setAttribute('id', rootElId);\n this._doc.body.appendChild(rootElement);\n }\n\n override removeAllRootElements() {\n // TODO(juliemr): can/should this be optional?\n const oldRoots = this._doc.querySelectorAll('[id^=root]');\n for (let i = 0; i < oldRoots.length; i++) {\n getDOM().remove(oldRoots[i]);\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// `MetadataOverrider` has been moved to core/testing to allow using it from the render3 TestBed\nexport {ɵMetadataOverrider as MetadataOverrider} from '@angular/core/testing';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CompileReflector, DirectiveResolver, ERROR_COMPONENT_TYPE, NgModuleResolver, PipeResolver} from '@angular/compiler';\nimport {MockDirectiveResolver, MockNgModuleResolver, MockPipeResolver} from '@angular/compiler/testing';\nimport {CompilerFactory, CompilerOptions, Component, ComponentFactory, Directive, Injector, ModuleWithComponentFactories, NgModule, NgModuleFactory, Pipe, StaticProvider, Type, ɵstringify as stringify} from '@angular/core';\nimport {MetadataOverride, ɵTestingCompiler as TestingCompiler, ɵTestingCompilerFactory as TestingCompilerFactory} from '@angular/core/testing';\nimport {ɵCompilerImpl as CompilerImpl} from '@angular/platform-browser-dynamic';\n\nimport {MetadataOverrider} from './metadata_overrider';\n\nexport const COMPILER_PROVIDERS: StaticProvider[] = [\n {provide: MockPipeResolver, deps: [CompileReflector]},\n {provide: PipeResolver, useExisting: MockPipeResolver},\n {provide: MockDirectiveResolver, deps: [CompileReflector]},\n {provide: DirectiveResolver, useExisting: MockDirectiveResolver},\n {provide: MockNgModuleResolver, deps: [CompileReflector]},\n {provide: NgModuleResolver, useExisting: MockNgModuleResolver},\n];\n\nexport class TestingCompilerFactoryImpl implements TestingCompilerFactory {\n constructor(private _injector: Injector, private _compilerFactory: CompilerFactory) {}\n\n createTestingCompiler(options: CompilerOptions[]): TestingCompiler {\n const compiler = <CompilerImpl>this._compilerFactory.createCompiler(options);\n return new TestingCompilerImpl(\n compiler, compiler.injector.get(MockDirectiveResolver),\n compiler.injector.get(MockPipeResolver), compiler.injector.get(MockNgModuleResolver));\n }\n}\n\nexport class TestingCompilerImpl implements TestingCompiler {\n private _overrider = new MetadataOverrider();\n constructor(\n private _compiler: CompilerImpl, private _directiveResolver: MockDirectiveResolver,\n private _pipeResolver: MockPipeResolver, private _moduleResolver: MockNgModuleResolver) {}\n get injector(): Injector {\n return this._compiler.injector;\n }\n\n compileModuleSync<T>(moduleType: Type<T>): NgModuleFactory<T> {\n return this._compiler.compileModuleSync(moduleType);\n }\n\n compileModuleAsync<T>(moduleType: Type<T>): Promise<NgModuleFactory<T>> {\n return this._compiler.compileModuleAsync(moduleType);\n }\n compileModuleAndAllComponentsSync<T>(moduleType: Type<T>): ModuleWithComponentFactories<T> {\n return this._compiler.compileModuleAndAllComponentsSync(moduleType);\n }\n\n compileModuleAndAllComponentsAsync<T>(moduleType: Type<T>):\n Promise<ModuleWithComponentFactories<T>> {\n return this._compiler.compileModuleAndAllComponentsAsync(moduleType);\n }\n\n getComponentFactory<T>(component: Type<T>): ComponentFactory<T> {\n return this._compiler.getComponentFactory(component);\n }\n\n checkOverrideAllowed(type: Type<any>) {\n if (this._compiler.hasAotSummary(type)) {\n throw new Error(`${stringify(type)} was AOT compiled, so its metadata cannot be changed.`);\n }\n }\n\n overrideModule(ngModule: Type<any>, override: MetadataOverride<NgModule>): void {\n this.checkOverrideAllowed(ngModule);\n const oldMetadata = this._moduleResolver.resolve(ngModule, false);\n this._moduleResolver.setNgModule(\n ngModule, this._overrider.overrideMetadata(NgModule, oldMetadata, override));\n this.clearCacheFor(ngModule);\n }\n overrideDirective(directive: Type<any>, override: MetadataOverride<Directive>): void {\n this.checkOverrideAllowed(directive);\n const oldMetadata = this._directiveResolver.resolve(directive, false);\n this._directiveResolver.setDirective(\n directive, this._overrider.overrideMetadata(Directive, oldMetadata!, override));\n this.clearCacheFor(directive);\n }\n overrideComponent(component: Type<any>, override: MetadataOverride<Component>): void {\n this.checkOverrideAllowed(component);\n const oldMetadata = this._directiveResolver.resolve(component, false);\n this._directiveResolver.setDirective(\n component, this._overrider.overrideMetadata(Component, oldMetadata!, override));\n this.clearCacheFor(component);\n }\n overridePipe(pipe: Type<any>, override: MetadataOverride<Pipe>): void {\n this.checkOverrideAllowed(pipe);\n const oldMetadata = this._pipeResolver.resolve(pipe, false);\n this._pipeResolver.setPipe(pipe, this._overrider.overrideMetadata(Pipe, oldMetadata, override));\n this.clearCacheFor(pipe);\n }\n loadAotSummaries(summaries: () => any[]) {\n this._compiler.loadAotSummaries(summaries);\n }\n clearCache(): void {\n this._compiler.clearCache();\n }\n clearCacheFor(type: Type<any>) {\n this._compiler.clearCacheFor(type);\n }\n\n getComponentFromError(error: Error) {\n return (error as any)[ERROR_COMPONENT_TYPE] || null;\n }\n\n getModuleId(moduleType: Type<any>): string|undefined {\n return this._moduleResolver.resolve(moduleType, true).id;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {COMPILER_OPTIONS, CompilerFactory, createPlatformFactory, Injector, PlatformRef} from '@angular/core';\nimport {ɵTestingCompilerFactory as TestingCompilerFactory} from '@angular/core/testing';\nimport {ɵplatformCoreDynamic as platformCoreDynamic} from '@angular/platform-browser-dynamic';\n\nimport {COMPILER_PROVIDERS, TestingCompilerFactoryImpl} from './compiler_factory';\n\n/**\n * Platform for dynamic tests\n *\n * @publicApi\n */\nexport const platformCoreDynamicTesting: (extraProviders?: any[]) => PlatformRef =\n createPlatformFactory(platformCoreDynamic, 'coreDynamicTesting', [\n {provide: COMPILER_OPTIONS, useValue: {providers: COMPILER_PROVIDERS}, multi: true}, {\n provide: TestingCompilerFactory,\n useClass: TestingCompilerFactoryImpl,\n deps: [Injector, CompilerFactory]\n }\n ]);\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {DOMTestComponentRenderer as ɵDOMTestComponentRenderer} from './dom_test_component_renderer';\nexport {platformCoreDynamicTesting as ɵplatformCoreDynamicTesting} from './platform_core_dynamic_testing';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {createPlatformFactory, NgModule, PlatformRef, StaticProvider} from '@angular/core';\nimport {TestComponentRenderer} from '@angular/core/testing';\nimport {ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS as INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS} from '@angular/platform-browser-dynamic';\nimport {BrowserTestingModule} from '@angular/platform-browser/testing';\n\nimport {DOMTestComponentRenderer} from './dom_test_component_renderer';\nimport {platformCoreDynamicTesting} from './platform_core_dynamic_testing';\n\nexport * from './private_export_testing';\n\n/**\n * @publicApi\n */\nexport const platformBrowserDynamicTesting = createPlatformFactory(\n platformCoreDynamicTesting, 'browserDynamicTesting',\n INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS);\n\n/**\n * NgModule for testing.\n *\n * @publicApi\n */\n@NgModule({\n exports: [BrowserTestingModule],\n providers: [\n {provide: TestComponentRenderer, useClass: DOMTestComponentRenderer},\n ]\n})\nexport class BrowserDynamicTestingModule {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/testing';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getDOM","MetadataOverrider","stringify","platformCoreDynamic","TestingCompilerFactory","INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS"],"mappings":"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"}
1
+ {"version":3,"file":"testing.mjs","sources":["../../../../../../packages/platform-browser-dynamic/testing/src/dom_test_component_renderer.ts","../../../../../../packages/platform-browser-dynamic/testing/src/platform_core_dynamic_testing.ts","../../../../../../packages/platform-browser-dynamic/testing/src/private_export_testing.ts","../../../../../../packages/platform-browser-dynamic/testing/src/testing.ts","../../../../../../packages/platform-browser-dynamic/testing/public_api.ts","../../../../../../packages/platform-browser-dynamic/testing/index.ts","../../../../../../packages/platform-browser-dynamic/testing/testing.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\nimport {TestComponentRenderer} from '@angular/core/testing';\n\n/**\n * A DOM based implementation of the TestComponentRenderer.\n */\n@Injectable()\nexport class DOMTestComponentRenderer extends TestComponentRenderer {\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n }\n\n override insertRootElement(rootElId: string) {\n this.removeAllRootElements();\n const rootElement = getDOM().getDefaultDocument().createElement('div');\n rootElement.setAttribute('id', rootElId);\n this._doc.body.appendChild(rootElement);\n }\n\n override removeAllRootElements() {\n // TODO(juliemr): can/should this be optional?\n const oldRoots = this._doc.querySelectorAll('[id^=root]');\n for (let i = 0; i < oldRoots.length; i++) {\n getDOM().remove(oldRoots[i]);\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {createPlatformFactory, PlatformRef} from '@angular/core';\nimport {ɵplatformCoreDynamic as platformCoreDynamic} from '@angular/platform-browser-dynamic';\n\n/**\n * Platform for dynamic tests\n *\n * @publicApi\n */\nexport const platformCoreDynamicTesting: (extraProviders?: any[]) => PlatformRef =\n createPlatformFactory(\n platformCoreDynamic,\n 'coreDynamicTesting',\n [],\n );\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {DOMTestComponentRenderer as ɵDOMTestComponentRenderer} from './dom_test_component_renderer';\nexport {platformCoreDynamicTesting as ɵplatformCoreDynamicTesting} from './platform_core_dynamic_testing';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {createPlatformFactory, NgModule, PlatformRef, StaticProvider} from '@angular/core';\nimport {TestComponentRenderer} from '@angular/core/testing';\nimport {ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS as INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS} from '@angular/platform-browser-dynamic';\nimport {BrowserTestingModule} from '@angular/platform-browser/testing';\n\nimport {DOMTestComponentRenderer} from './dom_test_component_renderer';\nimport {platformCoreDynamicTesting} from './platform_core_dynamic_testing';\n\nexport * from './private_export_testing';\n\n/**\n * @publicApi\n */\nexport const platformBrowserDynamicTesting = createPlatformFactory(\n platformCoreDynamicTesting, 'browserDynamicTesting',\n INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS);\n\n/**\n * NgModule for testing.\n *\n * @publicApi\n */\n@NgModule({\n exports: [BrowserTestingModule],\n providers: [\n {provide: TestComponentRenderer, useClass: DOMTestComponentRenderer},\n ]\n})\nexport class BrowserDynamicTestingModule {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/testing';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getDOM","platformCoreDynamic","INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;AAYA;;;MAIa,wBAAyB,SAAQ,qBAAqB;IACjE,YAAsC,IAAS;QAC7C,KAAK,EAAE,CAAC;QAD4B,SAAI,GAAJ,IAAI,CAAK;KAE9C;IAEQ,iBAAiB,CAAC,QAAgB;QACzC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAGA,OAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvE,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;KACzC;IAEQ,qBAAqB;;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxCA,OAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9B;KACF;;gIAlBU,wBAAwB,kBACf,QAAQ;oIADjB,wBAAwB;sGAAxB,wBAAwB;kBADpC,UAAU;;0BAEI,MAAM;2BAAC,QAAQ;;;ACjB9B;;;;;;;AAWA;;;;;MAKa,0BAA0B,GACnC,qBAAqB,CACjBC,oBAAmB,EACnB,oBAAoB,EACpB,EAAE;;ACpBV;;;;;;;;ACAA;;;;;;;AAkBA;;;MAGa,6BAA6B,GAAG,qBAAqB,CAC9D,0BAA0B,EAAE,uBAAuB,EACnDC,4CAA2C,EAAE;AAEjD;;;;;MAWa,2BAA2B;;mIAA3B,2BAA2B;oIAA3B,2BAA2B,YAL5B,oBAAoB;oIAKnB,2BAA2B,aAJ3B;QACT,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,wBAAwB,EAAC;KACrE,YAHS,oBAAoB;sGAKnB,2BAA2B;kBANvC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,SAAS,EAAE;wBACT,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,wBAAwB,EAAC;qBACrE;iBACF;;;ACnCD;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/platform-browser-dynamic",
3
- "version": "13.1.0-next.2",
3
+ "version": "13.1.2",
4
4
  "description": "Angular - library for using Angular in a web browser with JIT compilation",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -11,10 +11,10 @@
11
11
  "tslib": "^2.3.0"
12
12
  },
13
13
  "peerDependencies": {
14
- "@angular/core": "13.1.0-next.2",
15
- "@angular/common": "13.1.0-next.2",
16
- "@angular/compiler": "13.1.0-next.2",
17
- "@angular/platform-browser": "13.1.0-next.2"
14
+ "@angular/core": "13.1.2",
15
+ "@angular/common": "13.1.2",
16
+ "@angular/compiler": "13.1.2",
17
+ "@angular/platform-browser": "13.1.2"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",
@@ -1,33 +1,16 @@
1
1
  /**
2
- * @license Angular v13.1.0-next.2
3
- * (c) 2010-2021 Google LLC. https://angular.io/
2
+ * @license Angular v13.1.2
3
+ * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { CompileMetadataResolver } from '@angular/compiler';
8
7
  import { Compiler } from '@angular/core';
9
- import { CompilerConfig } from '@angular/compiler';
10
- import { CompileReflector } from '@angular/compiler';
11
8
  import { CompilerFactory } from '@angular/core';
12
9
  import { CompilerOptions } from '@angular/core';
13
- import { ComponentFactory } from '@angular/core';
14
- import * as i0 from '@angular/core';
15
- import { Injector } from '@angular/core';
16
- import { JitEvaluator } from '@angular/compiler';
17
- import { ModuleWithComponentFactories } from '@angular/core';
18
- import { NgModuleCompiler } from '@angular/compiler';
19
- import { NgModuleFactory } from '@angular/core';
20
10
  import { PlatformRef } from '@angular/core';
21
11
  import { Provider } from '@angular/core';
22
- import { ResourceLoader } from '@angular/compiler';
23
12
  import { StaticProvider } from '@angular/core';
24
- import { StyleCompiler } from '@angular/compiler';
25
- import { SummaryResolver } from '@angular/compiler';
26
- import { TemplateParser } from '@angular/compiler';
27
- import { Type } from '@angular/core';
28
13
  import { Version } from '@angular/core';
29
- import { ViewCompiler } from '@angular/compiler';
30
- import { ɵConsole } from '@angular/core';
31
14
 
32
15
  /**
33
16
  * @publicApi
@@ -57,26 +40,6 @@ export declare const RESOURCE_CACHE_PROVIDER: Provider[];
57
40
  */
58
41
  export declare const VERSION: Version;
59
42
 
60
- export declare const ɵCOMPILER_PROVIDERS__POST_R3__: StaticProvider[];
61
-
62
- export declare class ɵCompilerImpl implements Compiler {
63
- private _metadataResolver;
64
- private _delegate;
65
- readonly injector: Injector;
66
- constructor(injector: Injector, _metadataResolver: CompileMetadataResolver, templateParser: TemplateParser, styleCompiler: StyleCompiler, viewCompiler: ViewCompiler, ngModuleCompiler: NgModuleCompiler, summaryResolver: SummaryResolver<Type<any>>, compileReflector: CompileReflector, jitEvaluator: JitEvaluator, compilerConfig: CompilerConfig, console: ɵConsole);
67
- private getExtraNgModuleProviders;
68
- compileModuleSync<T>(moduleType: Type<T>): NgModuleFactory<T>;
69
- compileModuleAsync<T>(moduleType: Type<T>): Promise<NgModuleFactory<T>>;
70
- compileModuleAndAllComponentsSync<T>(moduleType: Type<T>): ModuleWithComponentFactories<T>;
71
- compileModuleAndAllComponentsAsync<T>(moduleType: Type<T>): Promise<ModuleWithComponentFactories<T>>;
72
- loadAotSummaries(summaries: () => any[]): void;
73
- hasAotSummary(ref: Type<any>): boolean;
74
- getComponentFactory<T>(component: Type<T>): ComponentFactory<T>;
75
- clearCache(): void;
76
- clearCacheFor(type: Type<any>): void;
77
- getModuleId(moduleType: Type<any>): string | undefined;
78
- }
79
-
80
43
  /**
81
44
  * @publicApi
82
45
  */
@@ -89,10 +52,4 @@ export declare const ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS: StaticProvid
89
52
  */
90
53
  export declare const ɵplatformCoreDynamic: (extraProviders?: StaticProvider[] | undefined) => PlatformRef;
91
54
 
92
- export declare class ɵResourceLoaderImpl extends ResourceLoader {
93
- get(url: string): Promise<string>;
94
- static ɵfac: i0.ɵɵFactoryDeclaration<ɵResourceLoaderImpl, never>;
95
- static ɵprov: i0.ɵɵInjectableDeclaration<ɵResourceLoaderImpl>;
96
- }
97
-
98
55
  export { }
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @license Angular v13.1.0-next.2
3
- * (c) 2010-2021 Google LLC. https://angular.io/
2
+ * @license Angular v13.1.2
3
+ * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
@@ -1,99 +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 { getUrlScheme, Identifiers, syntaxError } from '@angular/compiler';
9
- import { ANALYZE_FOR_ENTRY_COMPONENTS, ChangeDetectionStrategy, ChangeDetectorRef, ComponentFactory, ComponentFactoryResolver, ComponentRef, ElementRef, Injector, LOCALE_ID, NgModuleFactory, NgModuleRef, QueryList, Renderer2, SecurityContext, TemplateRef, TRANSLATIONS_FORMAT, ViewContainerRef, ViewEncapsulation, ɵand, ɵccf, ɵcmf, ɵCodegenComponentFactoryResolver, ɵcrt, ɵdid, ɵeld, ɵEMPTY_ARRAY, ɵEMPTY_MAP, ɵinlineInterpolate, ɵinterpolate, ɵmod, ɵmpd, ɵncd, ɵnov, ɵpad, ɵpid, ɵpod, ɵppd, ɵprd, ɵqud, ɵReflectionCapabilities as ReflectionCapabilities, ɵregisterModuleFactory, ɵstringify as stringify, ɵted, ɵvid } from '@angular/core';
10
- export const MODULE_SUFFIX = '';
11
- const builtinExternalReferences = createBuiltinExternalReferencesMap();
12
- export class JitReflector {
13
- constructor() {
14
- this.reflectionCapabilities = new ReflectionCapabilities();
15
- }
16
- componentModuleUrl(type, cmpMetadata) {
17
- const moduleId = cmpMetadata.moduleId;
18
- if (typeof moduleId === 'string') {
19
- const scheme = getUrlScheme(moduleId);
20
- return scheme ? moduleId : `package:${moduleId}${MODULE_SUFFIX}`;
21
- }
22
- else if (moduleId !== null && moduleId !== void 0) {
23
- throw syntaxError(`moduleId should be a string in "${stringify(type)}". See https://goo.gl/wIDDiL for more information.\n` +
24
- `If you're using Webpack you should inline the template and the styles, see https://goo.gl/X2J8zc.`);
25
- }
26
- return `./${stringify(type)}`;
27
- }
28
- parameters(typeOrFunc) {
29
- return this.reflectionCapabilities.parameters(typeOrFunc);
30
- }
31
- tryAnnotations(typeOrFunc) {
32
- return this.annotations(typeOrFunc);
33
- }
34
- annotations(typeOrFunc) {
35
- return this.reflectionCapabilities.annotations(typeOrFunc);
36
- }
37
- shallowAnnotations(typeOrFunc) {
38
- throw new Error('Not supported in JIT mode');
39
- }
40
- propMetadata(typeOrFunc) {
41
- return this.reflectionCapabilities.propMetadata(typeOrFunc);
42
- }
43
- hasLifecycleHook(type, lcProperty) {
44
- return this.reflectionCapabilities.hasLifecycleHook(type, lcProperty);
45
- }
46
- guards(type) {
47
- return this.reflectionCapabilities.guards(type);
48
- }
49
- resolveExternalReference(ref) {
50
- return builtinExternalReferences.get(ref) || ref.runtime;
51
- }
52
- }
53
- function createBuiltinExternalReferencesMap() {
54
- const map = new Map();
55
- map.set(Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS, ANALYZE_FOR_ENTRY_COMPONENTS);
56
- map.set(Identifiers.ElementRef, ElementRef);
57
- map.set(Identifiers.NgModuleRef, NgModuleRef);
58
- map.set(Identifiers.ViewContainerRef, ViewContainerRef);
59
- map.set(Identifiers.ChangeDetectorRef, ChangeDetectorRef);
60
- map.set(Identifiers.Renderer2, Renderer2);
61
- map.set(Identifiers.QueryList, QueryList);
62
- map.set(Identifiers.TemplateRef, TemplateRef);
63
- map.set(Identifiers.CodegenComponentFactoryResolver, ɵCodegenComponentFactoryResolver);
64
- map.set(Identifiers.ComponentFactoryResolver, ComponentFactoryResolver);
65
- map.set(Identifiers.ComponentFactory, ComponentFactory);
66
- map.set(Identifiers.ComponentRef, ComponentRef);
67
- map.set(Identifiers.NgModuleFactory, NgModuleFactory);
68
- map.set(Identifiers.createModuleFactory, ɵcmf);
69
- map.set(Identifiers.moduleDef, ɵmod);
70
- map.set(Identifiers.moduleProviderDef, ɵmpd);
71
- map.set(Identifiers.RegisterModuleFactoryFn, ɵregisterModuleFactory);
72
- map.set(Identifiers.Injector, Injector);
73
- map.set(Identifiers.ViewEncapsulation, ViewEncapsulation);
74
- map.set(Identifiers.ChangeDetectionStrategy, ChangeDetectionStrategy);
75
- map.set(Identifiers.SecurityContext, SecurityContext);
76
- map.set(Identifiers.LOCALE_ID, LOCALE_ID);
77
- map.set(Identifiers.TRANSLATIONS_FORMAT, TRANSLATIONS_FORMAT);
78
- map.set(Identifiers.inlineInterpolate, ɵinlineInterpolate);
79
- map.set(Identifiers.interpolate, ɵinterpolate);
80
- map.set(Identifiers.EMPTY_ARRAY, ɵEMPTY_ARRAY);
81
- map.set(Identifiers.EMPTY_MAP, ɵEMPTY_MAP);
82
- map.set(Identifiers.viewDef, ɵvid);
83
- map.set(Identifiers.elementDef, ɵeld);
84
- map.set(Identifiers.anchorDef, ɵand);
85
- map.set(Identifiers.textDef, ɵted);
86
- map.set(Identifiers.directiveDef, ɵdid);
87
- map.set(Identifiers.providerDef, ɵprd);
88
- map.set(Identifiers.queryDef, ɵqud);
89
- map.set(Identifiers.pureArrayDef, ɵpad);
90
- map.set(Identifiers.pureObjectDef, ɵpod);
91
- map.set(Identifiers.purePipeDef, ɵppd);
92
- map.set(Identifiers.pipeDef, ɵpid);
93
- map.set(Identifiers.nodeValue, ɵnov);
94
- map.set(Identifiers.ngContentDef, ɵncd);
95
- map.set(Identifiers.createRendererType2, ɵcrt);
96
- map.set(Identifiers.createComponentFactory, ɵccf);
97
- return map;
98
- }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXJfcmVmbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljL3NyYy9jb21waWxlcl9yZWZsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFzQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzlHLE9BQU8sRUFBQyw0QkFBNEIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBYSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0NBQWdDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixJQUFJLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLFVBQVUsSUFBSSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2b0IsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLHlCQUF5QixHQUFHLGtDQUFrQyxFQUFFLENBQUM7QUFFdkUsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUFDVSwyQkFBc0IsR0FBRyxJQUFJ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QUFDLENBQUM7SUFDOUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUMzRCxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDL0MsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQy9DLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMzQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Q29tcGlsZVJlZmxlY3RvciwgRXh0ZXJuYWxSZWZlcmVuY2UsIGdldFVybFNjaGVtZSwgSWRlbnRpZmllcnMsIHN5bnRheEVycm9yfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQge0FOQUxZWkVfRk9SX0VOVFJZX0NPTVBPTkVOVFMsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIExPQ0FMRV9JRCwgTmdNb2R1bGVGYWN0b3J5LCBOZ01vZHVsZVJlZiwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFNlY3VyaXR5Q29udGV4dCwgVGVtcGxhdGVSZWYsIFRSQU5TTEFUSU9OU19GT1JNQVQsIFZpZXdDb250YWluZXJSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLCDJtWFuZCwgybVjY2YsIMm1Y21mLCDJtUNvZGVnZW5Db21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIMm1Y3J0LCDJtWRpZCwgybVlbGQsIMm1RU1QVFlfQVJSQVksIMm1RU1QVFlfTUFQLCDJtWlubGluZUludGVycG9sYXRlLCDJtWludGVycG9sYXRlLCDJtW1vZCwgybVtcGQsIMm1bmNkLCDJtW5vdiwgybVwYWQsIMm1cGlkLCDJtXBvZCwgybVwcGQsIMm1cHJkLCDJtXF1ZCwgybVSZWZsZWN0aW9uQ2FwYWJpbGl0aWVzIGFzIFJlZmxlY3Rpb25DYXBhYmlsaXRpZXMsIMm1cmVnaXN0ZXJNb2R1bGVGYWN0b3J5LCDJtXN0cmluZ2lmeSBhcyBzdHJpbmdpZnksIMm1dGVkLCDJtXZpZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBNT0RVTEVfU1VGRklYID0gJyc7XG5jb25zdCBidWlsdGluRXh0ZXJuYWxSZWZlcmVuY2VzID0gY3JlYXRlQnVpbHRpbkV4dGVybmFsUmVmZXJlbmNlc01hcCgpO1xuXG5leHBvcnQgY2xhc3MgSml0UmVmbGVjdG9yIGltcGxlbWVudHMgQ29tcGlsZVJlZmxlY3RvciB7XG4gIHByaXZhdGUgcmVmbGVjdGlvbkNhcGFiaWxpdGllcyA9IG5ldyBSZWZsZWN0aW9uQ2FwYWJpbGl0aWVzKCk7XG5cbiAgY29tcG9uZW50TW9kdWxlVXJsKHR5cGU6IGFueSwgY21wTWV0YWRhdGE6IENvbXBvbmVudCk6IHN0cmluZyB7XG4gICAgY29uc3QgbW9kdWxlSWQgPSBjbXBNZXRhZGF0YS5tb2R1bGVJZDtcblxuICAgIGlmICh0eXBlb2YgbW9kdWxlSWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBzY2hlbWUgPSBnZXRVcmxTY2hlbWUobW9kdWxlSWQpO1xuICAgICAgcmV0dXJuIHNjaGVtZSA/IG1vZHVsZUlkIDogYHBhY2thZ2U6JHttb2R1bGVJZH0ke01PRFVMRV9TVUZGSVh9YDtcbiAgICB9IGVsc2UgaWYgKG1vZHVsZUlkICE9PSBudWxsICYmIG1vZHVsZUlkICE9PSB2b2lkIDApIHtcbiAgICAgIHRocm93IHN5bnRheEVycm9yKFxuICAgICAgICAgIGBtb2R1bGVJZCBzaG91bGQgYmUgYSBzdHJpbmcgaW4gXCIke1xuICAgICAgICAgICAgICBzdHJpbmdpZnkodHlwZSl9XCIuIFNlZSBodHRwczovL2dvby5nbC93SUREaUwgZm9yIG1vcmUgaW5mb3JtYXRpb24uXFxuYCArXG4gICAgICAgICAgYElmIHlvdSdyZSB1c2luZyBXZWJwYWNrIHlvdSBzaG91bGQgaW5saW5lIHRoZSB0ZW1wbGF0ZSBhbmQgdGhlIHN0eWxlcywgc2VlIGh0dHBzOi8vZ29vLmdsL1gySjh6Yy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYC4vJHtzdHJpbmdpZnkodHlwZSl9YDtcbiAgfVxuICBwYXJhbWV0ZXJzKHR5cGVPckZ1bmM6IC8qVHlwZSovIGFueSk6IGFueVtdW10ge1xuICAgIHJldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMucGFyYW1ldGVycyh0eXBlT3JGdW5jKTtcbiAgfVxuICB0cnlBbm5vdGF0aW9ucyh0eXBlT3JGdW5jOiAvKlR5cGUqLyBhbnkpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuYW5ub3RhdGlvbnModHlwZU9yRnVuYyk7XG4gIH1cbiAgYW5ub3RhdGlvbnModHlwZU9yRnVuYzogLypUeXBlKi8gYW55KTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMuYW5ub3RhdGlvbnModHlwZU9yRnVuYyk7XG4gIH1cbiAgc2hhbGxvd0Fubm90YXRpb25zKHR5cGVPckZ1bmM6IC8qVHlwZSovIGFueSk6IGFueVtdIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBzdXBwb3J0ZWQgaW4gSklUIG1vZGUnKTtcbiAgfVxuICBwcm9wTWV0YWRhdGEodHlwZU9yRnVuYzogLypUeXBlKi8gYW55KToge1trZXk6IHN0cmluZ106IGFueVtdfSB7XG4gICAgcmV0dXJuIHRoaXMucmVmbGVjdGlvbkNhcGFiaWxpdGllcy5wcm9wTWV0YWRhdGEodHlwZU9yRnVuYyk7XG4gIH1cbiAgaGFzTGlmZWN5Y2xlSG9vayh0eXBlOiBhbnksIGxjUHJvcGVydHk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMuaGFzTGlmZWN5Y2xlSG9vayh0eXBlLCBsY1Byb3BlcnR5KTtcbiAgfVxuICBndWFyZHModHlwZTogYW55KToge1trZXk6IHN0cmluZ106IGFueX0ge1xuICAgIHJldHVybiB0aGlzLnJlZmxlY3Rpb25DYXBhYmlsaXRpZXMuZ3VhcmRzKHR5cGUpO1xuICB9XG4gIHJlc29sdmVFeHRlcm5hbFJlZmVyZW5jZShyZWY6IEV4dGVybmFsUmVmZXJlbmNlKTogYW55IHtcbiAgICByZXR1cm4gYnVpbHRpbkV4dGVybmFsUmVmZXJlbmNlcy5nZXQocmVmKSB8fCByZWYucnVudGltZTtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGNyZWF0ZUJ1aWx0aW5FeHRlcm5hbFJlZmVyZW5jZXNNYXAoKSB7XG4gIGNvbnN0IG1hcCA9IG5ldyBNYXA8RXh0ZXJuYWxSZWZlcmVuY2UsIGFueT4oKTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5BTkFMWVpFX0ZPUl9FTlRSWV9DT01QT05FTlRTLCBBTkFMWVpFX0ZPUl9FTlRSWV9DT01QT05FTlRTKTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5FbGVtZW50UmVmLCBFbGVtZW50UmVmKTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5OZ01vZHVsZVJlZiwgTmdNb2R1bGVSZWYpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLlZpZXdDb250YWluZXJSZWYsIFZpZXdDb250YWluZXJSZWYpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLkNoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3RvclJlZik7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMuUmVuZGVyZXIyLCBSZW5kZXJlcjIpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLlF1ZXJ5TGlzdCwgUXVlcnlMaXN0KTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5UZW1wbGF0ZVJlZiwgVGVtcGxhdGVSZWYpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLkNvZGVnZW5Db21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIMm1Q29kZWdlbkNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcik7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMuQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLkNvbXBvbmVudEZhY3RvcnksIENvbXBvbmVudEZhY3RvcnkpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLkNvbXBvbmVudFJlZiwgQ29tcG9uZW50UmVmKTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5OZ01vZHVsZUZhY3RvcnksIE5nTW9kdWxlRmFjdG9yeSk7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMuY3JlYXRlTW9kdWxlRmFjdG9yeSwgybVjbWYpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLm1vZHVsZURlZiwgybVtb2QpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLm1vZHVsZVByb3ZpZGVyRGVmLCDJtW1wZCk7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMuUmVnaXN0ZXJNb2R1bGVGYWN0b3J5Rm4sIMm1cmVnaXN0ZXJNb2R1bGVGYWN0b3J5KTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5JbmplY3RvciwgSW5qZWN0b3IpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLlZpZXdFbmNhcHN1bGF0aW9uLCBWaWV3RW5jYXBzdWxhdGlvbik7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMuQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdGlvblN0cmF0ZWd5KTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5TZWN1cml0eUNvbnRleHQsIFNlY3VyaXR5Q29udGV4dCk7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMuTE9DQUxFX0lELCBMT0NBTEVfSUQpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLlRSQU5TTEFUSU9OU19GT1JNQVQsIFRSQU5TTEFUSU9OU19GT1JNQVQpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLmlubGluZUludGVycG9sYXRlLCDJtWlubGluZUludGVycG9sYXRlKTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5pbnRlcnBvbGF0ZSwgybVpbnRlcnBvbGF0ZSk7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMuRU1QVFlfQVJSQVksIMm1RU1QVFlfQVJSQVkpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLkVNUFRZX01BUCwgybVFTVBUWV9NQVApO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLnZpZXdEZWYsIMm1dmlkKTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5lbGVtZW50RGVmLCDJtWVsZCk7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMuYW5jaG9yRGVmLCDJtWFuZCk7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMudGV4dERlZiwgybV0ZWQpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLmRpcmVjdGl2ZURlZiwgybVkaWQpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLnByb3ZpZGVyRGVmLCDJtXByZCk7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMucXVlcnlEZWYsIMm1cXVkKTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5wdXJlQXJyYXlEZWYsIMm1cGFkKTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5wdXJlT2JqZWN0RGVmLCDJtXBvZCk7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMucHVyZVBpcGVEZWYsIMm1cHBkKTtcbiAgbWFwLnNldChJZGVudGlmaWVycy5waXBlRGVmLCDJtXBpZCk7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMubm9kZVZhbHVlLCDJtW5vdik7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMubmdDb250ZW50RGVmLCDJtW5jZCk7XG4gIG1hcC5zZXQoSWRlbnRpZmllcnMuY3JlYXRlUmVuZGVyZXJUeXBlMiwgybVjcnQpO1xuICBtYXAuc2V0KElkZW50aWZpZXJzLmNyZWF0ZUNvbXBvbmVudEZhY3RvcnksIMm1Y2NmKTtcbiAgcmV0dXJuIG1hcDtcbn1cbiJdfQ==
@@ -1,101 +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 { CompileReflector, DirectiveResolver, ERROR_COMPONENT_TYPE, NgModuleResolver, PipeResolver } from '@angular/compiler';
9
- import { MockDirectiveResolver, MockNgModuleResolver, MockPipeResolver } from '@angular/compiler/testing';
10
- import { Component, Directive, NgModule, Pipe, ɵstringify as stringify } from '@angular/core';
11
- import { MetadataOverrider } from './metadata_overrider';
12
- export const COMPILER_PROVIDERS = [
13
- { provide: MockPipeResolver, deps: [CompileReflector] },
14
- { provide: PipeResolver, useExisting: MockPipeResolver },
15
- { provide: MockDirectiveResolver, deps: [CompileReflector] },
16
- { provide: DirectiveResolver, useExisting: MockDirectiveResolver },
17
- { provide: MockNgModuleResolver, deps: [CompileReflector] },
18
- { provide: NgModuleResolver, useExisting: MockNgModuleResolver },
19
- ];
20
- export class TestingCompilerFactoryImpl {
21
- constructor(_injector, _compilerFactory) {
22
- this._injector = _injector;
23
- this._compilerFactory = _compilerFactory;
24
- }
25
- createTestingCompiler(options) {
26
- const compiler = this._compilerFactory.createCompiler(options);
27
- return new TestingCompilerImpl(compiler, compiler.injector.get(MockDirectiveResolver), compiler.injector.get(MockPipeResolver), compiler.injector.get(MockNgModuleResolver));
28
- }
29
- }
30
- export class TestingCompilerImpl {
31
- constructor(_compiler, _directiveResolver, _pipeResolver, _moduleResolver) {
32
- this._compiler = _compiler;
33
- this._directiveResolver = _directiveResolver;
34
- this._pipeResolver = _pipeResolver;
35
- this._moduleResolver = _moduleResolver;
36
- this._overrider = new MetadataOverrider();
37
- }
38
- get injector() {
39
- return this._compiler.injector;
40
- }
41
- compileModuleSync(moduleType) {
42
- return this._compiler.compileModuleSync(moduleType);
43
- }
44
- compileModuleAsync(moduleType) {
45
- return this._compiler.compileModuleAsync(moduleType);
46
- }
47
- compileModuleAndAllComponentsSync(moduleType) {
48
- return this._compiler.compileModuleAndAllComponentsSync(moduleType);
49
- }
50
- compileModuleAndAllComponentsAsync(moduleType) {
51
- return this._compiler.compileModuleAndAllComponentsAsync(moduleType);
52
- }
53
- getComponentFactory(component) {
54
- return this._compiler.getComponentFactory(component);
55
- }
56
- checkOverrideAllowed(type) {
57
- if (this._compiler.hasAotSummary(type)) {
58
- throw new Error(`${stringify(type)} was AOT compiled, so its metadata cannot be changed.`);
59
- }
60
- }
61
- overrideModule(ngModule, override) {
62
- this.checkOverrideAllowed(ngModule);
63
- const oldMetadata = this._moduleResolver.resolve(ngModule, false);
64
- this._moduleResolver.setNgModule(ngModule, this._overrider.overrideMetadata(NgModule, oldMetadata, override));
65
- this.clearCacheFor(ngModule);
66
- }
67
- overrideDirective(directive, override) {
68
- this.checkOverrideAllowed(directive);
69
- const oldMetadata = this._directiveResolver.resolve(directive, false);
70
- this._directiveResolver.setDirective(directive, this._overrider.overrideMetadata(Directive, oldMetadata, override));
71
- this.clearCacheFor(directive);
72
- }
73
- overrideComponent(component, override) {
74
- this.checkOverrideAllowed(component);
75
- const oldMetadata = this._directiveResolver.resolve(component, false);
76
- this._directiveResolver.setDirective(component, this._overrider.overrideMetadata(Component, oldMetadata, override));
77
- this.clearCacheFor(component);
78
- }
79
- overridePipe(pipe, override) {
80
- this.checkOverrideAllowed(pipe);
81
- const oldMetadata = this._pipeResolver.resolve(pipe, false);
82
- this._pipeResolver.setPipe(pipe, this._overrider.overrideMetadata(Pipe, oldMetadata, override));
83
- this.clearCacheFor(pipe);
84
- }
85
- loadAotSummaries(summaries) {
86
- this._compiler.loadAotSummaries(summaries);
87
- }
88
- clearCache() {
89
- this._compiler.clearCache();
90
- }
91
- clearCacheFor(type) {
92
- this._compiler.clearCacheFor(type);
93
- }
94
- getComponentFromError(error) {
95
- return error[ERROR_COMPONENT_TYPE] || null;
96
- }
97
- getModuleId(moduleType) {
98
- return this._moduleResolver.resolve(moduleType, true).id;
99
- }
100
- }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXJfZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYy90ZXN0aW5nL3NyYy9jb21waWxlcl9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1SCxPQUFPLEVBQUMscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RyxPQUFPLEVBQW1DLFNBQVMsRUFBb0IsU0FBUyxFQUEwQyxRQUFRLEVBQW1CLElBQUksRUFBd0IsVUFBVSxJQUFJLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUkvTixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBcUI7SUFDbEQsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBQztJQUNyRCxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDO0lBQ3RELEVBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUM7SUFDMUQsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFDO0lBQ2hFLEVBQUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUM7SUFDekQsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFDO0NBQy9ELENBQUM7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UyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxhQUFhLENBQUMsSUFBZTtRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBWTtRQUNoQyxPQUFRLEtBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBRUQsV0FBVyxDQUFDLFVBQXFCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtDb21waWxlUmVmbGVjdG9yLCBEaXJlY3RpdmVSZXNvbHZlciwgRVJST1JfQ09NUE9ORU5UX1RZUEUsIE5nTW9kdWxlUmVzb2x2ZXIsIFBpcGVSZXNvbHZlcn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtNb2NrRGlyZWN0aXZlUmVzb2x2ZXIsIE1vY2tOZ01vZHVsZVJlc29sdmVyLCBNb2NrUGlwZVJlc29sdmVyfSBmcm9tICdAYW5ndWxhci9jb21waWxlci90ZXN0aW5nJztcbmltcG9ydCB7Q29tcGlsZXJGYWN0b3J5LCBDb21waWxlck9wdGlvbnMsIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeSwgRGlyZWN0aXZlLCBJbmplY3RvciwgTW9kdWxlV2l0aENvbXBvbmVudEZhY3RvcmllcywgTmdNb2R1bGUsIE5nTW9kdWxlRmFjdG9yeSwgUGlwZSwgU3RhdGljUHJvdmlkZXIsIFR5cGUsIMm1c3RyaW5naWZ5IGFzIHN0cmluZ2lmeX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01ldGFkYXRhT3ZlcnJpZGUsIMm1VGVzdGluZ0NvbXBpbGVyIGFzIFRlc3RpbmdDb21waWxlciwgybVUZXN0aW5nQ29tcGlsZXJGYWN0b3J5IGFzIFRlc3RpbmdDb21waWxlckZhY3Rvcnl9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQge8m1Q29tcGlsZXJJbXBsIGFzIENvbXBpbGVySW1wbH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztcblxuaW1wb3J0IHtNZXRhZGF0YU92ZXJyaWRlcn0gZnJvbSAnLi9tZXRhZGF0YV9vdmVycmlkZXInO1xuXG5leHBvcnQgY29uc3QgQ09NUElMRVJfUFJPVklERVJTOiBTdGF0aWNQcm92aWRlcltdID0gW1xuICB7cHJvdmlkZTogTW9ja1BpcGVSZXNvbHZlciwgZGVwczogW0NvbXBpbGVSZWZsZWN0b3JdfSxcbiAge3Byb3ZpZGU6IFBpcGVSZXNvbHZlciwgdXNlRXhpc3Rpbmc6IE1vY2tQaXBlUmVzb2x2ZXJ9LFxuICB7cHJvdmlkZTogTW9ja0RpcmVjdGl2ZVJlc29sdmVyLCBkZXBzOiBbQ29tcGlsZVJlZmxlY3Rvcl19LFxuICB7cHJvdmlkZTogRGlyZWN0aXZlUmVzb2x2ZXIsIHVzZUV4aXN0aW5nOiBNb2NrRGlyZWN0aXZlUmVzb2x2ZXJ9LFxuICB7cHJvdmlkZTogTW9ja05nTW9kdWxlUmVzb2x2ZXIsIGRlcHM6IFtDb21waWxlUmVmbGVjdG9yXX0sXG4gIHtwcm92aWRlOiBOZ01vZHVsZVJlc29sdmVyLCB1c2VFeGlzdGluZzogTW9ja05nTW9kdWxlUmVzb2x2ZXJ9LFxuXTtcblxuZXhwb3J0IGNsYXNzIFRlc3RpbmdDb21waWxlckZhY3RvcnlJbXBsIGltcGxlbWVudHMgVGVzdGluZ0NvbXBpbGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBfY29tcGlsZXJGYWN0b3J5OiBDb21waWxlckZhY3RvcnkpIHt9XG5cbiAgY3JlYXRlVGVzdGluZ0NvbXBpbGVyKG9wdGlvbnM6IENvbXBpbGVyT3B0aW9uc1tdKTogVGVzdGluZ0NvbXBpbGVyIHtcbiAgICBjb25zdCBjb21waWxlciA9IDxDb21waWxlckltcGw+dGhpcy5fY29tcGlsZXJGYWN0b3J5LmNyZWF0ZUNvbXBpbGVyKG9wdGlvbnMpO1xuICAgIHJldHVybiBuZXcgVGVzdGluZ0NvbXBpbGVySW1wbChcbiAgICAgICAgY29tcGlsZXIsIGNvbXBpbGVyLmluamVjdG9yLmdldChNb2NrRGlyZWN0aXZlUmVzb2x2ZXIpLFxuICAgICAgICBjb21waWxlci5pbmplY3Rvci5nZXQoTW9ja1BpcGVSZXNvbHZlciksIGNvbXBpbGVyLmluamVjdG9yLmdldChNb2NrTmdNb2R1bGVSZXNvbHZlcikpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXN0aW5nQ29tcGlsZXJJbXBsIGltcGxlbWVudHMgVGVzdGluZ0NvbXBpbGVyIHtcbiAgcHJpdmF0ZSBfb3ZlcnJpZGVyID0gbmV3IE1ldGFkYXRhT3ZlcnJpZGVyKCk7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBfY29tcGlsZXI6IENvbXBpbGVySW1wbCwgcHJpdmF0ZSBfZGlyZWN0aXZlUmVzb2x2ZXI6IE1vY2tEaXJlY3RpdmVSZXNvbHZlcixcbiAgICAgIHByaXZhdGUgX3BpcGVSZXNvbHZlcjogTW9ja1BpcGVSZXNvbHZlciwgcHJpdmF0ZSBfbW9kdWxlUmVzb2x2ZXI6IE1vY2tOZ01vZHVsZVJlc29sdmVyKSB7fVxuICBnZXQgaW5qZWN0b3IoKTogSW5qZWN0b3Ige1xuICAgIHJldHVybiB0aGlzLl9jb21waWxlci5pbmplY3RvcjtcbiAgfVxuXG4gIGNvbXBpbGVNb2R1bGVTeW5jPFQ+KG1vZHVsZVR5cGU6IFR5cGU8VD4pOiBOZ01vZHVsZUZhY3Rvcnk8VD4ge1xuICAgIHJldHVybiB0aGlzLl9jb21waWxlci5jb21waWxlTW9kdWxlU3luYyhtb2R1bGVUeXBlKTtcbiAgfVxuXG4gIGNvbXBpbGVNb2R1bGVBc3luYzxUPihtb2R1bGVUeXBlOiBUeXBlPFQ+KTogUHJvbWlzZTxOZ01vZHVsZUZhY3Rvcnk8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29tcGlsZXIuY29tcGlsZU1vZHVsZUFzeW5jKG1vZHVsZVR5cGUpO1xuICB9XG4gIGNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzU3luYzxUPihtb2R1bGVUeXBlOiBUeXBlPFQ+KTogTW9kdWxlV2l0aENvbXBvbmVudEZhY3RvcmllczxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBpbGVyLmNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzU3luYyhtb2R1bGVUeXBlKTtcbiAgfVxuXG4gIGNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzQXN5bmM8VD4obW9kdWxlVHlwZTogVHlwZTxUPik6XG4gICAgICBQcm9taXNlPE1vZHVsZVdpdGhDb21wb25lbnRGYWN0b3JpZXM8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29tcGlsZXIuY29tcGlsZU1vZHVsZUFuZEFsbENvbXBvbmVudHNBc3luYyhtb2R1bGVUeXBlKTtcbiAgfVxuXG4gIGdldENvbXBvbmVudEZhY3Rvcnk8VD4oY29tcG9uZW50OiBUeXBlPFQ+KTogQ29tcG9uZW50RmFjdG9yeTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBpbGVyLmdldENvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcbiAgfVxuXG4gIGNoZWNrT3ZlcnJpZGVBbGxvd2VkKHR5cGU6IFR5cGU8YW55Pikge1xuICAgIGlmICh0aGlzLl9jb21waWxlci5oYXNBb3RTdW1tYXJ5KHR5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7c3RyaW5naWZ5KHR5cGUpfSB3YXMgQU9UIGNvbXBpbGVkLCBzbyBpdHMgbWV0YWRhdGEgY2Fubm90IGJlIGNoYW5nZWQuYCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGVNb2R1bGUobmdNb2R1bGU6IFR5cGU8YW55Piwgb3ZlcnJpZGU6IE1ldGFkYXRhT3ZlcnJpZGU8TmdNb2R1bGU+KTogdm9pZCB7XG4gICAgdGhpcy5jaGVja092ZXJyaWRlQWxsb3dlZChuZ01vZHVsZSk7XG4gICAgY29uc3Qgb2xkTWV0YWRhdGEgPSB0aGlzLl9tb2R1bGVSZXNvbHZlci5yZXNvbHZlKG5nTW9kdWxlLCBmYWxzZSk7XG4gICAgdGhpcy5fbW9kdWxlUmVzb2x2ZXIuc2V0TmdNb2R1bGUoXG4gICAgICAgIG5nTW9kdWxlLCB0aGlzLl9vdmVycmlkZXIub3ZlcnJpZGVNZXRhZGF0YShOZ01vZHVsZSwgb2xkTWV0YWRhdGEsIG92ZXJyaWRlKSk7XG4gICAgdGhpcy5jbGVhckNhY2hlRm9yKG5nTW9kdWxlKTtcbiAgfVxuICBvdmVycmlkZURpcmVjdGl2ZShkaXJlY3RpdmU6IFR5cGU8YW55Piwgb3ZlcnJpZGU6IE1ldGFkYXRhT3ZlcnJpZGU8RGlyZWN0aXZlPik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tPdmVycmlkZUFsbG93ZWQoZGlyZWN0aXZlKTtcbiAgICBjb25zdCBvbGRNZXRhZGF0YSA9IHRoaXMuX2RpcmVjdGl2ZVJlc29sdmVyLnJlc29sdmUoZGlyZWN0aXZlLCBmYWxzZSk7XG4gICAgdGhpcy5fZGlyZWN0aXZlUmVzb2x2ZXIuc2V0RGlyZWN0aXZlKFxuICAgICAgICBkaXJlY3RpdmUsIHRoaXMuX292ZXJyaWRlci5vdmVycmlkZU1ldGFkYXRhKERpcmVjdGl2ZSwgb2xkTWV0YWRhdGEhLCBvdmVycmlkZSkpO1xuICAgIHRoaXMuY2xlYXJDYWNoZUZvcihkaXJlY3RpdmUpO1xuICB9XG4gIG92ZXJyaWRlQ29tcG9uZW50KGNvbXBvbmVudDogVHlwZTxhbnk+LCBvdmVycmlkZTogTWV0YWRhdGFPdmVycmlkZTxDb21wb25lbnQ+KTogdm9pZCB7XG4gICAgdGhpcy5jaGVja092ZXJyaWRlQWxsb3dlZChjb21wb25lbnQpO1xuICAgIGNvbnN0IG9sZE1ldGFkYXRhID0gdGhpcy5fZGlyZWN0aXZlUmVzb2x2ZXIucmVzb2x2ZShjb21wb25lbnQsIGZhbHNlKTtcbiAgICB0aGlzLl9kaXJlY3RpdmVSZXNvbHZlci5zZXREaXJlY3RpdmUoXG4gICAgICAgIGNvbXBvbmVudCwgdGhpcy5fb3ZlcnJpZGVyLm92ZXJyaWRlTWV0YWRhdGEoQ29tcG9uZW50LCBvbGRNZXRhZGF0YSEsIG92ZXJyaWRlKSk7XG4gICAgdGhpcy5jbGVhckNhY2hlRm9yKGNvbXBvbmVudCk7XG4gIH1cbiAgb3ZlcnJpZGVQaXBlKHBpcGU6IFR5cGU8YW55Piwgb3ZlcnJpZGU6IE1ldGFkYXRhT3ZlcnJpZGU8UGlwZT4pOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrT3ZlcnJpZGVBbGxvd2VkKHBpcGUpO1xuICAgIGNvbnN0IG9sZE1ldGFkYXRhID0gdGhpcy5fcGlwZVJlc29sdmVyLnJlc29sdmUocGlwZSwgZmFsc2UpO1xuICAgIHRoaXMuX3BpcGVSZXNvbHZlci5zZXRQaXBlKHBpcGUsIHRoaXMuX292ZXJyaWRlci5vdmVycmlkZU1ldGFkYXRhKFBpcGUsIG9sZE1ldGFkYXRhLCBvdmVycmlkZSkpO1xuICAgIHRoaXMuY2xlYXJDYWNoZUZvcihwaXBlKTtcbiAgfVxuICBsb2FkQW90U3VtbWFyaWVzKHN1bW1hcmllczogKCkgPT4gYW55W10pIHtcbiAgICB0aGlzLl9jb21waWxlci5sb2FkQW90U3VtbWFyaWVzKHN1bW1hcmllcyk7XG4gIH1cbiAgY2xlYXJDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb21waWxlci5jbGVhckNhY2hlKCk7XG4gIH1cbiAgY2xlYXJDYWNoZUZvcih0eXBlOiBUeXBlPGFueT4pIHtcbiAgICB0aGlzLl9jb21waWxlci5jbGVhckNhY2hlRm9yKHR5cGUpO1xuICB9XG5cbiAgZ2V0Q29tcG9uZW50RnJvbUVycm9yKGVycm9yOiBFcnJvcikge1xuICAgIHJldHVybiAoZXJyb3IgYXMgYW55KVtFUlJPUl9DT01QT05FTlRfVFlQRV0gfHwgbnVsbDtcbiAgfVxuXG4gIGdldE1vZHVsZUlkKG1vZHVsZVR5cGU6IFR5cGU8YW55Pik6IHN0cmluZ3x1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9tb2R1bGVSZXNvbHZlci5yZXNvbHZlKG1vZHVsZVR5cGUsIHRydWUpLmlkO1xuICB9XG59XG4iXX0=