@abp/ng.schematics 10.0.0-rc.2 → 10.0.0

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.
Files changed (36) hide show
  1. package/collection.json +11 -1
  2. package/commands/create-lib/index.d.ts +1 -1
  3. package/commands/create-lib/index.js +13 -10
  4. package/commands/create-lib/index.js.map +1 -1
  5. package/commands/ssr-add/files/application-builder/server.ts.template +192 -0
  6. package/commands/ssr-add/files/server-builder/server.ts.template +220 -0
  7. package/commands/ssr-add/index.d.ts +11 -0
  8. package/commands/ssr-add/index.js +363 -0
  9. package/commands/ssr-add/index.js.map +1 -0
  10. package/commands/ssr-add/schema.json +23 -0
  11. package/commands/ssr-add/server/files/application-builder/ngmodule-src/app/app.module.server.ts.template +23 -0
  12. package/commands/ssr-add/server/files/application-builder/ngmodule-src/app/app.routes.server.ts.template +8 -0
  13. package/commands/ssr-add/server/files/application-builder/ngmodule-src/main.server.ts.template +1 -0
  14. package/commands/ssr-add/server/files/application-builder/standalone-src/app/app.config.server.ts.template +29 -0
  15. package/commands/ssr-add/server/files/application-builder/standalone-src/app/app.routes.server.ts.template +8 -0
  16. package/commands/ssr-add/server/files/application-builder/standalone-src/main.server.ts.template +7 -0
  17. package/commands/ssr-add/server/files/server-builder/ngmodule-src/app/app.module.server.ts.template +25 -0
  18. package/commands/ssr-add/server/files/server-builder/ngmodule-src/main.server.ts.template +1 -0
  19. package/commands/ssr-add/server/files/server-builder/root/tsconfig.server.json.template +15 -0
  20. package/commands/ssr-add/server/files/server-builder/standalone-src/app/app.config.server.ts.template +29 -0
  21. package/commands/ssr-add/server/files/server-builder/standalone-src/main.server.ts.template +7 -0
  22. package/commands/ssr-add/server/index.d.ts +10 -0
  23. package/commands/ssr-add/server/index.js +206 -0
  24. package/commands/ssr-add/server/index.js.map +1 -0
  25. package/commands/ssr-add/server/index.ts +268 -0
  26. package/commands/ssr-add/server/schema.json +23 -0
  27. package/package.json +1 -1
  28. package/utils/angular/index.d.ts +1 -0
  29. package/utils/angular/index.js +1 -0
  30. package/utils/angular/index.js.map +1 -1
  31. package/utils/angular/latest-versions/index.d.ts +28 -0
  32. package/utils/angular/latest-versions/index.js +32 -0
  33. package/utils/angular/latest-versions/index.js.map +1 -0
  34. package/utils/angular/workspace.d.ts +1 -0
  35. package/utils/angular/workspace.js +3 -1
  36. package/utils/angular/workspace.js.map +1 -1
package/collection.json CHANGED
@@ -34,7 +34,17 @@
34
34
  "description": "ABP Change Styles of Theme Schematics",
35
35
  "factory": "./commands/change-theme",
36
36
  "schema": "./commands/change-theme/schema.json"
37
-
37
+ },
38
+ "server": {
39
+ "factory": "./commands/ssr-add/server",
40
+ "description": "Create an Angular server app.",
41
+ "schema": "./commands/ssr-add/server/schema.json",
42
+ "hidden": true
43
+ },
44
+ "ssr-add": {
45
+ "description": "ABP SSR Add Schematics",
46
+ "factory": "./commands/ssr-add",
47
+ "schema": "./commands/ssr-add/schema.json"
38
48
  }
39
49
  }
40
50
  }
@@ -10,4 +10,4 @@ export declare function createLibSecondaryEntry(tree: Tree, options: GenerateLib
10
10
  export declare function createLibSecondaryEntryWithStandaloneTemplate(tree: Tree, options: GenerateLibSchema): Promise<Rule>;
11
11
  export declare function importConfigModuleToDefaultProjectAppModule(packageName: string, options: GenerateLibSchema): (tree: Tree) => Promise<Rule | undefined>;
12
12
  export declare function addRoutingToAppRoutingModule(workspace: WorkspaceDefinition, packageName: string, options: GenerateLibSchema): Rule;
13
- export declare function addRouteToRoutesArray(source: ts.SourceFile, arrayName: string, routeToAdd: string): InsertChange | null;
13
+ export declare function addRouteToRoutesArray(source: ts.SourceFile, routeToAdd: string): InsertChange | null;
@@ -222,7 +222,7 @@ function addRoutingToAppRoutingModule(workspace, packageName, options) {
222
222
  ? `() => import('${routePath}').then(m => m.${macroName}_ROUTES)`
223
223
  : `() => import('${routePath}').then(m => m.${moduleName}.forLazy())`;
224
224
  const routeToAdd = `{ path: '${routePath}', loadChildren: ${routeExpr} }`;
225
- const change = addRouteToRoutesArray(source, 'APP_ROUTES', routeToAdd);
225
+ const change = addRouteToRoutesArray(source, routeToAdd);
226
226
  if (change instanceof utils_1.InsertChange) {
227
227
  const recorder = tree.beginUpdate(appRoutesPath);
228
228
  recorder.insertLeft(change.pos, change.toAdd);
@@ -261,16 +261,19 @@ function addRoutingToAppRoutingModule(workspace, packageName, options) {
261
261
  };
262
262
  }
263
263
  exports.addRoutingToAppRoutingModule = addRoutingToAppRoutingModule;
264
- function addRouteToRoutesArray(source, arrayName, routeToAdd) {
265
- const routesVar = source.statements.find(stmt => ts.isVariableStatement(stmt) &&
266
- stmt.declarationList.declarations.some(decl => ts.isVariableDeclaration(decl) &&
267
- (decl.name.getText() === arrayName || decl.name.getText() === arrayName.toUpperCase()) &&
268
- decl.initializer !== undefined &&
269
- ts.isArrayLiteralExpression(decl.initializer)));
270
- if (!routesVar || !ts.isVariableStatement(routesVar)) {
271
- throw new Error(`Could not find routes array named "${arrayName}".`);
264
+ function addRouteToRoutesArray(source, routeToAdd) {
265
+ // Find all variable declarations that are array literals and contain route definitions
266
+ const routeArrays = source.statements
267
+ .filter(ts.isVariableStatement)
268
+ .flatMap(stmt => stmt.declarationList.declarations.filter(decl => ts.isVariableDeclaration(decl) &&
269
+ decl.initializer &&
270
+ ts.isArrayLiteralExpression(decl.initializer) &&
271
+ decl.initializer.elements.some(el => el.getText().includes('path:'))));
272
+ if (routeArrays.length === 0) {
273
+ throw new Error('No routes array found in source file.');
272
274
  }
273
- const declaration = routesVar.declarationList.declarations.find(decl => decl.name.getText() === arrayName);
275
+ // Select the first routes array found
276
+ const declaration = routeArrays[0];
274
277
  const arrayLiteral = declaration.initializer;
275
278
  const getPathValue = (routeText) => {
276
279
  const match = routeText.match(/path:\s*['"`](.+?)['"`]/);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/schematics/src/commands/create-lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/schematics/src/commands/create-lib/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ import {
2
+ AngularNodeAppEngine,
3
+ createNodeRequestHandler,
4
+ isMainModule,
5
+ writeResponseToNodeResponse,
6
+ } from '@angular/ssr/node';
7
+ import express from 'express';
8
+ import { dirname, resolve } from 'node:path';
9
+ import { fileURLToPath } from 'node:url';
10
+ import {environment} from './environments/environment';
11
+ import { ServerCookieParser } from '@abp/ng.core';
12
+
13
+ // ESM import
14
+ import * as oidc from 'openid-client';
15
+
16
+ if (environment.production === false) {
17
+ process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = "0";
18
+ }
19
+
20
+ const serverDistFolder = dirname(fileURLToPath(import.meta.url));
21
+ const browserDistFolder = resolve(serverDistFolder, '../browser');
22
+
23
+ const app = express();
24
+ const angularApp = new AngularNodeAppEngine();
25
+
26
+ const ISSUER = new URL(environment.oAuthConfig.issuer);
27
+ const CLIENT_ID = environment.oAuthConfig.clientId;
28
+ const REDIRECT_URI = environment.oAuthConfig.redirectUri;
29
+ const SCOPE = environment.oAuthConfig.scope;
30
+ // @ts-ignore
31
+ const CLIENT_SECRET = environment.oAuthConfig.clientSecret || undefined;
32
+
33
+ const config = await oidc.discovery(ISSUER, CLIENT_ID, CLIENT_SECRET);
34
+ const secureCookie = { httpOnly: true, sameSite: 'lax' as const, secure: environment.production, path: '/' };
35
+ const tokenCookie = { ...secureCookie, httpOnly: false };
36
+
37
+ app.use(ServerCookieParser.middleware());
38
+
39
+ const sessions = new Map<string, { pkce?: string; state?: string; refresh?: string; at?: string, returnUrl?: string }>();
40
+
41
+ app.get('/authorize', async (_req, res) => {
42
+ const code_verifier = oidc.randomPKCECodeVerifier();
43
+ const code_challenge = await oidc.calculatePKCECodeChallenge(code_verifier);
44
+ const state = oidc.randomState();
45
+
46
+ if (_req.query.returnUrl) {
47
+ const returnUrl = String(_req.query.returnUrl || null);
48
+ res.cookie('returnUrl', returnUrl, { ...secureCookie, maxAge: 5 * 60 * 1000 });
49
+ }
50
+
51
+ const sid = crypto.randomUUID();
52
+ sessions.set(sid, { pkce: code_verifier, state });
53
+ res.cookie('sid', sid, secureCookie);
54
+
55
+ const url = oidc.buildAuthorizationUrl(config, {
56
+ redirect_uri: REDIRECT_URI,
57
+ scope: SCOPE,
58
+ code_challenge,
59
+ code_challenge_method: 'S256',
60
+ state,
61
+ });
62
+ res.redirect(url.toString());
63
+ });
64
+
65
+ app.get('/logout', async (req, res) => {
66
+ try {
67
+ const sid = req.cookies.sid;
68
+
69
+ if (sid && sessions.has(sid)) {
70
+ sessions.delete(sid);
71
+ }
72
+
73
+ res.clearCookie('sid', secureCookie);
74
+ res.clearCookie('access_token', tokenCookie);
75
+ res.clearCookie('refresh_token', secureCookie);
76
+ res.clearCookie('expires_at', tokenCookie);
77
+ res.clearCookie('returnUrl', secureCookie);
78
+
79
+ const endSessionEndpoint = config.serverMetadata().end_session_endpoint;
80
+ if (endSessionEndpoint) {
81
+ const logoutUrl = new URL(endSessionEndpoint);
82
+ logoutUrl.searchParams.set('post_logout_redirect_uri', REDIRECT_URI);
83
+ logoutUrl.searchParams.set('client_id', CLIENT_ID);
84
+
85
+ return res.redirect(logoutUrl.toString());
86
+ }
87
+ res.redirect('/');
88
+
89
+ } catch (error) {
90
+ console.error('Logout error:', error);
91
+ res.status(500).send('Logout error');
92
+ }
93
+ });
94
+
95
+ app.get('/', async (req, res, next) => {
96
+ try {
97
+ const { code, state } = req.query as any;
98
+ if (!code || !state) return next();
99
+
100
+ const sid = req.cookies.sid;
101
+ const sess = sid && sessions.get(sid);
102
+ if (!sess || state !== sess.state) return res.status(400).send('invalid state');
103
+
104
+ const tokenEndpoint = config.serverMetadata().token_endpoint!;
105
+ const body = new URLSearchParams({
106
+ grant_type: 'authorization_code',
107
+ code: String(code),
108
+ redirect_uri: environment.oAuthConfig.redirectUri,
109
+ code_verifier: sess.pkce!,
110
+ client_id: CLIENT_ID,
111
+ client_secret: CLIENT_SECRET || ''
112
+ });
113
+
114
+ const resp = await fetch(tokenEndpoint, {
115
+ method: 'POST',
116
+ headers: { 'content-type': 'application/x-www-form-urlencoded' },
117
+ body,
118
+ });
119
+
120
+ if (!resp.ok) {
121
+ const errTxt = await resp.text();
122
+ console.error('token error:', resp.status, errTxt);
123
+ return res.status(500).send('token error');
124
+ }
125
+
126
+ const tokens = await resp.json();
127
+
128
+ const expiresInSec =
129
+ Number(tokens.expires_in ?? tokens.expiresIn ?? 3600);
130
+ const skewSec = 60;
131
+ const accessExpiresAt = new Date(
132
+ Date.now() + Math.max(0, expiresInSec - skewSec) * 1000
133
+ );
134
+
135
+ sessions.set(sid, { ...sess, at: tokens.access_token, refresh: tokens.refresh_token });
136
+ res.cookie('access_token', tokens.access_token, {...tokenCookie, maxAge: accessExpiresAt.getTime()});
137
+ res.cookie('refresh_token', tokens.refresh_token, secureCookie);
138
+ res.cookie('expires_at', String(accessExpiresAt.getTime()), tokenCookie);
139
+
140
+ const returnUrl = req.cookies?.returnUrl ?? '/';
141
+ res.clearCookie('returnUrl', secureCookie);
142
+
143
+ return res.redirect(returnUrl);
144
+ } catch (e) {
145
+ console.error('OIDC error:', e);
146
+ return res.status(500).send('oidc error');
147
+ }
148
+ });
149
+
150
+ /**
151
+ * Serve static files from /browser
152
+ */
153
+ app.use(
154
+ express.static(browserDistFolder, {
155
+ maxAge: '1y',
156
+ index: false,
157
+ redirect: false,
158
+ }),
159
+ );
160
+
161
+ /**
162
+ * Handle all other requests by rendering the Angular application.
163
+ */
164
+ app.use((req, res, next) => {
165
+ angularApp
166
+ .handle(req)
167
+ .then(response => {
168
+ if (response) {
169
+ res.cookie('ssr-init', 'true', {...secureCookie, httpOnly: false});
170
+ return writeResponseToNodeResponse(response, res);
171
+ } else {
172
+ return next()
173
+ }
174
+ })
175
+ .catch(next);
176
+ });
177
+
178
+ /**
179
+ * Start the server if this module is the main entry point.
180
+ * The server listens on the port defined by the `PORT` environment variable, or defaults to 4000.
181
+ */
182
+ if (isMainModule(import.meta.url)) {
183
+ const port = process.env['PORT'] || 4200;
184
+ app.listen(port, () => {
185
+ console.log(`Node Express server listening on http://localhost:${port}`);
186
+ });
187
+ }
188
+
189
+ /**
190
+ * Request handler used by the Angular CLI (for dev-server and during build) or Firebase Cloud Functions.
191
+ */
192
+ export const reqHandler = createNodeRequestHandler(app);
@@ -0,0 +1,220 @@
1
+ import 'zone.js/node';
2
+
3
+ import { APP_BASE_HREF } from '@angular/common';
4
+ import { CommonEngine } from '@angular/ssr/node';
5
+ import * as express from 'express';
6
+ import { existsSync } from 'node:fs';
7
+ import { join } from 'node:path';
8
+ import <% if (isStandalone) { %>bootstrap<% } else { %>AppServerModule<% } %> from './main.server';
9
+ import {environment} from './environments/environment';
10
+ import * as oidc from 'openid-client';
11
+ import { ServerCookieParser } from '@abp/ng.core';
12
+ import {COOKIES} from "@abp/ng.oauth";
13
+
14
+ if (environment.production === false) {
15
+ process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = "0";
16
+ }
17
+
18
+ const ISSUER = new URL(environment.oAuthConfig.issuer);
19
+ const CLIENT_ID = environment.oAuthConfig.clientId;
20
+ const REDIRECT_URI = environment.oAuthConfig.redirectUri;
21
+ const SCOPE = environment.oAuthConfig.scope;
22
+ // @ts-ignore
23
+ const CLIENT_SECRET = environment.oAuthConfig.clientSecret || undefined;
24
+
25
+ let config: Awaited<ReturnType<typeof oidc.discovery>>;
26
+ const secureCookie = { httpOnly: true, sameSite: 'lax' as const, secure: environment.production, path: '/' };
27
+ const tokenCookie = { ...secureCookie, httpOnly: false };
28
+
29
+ async function initializeOIDC() {
30
+ config = await oidc.discovery(ISSUER, CLIENT_ID, CLIENT_SECRET);
31
+ }
32
+
33
+ // The Express app is exported so that it can be used by serverless Functions.
34
+ export function app(): express.Express {
35
+ const server = express();
36
+ const distFolder = join(process.cwd(), '<%= browserDistDirectory %>');
37
+ const indexHtml = existsSync(join(distFolder, 'index.original.html'))
38
+ ? join(distFolder, 'index.original.html')
39
+ : join(distFolder, 'index.html');
40
+
41
+ const commonEngine = new CommonEngine();
42
+
43
+ server.set('view engine', 'html');
44
+ server.set('views', distFolder);
45
+
46
+ server.use(ServerCookieParser.middleware());
47
+
48
+ const sessions = new Map<string, { pkce?: string; state?: string; refresh?: string; at?: string, returnUrl?: string }>();
49
+
50
+ server.get('/authorize', async (_req, res) => {
51
+ const code_verifier = oidc.randomPKCECodeVerifier();
52
+ const code_challenge = await oidc.calculatePKCECodeChallenge(code_verifier);
53
+ const state = oidc.randomState();
54
+
55
+ if (_req.query.returnUrl) {
56
+ const returnUrl = String(_req.query.returnUrl || null);
57
+ res.cookie('returnUrl', returnUrl, { ...secureCookie, maxAge: 5 * 60 * 1000 });
58
+ }
59
+
60
+ const sid = crypto.randomUUID();
61
+ sessions.set(sid, { pkce: code_verifier, state });
62
+ res.cookie('sid', sid, secureCookie);
63
+
64
+ const url = oidc.buildAuthorizationUrl(config, {
65
+ redirect_uri: REDIRECT_URI,
66
+ scope: SCOPE,
67
+ code_challenge,
68
+ code_challenge_method: 'S256',
69
+ state,
70
+ });
71
+ res.redirect(url.toString());
72
+ });
73
+
74
+ server.get('/logout', async (req, res) => {
75
+ try {
76
+ const sid = req.cookies.sid;
77
+
78
+ if (sid && sessions.has(sid)) {
79
+ sessions.delete(sid);
80
+ }
81
+
82
+ res.clearCookie('sid', secureCookie);
83
+ res.clearCookie('access_token', tokenCookie);
84
+ res.clearCookie('refresh_token', secureCookie);
85
+ res.clearCookie('expires_at', tokenCookie);
86
+ res.clearCookie('returnUrl', secureCookie);
87
+
88
+ if (!config) {
89
+ return res.redirect('/');
90
+ }
91
+
92
+ const endSessionEndpoint = config.serverMetadata().end_session_endpoint;
93
+ if (endSessionEndpoint) {
94
+ const logoutUrl = new URL(endSessionEndpoint);
95
+ logoutUrl.searchParams.set('post_logout_redirect_uri', REDIRECT_URI);
96
+ logoutUrl.searchParams.set('client_id', CLIENT_ID);
97
+
98
+ return res.redirect(logoutUrl.toString());
99
+ }
100
+ res.redirect('/');
101
+
102
+ } catch (error) {
103
+ console.error('Logout error:', error);
104
+ res.status(500).send('Logout error');
105
+ }
106
+ });
107
+
108
+ server.get('/', async (req, res, next) => {
109
+ try {
110
+ const { code, state } = req.query as any;
111
+ if (!code || !state) return next();
112
+
113
+ const sid = req.cookies.sid;
114
+ const sess = sid && sessions.get(sid);
115
+ if (!sess || state !== sess.state) return res.status(400).send('invalid state');
116
+
117
+ const tokenEndpoint = config.serverMetadata().token_endpoint!;
118
+ const body = new URLSearchParams({
119
+ grant_type: 'authorization_code',
120
+ code: String(code),
121
+ redirect_uri: environment.oAuthConfig.redirectUri,
122
+ code_verifier: sess.pkce!,
123
+ client_id: CLIENT_ID
124
+ });
125
+
126
+ const resp = await fetch(tokenEndpoint, {
127
+ method: 'POST',
128
+ headers: { 'content-type': 'application/x-www-form-urlencoded' },
129
+ body,
130
+ });
131
+
132
+ if (!resp.ok) {
133
+ const errTxt = await resp.text();
134
+ console.error('token error:', resp.status, errTxt);
135
+ return res.status(500).send('token error');
136
+ }
137
+
138
+ const tokens = await resp.json();
139
+
140
+ const expiresInSec =
141
+ Number(tokens.expires_in ?? tokens.expiresIn ?? 3600);
142
+ const skewSec = 60;
143
+ const accessExpiresAt = new Date(
144
+ Date.now() + Math.max(0, expiresInSec - skewSec) * 1000
145
+ );
146
+
147
+ sessions.set(sid, { ...sess, at: tokens.access_token, refresh: tokens.refresh_token });
148
+ res.cookie('access_token', tokens.access_token, {...tokenCookie, maxAge: accessExpiresAt.getTime()});
149
+ res.cookie('refresh_token', tokens.refresh_token, secureCookie);
150
+ res.cookie('expires_at', String(accessExpiresAt.getTime()), tokenCookie);
151
+
152
+ const returnUrl = req.cookies?.returnUrl ?? '/';
153
+ res.clearCookie('returnUrl', secureCookie);
154
+
155
+ return res.redirect(returnUrl);
156
+ } catch (e) {
157
+ console.error('OIDC error:', e);
158
+ return res.status(500).send('oidc error');
159
+ }
160
+ });
161
+
162
+
163
+ // Example Express Rest API endpoints
164
+ // server.get('/api/{*splat}', (req, res) => { });
165
+ // Serve static files from /browser
166
+ server.use(express.static(distFolder, {
167
+ maxAge: '1y',
168
+ index: false,
169
+ }));
170
+
171
+ // All regular routes use the Angular engine
172
+ server.use((req, res, next) => {
173
+ const { protocol, originalUrl, baseUrl, headers } = req;
174
+
175
+ commonEngine
176
+ .render({
177
+ <% if (isStandalone) { %>bootstrap<% } else { %>bootstrap: AppServerModule<% } %>,
178
+ documentFilePath: indexHtml,
179
+ url: `${protocol}://${headers.host}${originalUrl}`,
180
+ publicPath: distFolder,
181
+ providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }, { provide: COOKIES, useValue: JSON.stringify(req.headers.cookie) }],
182
+ })
183
+ .then((html) => {
184
+ res.cookie('ssr-init', 'true', {...secureCookie, httpOnly: false});
185
+ return res.send(html)
186
+ })
187
+ .catch((err) => next(err));
188
+ });
189
+
190
+ return server;
191
+ }
192
+
193
+ async function run(): Promise<void> {
194
+ const port = process.env['PORT'] || 4000;
195
+
196
+ console.log('🔐 Initializing OIDC configuration...');
197
+ await initializeOIDC();
198
+ console.log('✅ OIDC configuration loaded');
199
+
200
+ // Start up the Node server
201
+ const server = app();
202
+ server.listen(port, (error) => {
203
+ if (error) {
204
+ throw error;
205
+ }
206
+ console.log(`Node Express server listening on http://localhost:${port}`);
207
+ });
208
+ }
209
+
210
+ // Webpack will replace 'require' with '__webpack_require__'
211
+ // '__non_webpack_require__' is a proxy to Node 'require'
212
+ // The below code is to ensure that the server is run only when not requiring the bundle.
213
+ declare const __non_webpack_require__: NodeRequire;
214
+ const mainModule = __non_webpack_require__.main;
215
+ const moduleFilename = mainModule && mainModule.filename || '';
216
+ if (moduleFilename === __filename || moduleFilename.includes('iisnode')) {
217
+ run();
218
+ }
219
+
220
+ export default <% if (isStandalone) { %>bootstrap<% } else { %>AppServerModule<% } %>;
@@ -0,0 +1,11 @@
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.dev/license
7
+ */
8
+ import { Rule } from '@angular-devkit/schematics';
9
+ import { Schema as SSROptions } from './schema';
10
+ export declare function updateIndexHtml(options: SSROptions): Rule;
11
+ export default function (options: SSROptions): Rule;