@angular/platform-server 16.0.0-next.4 → 16.0.0-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/http.mjs +26 -0
- package/{esm2020 → esm2022}/src/location.mjs +4 -4
- package/{esm2020 → esm2022}/src/platform_state.mjs +4 -4
- package/{esm2020 → esm2022}/src/server.mjs +5 -5
- package/{esm2020 → esm2022}/src/server_events.mjs +4 -4
- package/{esm2020 → esm2022}/src/server_renderer.mjs +4 -4
- package/{esm2020 → esm2022}/src/tokens.mjs +1 -1
- package/esm2022/src/transfer_state.mjs +59 -0
- package/esm2022/src/utils.mjs +146 -0
- package/{esm2020 → esm2022}/src/version.mjs +1 -1
- package/{esm2020 → esm2022}/testing/src/server.mjs +5 -5
- package/{fesm2015 → fesm2022}/init.mjs +1 -1
- package/{fesm2020 → fesm2022}/platform-server.mjs +45 -140
- package/{fesm2020 → fesm2022}/platform-server.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/testing.mjs +5 -5
- package/{fesm2015 → fesm2022}/testing.mjs.map +1 -1
- package/index.d.ts +9 -1
- package/init/index.d.ts +1 -1
- package/package.json +19 -30
- package/testing/index.d.ts +1 -1
- package/esm2020/src/http.mjs +0 -125
- package/esm2020/src/transfer_state.mjs +0 -60
- package/esm2020/src/utils.mjs +0 -145
- package/fesm2015/platform-server.mjs +0 -21143
- package/fesm2015/platform-server.mjs.map +0 -1
- package/fesm2015/testing.mjs +0 -58
- package/fesm2020/init.mjs +0 -35
- package/fesm2020/init.mjs.map +0 -1
- package/fesm2020/testing.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/init/index.mjs +0 -0
- /package/{esm2020 → esm2022}/init/init.mjs +0 -0
- /package/{esm2020 → esm2022}/init/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/init/src/init.mjs +0 -0
- /package/{esm2020 → esm2022}/init/src/shims.mjs +0 -0
- /package/{esm2020 → esm2022}/platform-server.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/src/bundled-domino.mjs +0 -0
- /package/{esm2020 → esm2022}/src/domino_adapter.mjs +0 -0
- /package/{esm2020 → esm2022}/src/platform-server.mjs +0 -0
- /package/{esm2020 → esm2022}/src/private_export.mjs +0 -0
- /package/{esm2020 → esm2022}/src/provide_server.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/index.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/testing.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/testing.mjs +0 -0
- /package/{fesm2015 → fesm2022}/init.mjs.map +0 -0
|
@@ -0,0 +1,146 @@
|
|
|
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 { ApplicationRef, InjectionToken, Renderer2, ɵannotateForHydration as annotateForHydration, ɵInitialRenderPendingTasks as InitialRenderPendingTasks, ɵIS_HYDRATION_FEATURE_ENABLED as IS_HYDRATION_FEATURE_ENABLED, ɵisPromise } from '@angular/core';
|
|
9
|
+
import { first } from 'rxjs/operators';
|
|
10
|
+
import { PlatformState } from './platform_state';
|
|
11
|
+
import { platformDynamicServer } from './server';
|
|
12
|
+
import { BEFORE_APP_SERIALIZED, INITIAL_CONFIG } from './tokens';
|
|
13
|
+
function _getPlatform(platformFactory, options) {
|
|
14
|
+
const extraProviders = options.platformProviders ?? [];
|
|
15
|
+
return platformFactory([
|
|
16
|
+
{ provide: INITIAL_CONFIG, useValue: { document: options.document, url: options.url } },
|
|
17
|
+
extraProviders
|
|
18
|
+
]);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Adds the `ng-server-context` attribute to host elements of all bootstrapped components
|
|
22
|
+
* within a given application.
|
|
23
|
+
*/
|
|
24
|
+
function appendServerContextInfo(serverContext, applicationRef) {
|
|
25
|
+
applicationRef.components.forEach(componentRef => {
|
|
26
|
+
const renderer = componentRef.injector.get(Renderer2);
|
|
27
|
+
const element = componentRef.location.nativeElement;
|
|
28
|
+
if (element) {
|
|
29
|
+
renderer.setAttribute(element, 'ng-server-context', serverContext);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function _render(platform, bootstrapPromise) {
|
|
34
|
+
return bootstrapPromise.then((moduleOrApplicationRef) => {
|
|
35
|
+
const environmentInjector = moduleOrApplicationRef.injector;
|
|
36
|
+
const applicationRef = moduleOrApplicationRef instanceof ApplicationRef ?
|
|
37
|
+
moduleOrApplicationRef :
|
|
38
|
+
environmentInjector.get(ApplicationRef);
|
|
39
|
+
const serverContext = sanitizeServerContext(environmentInjector.get(SERVER_CONTEXT, DEFAULT_SERVER_CONTEXT));
|
|
40
|
+
const isStablePromise = applicationRef.isStable.pipe((first((isStable) => isStable))).toPromise();
|
|
41
|
+
const pendingTasks = environmentInjector.get(InitialRenderPendingTasks);
|
|
42
|
+
const pendingTasksPromise = pendingTasks.whenAllTasksComplete;
|
|
43
|
+
return Promise.allSettled([isStablePromise, pendingTasksPromise]).then(() => {
|
|
44
|
+
appendServerContextInfo(serverContext, applicationRef);
|
|
45
|
+
const platformState = platform.injector.get(PlatformState);
|
|
46
|
+
const asyncPromises = [];
|
|
47
|
+
if (applicationRef.injector.get(IS_HYDRATION_FEATURE_ENABLED, false)) {
|
|
48
|
+
annotateForHydration(applicationRef, platformState.getDocument());
|
|
49
|
+
}
|
|
50
|
+
// Run any BEFORE_APP_SERIALIZED callbacks just before rendering to string.
|
|
51
|
+
const callbacks = environmentInjector.get(BEFORE_APP_SERIALIZED, null);
|
|
52
|
+
if (callbacks) {
|
|
53
|
+
for (const callback of callbacks) {
|
|
54
|
+
try {
|
|
55
|
+
const callbackResult = callback();
|
|
56
|
+
if (ɵisPromise(callbackResult)) {
|
|
57
|
+
// TODO: in TS3.7, callbackResult is void.
|
|
58
|
+
asyncPromises.push(callbackResult);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
// Ignore exceptions.
|
|
63
|
+
console.warn('Ignoring BEFORE_APP_SERIALIZED Exception: ', e);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const complete = () => {
|
|
68
|
+
const output = platformState.renderToString();
|
|
69
|
+
platform.destroy();
|
|
70
|
+
return output;
|
|
71
|
+
};
|
|
72
|
+
if (asyncPromises.length === 0) {
|
|
73
|
+
return complete();
|
|
74
|
+
}
|
|
75
|
+
return Promise
|
|
76
|
+
.all(asyncPromises.map(asyncPromise => {
|
|
77
|
+
return asyncPromise.catch(e => {
|
|
78
|
+
console.warn('Ignoring BEFORE_APP_SERIALIZED Exception: ', e);
|
|
79
|
+
});
|
|
80
|
+
}))
|
|
81
|
+
.then(complete);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Specifies the value that should be used if no server context value has been provided.
|
|
87
|
+
*/
|
|
88
|
+
const DEFAULT_SERVER_CONTEXT = 'other';
|
|
89
|
+
/**
|
|
90
|
+
* An internal token that allows providing extra information about the server context
|
|
91
|
+
* (e.g. whether SSR or SSG was used). The value is a string and characters other
|
|
92
|
+
* than [a-zA-Z0-9\-] are removed. See the default value in `DEFAULT_SERVER_CONTEXT` const.
|
|
93
|
+
*/
|
|
94
|
+
export const SERVER_CONTEXT = new InjectionToken('SERVER_CONTEXT');
|
|
95
|
+
/**
|
|
96
|
+
* Sanitizes provided server context:
|
|
97
|
+
* - removes all characters other than a-z, A-Z, 0-9 and `-`
|
|
98
|
+
* - returns `other` if nothing is provided or the string is empty after sanitization
|
|
99
|
+
*/
|
|
100
|
+
function sanitizeServerContext(serverContext) {
|
|
101
|
+
const context = serverContext.replace(/[^a-zA-Z0-9\-]/g, '');
|
|
102
|
+
return context.length > 0 ? context : DEFAULT_SERVER_CONTEXT;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Bootstraps an application using provided NgModule and serializes the page content to string.
|
|
106
|
+
*
|
|
107
|
+
* @param moduleType A reference to an NgModule that should be used for bootstrap.
|
|
108
|
+
* @param options Additional configuration for the render operation:
|
|
109
|
+
* - `document` - the document of the page to render, either as an HTML string or
|
|
110
|
+
* as a reference to the `document` instance.
|
|
111
|
+
* - `url` - the URL for the current render request.
|
|
112
|
+
* - `extraProviders` - set of platform level providers for the current render request.
|
|
113
|
+
*
|
|
114
|
+
* @publicApi
|
|
115
|
+
*/
|
|
116
|
+
export function renderModule(moduleType, options) {
|
|
117
|
+
const { document, url, extraProviders: platformProviders } = options;
|
|
118
|
+
const platform = _getPlatform(platformDynamicServer, { document, url, platformProviders });
|
|
119
|
+
return _render(platform, platform.bootstrapModule(moduleType));
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Bootstraps an instance of an Angular application and renders it to a string.
|
|
123
|
+
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const bootstrap = () => bootstrapApplication(RootComponent, appConfig);
|
|
126
|
+
* const output: string = await renderApplication(bootstrap);
|
|
127
|
+
* ```
|
|
128
|
+
*
|
|
129
|
+
* @param bootstrap A method that when invoked returns a promise that returns an `ApplicationRef`
|
|
130
|
+
* instance once resolved.
|
|
131
|
+
* @param options Additional configuration for the render operation:
|
|
132
|
+
* - `document` - the document of the page to render, either as an HTML string or
|
|
133
|
+
* as a reference to the `document` instance.
|
|
134
|
+
* - `url` - the URL for the current render request.
|
|
135
|
+
* - `platformProviders` - the platform level providers for the current render request.
|
|
136
|
+
*
|
|
137
|
+
* @returns A Promise, that returns serialized (to a string) rendered page, once resolved.
|
|
138
|
+
*
|
|
139
|
+
* @publicApi
|
|
140
|
+
* @developerPreview
|
|
141
|
+
*/
|
|
142
|
+
export function renderApplication(bootstrap, options) {
|
|
143
|
+
const platform = _getPlatform(platformDynamicServer, options);
|
|
144
|
+
return _render(platform, bootstrap());
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS1zZXJ2ZXIvc3JjL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxjQUFjLEVBQUUsY0FBYyxFQUFzQyxTQUFTLEVBQXdCLHFCQUFxQixJQUFJLG9CQUFvQixFQUFFLDBCQUEwQixJQUFJLHlCQUF5QixFQUFFLDZCQUE2QixJQUFJLDRCQUE0QixFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyVCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMvQyxPQUFPLEVBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBUS9ELFNBQVMsWUFBWSxDQUNqQixlQUFrRSxFQUNsRSxPQUF3QjtJQUMxQixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO0lBQ3ZELE9BQU8sZUFBZSxDQUFDO1FBQ3JCLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBQyxFQUFDO1FBQ25GLGNBQWM7S0FDZixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxhQUFxQixFQUFFLGNBQThCO0lBQ3BGLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQy9DLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMs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LFVBQVUsaUJBQWlCLENBQUksU0FBd0MsRUFBRSxPQUk5RTtJQUNDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUU5RCxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QXBwbGljYXRpb25SZWYsIEluamVjdGlvblRva2VuLCBOZ01vZHVsZVJlZiwgUGxhdGZvcm1SZWYsIFByb3ZpZGVyLCBSZW5kZXJlcjIsIFN0YXRpY1Byb3ZpZGVyLCBUeXBlLCDJtWFubm90YXRlRm9ySHlkcmF0aW9uIGFzIGFubm90YXRlRm9ySHlkcmF0aW9uLCDJtUluaXRpYWxSZW5kZXJQZW5kaW5nVGFza3MgYXMgSW5pdGlhbFJlbmRlclBlbmRpbmdUYXNrcywgybVJU19IWURSQVRJT05fRkVBVFVSRV9FTkFCTEVEIGFzIElTX0hZRFJBVElPTl9GRUFUVVJFX0VOQUJMRUQsIMm1aXNQcm9taXNlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Zmlyc3R9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtQbGF0Zm9ybVN0YXRlfSBmcm9tICcuL3BsYXRmb3JtX3N0YXRlJztcbmltcG9ydCB7cGxhdGZvcm1EeW5hbWljU2VydmVyfSBmcm9tICcuL3NlcnZlcic7XG5pbXBvcnQge0JFRk9SRV9BUFBfU0VSSUFMSVpFRCwgSU5JVElBTF9DT05GSUd9IGZyb20gJy4vdG9rZW5zJztcblxuaW50ZXJmYWNlIFBsYXRmb3JtT3B0aW9ucyB7XG4gIGRvY3VtZW50Pzogc3RyaW5nfERvY3VtZW50O1xuICB1cmw/OiBzdHJpbmc7XG4gIHBsYXRmb3JtUHJvdmlkZXJzPzogUHJvdmlkZXJbXTtcbn1cblxuZnVuY3Rpb24gX2dldFBsYXRmb3JtKFxuICAgIHBsYXRmb3JtRmFjdG9yeTogKGV4dHJhUHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdKSA9PiBQbGF0Zm9ybVJlZixcbiAgICBvcHRpb25zOiBQbGF0Zm9ybU9wdGlvbnMpOiBQbGF0Zm9ybVJlZiB7XG4gIGNvbnN0IGV4dHJhUHJvdmlkZXJzID0gb3B0aW9ucy5wbGF0Zm9ybVByb3ZpZGVycyA/PyBbXTtcbiAgcmV0dXJuIHBsYXRmb3JtRmFjdG9yeShbXG4gICAge3Byb3ZpZGU6IElOSVRJQUxfQ09ORklHLCB1c2VWYWx1ZToge2RvY3VtZW50OiBvcHRpb25zLmRvY3VtZW50LCB1cmw6IG9wdGlvbnMudXJsfX0sXG4gICAgZXh0cmFQcm92aWRlcnNcbiAgXSk7XG59XG5cbi8qKlxuICogQWRkcyB0aGUgYG5nLXNlcnZlci1jb250ZXh0YCBhdHRyaWJ1dGUgdG8gaG9zdCBlbGVtZW50cyBvZiBhbGwgYm9vdHN0cmFwcGVkIGNvbXBvbmVudHNcbiAqIHdpdGhpbiBhIGdpdmVuIGFwcGxpY2F0aW9uLlxuICovXG5mdW5jdGlvbiBhcHBlbmRTZXJ2ZXJDb250ZXh0SW5mbyhzZXJ2ZXJDb250ZXh0OiBzdHJpbmcsIGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZikge1xuICBhcHBsaWNhdGlvblJlZi5jb21wb25lbnRzLmZvckVhY2goY29tcG9uZW50UmVmID0+IHtcbiAgICBjb25zdCByZW5kZXJlciA9IGNvbXBvbmVudFJlZi5pbmplY3Rvci5nZXQoUmVuZGVyZXIyKTtcbiAgICBjb25zdCBlbGVtZW50ID0gY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnbmctc2VydmVyLWNvbnRleHQnLCBzZXJ2ZXJDb250ZXh0KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBfcmVuZGVyPFQ+KFxuICAgIHBsYXRmb3JtOiBQbGF0Zm9ybVJlZixcbiAgICBib290c3RyYXBQcm9taXNlOiBQcm9taXNlPE5nTW9kdWxlUmVmPFQ+fEFwcGxpY2F0aW9uUmVmPik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBib290c3RyYXBQcm9taXNlLnRoZW4oKG1vZHVsZU9yQXBwbGljYXRpb25SZWYpID0+IHtcbiAgICBjb25zdCBlbnZpcm9ubWVudEluamVjdG9yID0gbW9kdWxlT3JBcHBsaWNhdGlvblJlZi5pbmplY3RvcjtcbiAgICBjb25zdCBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYgPSBtb2R1bGVPckFwcGxpY2F0aW9uUmVmIGluc3RhbmNlb2YgQXBwbGljYXRpb25SZWYgP1xuICAgICAgICBtb2R1bGVPckFwcGxpY2F0aW9uUmVmIDpcbiAgICAgICAgZW52aXJvbm1lbnRJbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpO1xuICAgIGNvbnN0IHNlcnZlckNvbnRleHQgPVxuICAgICAgICBzYW5pdGl6ZVNlcnZlckNvbnRleHQoZW52aXJvbm1lbnRJbmplY3Rvci5nZXQoU0VSVkVSX0NPTlRFWFQsIERFRkFVTFRfU0VSVkVSX0NPTlRFWFQpKTtcbiAgICBjb25zdCBpc1N0YWJsZVByb21pc2UgPVxuICAgICAgICBhcHBsaWNhdGlvblJlZi5pc1N0YWJsZS5waXBlKChmaXJzdCgoaXNTdGFibGU6IGJvb2xlYW4pID0+IGlzU3RhYmxlKSkpLnRvUHJvbWlzZSgpO1xuICAgIGNvbnN0IHBlbmRpbmdUYXNrcyA9IGVudmlyb25tZW50SW5qZWN0b3IuZ2V0KEluaXRpYWxSZW5kZXJQZW5kaW5nVGFza3MpO1xuICAgIGNvbnN0IHBlbmRpbmdUYXNrc1Byb21pc2UgPSBwZW5kaW5nVGFza3Mud2hlbkFsbFRhc2tzQ29tcGxldGU7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsU2V0dGxlZChbaXNTdGFibGVQcm9taXNlLCBwZW5kaW5nVGFza3NQcm9taXNlXSkudGhlbigoKSA9PiB7XG4gICAgICBhcHBlbmRTZXJ2ZXJDb250ZXh0SW5mbyhzZXJ2ZXJDb250ZXh0LCBhcHBsaWNhdGlvblJlZik7XG5cbiAgICAgIGNvbnN0IHBsYXRmb3JtU3RhdGUgPSBwbGF0Zm9ybS5pbmplY3Rvci5nZXQoUGxhdGZvcm1TdGF0ZSk7XG5cbiAgICAgIGNvbnN0IGFzeW5jUHJvbWlzZXM6IFByb21pc2U8YW55PltdID0gW107XG5cbiAgICAgIGlmIChhcHBsaWNhdGlvblJlZi5pbmplY3Rvci5nZXQoSVNfSFlEUkFUSU9OX0ZFQVRVUkVfRU5BQkxFRCwgZmFsc2UpKSB7XG4gICAgICAgIGFubm90YXRlRm9ySHlkcmF0aW9uKGFwcGxpY2F0aW9uUmVmLCBwbGF0Zm9ybVN0YXRlLmdldERvY3VtZW50KCkpO1xuICAgICAgfVxuXG4gICAgICAvLyBSdW4gYW55IEJFRk9SRV9BUFBfU0VSSUFMSVpFRCBjYWxsYmFja3MganVzdCBiZWZvcmUgcmVuZGVyaW5nIHRvIHN0cmluZy5cbiAgICAgIGNvbnN0IGNhbGxiYWNrcyA9IGVudmlyb25tZW50SW5qZWN0b3IuZ2V0KEJFRk9SRV9BUFBfU0VSSUFMSVpFRCwgbnVsbCk7XG5cbiAgICAgIGlmIChjYWxsYmFja3MpIHtcbiAgICAgICAgZm9yIChjb25zdCBjYWxsYmFjayBvZiBjYWxsYmFja3MpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2tSZXN1bHQgPSBjYWxsYmFjaygpO1xuICAgICAgICAgICAgaWYgKMm1aXNQcm9taXNlKGNhbGxiYWNrUmVzdWx0KSkge1xuICAgICAgICAgICAgICAvLyBUT0RPOiBpbiBUUzMuNywgY2FsbGJhY2tSZXN1bHQgaXMgdm9pZC5cbiAgICAgICAgICAgICAgYXN5bmNQcm9taXNlcy5wdXNoKGNhbGxiYWNrUmVzdWx0IGFzIGFueSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgZXhjZXB0aW9ucy5cbiAgICAgICAgICAgIGNvbnNvbGUud2FybignSWdub3JpbmcgQkVGT1JFX0FQUF9TRVJJQUxJWkVEIEV4Y2VwdGlvbjogJywgZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBvdXRwdXQgPSBwbGF0Zm9ybVN0YXRlLnJlbmRlclRvU3RyaW5nKCk7XG4gICAgICAgIHBsYXRmb3JtLmRlc3Ryb3koKTtcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgIH07XG5cbiAgICAgIGlmIChhc3luY1Byb21pc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gY29tcGxldGUoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFByb21pc2VcbiAgICAgICAgICAuYWxsKGFzeW5jUHJvbWlzZXMubWFwKGFzeW5jUHJvbWlzZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmNQcm9taXNlLmNhdGNoKGUgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0lnbm9yaW5nIEJFRk9SRV9BUFBfU0VSSUFMSVpFRCBFeGNlcHRpb246ICcsIGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSkpXG4gICAgICAgICAgLnRoZW4oY29tcGxldGUpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHZhbHVlIHRoYXQgc2hvdWxkIGJlIHVzZWQgaWYgbm8gc2VydmVyIGNvbnRleHQgdmFsdWUgaGFzIGJlZW4gcHJvdmlkZWQuXG4gKi9cbmNvbnN0IERFRkFVTFRfU0VSVkVSX0NPTlRFWFQgPSAnb3RoZXInO1xuXG4vKipcbiAqIEFuIGludGVybmFsIHRva2VuIHRoYXQgYWxsb3dzIHByb3ZpZGluZyBleHRyYSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2VydmVyIGNvbnRleHRcbiAqIChlLmcuIHdoZXRoZXIgU1NSIG9yIFNTRyB3YXMgdXNlZCkuIFRoZSB2YWx1ZSBpcyBhIHN0cmluZyBhbmQgY2hhcmFjdGVycyBvdGhlclxuICogdGhhbiBbYS16QS1aMC05XFwtXSBhcmUgcmVtb3ZlZC4gU2VlIHRoZSBkZWZhdWx0IHZhbHVlIGluIGBERUZBVUxUX1NFUlZFUl9DT05URVhUYCBjb25zdC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9DT05URVhUID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ1NFUlZFUl9DT05URVhUJyk7XG5cbi8qKlxuICogU2FuaXRpemVzIHByb3ZpZGVkIHNlcnZlciBjb250ZXh0OlxuICogLSByZW1vdmVzIGFsbCBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gYS16LCBBLVosIDAtOSBhbmQgYC1gXG4gKiAtIHJldHVybnMgYG90aGVyYCBpZiBub3RoaW5nIGlzIHByb3ZpZGVkIG9yIHRoZSBzdHJpbmcgaXMgZW1wdHkgYWZ0ZXIgc2FuaXRpemF0aW9uXG4gKi9cbmZ1bmN0aW9uIHNhbml0aXplU2VydmVyQ29udGV4dChzZXJ2ZXJDb250ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjb250ZXh0ID0gc2VydmVyQ29udGV4dC5yZXBsYWNlKC9bXmEtekEtWjAtOVxcLV0vZywgJycpO1xuICByZXR1cm4gY29udGV4dC5sZW5ndGggPiAwID8gY29udGV4dCA6IERFRkFVTFRfU0VSVkVSX0NPTlRFWFQ7XG59XG5cbi8qKlxuICogQm9vdHN0cmFwcyBhbiBhcHBsaWNhdGlvbiB1c2luZyBwcm92aWRlZCBOZ01vZHVsZSBhbmQgc2VyaWFsaXplcyB0aGUgcGFnZSBjb250ZW50IHRvIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlVHlwZSBBIHJlZmVyZW5jZSB0byBhbiBOZ01vZHVsZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciBib290c3RyYXAuXG4gKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSByZW5kZXIgb3BlcmF0aW9uOlxuICogIC0gYGRvY3VtZW50YCAtIHRoZSBkb2N1bWVudCBvZiB0aGUgcGFnZSB0byByZW5kZXIsIGVpdGhlciBhcyBhbiBIVE1MIHN0cmluZyBvclxuICogICAgICAgICAgICAgICAgIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBgZG9jdW1lbnRgIGluc3RhbmNlLlxuICogIC0gYHVybGAgLSB0aGUgVVJMIGZvciB0aGUgY3VycmVudCByZW5kZXIgcmVxdWVzdC5cbiAqICAtIGBleHRyYVByb3ZpZGVyc2AgLSBzZXQgb2YgcGxhdGZvcm0gbGV2ZWwgcHJvdmlkZXJzIGZvciB0aGUgY3VycmVudCByZW5kZXIgcmVxdWVzdC5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJNb2R1bGU8VD4obW9kdWxlVHlwZTogVHlwZTxUPiwgb3B0aW9uczoge1xuICBkb2N1bWVudD86IHN0cmluZ3xEb2N1bWVudCxcbiAgdXJsPzogc3RyaW5nLFxuICBleHRyYVByb3ZpZGVycz86IFN0YXRpY1Byb3ZpZGVyW10sXG59KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qge2RvY3VtZW50LCB1cmwsIGV4dHJhUHJvdmlkZXJzOiBwbGF0Zm9ybVByb3ZpZGVyc30gPSBvcHRpb25zO1xuICBjb25zdCBwbGF0Zm9ybSA9IF9nZXRQbGF0Zm9ybShwbGF0Zm9ybUR5bmFtaWNTZXJ2ZXIsIHtkb2N1bWVudCwgdXJsLCBwbGF0Zm9ybVByb3ZpZGVyc30pO1xuICByZXR1cm4gX3JlbmRlcihwbGF0Zm9ybSwgcGxhdGZvcm0uYm9vdHN0cmFwTW9kdWxlKG1vZHVsZVR5cGUpKTtcbn1cblxuLyoqXG4gKiBCb290c3RyYXBzIGFuIGluc3RhbmNlIG9mIGFuIEFuZ3VsYXIgYXBwbGljYXRpb24gYW5kIHJlbmRlcnMgaXQgdG8gYSBzdHJpbmcuXG5cbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGJvb3RzdHJhcCA9ICgpID0+IGJvb3RzdHJhcEFwcGxpY2F0aW9uKFJvb3RDb21wb25lbnQsIGFwcENvbmZpZyk7XG4gKiBjb25zdCBvdXRwdXQ6IHN0cmluZyA9IGF3YWl0IHJlbmRlckFwcGxpY2F0aW9uKGJvb3RzdHJhcCk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gYm9vdHN0cmFwIEEgbWV0aG9kIHRoYXQgd2hlbiBpbnZva2VkIHJldHVybnMgYSBwcm9taXNlIHRoYXQgcmV0dXJucyBhbiBgQXBwbGljYXRpb25SZWZgXG4gKiAgICAgaW5zdGFuY2Ugb25jZSByZXNvbHZlZC5cbiAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIHJlbmRlciBvcGVyYXRpb246XG4gKiAgLSBgZG9jdW1lbnRgIC0gdGhlIGRvY3VtZW50IG9mIHRoZSBwYWdlIHRvIHJlbmRlciwgZWl0aGVyIGFzIGFuIEhUTUwgc3RyaW5nIG9yXG4gKiAgICAgICAgICAgICAgICAgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGBkb2N1bWVudGAgaW5zdGFuY2UuXG4gKiAgLSBgdXJsYCAtIHRoZSBVUkwgZm9yIHRoZSBjdXJyZW50IHJlbmRlciByZXF1ZXN0LlxuICogIC0gYHBsYXRmb3JtUHJvdmlkZXJzYCAtIHRoZSBwbGF0Zm9ybSBsZXZlbCBwcm92aWRlcnMgZm9yIHRoZSBjdXJyZW50IHJlbmRlciByZXF1ZXN0LlxuICpcbiAqIEByZXR1cm5zIEEgUHJvbWlzZSwgdGhhdCByZXR1cm5zIHNlcmlhbGl6ZWQgKHRvIGEgc3RyaW5nKSByZW5kZXJlZCBwYWdlLCBvbmNlIHJlc29sdmVkLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqIEBkZXZlbG9wZXJQcmV2aWV3XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJBcHBsaWNhdGlvbjxUPihib290c3RyYXA6ICgpID0+IFByb21pc2U8QXBwbGljYXRpb25SZWY+LCBvcHRpb25zOiB7XG4gIGRvY3VtZW50Pzogc3RyaW5nfERvY3VtZW50LFxuICB1cmw/OiBzdHJpbmcsXG4gIHBsYXRmb3JtUHJvdmlkZXJzPzogUHJvdmlkZXJbXSxcbn0pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBwbGF0Zm9ybSA9IF9nZXRQbGF0Zm9ybShwbGF0Zm9ybUR5bmFtaWNTZXJ2ZXIsIG9wdGlvbnMpO1xuXG4gIHJldHVybiBfcmVuZGVyKHBsYXRmb3JtLCBib290c3RyYXAoKSk7XG59XG4iXX0=
|
|
@@ -14,5 +14,5 @@ import { Version } from '@angular/core';
|
|
|
14
14
|
/**
|
|
15
15
|
* @publicApi
|
|
16
16
|
*/
|
|
17
|
-
export const VERSION = new Version('16.0.0-next.
|
|
17
|
+
export const VERSION = new Version('16.0.0-next.5');
|
|
18
18
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtLXNlcnZlci9zcmMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSDs7OztHQUlHO0FBRUgsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQG1vZHVsZVxuICogQGRlc2NyaXB0aW9uXG4gKiBFbnRyeSBwb2ludCBmb3IgYWxsIHB1YmxpYyBBUElzIG9mIHRoZSBwbGF0Zm9ybS1zZXJ2ZXIgcGFja2FnZS5cbiAqL1xuXG5pbXBvcnQge1ZlcnNpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBuZXcgVmVyc2lvbignMC4wLjAtUExBQ0VIT0xERVInKTtcbiJdfQ==
|
|
@@ -22,12 +22,12 @@ export const platformServerTesting = createPlatformFactory(platformCoreDynamicTe
|
|
|
22
22
|
* @publicApi
|
|
23
23
|
*/
|
|
24
24
|
class ServerTestingModule {
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
26
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerTestingModule, imports: [NoopAnimationsModule], exports: [BrowserDynamicTestingModule] }); }
|
|
27
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerTestingModule, providers: SERVER_RENDER_PROVIDERS, imports: [NoopAnimationsModule, BrowserDynamicTestingModule] }); }
|
|
25
28
|
}
|
|
26
|
-
ServerTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
27
|
-
ServerTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerTestingModule, imports: [NoopAnimationsModule], exports: [BrowserDynamicTestingModule] });
|
|
28
|
-
ServerTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerTestingModule, providers: SERVER_RENDER_PROVIDERS, imports: [NoopAnimationsModule, BrowserDynamicTestingModule] });
|
|
29
29
|
export { ServerTestingModule };
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerTestingModule, decorators: [{
|
|
31
31
|
type: NgModule,
|
|
32
32
|
args: [{
|
|
33
33
|
exports: [BrowserDynamicTestingModule],
|
|
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4",
|
|
|
35
35
|
providers: SERVER_RENDER_PROVIDERS
|
|
36
36
|
}]
|
|
37
37
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0tc2VydmVyL3Rlc3Rpbmcvc3JjL3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMscUJBQXFCLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBQywyQkFBMkIsRUFBRSwyQkFBMkIsSUFBSSwwQkFBMEIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pKLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxtQ0FBbUMsSUFBSSxrQ0FBa0MsRUFBRSx3QkFBd0IsSUFBSSx1QkFBdUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUd4Szs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcscUJBQXFCLENBQ3RELDBCQUEwQixFQUFFLGVBQWUsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO0FBRXJGOzs7O0dBSUc7QUFDSCxNQUthLG1CQUFtQjt5SEFBbkIsbUJBQW1COzBIQUFuQixtQkFBbUIsWUFIcEIsb0JBQW9CLGFBRHBCLDJCQUEyQjswSEFJMUIsbUJBQW1CLGFBRm5CLHVCQUF1QixZQUR4QixvQkFBb0IsRUFEcEIsMkJBQTJCOztTQUkxQixtQkFBbUI7c0dBQW5CLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQy9CLFNBQVMsRUFBRSx1QkFBdUI7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Y3JlYXRlUGxhdGZvcm1GYWN0b3J5LCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jyb3dzZXJEeW5hbWljVGVzdGluZ01vZHVsZSwgybVwbGF0Zm9ybUNvcmVEeW5hbWljVGVzdGluZyBhcyBwbGF0Zm9ybUNvcmVEeW5hbWljVGVzdGluZ30gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljL3Rlc3RpbmcnO1xuaW1wb3J0IHtOb29wQW5pbWF0aW9uc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcbmltcG9ydCB7ybVJTlRFUk5BTF9TRVJWRVJfUExBVEZPUk1fUFJPVklERVJTIGFzIElOVEVSTkFMX1NFUlZFUl9QTEFURk9STV9QUk9WSURFUlMsIMm1U0VSVkVSX1JFTkRFUl9QUk9WSURFUlMgYXMgU0VSVkVSX1JFTkRFUl9QUk9WSURFUlN9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLXNlcnZlcic7XG5cblxuLyoqXG4gKiBQbGF0Zm9ybSBmb3IgdGVzdGluZ1xuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGNvbnN0IHBsYXRmb3JtU2VydmVyVGVzdGluZyA9IGNyZWF0ZVBsYXRmb3JtRmFjdG9yeShcbiAgICBwbGF0Zm9ybUNvcmVEeW5hbWljVGVzdGluZywgJ3NlcnZlclRlc3RpbmcnLCBJTlRFUk5BTF9TRVJWRVJfUExBVEZPUk1fUFJPVklERVJTKTtcblxuLyoqXG4gKiBOZ01vZHVsZSBmb3IgdGVzdGluZy5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtCcm93c2VyRHluYW1pY1Rlc3RpbmdNb2R1bGVdLFxuICBpbXBvcnRzOiBbTm9vcEFuaW1hdGlvbnNNb2R1bGVdLFxuICBwcm92aWRlcnM6IFNFUlZFUl9SRU5ERVJfUFJPVklERVJTXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZlclRlc3RpbmdNb2R1bGUge1xufVxuIl19
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v16.0.0-next.
|
|
2
|
+
* @license Angular v16.0.0-next.5
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { ɵsetRootDomAdapter, DOCUMENT, XhrFactory,
|
|
7
|
+
import { ɵsetRootDomAdapter, DOCUMENT, XhrFactory, ɵgetDOM, ɵPLATFORM_SERVER_ID, PlatformLocation, ViewportScroller, ɵNullViewportScroller } from '@angular/common';
|
|
8
8
|
import * as i0 from '@angular/core';
|
|
9
|
-
import { Injectable, Inject, InjectionToken,
|
|
9
|
+
import { Injectable, Inject, InjectionToken, Optional, ViewEncapsulation, APP_ID, RendererStyleFlags2, TransferState, ɵescapeTransferStateContent, NgModule, Injector, PLATFORM_ID, PLATFORM_INITIALIZER, ɵALLOW_MULTIPLE_PLATFORMS, RendererFactory2, NgZone, Testability, ɵTESTABILITY, ɵsetDocument, createPlatformFactory, platformCore, makeEnvironmentProviders, Renderer2, ApplicationRef, ɵInitialRenderPendingTasks, ɵIS_HYDRATION_FEATURE_ENABLED, ɵannotateForHydration, ɵisPromise, Version } from '@angular/core';
|
|
10
10
|
import * as i1 from '@angular/platform-browser';
|
|
11
|
-
import { ɵBrowserDomAdapter, ɵshimStyles, ɵNAMESPACE_URIS, ɵshimContentAttribute, ɵshimHostAttribute,
|
|
12
|
-
import {
|
|
11
|
+
import { ɵBrowserDomAdapter, ɵshimStyles, ɵNAMESPACE_URIS, ɵshimContentAttribute, ɵshimHostAttribute, EVENT_MANAGER_PLUGINS, BrowserModule } from '@angular/platform-browser';
|
|
12
|
+
import { HttpClientModule, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
|
13
13
|
import { ɵAnimationRendererFactory, NoopAnimationsModule, provideNoopAnimations } from '@angular/platform-browser/animations';
|
|
14
14
|
import { ɵAnimationEngine } from '@angular/animations/browser';
|
|
15
15
|
import { ɵplatformCoreDynamic } from '@angular/platform-browser-dynamic';
|
|
16
|
-
import { Observable, Subject } from 'rxjs';
|
|
17
16
|
import * as xhr2 from 'xhr2';
|
|
17
|
+
import { Subject } from 'rxjs';
|
|
18
18
|
import * as url from 'url';
|
|
19
19
|
import { DomElementSchemaRegistry } from '@angular/compiler';
|
|
20
20
|
import { first } from 'rxjs/operators';
|
|
@@ -20084,16 +20084,30 @@ class PlatformState {
|
|
|
20084
20084
|
getDocument() {
|
|
20085
20085
|
return this._doc;
|
|
20086
20086
|
}
|
|
20087
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: PlatformState, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20088
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: PlatformState }); }
|
|
20087
20089
|
}
|
|
20088
|
-
|
|
20089
|
-
PlatformState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: PlatformState });
|
|
20090
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: PlatformState, decorators: [{
|
|
20090
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: PlatformState, decorators: [{
|
|
20091
20091
|
type: Injectable
|
|
20092
20092
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
20093
20093
|
type: Inject,
|
|
20094
20094
|
args: [DOCUMENT]
|
|
20095
20095
|
}] }]; } });
|
|
20096
20096
|
|
|
20097
|
+
class ServerXhr {
|
|
20098
|
+
build() {
|
|
20099
|
+
return new xhr2.XMLHttpRequest();
|
|
20100
|
+
}
|
|
20101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20102
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerXhr }); }
|
|
20103
|
+
}
|
|
20104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerXhr, decorators: [{
|
|
20105
|
+
type: Injectable
|
|
20106
|
+
}] });
|
|
20107
|
+
const SERVER_HTTP_PROVIDERS = [
|
|
20108
|
+
{ provide: XhrFactory, useClass: ServerXhr },
|
|
20109
|
+
];
|
|
20110
|
+
|
|
20097
20111
|
/**
|
|
20098
20112
|
* The DI token for setting the initial config for the platform.
|
|
20099
20113
|
*
|
|
@@ -20108,116 +20122,6 @@ const INITIAL_CONFIG = new InjectionToken('Server.INITIAL_CONFIG');
|
|
|
20108
20122
|
*/
|
|
20109
20123
|
const BEFORE_APP_SERIALIZED = new InjectionToken('Server.RENDER_MODULE_HOOK');
|
|
20110
20124
|
|
|
20111
|
-
// @see https://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-01#URI-syntax
|
|
20112
|
-
const isAbsoluteUrl = /^[a-zA-Z\-\+.]+:\/\//;
|
|
20113
|
-
class ServerXhr {
|
|
20114
|
-
build() {
|
|
20115
|
-
return new xhr2.XMLHttpRequest();
|
|
20116
|
-
}
|
|
20117
|
-
}
|
|
20118
|
-
ServerXhr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20119
|
-
ServerXhr.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerXhr });
|
|
20120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerXhr, decorators: [{
|
|
20121
|
-
type: Injectable
|
|
20122
|
-
}] });
|
|
20123
|
-
class ZoneMacroTaskWrapper {
|
|
20124
|
-
wrap(request) {
|
|
20125
|
-
return new Observable((observer) => {
|
|
20126
|
-
let task = null;
|
|
20127
|
-
let scheduled = false;
|
|
20128
|
-
let sub = null;
|
|
20129
|
-
let savedResult = null;
|
|
20130
|
-
let savedError = null;
|
|
20131
|
-
const scheduleTask = (_task) => {
|
|
20132
|
-
task = _task;
|
|
20133
|
-
scheduled = true;
|
|
20134
|
-
const delegate = this.delegate(request);
|
|
20135
|
-
sub = delegate.subscribe(res => savedResult = res, err => {
|
|
20136
|
-
if (!scheduled) {
|
|
20137
|
-
throw new Error('An http observable was completed twice. This shouldn\'t happen, please file a bug.');
|
|
20138
|
-
}
|
|
20139
|
-
savedError = err;
|
|
20140
|
-
scheduled = false;
|
|
20141
|
-
task.invoke();
|
|
20142
|
-
}, () => {
|
|
20143
|
-
if (!scheduled) {
|
|
20144
|
-
throw new Error('An http observable was completed twice. This shouldn\'t happen, please file a bug.');
|
|
20145
|
-
}
|
|
20146
|
-
scheduled = false;
|
|
20147
|
-
task.invoke();
|
|
20148
|
-
});
|
|
20149
|
-
};
|
|
20150
|
-
const cancelTask = (_task) => {
|
|
20151
|
-
if (!scheduled) {
|
|
20152
|
-
return;
|
|
20153
|
-
}
|
|
20154
|
-
scheduled = false;
|
|
20155
|
-
if (sub) {
|
|
20156
|
-
sub.unsubscribe();
|
|
20157
|
-
sub = null;
|
|
20158
|
-
}
|
|
20159
|
-
};
|
|
20160
|
-
const onComplete = () => {
|
|
20161
|
-
if (savedError !== null) {
|
|
20162
|
-
observer.error(savedError);
|
|
20163
|
-
}
|
|
20164
|
-
else {
|
|
20165
|
-
observer.next(savedResult);
|
|
20166
|
-
observer.complete();
|
|
20167
|
-
}
|
|
20168
|
-
};
|
|
20169
|
-
// MockBackend for Http is synchronous, which means that if scheduleTask is by
|
|
20170
|
-
// scheduleMacroTask, the request will hit MockBackend and the response will be
|
|
20171
|
-
// sent, causing task.invoke() to be called.
|
|
20172
|
-
const _task = Zone.current.scheduleMacroTask('ZoneMacroTaskWrapper.subscribe', onComplete, {}, () => null, cancelTask);
|
|
20173
|
-
scheduleTask(_task);
|
|
20174
|
-
return () => {
|
|
20175
|
-
if (scheduled && task) {
|
|
20176
|
-
task.zone.cancelTask(task);
|
|
20177
|
-
scheduled = false;
|
|
20178
|
-
}
|
|
20179
|
-
if (sub) {
|
|
20180
|
-
sub.unsubscribe();
|
|
20181
|
-
sub = null;
|
|
20182
|
-
}
|
|
20183
|
-
};
|
|
20184
|
-
});
|
|
20185
|
-
}
|
|
20186
|
-
}
|
|
20187
|
-
class ZoneClientBackend extends ZoneMacroTaskWrapper {
|
|
20188
|
-
constructor(backend, platformLocation, config) {
|
|
20189
|
-
super();
|
|
20190
|
-
this.backend = backend;
|
|
20191
|
-
this.platformLocation = platformLocation;
|
|
20192
|
-
this.config = config;
|
|
20193
|
-
}
|
|
20194
|
-
handle(request) {
|
|
20195
|
-
const { href, protocol, hostname, port } = this.platformLocation;
|
|
20196
|
-
if (this.config.useAbsoluteUrl && !isAbsoluteUrl.test(request.url) &&
|
|
20197
|
-
isAbsoluteUrl.test(href)) {
|
|
20198
|
-
const baseHref = this.platformLocation.getBaseHrefFromDOM() || href;
|
|
20199
|
-
const urlPrefix = `${protocol}//${hostname}` + (port ? `:${port}` : '');
|
|
20200
|
-
const baseUrl = new URL(baseHref, urlPrefix);
|
|
20201
|
-
const url = new URL(request.url, baseUrl);
|
|
20202
|
-
return this.wrap(request.clone({ url: url.toString() }));
|
|
20203
|
-
}
|
|
20204
|
-
return this.wrap(request);
|
|
20205
|
-
}
|
|
20206
|
-
delegate(request) {
|
|
20207
|
-
return this.backend.handle(request);
|
|
20208
|
-
}
|
|
20209
|
-
}
|
|
20210
|
-
function zoneWrappedInterceptorHandler(platformLocation, config) {
|
|
20211
|
-
return new ZoneClientBackend(new ɵHttpInterceptorHandler(inject(HttpBackend), inject(EnvironmentInjector)), platformLocation, config);
|
|
20212
|
-
}
|
|
20213
|
-
const SERVER_HTTP_PROVIDERS = [
|
|
20214
|
-
{ provide: XhrFactory, useClass: ServerXhr }, {
|
|
20215
|
-
provide: HttpHandler,
|
|
20216
|
-
useFactory: zoneWrappedInterceptorHandler,
|
|
20217
|
-
deps: [PlatformLocation, INITIAL_CONFIG]
|
|
20218
|
-
}
|
|
20219
|
-
];
|
|
20220
|
-
|
|
20221
20125
|
function parseUrl(urlStr) {
|
|
20222
20126
|
const parsedUrl = url.parse(urlStr);
|
|
20223
20127
|
return {
|
|
@@ -20312,10 +20216,10 @@ class ServerPlatformLocation {
|
|
|
20312
20216
|
getState() {
|
|
20313
20217
|
return undefined;
|
|
20314
20218
|
}
|
|
20219
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerPlatformLocation, deps: [{ token: DOCUMENT }, { token: INITIAL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20220
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerPlatformLocation }); }
|
|
20315
20221
|
}
|
|
20316
|
-
|
|
20317
|
-
ServerPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerPlatformLocation });
|
|
20318
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerPlatformLocation, decorators: [{
|
|
20222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerPlatformLocation, decorators: [{
|
|
20319
20223
|
type: Injectable
|
|
20320
20224
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
20321
20225
|
type: Inject,
|
|
@@ -20349,10 +20253,10 @@ class ServerEventManagerPlugin /* extends EventManagerPlugin which is private */
|
|
|
20349
20253
|
}
|
|
20350
20254
|
return this.addEventListener(target, eventName, handler);
|
|
20351
20255
|
}
|
|
20256
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerEventManagerPlugin /* extends EventManagerPlugin which is private */, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20257
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerEventManagerPlugin /* extends EventManagerPlugin which is private */ }); }
|
|
20352
20258
|
}
|
|
20353
|
-
|
|
20354
|
-
ServerEventManagerPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerEventManagerPlugin /* extends EventManagerPlugin which is private */ });
|
|
20355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerEventManagerPlugin /* extends EventManagerPlugin which is private */, decorators: [{
|
|
20259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerEventManagerPlugin /* extends EventManagerPlugin which is private */, decorators: [{
|
|
20356
20260
|
type: Injectable
|
|
20357
20261
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
20358
20262
|
type: Inject,
|
|
@@ -20398,10 +20302,10 @@ class ServerRendererFactory2 {
|
|
|
20398
20302
|
}
|
|
20399
20303
|
begin() { }
|
|
20400
20304
|
end() { }
|
|
20305
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerRendererFactory2, deps: [{ token: i1.EventManager }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i1.ɵSharedStylesHost }, { token: APP_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20306
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerRendererFactory2 }); }
|
|
20401
20307
|
}
|
|
20402
|
-
|
|
20403
|
-
ServerRendererFactory2.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerRendererFactory2 });
|
|
20404
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerRendererFactory2, decorators: [{
|
|
20308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerRendererFactory2, decorators: [{
|
|
20405
20309
|
type: Injectable
|
|
20406
20310
|
}], ctorParameters: function () { return [{ type: i1.EventManager }, { type: i0.NgZone }, { type: Document, decorators: [{
|
|
20407
20311
|
type: Inject,
|
|
@@ -20665,11 +20569,11 @@ function serializeTransferStateFactory(doc, appId, transferStore) {
|
|
|
20665
20569
|
* this module.
|
|
20666
20570
|
*/
|
|
20667
20571
|
class ServerTransferStateModule {
|
|
20572
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerTransferStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
20573
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerTransferStateModule }); }
|
|
20574
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerTransferStateModule }); }
|
|
20668
20575
|
}
|
|
20669
|
-
|
|
20670
|
-
ServerTransferStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerTransferStateModule });
|
|
20671
|
-
ServerTransferStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerTransferStateModule });
|
|
20672
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerTransferStateModule, decorators: [{
|
|
20576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerTransferStateModule, decorators: [{
|
|
20673
20577
|
type: NgModule,
|
|
20674
20578
|
args: [{}]
|
|
20675
20579
|
}] });
|
|
@@ -20717,11 +20621,11 @@ const PLATFORM_SERVER_PROVIDERS = [
|
|
|
20717
20621
|
* @publicApi
|
|
20718
20622
|
*/
|
|
20719
20623
|
class ServerModule {
|
|
20624
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
20625
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerModule, imports: [HttpClientModule, NoopAnimationsModule], exports: [BrowserModule] }); }
|
|
20626
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerModule, providers: PLATFORM_SERVER_PROVIDERS, imports: [HttpClientModule, NoopAnimationsModule, BrowserModule] }); }
|
|
20720
20627
|
}
|
|
20721
|
-
|
|
20722
|
-
ServerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerModule, imports: [HttpClientModule, NoopAnimationsModule], exports: [BrowserModule] });
|
|
20723
|
-
ServerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerModule, providers: PLATFORM_SERVER_PROVIDERS, imports: [HttpClientModule, NoopAnimationsModule, BrowserModule] });
|
|
20724
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ServerModule, decorators: [{
|
|
20628
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.5", ngImport: i0, type: ServerModule, decorators: [{
|
|
20725
20629
|
type: NgModule,
|
|
20726
20630
|
args: [{
|
|
20727
20631
|
exports: [BrowserModule],
|
|
@@ -20804,9 +20708,10 @@ function _render(platform, bootstrapPromise) {
|
|
|
20804
20708
|
moduleOrApplicationRef :
|
|
20805
20709
|
environmentInjector.get(ApplicationRef);
|
|
20806
20710
|
const serverContext = sanitizeServerContext(environmentInjector.get(SERVER_CONTEXT, DEFAULT_SERVER_CONTEXT));
|
|
20807
|
-
|
|
20808
|
-
|
|
20809
|
-
|
|
20711
|
+
const isStablePromise = applicationRef.isStable.pipe((first((isStable) => isStable))).toPromise();
|
|
20712
|
+
const pendingTasks = environmentInjector.get(ɵInitialRenderPendingTasks);
|
|
20713
|
+
const pendingTasksPromise = pendingTasks.whenAllTasksComplete;
|
|
20714
|
+
return Promise.allSettled([isStablePromise, pendingTasksPromise]).then(() => {
|
|
20810
20715
|
appendServerContextInfo(serverContext, applicationRef);
|
|
20811
20716
|
const platformState = platform.injector.get(PlatformState);
|
|
20812
20717
|
const asyncPromises = [];
|
|
@@ -20918,7 +20823,7 @@ function renderApplication(bootstrap, options) {
|
|
|
20918
20823
|
/**
|
|
20919
20824
|
* @publicApi
|
|
20920
20825
|
*/
|
|
20921
|
-
const VERSION = new Version('16.0.0-next.
|
|
20826
|
+
const VERSION = new Version('16.0.0-next.5');
|
|
20922
20827
|
|
|
20923
20828
|
/// <reference types="node" />
|
|
20924
20829
|
// This file only reexports content of the `src` folder. Keep it that way.
|