@angular/platform-server 20.0.0-next.1 → 20.0.0-next.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.
- package/fesm2022/init.mjs +8 -105
- package/fesm2022/init.mjs.map +1 -1
- package/fesm2022/platform-server.mjs +59 -158
- package/fesm2022/platform-server.mjs.map +1 -1
- package/fesm2022/testing.mjs +9 -28
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +78 -88
- package/init/index.d.ts +3 -2
- package/package.json +6 -5
- package/testing/index.d.ts +4 -8
package/fesm2022/testing.mjs
CHANGED
|
@@ -1,56 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.0.0-next.
|
|
2
|
+
* @license Angular v20.0.0-next.2
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
8
|
import { createPlatformFactory, NgModule } from '@angular/core';
|
|
9
|
-
import { ɵplatformCoreDynamicTesting, BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing';
|
|
10
|
-
import { ɵINTERNAL_SERVER_PLATFORM_PROVIDERS, ɵSERVER_RENDER_PROVIDERS } from '@angular/platform-server';
|
|
9
|
+
import { ɵplatformCoreDynamicTesting as _platformCoreDynamicTesting, BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing';
|
|
10
|
+
import { ɵINTERNAL_SERVER_PLATFORM_PROVIDERS as _INTERNAL_SERVER_PLATFORM_PROVIDERS, ɵSERVER_RENDER_PROVIDERS as _SERVER_RENDER_PROVIDERS } from '@angular/platform-server';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Platform for testing
|
|
14
14
|
*
|
|
15
15
|
* @publicApi
|
|
16
16
|
*/
|
|
17
|
-
const platformServerTesting = createPlatformFactory(
|
|
17
|
+
const platformServerTesting = createPlatformFactory(_platformCoreDynamicTesting, 'serverTesting', _INTERNAL_SERVER_PLATFORM_PROVIDERS);
|
|
18
18
|
/**
|
|
19
19
|
* NgModule for testing.
|
|
20
20
|
*
|
|
21
21
|
* @publicApi
|
|
22
22
|
*/
|
|
23
23
|
class ServerTestingModule {
|
|
24
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
25
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
26
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
24
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: ServerTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
25
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.2", ngImport: i0, type: ServerTestingModule, exports: [BrowserDynamicTestingModule] });
|
|
26
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: ServerTestingModule, providers: _SERVER_RENDER_PROVIDERS, imports: [BrowserDynamicTestingModule] });
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: ServerTestingModule, decorators: [{
|
|
29
29
|
type: NgModule,
|
|
30
30
|
args: [{
|
|
31
31
|
exports: [BrowserDynamicTestingModule],
|
|
32
|
-
providers:
|
|
32
|
+
providers: _SERVER_RENDER_PROVIDERS,
|
|
33
33
|
}]
|
|
34
34
|
}] });
|
|
35
35
|
|
|
36
|
-
/**
|
|
37
|
-
* @module
|
|
38
|
-
* @description
|
|
39
|
-
* Entry point for all public APIs of the platform-browser-dynamic/testing package.
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* @module
|
|
44
|
-
* @description
|
|
45
|
-
* Entry point for all public APIs of this package.
|
|
46
|
-
*/
|
|
47
|
-
// This file only reexports content of the `src` folder. Keep it that way.
|
|
48
|
-
|
|
49
|
-
// This file is not used to build this module. It is only used during editing
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Generated bundle index. Do not edit.
|
|
53
|
-
*/
|
|
54
|
-
|
|
55
36
|
export { ServerTestingModule, platformServerTesting };
|
|
56
37
|
//# sourceMappingURL=testing.mjs.map
|
package/fesm2022/testing.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.mjs","sources":["../../../../../../packages/platform-server/testing/src/server.ts"
|
|
1
|
+
{"version":3,"file":"testing.mjs","sources":["../../../../../../packages/platform-server/testing/src/server.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.dev/license\n */\n\nimport {createPlatformFactory, NgModule} from '@angular/core';\nimport {\n BrowserDynamicTestingModule,\n ɵplatformCoreDynamicTesting as platformCoreDynamicTesting,\n} from '@angular/platform-browser-dynamic/testing';\nimport {\n ɵINTERNAL_SERVER_PLATFORM_PROVIDERS as INTERNAL_SERVER_PLATFORM_PROVIDERS,\n ɵSERVER_RENDER_PROVIDERS as SERVER_RENDER_PROVIDERS,\n} from '@angular/platform-server';\n\n/**\n * Platform for testing\n *\n * @publicApi\n */\nexport const platformServerTesting = createPlatformFactory(\n platformCoreDynamicTesting,\n 'serverTesting',\n INTERNAL_SERVER_PLATFORM_PROVIDERS,\n);\n\n/**\n * NgModule for testing.\n *\n * @publicApi\n */\n@NgModule({\n exports: [BrowserDynamicTestingModule],\n providers: SERVER_RENDER_PROVIDERS,\n})\nexport class ServerTestingModule {}\n"],"names":["platformCoreDynamicTesting","INTERNAL_SERVER_PLATFORM_PROVIDERS","SERVER_RENDER_PROVIDERS"],"mappings":";;;;;;;;;;;AAkBA;;;;AAIG;AACI,MAAM,qBAAqB,GAAG,qBAAqB,CACxDA,2BAA0B,EAC1B,eAAe,EACfC,mCAAkC;AAGpC;;;;AAIG;MAKU,mBAAmB,CAAA;kHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,2BAA2B,CAAA,EAAA,CAAA;mHAG1B,mBAAmB,EAAA,SAAA,EAFnBC,wBAAuB,EAAA,OAAA,EAAA,CADxB,2BAA2B,CAAA,EAAA,CAAA;;sGAG1B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACtC,oBAAA,SAAS,EAAEA,wBAAuB;AACnC,iBAAA;;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -1,42 +1,73 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.0.0-next.
|
|
2
|
+
* @license Angular v20.0.0-next.2
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
import { ApplicationRef } from '@angular/core';
|
|
9
|
-
import { EnvironmentProviders } from '@angular/core';
|
|
10
7
|
import * as i0 from '@angular/core';
|
|
8
|
+
import { EnvironmentProviders, StaticProvider, PlatformRef, Provider, InjectionToken, ApplicationRef, Type, Version } from '@angular/core';
|
|
11
9
|
import * as i1 from '@angular/platform-browser';
|
|
12
|
-
import { InjectionToken } from '@angular/core';
|
|
13
|
-
import { PlatformRef } from '@angular/core';
|
|
14
|
-
import { Provider } from '@angular/core';
|
|
15
|
-
import { StaticProvider } from '@angular/core';
|
|
16
|
-
import { Type } from '@angular/core';
|
|
17
|
-
import { Version } from '@angular/core';
|
|
18
10
|
|
|
19
11
|
/**
|
|
20
|
-
*
|
|
21
|
-
* `renderModule` just before current platform state is rendered to string.
|
|
12
|
+
* Representation of the current platform state.
|
|
22
13
|
*
|
|
23
14
|
* @publicApi
|
|
24
15
|
*/
|
|
25
|
-
|
|
16
|
+
declare class PlatformState {
|
|
17
|
+
private _doc;
|
|
18
|
+
constructor(_doc: any);
|
|
19
|
+
/**
|
|
20
|
+
* Renders the current state of the platform to string.
|
|
21
|
+
*/
|
|
22
|
+
renderToString(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the current DOM state.
|
|
25
|
+
*/
|
|
26
|
+
getDocument(): any;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PlatformState, never>;
|
|
28
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PlatformState>;
|
|
29
|
+
}
|
|
26
30
|
|
|
27
31
|
/**
|
|
28
|
-
*
|
|
32
|
+
* Sets up providers necessary to enable server rendering functionality for the application.
|
|
33
|
+
*
|
|
34
|
+
* @usageNotes
|
|
35
|
+
*
|
|
36
|
+
* Basic example of how you can add server support to your application:
|
|
37
|
+
* ```ts
|
|
38
|
+
* bootstrapApplication(AppComponent, {
|
|
39
|
+
* providers: [provideServerRendering()]
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
29
42
|
*
|
|
30
43
|
* @publicApi
|
|
44
|
+
* @returns A set of providers to setup the server.
|
|
31
45
|
*/
|
|
32
|
-
|
|
46
|
+
declare function provideServerRendering(): EnvironmentProviders;
|
|
47
|
+
|
|
48
|
+
declare const INTERNAL_SERVER_PLATFORM_PROVIDERS: StaticProvider[];
|
|
49
|
+
declare const SERVER_RENDER_PROVIDERS: Provider[];
|
|
50
|
+
/**
|
|
51
|
+
* The ng module for the server.
|
|
52
|
+
*
|
|
53
|
+
* @publicApi
|
|
54
|
+
*/
|
|
55
|
+
declare class ServerModule {
|
|
56
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ServerModule, never>;
|
|
57
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ServerModule, never, never, [typeof i1.BrowserModule]>;
|
|
58
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ServerModule>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @publicApi
|
|
62
|
+
*/
|
|
63
|
+
declare function platformServer(extraProviders?: StaticProvider[] | undefined): PlatformRef;
|
|
33
64
|
|
|
34
65
|
/**
|
|
35
66
|
* Config object passed to initialize the platform.
|
|
36
67
|
*
|
|
37
68
|
* @publicApi
|
|
38
69
|
*/
|
|
39
|
-
|
|
70
|
+
interface PlatformConfig {
|
|
40
71
|
/**
|
|
41
72
|
* The initial DOM to use to bootstrap the server application.
|
|
42
73
|
* @default create a new DOM using Domino
|
|
@@ -50,49 +81,44 @@ export declare interface PlatformConfig {
|
|
|
50
81
|
*/
|
|
51
82
|
url?: string;
|
|
52
83
|
}
|
|
53
|
-
|
|
54
84
|
/**
|
|
85
|
+
* The DI token for setting the initial config for the platform.
|
|
86
|
+
*
|
|
55
87
|
* @publicApi
|
|
56
88
|
*/
|
|
57
|
-
|
|
58
|
-
|
|
89
|
+
declare const INITIAL_CONFIG: InjectionToken<PlatformConfig>;
|
|
59
90
|
/**
|
|
60
|
-
*
|
|
91
|
+
* A function that will be executed when calling `renderApplication` or
|
|
92
|
+
* `renderModule` just before current platform state is rendered to string.
|
|
61
93
|
*
|
|
62
94
|
* @publicApi
|
|
63
95
|
*/
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
constructor(_doc: any);
|
|
67
|
-
/**
|
|
68
|
-
* Renders the current state of the platform to string.
|
|
69
|
-
*/
|
|
70
|
-
renderToString(): string;
|
|
71
|
-
/**
|
|
72
|
-
* Returns the current DOM state.
|
|
73
|
-
*/
|
|
74
|
-
getDocument(): any;
|
|
75
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PlatformState, never>;
|
|
76
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<PlatformState>;
|
|
77
|
-
}
|
|
96
|
+
declare const BEFORE_APP_SERIALIZED: InjectionToken<readonly (() => void | Promise<void>)[]>;
|
|
97
|
+
declare const ENABLE_DOM_EMULATION: InjectionToken<boolean>;
|
|
78
98
|
|
|
79
99
|
/**
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
100
|
+
* An internal token that allows providing extra information about the server context
|
|
101
|
+
* (e.g. whether SSR or SSG was used). The value is a string and characters other
|
|
102
|
+
* than [a-zA-Z0-9\-] are removed. See the default value in `DEFAULT_SERVER_CONTEXT` const.
|
|
103
|
+
*/
|
|
104
|
+
declare const SERVER_CONTEXT: InjectionToken<string>;
|
|
105
|
+
/**
|
|
106
|
+
* Bootstraps an application using provided NgModule and serializes the page content to string.
|
|
83
107
|
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
108
|
+
* @param moduleType A reference to an NgModule that should be used for bootstrap.
|
|
109
|
+
* @param options Additional configuration for the render operation:
|
|
110
|
+
* - `document` - the document of the page to render, either as an HTML string or
|
|
111
|
+
* as a reference to the `document` instance.
|
|
112
|
+
* - `url` - the URL for the current render request.
|
|
113
|
+
* - `extraProviders` - set of platform level providers for the current render request.
|
|
90
114
|
*
|
|
91
115
|
* @publicApi
|
|
92
|
-
* @returns A set of providers to setup the server.
|
|
93
116
|
*/
|
|
94
|
-
|
|
95
|
-
|
|
117
|
+
declare function renderModule<T>(moduleType: Type<T>, options: {
|
|
118
|
+
document?: string | Document;
|
|
119
|
+
url?: string;
|
|
120
|
+
extraProviders?: StaticProvider[];
|
|
121
|
+
}): Promise<string>;
|
|
96
122
|
/**
|
|
97
123
|
* Bootstraps an instance of an Angular application and renders it to a string.
|
|
98
124
|
|
|
@@ -113,57 +139,21 @@ export declare function provideServerRendering(): EnvironmentProviders;
|
|
|
113
139
|
*
|
|
114
140
|
* @publicApi
|
|
115
141
|
*/
|
|
116
|
-
|
|
142
|
+
declare function renderApplication<T>(bootstrap: () => Promise<ApplicationRef>, options: {
|
|
117
143
|
document?: string | Document;
|
|
118
144
|
url?: string;
|
|
119
145
|
platformProviders?: Provider[];
|
|
120
146
|
}): Promise<string>;
|
|
121
147
|
|
|
122
148
|
/**
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* @param options Additional configuration for the render operation:
|
|
127
|
-
* - `document` - the document of the page to render, either as an HTML string or
|
|
128
|
-
* as a reference to the `document` instance.
|
|
129
|
-
* - `url` - the URL for the current render request.
|
|
130
|
-
* - `extraProviders` - set of platform level providers for the current render request.
|
|
131
|
-
*
|
|
132
|
-
* @publicApi
|
|
133
|
-
*/
|
|
134
|
-
export declare function renderModule<T>(moduleType: Type<T>, options: {
|
|
135
|
-
document?: string | Document;
|
|
136
|
-
url?: string;
|
|
137
|
-
extraProviders?: StaticProvider[];
|
|
138
|
-
}): Promise<string>;
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* The ng module for the server.
|
|
142
|
-
*
|
|
143
|
-
* @publicApi
|
|
149
|
+
* @module
|
|
150
|
+
* @description
|
|
151
|
+
* Entry point for all public APIs of the platform-server package.
|
|
144
152
|
*/
|
|
145
|
-
export declare class ServerModule {
|
|
146
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ServerModule, never>;
|
|
147
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ServerModule, never, never, [typeof i1.BrowserModule]>;
|
|
148
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<ServerModule>;
|
|
149
|
-
}
|
|
150
153
|
|
|
151
154
|
/**
|
|
152
155
|
* @publicApi
|
|
153
156
|
*/
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
export declare const ɵENABLE_DOM_EMULATION: InjectionToken<boolean>;
|
|
157
|
-
|
|
158
|
-
export declare const ɵINTERNAL_SERVER_PLATFORM_PROVIDERS: StaticProvider[];
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* An internal token that allows providing extra information about the server context
|
|
162
|
-
* (e.g. whether SSR or SSG was used). The value is a string and characters other
|
|
163
|
-
* than [a-zA-Z0-9\-] are removed. See the default value in `DEFAULT_SERVER_CONTEXT` const.
|
|
164
|
-
*/
|
|
165
|
-
export declare const ɵSERVER_CONTEXT: InjectionToken<string>;
|
|
166
|
-
|
|
167
|
-
export declare const ɵSERVER_RENDER_PROVIDERS: Provider[];
|
|
157
|
+
declare const VERSION: Version;
|
|
168
158
|
|
|
169
|
-
export { }
|
|
159
|
+
export { BEFORE_APP_SERIALIZED, INITIAL_CONFIG, type PlatformConfig, PlatformState, ServerModule, VERSION, platformServer, provideServerRendering, renderApplication, renderModule, ENABLE_DOM_EMULATION as ɵENABLE_DOM_EMULATION, INTERNAL_SERVER_PLATFORM_PROVIDERS as ɵINTERNAL_SERVER_PLATFORM_PROVIDERS, SERVER_CONTEXT as ɵSERVER_CONTEXT, SERVER_RENDER_PROVIDERS as ɵSERVER_RENDER_PROVIDERS };
|
package/init/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/platform-server",
|
|
3
|
-
"version": "20.0.0-next.
|
|
3
|
+
"version": "20.0.0-next.2",
|
|
4
4
|
"description": "Angular - library for using Angular in Node.js",
|
|
5
5
|
"author": "angular",
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,10 +8,11 @@
|
|
|
8
8
|
"node": "^18.19.1 || ^20.11.1 || >=22.0.0"
|
|
9
9
|
},
|
|
10
10
|
"peerDependencies": {
|
|
11
|
-
"@angular/common": "20.0.0-next.
|
|
12
|
-
"@angular/compiler": "20.0.0-next.
|
|
13
|
-
"@angular/core": "20.0.0-next.
|
|
14
|
-
"@angular/platform-browser": "20.0.0-next.
|
|
11
|
+
"@angular/common": "20.0.0-next.2",
|
|
12
|
+
"@angular/compiler": "20.0.0-next.2",
|
|
13
|
+
"@angular/core": "20.0.0-next.2",
|
|
14
|
+
"@angular/platform-browser": "20.0.0-next.2",
|
|
15
|
+
"rxjs": "^6.5.3 || ^7.4.0"
|
|
15
16
|
},
|
|
16
17
|
"dependencies": {
|
|
17
18
|
"tslib": "^2.3.0",
|
package/testing/index.d.ts
CHANGED
|
@@ -1,31 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.0.0-next.
|
|
2
|
+
* @license Angular v20.0.0-next.2
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
import * as i0 from '@angular/core';
|
|
9
8
|
import * as i1 from '@angular/platform-browser-dynamic/testing';
|
|
10
|
-
import { PlatformRef } from '@angular/core';
|
|
11
|
-
import { StaticProvider } from '@angular/core';
|
|
12
9
|
|
|
13
10
|
/**
|
|
14
11
|
* Platform for testing
|
|
15
12
|
*
|
|
16
13
|
* @publicApi
|
|
17
14
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
declare const platformServerTesting: (extraProviders?: i0.StaticProvider[]) => i0.PlatformRef;
|
|
20
16
|
/**
|
|
21
17
|
* NgModule for testing.
|
|
22
18
|
*
|
|
23
19
|
* @publicApi
|
|
24
20
|
*/
|
|
25
|
-
|
|
21
|
+
declare class ServerTestingModule {
|
|
26
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<ServerTestingModule, never>;
|
|
27
23
|
static ɵmod: i0.ɵɵNgModuleDeclaration<ServerTestingModule, never, never, [typeof i1.BrowserDynamicTestingModule]>;
|
|
28
24
|
static ɵinj: i0.ɵɵInjectorDeclaration<ServerTestingModule>;
|
|
29
25
|
}
|
|
30
26
|
|
|
31
|
-
export { }
|
|
27
|
+
export { ServerTestingModule, platformServerTesting };
|