@angular/build 21.0.0 → 21.1.0-next.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.
- package/package.json +21 -21
- package/src/builders/application/options.js +3 -1
- package/src/builders/application/options.js.map +1 -1
- package/src/builders/dev-server/vite/index.js +1 -3
- package/src/builders/dev-server/vite/index.js.map +1 -1
- package/src/builders/dev-server/vite/server.js +1 -6
- package/src/builders/dev-server/vite/server.js.map +1 -1
- package/src/builders/unit-test/options.d.ts +2 -2
- package/src/builders/unit-test/options.js +3 -2
- package/src/builders/unit-test/options.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/browser-provider.js +16 -9
- package/src/builders/unit-test/runners/vitest/browser-provider.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/plugins.js +41 -13
- package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -1
- package/src/builders/unit-test/test-discovery.js +4 -4
- package/src/builders/unit-test/test-discovery.js.map +1 -1
- package/src/private.d.ts +1 -0
- package/src/private.js +3 -1
- package/src/private.js.map +1 -1
- package/src/tools/angular/angular-host.d.ts +1 -1
- package/src/tools/angular/compilation/angular-compilation.d.ts +1 -1
- package/src/tools/angular/compilation/aot-compilation.d.ts +1 -1
- package/src/tools/angular/compilation/hmr-candidates.d.ts +1 -1
- package/src/tools/angular/compilation/jit-compilation.d.ts +1 -1
- package/src/tools/angular/compilation/noop-compilation.d.ts +1 -1
- package/src/tools/vite/middlewares/assets-middleware.js +1 -1
- package/src/tools/vite/middlewares/assets-middleware.js.map +1 -1
- package/src/tools/vite/middlewares/ssr-middleware.js +2 -6
- package/src/tools/vite/middlewares/ssr-middleware.js.map +1 -1
- package/src/tools/vite/plugins/ssr-ssl-plugin.js +10 -0
- package/src/tools/vite/plugins/ssr-ssl-plugin.js.map +1 -1
- package/src/utils/check-port.js +1 -1
- package/src/utils/check-port.js.map +1 -1
- package/src/utils/normalize-cache.js +1 -1
- package/src/utils/project-metadata.js +1 -1
- package/src/utils/project-metadata.js.map +1 -1
- package/src/utils/server-rendering/launch-server.js +1 -3
- package/src/utils/server-rendering/launch-server.js.map +1 -1
- package/src/utils/server-rendering/manifest.js +1 -1
- package/src/utils/server-rendering/manifest.js.map +1 -1
- package/src/utils/server-rendering/prerender.js +7 -16
- package/src/utils/server-rendering/prerender.js.map +1 -1
- package/src/utils/url.d.ts +74 -1
- package/src/utils/url.js +111 -7
- package/src/utils/url.js.map +1 -1
- package/src/utils/version.js +1 -1
package/src/private.js
CHANGED
|
@@ -21,7 +21,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
21
21
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.loadPostcssConfiguration = exports.generateSearchDirectories = exports.findTailwindConfiguration = exports.getTestEntrypoints = exports.findTests = exports.assertCompatibleAngularVersion = exports.getSupportedBrowsers = exports.generateBuildStatsTable = exports.augmentAppWithServiceWorker = exports.purgeStaleBuildCache = exports.createTranslationLoader = exports.loadProxyConfiguration = exports.InlineCriticalCssProcessor = exports.IndexHtmlGenerator = exports.loadTranslations = exports.createI18nOptions = exports.deleteOutputDir = exports.checkPort = exports.ComponentStylesheetBundler = exports.createAngularCompilation = exports.JavaScriptTransformer = exports.createJitResourceTransformer = exports.LmdbCacheStore = exports.Cache = exports.SourceFileCache = exports.SassWorkerImplementation = exports.transformSupportedBrowsersToTargets = exports.emitFilesToDisk = exports.serveWithVite = exports.ResultKind = exports.buildApplicationInternal = void 0;
|
|
24
|
+
exports.loadPostcssConfiguration = exports.generateSearchDirectories = exports.findTailwindConfiguration = exports.getTestEntrypoints = exports.findTests = exports.assertCompatibleAngularVersion = exports.getSupportedBrowsers = exports.generateBuildStatsTable = exports.augmentAppWithServiceWorker = exports.purgeStaleBuildCache = exports.createTranslationLoader = exports.loadProxyConfiguration = exports.InlineCriticalCssProcessor = exports.IndexHtmlGenerator = exports.loadTranslations = exports.createI18nOptions = exports.deleteOutputDir = exports.checkPort = exports.ComponentStylesheetBundler = exports.createAngularCompilation = exports.DiagnosticModes = exports.JavaScriptTransformer = exports.createJitResourceTransformer = exports.LmdbCacheStore = exports.Cache = exports.SourceFileCache = exports.SassWorkerImplementation = exports.transformSupportedBrowsersToTargets = exports.emitFilesToDisk = exports.serveWithVite = exports.ResultKind = exports.buildApplicationInternal = void 0;
|
|
25
25
|
exports.createCompilerPlugin = createCompilerPlugin;
|
|
26
26
|
/**
|
|
27
27
|
* @fileoverview
|
|
@@ -63,6 +63,8 @@ function createCompilerPlugin(pluginOptions, styleOptions) {
|
|
|
63
63
|
? new compilation_1.NoopCompilation()
|
|
64
64
|
: () => (0, compilation_1.createAngularCompilation)(!!pluginOptions.jit, !!pluginOptions.browserOnlyBuild), new component_stylesheets_1.ComponentStylesheetBundler(styleOptions, styleOptions.inlineStyleLanguage, pluginOptions.incremental));
|
|
65
65
|
}
|
|
66
|
+
var compilation_2 = require("./tools/angular/compilation");
|
|
67
|
+
Object.defineProperty(exports, "DiagnosticModes", { enumerable: true, get: function () { return compilation_2.DiagnosticModes; } });
|
|
66
68
|
var component_stylesheets_2 = require("./tools/esbuild/angular/component-stylesheets");
|
|
67
69
|
Object.defineProperty(exports, "ComponentStylesheetBundler", { enumerable: true, get: function () { return component_stylesheets_2.ComponentStylesheetBundler; } });
|
|
68
70
|
// Utilities
|
package/src/private.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private.js","sourceRoot":"","sources":["private.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAoCH,oDAkBC;AApDD;;;;;GAKG;AAEH,6DAAwF;
|
|
1
|
+
{"version":3,"file":"private.js","sourceRoot":"","sources":["private.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAoCH,oDAkBC;AApDD;;;;;GAKG;AAEH,6DAAwF;AAiD/E,yGAjDiB,sCAAwB,OAiDjB;AAhDjC,6EAGiD;AACjD,yFAA2F;AAG3F,WAAW;AACX,sDAAkE;AAAzD,uHAAA,wBAAwB,OAAA;AAEjC,0DAA0F;AAAnD,qGAAA,UAAU,OAAA;AACjD,mDAA2D;AAAlD,qGAAA,aAAa,OAAA;AAEtB,QAAQ;AACR,wDAAsC;AAEtC,+CAAwD;AAA/C,wGAAA,eAAe,OAAA;AACxB,+CAA4E;AAAnE,4HAAA,mCAAmC,OAAA;AAC5C,0DAAqE;AAA5D,wHAAA,wBAAwB,OAAA;AAEjC,+EAA4E;AAAnE,oHAAA,eAAe,OAAA;AACxB,+CAA8C;AAArC,8FAAA,KAAK,OAAA;AACd,qEAAkE;AAAzD,kHAAA,cAAc,OAAA;AACvB,kGAAqG;AAA5F,wIAAA,4BAA4B,OAAA;AACrC,iFAA+E;AAAtE,+HAAA,qBAAqB,OAAA;AAE9B,SAAgB,oBAAoB,CAClC,aAGC,EACD,YAAuE;IAEvE,OAAO,IAAA,sCAA4B,EACjC,aAAa,EACb,aAAa,CAAC,yBAAyB;QACrC,CAAC,CAAC,IAAI,6BAAe,EAAE;QACvB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAA,sCAAwB,EAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,EACzF,IAAI,kDAA0B,CAC5B,YAAY,EACZ,YAAY,CAAC,mBAAmB,EAChC,aAAa,CAAC,WAAW,CAC1B,CACF,CAAC;AACJ,CAAC;AAGD,2DAA8D;AAArD,8GAAA,eAAe,OAAA;AAExB,uFAA2F;AAAlF,mIAAA,0BAA0B,OAAA;AAEnC,YAAY;AACZ,4DAA0C;AAC1C,iDAA+C;AAAtC,uGAAA,SAAS,OAAA;AAClB,+DAA4D;AAAnD,oHAAA,eAAe,OAAA;AACxB,qDAA6F;AAAlE,iHAAA,iBAAiB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAC9D,gFAKiD;AAJ/C,0HAAA,kBAAkB,OAAA;AAMpB,8EAIgD;AAF9C,iIAAA,0BAA0B,OAAA;AAG5B,+DAAmE;AAA1D,2HAAA,sBAAsB,OAAA;AAC/B,+DAA4F;AAA3D,4HAAA,uBAAuB,OAAA;AACxD,mDAA2D;AAAlD,mHAAA,oBAAoB,OAAA;AAC7B,yDAAqE;AAA5D,6HAAA,2BAA2B,OAAA;AACpC,mDAAgF;AAArD,sHAAA,uBAAuB,OAAA;AAClD,iEAAkE;AAAzD,0HAAA,oBAAoB,OAAA;AAC7B,2CAAiE;AAAxD,yHAAA,8BAA8B,OAAA;AACvC,0DAA4E;AAAnE,uGAAA,SAAS,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AACtC,uEAIuC;AAHrC,kIAAA,yBAAyB,OAAA;AACzB,kIAAA,yBAAyB,OAAA;AACzB,iIAAA,wBAAwB,OAAA"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
-
import type ng from '@angular/compiler-cli';
|
|
8
|
+
import type * as ng from '@angular/compiler-cli';
|
|
9
9
|
import type ts from 'typescript';
|
|
10
10
|
export type AngularCompilerOptions = ng.CompilerOptions;
|
|
11
11
|
export type AngularCompilerHost = ng.CompilerHost;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
-
import type ng from '@angular/compiler-cli';
|
|
8
|
+
import type * as ng from '@angular/compiler-cli';
|
|
9
9
|
import type { PartialMessage } from 'esbuild';
|
|
10
10
|
import type ts from 'typescript';
|
|
11
11
|
import type { AngularHostOptions } from '../angular-host';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
-
import type ng from '@angular/compiler-cli';
|
|
8
|
+
import type * as ng from '@angular/compiler-cli';
|
|
9
9
|
import ts from 'typescript';
|
|
10
10
|
import { AngularHostOptions } from '../angular-host';
|
|
11
11
|
import { AngularCompilation, DiagnosticModes, EmitFileResult } from './angular-compilation';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
-
import type ng from '@angular/compiler-cli';
|
|
8
|
+
import type * as ng from '@angular/compiler-cli';
|
|
9
9
|
import ts from 'typescript';
|
|
10
10
|
/**
|
|
11
11
|
* Analyzes one or more modified files for changes to determine if any
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
-
import type ng from '@angular/compiler-cli';
|
|
8
|
+
import type * as ng from '@angular/compiler-cli';
|
|
9
9
|
import ts from 'typescript';
|
|
10
10
|
import { AngularHostOptions } from '../angular-host';
|
|
11
11
|
import { AngularCompilation, DiagnosticModes, EmitFileResult } from './angular-compilation';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
-
import type ng from '@angular/compiler-cli';
|
|
8
|
+
import type * as ng from '@angular/compiler-cli';
|
|
9
9
|
import type ts from 'typescript';
|
|
10
10
|
import { AngularHostOptions } from '../angular-host';
|
|
11
11
|
import { AngularCompilation } from './angular-compilation';
|
|
@@ -25,7 +25,7 @@ function createAngularAssetsMiddleware(server, assets, outputFiles, componentSty
|
|
|
25
25
|
// The base of the URL is unused but required to parse the URL.
|
|
26
26
|
const pathname = (0, utils_1.pathnameWithoutBasePath)(req.url, server.config.base);
|
|
27
27
|
const extension = (0, node_path_1.extname)(pathname);
|
|
28
|
-
const pathnameHasTrailingSlash = pathname
|
|
28
|
+
const pathnameHasTrailingSlash = pathname.at(-1) === '/';
|
|
29
29
|
// Rewrite all build assets to a vite raw fs URL
|
|
30
30
|
const asset = assets.get(pathname);
|
|
31
31
|
if (asset) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets-middleware.js","sourceRoot":"","sources":["assets-middleware.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAoBH,sEA+KC;AAiBD,kEAwCC;AA1PD,mCAAkD;AAClD,6CAAyC;AACzC,qCAAuC;AAEvC,yCAAoC;AAGpC,oCAAkG;AAQlG,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAC1D,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAEvC,SAAgB,6BAA6B,CAC3C,MAAqB,EACrB,MAA2B,EAC3B,WAAqC,EACrC,eAAkD,EAClD,gBAAoE;IAEpE,OAAO,SAAS,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,IAAA,+BAAuB,EAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"assets-middleware.js","sourceRoot":"","sources":["assets-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,9 +53,7 @@ function createAngularSsrInternalMiddleware(server, indexHtmlTransformer) {
|
|
|
53
53
|
// Load the compiler because `@angular/ssr/node` depends on `@angular/` packages,
|
|
54
54
|
// which must be processed by the runtime linker, even if they are not used.
|
|
55
55
|
await Promise.resolve().then(() => __importStar(require('@angular/compiler')));
|
|
56
|
-
const { writeResponseToNodeResponse, createWebRequestFromNodeRequest } = (await Promise.resolve(`${
|
|
57
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
-
'@angular/ssr/node'}`).then(s => __importStar(require(s))));
|
|
56
|
+
const { writeResponseToNodeResponse, createWebRequestFromNodeRequest } = (await Promise.resolve(`${'@angular/ssr/node'}`).then(s => __importStar(require(s))));
|
|
59
57
|
const { ɵgetOrCreateAngularServerApp } = (await server.ssrLoadModule('/main.server.mjs'));
|
|
60
58
|
const angularServerApp = ɵgetOrCreateAngularServerApp({
|
|
61
59
|
allowStaticRouteRender: true,
|
|
@@ -86,9 +84,7 @@ async function createAngularSsrExternalMiddleware(server, indexHtmlTransformer)
|
|
|
86
84
|
// Load the compiler because `@angular/ssr/node` depends on `@angular/` packages,
|
|
87
85
|
// which must be processed by the runtime linker, even if they are not used.
|
|
88
86
|
await Promise.resolve().then(() => __importStar(require('@angular/compiler')));
|
|
89
|
-
const { createWebRequestFromNodeRequest, writeResponseToNodeResponse } = (await Promise.resolve(`${
|
|
90
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
91
|
-
'@angular/ssr/node'}`).then(s => __importStar(require(s))));
|
|
87
|
+
const { createWebRequestFromNodeRequest, writeResponseToNodeResponse } = (await Promise.resolve(`${'@angular/ssr/node'}`).then(s => __importStar(require(s))));
|
|
92
88
|
return function angularSsrExternalMiddleware(req, res, next) {
|
|
93
89
|
(async () => {
|
|
94
90
|
const { reqHandler, AngularAppEngine } = (await server.ssrLoadModule('./server.mjs'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-middleware.js","sourceRoot":"","sources":["ssr-middleware.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaH,
|
|
1
|
+
{"version":3,"file":"ssr-middleware.js","sourceRoot":"","sources":["ssr-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,16 @@ function createAngularServerSideSSLPlugin() {
|
|
|
51
51
|
if (!ssr || !https?.cert) {
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
+
if (httpServer && 'ALPNProtocols' in httpServer) {
|
|
55
|
+
// Force Vite to use HTTP/1.1 when SSR and SSL are enabled.
|
|
56
|
+
// This is required because the Express server used for SSR does not support HTTP/2.
|
|
57
|
+
// See: https://github.com/vitejs/vite/blob/46d3077f2b63771cc50230bc907c48f5773c00fb/packages/vite/src/node/http.ts#L126
|
|
58
|
+
// We directly set the `ALPNProtocols` on the HTTP server to override the default behavior.
|
|
59
|
+
// Passing `ALPNProtocols` in the TLS options would cause Node.js to automatically include `h2`.
|
|
60
|
+
// Additionally, using `ALPNCallback` is not an option as it is mutually exclusive with `ALPNProtocols`.
|
|
61
|
+
// See: https://github.com/nodejs/node/blob/b8b4350ed3b73d225eb9e628d69151df56eaf298/lib/internal/http2/core.js#L3351
|
|
62
|
+
httpServer.ALPNProtocols = ['http/1.1'];
|
|
63
|
+
}
|
|
54
64
|
// TODO(alanagius): Replace `undici` with `tls.setDefaultCACertificates` once we only support Node.js 22.18.0+ and 24.5.0+.
|
|
55
65
|
// See: https://nodejs.org/api/tls.html#tlssetdefaultcacertificatescerts
|
|
56
66
|
const { getGlobalDispatcher, setGlobalDispatcher, Agent } = await Promise.resolve().then(() => __importStar(require('undici')));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-ssl-plugin.js","sourceRoot":"","sources":["ssr-ssl-plugin.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKH,
|
|
1
|
+
{"version":3,"file":"ssr-ssl-plugin.js","sourceRoot":"","sources":["ssr-ssl-plugin.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKH,4EA8CC;AAjDD,uCAA4C;AAG5C,SAAgB,gCAAgC;IAC9C,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,OAAO;QACd,KAAK,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE;YAC1C,MAAM,EACJ,GAAG,EACH,MAAM,EAAE,EAAE,KAAK,EAAE,GAClB,GAAG,MAAM,CAAC;YAEX,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,IAAI,UAAU,IAAI,eAAe,IAAI,UAAU,EAAE,CAAC;gBAChD,2DAA2D;gBAC3D,oFAAoF;gBACpF,wHAAwH;gBAExH,2FAA2F;gBAC3F,gGAAgG;gBAChG,wGAAwG;gBACxG,qHAAqH;gBACrH,UAAU,CAAC,aAAa,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1C,CAAC;YAED,2HAA2H;YAC3H,wEAAwE;YACxE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;YACnF,MAAM,kBAAkB,GAAG,mBAAmB,EAAE,CAAC;YACjD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;YACvB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEzD,mBAAmB,CACjB,IAAI,KAAK,CAAC;gBACR,OAAO,EAAE;oBACP,EAAE,EAAE,CAAC,GAAG,2BAAgB,EAAE,GAAG,YAAY,CAAC;iBAC3C;aACF,CAAC,CACH,CAAC;YAEF,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC3B,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/src/utils/check-port.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-port.js","sourceRoot":"","sources":["check-port.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUH,8BAkDC;AA1DD,8DAAiC;AACjC,uCAAwC;AACxC,+BAA8B;AAE9B,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,+DAA+D,CAAC,CAAC;AAChG,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,IAAY;IACxD,6FAA6F;IAC7F,6CAA6C;IAC7C,oBAAoB;IACpB,cAAc;IACd,IAAI;IAEJ,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,IAAA,uBAAY,GAAE,CAAC;QAE9B,MAAM;aACH,IAAI,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;YAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,CAAC;gBAEZ,OAAO;YACT,CAAC;YAED,IAAI,CAAC,WAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"check-port.js","sourceRoot":"","sources":["check-port.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUH,8BAkDC;AA1DD,8DAAiC;AACjC,uCAAwC;AACxC,+BAA8B;AAE9B,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,+DAA+D,CAAC,CAAC;AAChG,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,IAAY;IACxD,6FAA6F;IAC7F,6CAA6C;IAC7C,oBAAoB;IACpB,cAAc;IACd,IAAI;IAEJ,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,IAAA,uBAAY,GAAE,CAAC;QAE9B,MAAM;aACH,IAAI,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;YAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,CAAC;gBAEZ,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAA,WAAK,GAAE,EAAE,CAAC;gBACb,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE/B,OAAO;YACT,CAAC;YAED,kDAAO,mBAAmB,IACvB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAC7B,OAAO,CAAC;gBACN,OAAO,EAAE,QAAQ,IAAI,8DAA8D;gBACnF,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;aACtB,CAAC,CACH;iBACA,IAAI,CACH,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EACnF,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACrC,CAAC;QACN,CAAC,CAAC;aACD,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YACtB,4DAA4D;YAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,IAAA,qBAAM,EACJ,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EACtC,uDAAuD,CACxD,CAAC;YAEF,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC;aACD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.normalizeCacheOptions = normalizeCacheOptions;
|
|
11
11
|
const node_path_1 = require("node:path");
|
|
12
12
|
/** Version placeholder is replaced during the build process with actual package version */
|
|
13
|
-
const VERSION = '21.0.0';
|
|
13
|
+
const VERSION = '21.1.0-next.0';
|
|
14
14
|
function hasCacheMetadata(value) {
|
|
15
15
|
return (!!value &&
|
|
16
16
|
typeof value === 'object' &&
|
|
@@ -17,7 +17,7 @@ const node_path_1 = require("node:path");
|
|
|
17
17
|
* @returns A normalized path string.
|
|
18
18
|
*/
|
|
19
19
|
function normalizeDirectoryPath(path) {
|
|
20
|
-
const last = path
|
|
20
|
+
const last = path.at(-1);
|
|
21
21
|
if (last === '/' || last === '\\') {
|
|
22
22
|
return path.slice(0, -1);
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-metadata.js","sourceRoot":"","sources":["project-metadata.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAUH,wDAOC;AAED,kDAWC;AA5BD,yCAAiC;AAEjC;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,IAAY;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"project-metadata.js","sourceRoot":"","sources":["project-metadata.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAUH,wDAOC;AAED,kDAWC;AA5BD,yCAAiC;AAEjC;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,IAAY;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,mBAAmB,CACjC,aAAqB,EACrB,eAAuD;IAEvD,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAA,gBAAI,EAAC,aAAa,EAAE,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5F,MAAM,aAAa,GAAG,eAAe,CAAC,UAAU,CAAC;IACjD,MAAM,iBAAiB,GAAG,sBAAsB,CAC9C,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,aAAa,EAAE,aAAa,CAAC,CAC5F,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -57,9 +57,7 @@ exports.DEFAULT_URL = new URL('http://ng-localhost/');
|
|
|
57
57
|
*/
|
|
58
58
|
async function launchServer() {
|
|
59
59
|
const { reqHandler } = await (0, load_esm_from_memory_1.loadEsmModuleFromMemory)('./server.mjs');
|
|
60
|
-
const { createWebRequestFromNodeRequest, writeResponseToNodeResponse } = (await Promise.resolve(`${
|
|
61
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
|
-
'@angular/ssr/node'}`).then(s => __importStar(require(s))));
|
|
60
|
+
const { createWebRequestFromNodeRequest, writeResponseToNodeResponse } = (await Promise.resolve(`${'@angular/ssr/node'}`).then(s => __importStar(require(s))));
|
|
63
61
|
if (!(0, utils_1.isSsrNodeRequestHandler)(reqHandler) && !(0, utils_1.isSsrRequestHandler)(reqHandler)) {
|
|
64
62
|
return exports.DEFAULT_URL;
|
|
65
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-server.js","sourceRoot":"","sources":["launch-server.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcH,
|
|
1
|
+
{"version":3,"file":"launch-server.js","sourceRoot":"","sources":["launch-server.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcH,oCA2CC;AAvDD,8DAAiC;AACjC,yCAAyC;AACzC,iEAAiE;AACjE,mCAAuE;AAE1D,QAAA,WAAW,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAE3D;;;;GAIG;AACI,KAAK,UAAU,YAAY;IAChC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,8CAAuB,EAAC,cAAc,CAAC,CAAC;IACrE,MAAM,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,GAAG,CAAC,yBACxE,mBAA6B,uCAC9B,CAAkF,CAAC;IAEpF,IAAI,CAAC,IAAA,+BAAuB,EAAC,UAAU,CAAC,IAAI,CAAC,IAAA,2BAAmB,EAAC,UAAU,CAAC,EAAE,CAAC;QAC7E,OAAO,mBAAW,CAAC;IACrB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,CAAC,KAAK,IAAI,EAAE;YACV,iBAAiB;YACjB,IAAI,IAAA,+BAAuB,EAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC/B,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,2BAA2B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;oBACrB,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACf,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YAClC,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAE7E,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACvC,IAAA,qBAAM,EAAC,aAAa,EAAE,mCAAmC,CAAC,CAAC;IAC3D,IAAA,qBAAM,EAAC,OAAO,aAAa,KAAK,QAAQ,EAAE,wCAAwC,CAAC,CAAC;IAEpF,OAAO,IAAI,GAAG,CAAC,oBAAoB,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -65,7 +65,7 @@ function generateAngularServerAppEngineManifest(i18nOptions, baseHref) {
|
|
|
65
65
|
}
|
|
66
66
|
// Remove trailing slash but retain leading slash.
|
|
67
67
|
let basePath = baseHref || '/';
|
|
68
|
-
if (basePath.length > 1 && basePath
|
|
68
|
+
if (basePath.length > 1 && basePath.at(-1) === '/') {
|
|
69
69
|
basePath = basePath.slice(0, -1);
|
|
70
70
|
}
|
|
71
71
|
const manifestContent = `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["manifest.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAoDH,wFAsCC;AA8BD,4EAgEC;AArLD,yCAAoC;AACpC,qCAA2C;AAE3C,yEAAgG;AAChG,qDAA6D;AAC7D,gEAA8D;AAEjD,QAAA,4BAA4B,GAAG,0BAA0B,CAAC;AAC1D,QAAA,mCAAmC,GAAG,iCAAiC,CAAC;AAOrF,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAEtD;;GAEG;AACH,MAAM,eAAe,GAA2B;IAC9C,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;CACb,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,sCAAsC,CACpD,WAA6D,EAC7D,QAA4B;IAE5B,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,MAAM,gBAAgB,GAA2B,EAAE,CAAC;IAEpD,IAAI,WAAW,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,2BAA2B,EAAE,CAAC;YACnF,WAAW,CAAC,OAAO,CAAC,GAAG,mBAAmB,UAAU,IAAI,CAAC;YACzD,gBAAgB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QACrC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,EAAE,CAAC,GAAG,mBAAmB,2BAA2B,IAAI,CAAC;QACrE,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;IAClD,CAAC;IAED,kDAAkD;IAClD,IAAI,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC;IAC/B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,7 @@ async function prerenderPages(workspaceRoot, baseHref, appShellOptions, prerende
|
|
|
51
51
|
serverBundlesSourceMaps.clear();
|
|
52
52
|
const assetsReversed = {};
|
|
53
53
|
for (const { source, destination } of assets) {
|
|
54
|
-
assetsReversed[addLeadingSlash((0, path_1.toPosixPath)(destination))] = source;
|
|
54
|
+
assetsReversed[(0, url_1.addLeadingSlash)((0, path_1.toPosixPath)(destination))] = source;
|
|
55
55
|
}
|
|
56
56
|
// Get routes to prerender
|
|
57
57
|
const { errors: extractionErrors, serializedRouteTree: serializableRouteTreeNode, appShellRoute, } = await getAllRoutes(workspaceRoot, baseHref, outputFilesForWorker, assetsReversed, appShellOptions, prerenderOptions, sourcemap, outputMode).catch((err) => {
|
|
@@ -129,14 +129,14 @@ async function renderPages(baseHref, sourcemap, serializableRouteTreeNode, maxTh
|
|
|
129
129
|
});
|
|
130
130
|
try {
|
|
131
131
|
const renderingPromises = [];
|
|
132
|
-
const appShellRouteWithLeadingSlash = appShellRoute && addLeadingSlash(appShellRoute);
|
|
132
|
+
const appShellRouteWithLeadingSlash = appShellRoute && (0, url_1.addLeadingSlash)(appShellRoute);
|
|
133
133
|
const baseHrefPathnameWithLeadingSlash = new URL(baseHref, 'http://localhost').pathname;
|
|
134
134
|
for (const { route, redirectTo } of serializableRouteTreeNode) {
|
|
135
135
|
// Remove the base href from the file output path.
|
|
136
|
-
const routeWithoutBaseHref = addTrailingSlash(route).startsWith(baseHrefPathnameWithLeadingSlash)
|
|
137
|
-
? addLeadingSlash(route.slice(baseHrefPathnameWithLeadingSlash.length))
|
|
136
|
+
const routeWithoutBaseHref = (0, url_1.addTrailingSlash)(route).startsWith(baseHrefPathnameWithLeadingSlash)
|
|
137
|
+
? (0, url_1.addLeadingSlash)(route.slice(baseHrefPathnameWithLeadingSlash.length))
|
|
138
138
|
: route;
|
|
139
|
-
const outPath = node_path_1.posix.join(
|
|
139
|
+
const outPath = (0, url_1.stripLeadingSlash)(node_path_1.posix.join(routeWithoutBaseHref, 'index.html'));
|
|
140
140
|
if (typeof redirectTo === 'string') {
|
|
141
141
|
output[outPath] = { content: (0, utils_2.generateRedirectStaticPage)(redirectTo), appShellRoute: false };
|
|
142
142
|
continue;
|
|
@@ -172,7 +172,7 @@ async function getAllRoutes(workspaceRoot, baseHref, outputFilesForWorker, asset
|
|
|
172
172
|
const routes = [];
|
|
173
173
|
let appShellRoute;
|
|
174
174
|
if (appShellOptions) {
|
|
175
|
-
appShellRoute = (0, url_1.
|
|
175
|
+
appShellRoute = (0, url_1.joinUrlParts)(baseHref, appShellOptions.route);
|
|
176
176
|
routes.push({
|
|
177
177
|
renderMode: models_1.RouteRenderMode.Prerender,
|
|
178
178
|
route: appShellRoute,
|
|
@@ -183,7 +183,7 @@ async function getAllRoutes(workspaceRoot, baseHref, outputFilesForWorker, asset
|
|
|
183
183
|
for (const route of routesFromFile) {
|
|
184
184
|
routes.push({
|
|
185
185
|
renderMode: models_1.RouteRenderMode.Prerender,
|
|
186
|
-
route: (0, url_1.
|
|
186
|
+
route: (0, url_1.joinUrlParts)(baseHref, route.trim()),
|
|
187
187
|
});
|
|
188
188
|
}
|
|
189
189
|
}
|
|
@@ -233,13 +233,4 @@ async function getAllRoutes(workspaceRoot, baseHref, outputFilesForWorker, asset
|
|
|
233
233
|
void renderWorker.destroy();
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
|
-
function addLeadingSlash(value) {
|
|
237
|
-
return value[0] === '/' ? value : '/' + value;
|
|
238
|
-
}
|
|
239
|
-
function addTrailingSlash(url) {
|
|
240
|
-
return url[url.length - 1] === '/' ? url : `${url}/`;
|
|
241
|
-
}
|
|
242
|
-
function removeLeadingSlash(value) {
|
|
243
|
-
return value[0] === '/' ? value.slice(1) : value;
|
|
244
|
-
}
|
|
245
236
|
//# sourceMappingURL=prerender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prerender.js","sourceRoot":"","sources":["prerender.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA2CH,wCA+IC;AAxLD,+CAA4C;AAC5C,yCAA2C;AAE3C,8DAA+D;AAC/D,yEAA2F;AAE3F,oCAAyC;AACzC,kCAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"prerender.js","sourceRoot":"","sources":["prerender.ts"],"names":[],"mappings":"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"}
|
package/src/utils/url.d.ts
CHANGED
|
@@ -5,4 +5,77 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Removes the trailing slash from a URL if it exists.
|
|
10
|
+
*
|
|
11
|
+
* @param url - The URL string from which to remove the trailing slash.
|
|
12
|
+
* @returns The URL string without a trailing slash.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```js
|
|
16
|
+
* stripTrailingSlash('path/'); // 'path'
|
|
17
|
+
* stripTrailingSlash('/path'); // '/path'
|
|
18
|
+
* stripTrailingSlash('/'); // '/'
|
|
19
|
+
* stripTrailingSlash(''); // ''
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare function stripTrailingSlash(url: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Removes the leading slash from a URL if it exists.
|
|
25
|
+
*
|
|
26
|
+
* @param url - The URL string from which to remove the leading slash.
|
|
27
|
+
* @returns The URL string without a leading slash.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```js
|
|
31
|
+
* stripLeadingSlash('/path'); // 'path'
|
|
32
|
+
* stripLeadingSlash('/path/'); // 'path/'
|
|
33
|
+
* stripLeadingSlash('/'); // '/'
|
|
34
|
+
* stripLeadingSlash(''); // ''
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function stripLeadingSlash(url: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Adds a leading slash to a URL if it does not already have one.
|
|
40
|
+
*
|
|
41
|
+
* @param url - The URL string to which the leading slash will be added.
|
|
42
|
+
* @returns The URL string with a leading slash.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```js
|
|
46
|
+
* addLeadingSlash('path'); // '/path'
|
|
47
|
+
* addLeadingSlash('/path'); // '/path'
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function addLeadingSlash(url: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* Adds a trailing slash to a URL if it does not already have one.
|
|
53
|
+
*
|
|
54
|
+
* @param url - The URL string to which the trailing slash will be added.
|
|
55
|
+
* @returns The URL string with a trailing slash.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```js
|
|
59
|
+
* addTrailingSlash('path'); // 'path/'
|
|
60
|
+
* addTrailingSlash('path/'); // 'path/'
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function addTrailingSlash(url: string): string;
|
|
64
|
+
/**
|
|
65
|
+
* Joins URL parts into a single URL string.
|
|
66
|
+
*
|
|
67
|
+
* This function takes multiple URL segments, normalizes them by removing leading
|
|
68
|
+
* and trailing slashes where appropriate, and then joins them into a single URL.
|
|
69
|
+
*
|
|
70
|
+
* @param parts - The parts of the URL to join. Each part can be a string with or without slashes.
|
|
71
|
+
* @returns The joined URL string, with normalized slashes.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```js
|
|
75
|
+
* joinUrlParts('path/', '/to/resource'); // '/path/to/resource'
|
|
76
|
+
* joinUrlParts('/path/', 'to/resource'); // '/path/to/resource'
|
|
77
|
+
* joinUrlParts('http://localhost/path/', 'to/resource'); // 'http://localhost/path/to/resource'
|
|
78
|
+
* joinUrlParts('', ''); // '/'
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function joinUrlParts(...parts: string[]): string;
|
package/src/utils/url.js
CHANGED
|
@@ -7,12 +7,116 @@
|
|
|
7
7
|
* found in the LICENSE file at https://angular.dev/license
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
exports.stripTrailingSlash = stripTrailingSlash;
|
|
11
|
+
exports.stripLeadingSlash = stripLeadingSlash;
|
|
12
|
+
exports.addLeadingSlash = addLeadingSlash;
|
|
13
|
+
exports.addTrailingSlash = addTrailingSlash;
|
|
14
|
+
exports.joinUrlParts = joinUrlParts;
|
|
15
|
+
/**
|
|
16
|
+
* Removes the trailing slash from a URL if it exists.
|
|
17
|
+
*
|
|
18
|
+
* @param url - The URL string from which to remove the trailing slash.
|
|
19
|
+
* @returns The URL string without a trailing slash.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```js
|
|
23
|
+
* stripTrailingSlash('path/'); // 'path'
|
|
24
|
+
* stripTrailingSlash('/path'); // '/path'
|
|
25
|
+
* stripTrailingSlash('/'); // '/'
|
|
26
|
+
* stripTrailingSlash(''); // ''
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
function stripTrailingSlash(url) {
|
|
30
|
+
// Check if the last character of the URL is a slash
|
|
31
|
+
return url.length > 1 && url.at(-1) === '/' ? url.slice(0, -1) : url;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Removes the leading slash from a URL if it exists.
|
|
35
|
+
*
|
|
36
|
+
* @param url - The URL string from which to remove the leading slash.
|
|
37
|
+
* @returns The URL string without a leading slash.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```js
|
|
41
|
+
* stripLeadingSlash('/path'); // 'path'
|
|
42
|
+
* stripLeadingSlash('/path/'); // 'path/'
|
|
43
|
+
* stripLeadingSlash('/'); // '/'
|
|
44
|
+
* stripLeadingSlash(''); // ''
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
function stripLeadingSlash(url) {
|
|
48
|
+
// Check if the first character of the URL is a slash
|
|
49
|
+
return url.length > 1 && url[0] === '/' ? url.slice(1) : url;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Adds a leading slash to a URL if it does not already have one.
|
|
53
|
+
*
|
|
54
|
+
* @param url - The URL string to which the leading slash will be added.
|
|
55
|
+
* @returns The URL string with a leading slash.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```js
|
|
59
|
+
* addLeadingSlash('path'); // '/path'
|
|
60
|
+
* addLeadingSlash('/path'); // '/path'
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
function addLeadingSlash(url) {
|
|
64
|
+
// Check if the URL already starts with a slash
|
|
65
|
+
return url[0] === '/' ? url : `/${url}`;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Adds a trailing slash to a URL if it does not already have one.
|
|
69
|
+
*
|
|
70
|
+
* @param url - The URL string to which the trailing slash will be added.
|
|
71
|
+
* @returns The URL string with a trailing slash.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```js
|
|
75
|
+
* addTrailingSlash('path'); // 'path/'
|
|
76
|
+
* addTrailingSlash('path/'); // 'path/'
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
function addTrailingSlash(url) {
|
|
80
|
+
// Check if the URL already end with a slash
|
|
81
|
+
return url.at(-1) === '/' ? url : `${url}/`;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Joins URL parts into a single URL string.
|
|
85
|
+
*
|
|
86
|
+
* This function takes multiple URL segments, normalizes them by removing leading
|
|
87
|
+
* and trailing slashes where appropriate, and then joins them into a single URL.
|
|
88
|
+
*
|
|
89
|
+
* @param parts - The parts of the URL to join. Each part can be a string with or without slashes.
|
|
90
|
+
* @returns The joined URL string, with normalized slashes.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```js
|
|
94
|
+
* joinUrlParts('path/', '/to/resource'); // '/path/to/resource'
|
|
95
|
+
* joinUrlParts('/path/', 'to/resource'); // '/path/to/resource'
|
|
96
|
+
* joinUrlParts('http://localhost/path/', 'to/resource'); // 'http://localhost/path/to/resource'
|
|
97
|
+
* joinUrlParts('', ''); // '/'
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
function joinUrlParts(...parts) {
|
|
101
|
+
const normalizeParts = [];
|
|
102
|
+
for (const part of parts) {
|
|
103
|
+
if (part === '') {
|
|
104
|
+
// Skip any empty parts
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
let normalizedPart = part;
|
|
108
|
+
if (part[0] === '/') {
|
|
109
|
+
normalizedPart = normalizedPart.slice(1);
|
|
110
|
+
}
|
|
111
|
+
if (part.at(-1) === '/') {
|
|
112
|
+
normalizedPart = normalizedPart.slice(0, -1);
|
|
113
|
+
}
|
|
114
|
+
if (normalizedPart !== '') {
|
|
115
|
+
normalizeParts.push(normalizedPart);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const protocolMatch = normalizeParts.length && /^https?:\/\//.test(normalizeParts[0]);
|
|
119
|
+
const joinedParts = normalizeParts.join('/');
|
|
120
|
+
return protocolMatch ? joinedParts : addLeadingSlash(joinedParts);
|
|
17
121
|
}
|
|
18
122
|
//# sourceMappingURL=url.js.map
|