@equinor/fusion-framework-module-navigation 7.0.5 → 7.0.7
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/CHANGELOG.md +24 -0
- package/dist/esm/NavigationProvider.js +82 -15
- package/dist/esm/NavigationProvider.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/NavigationProvider.d.ts +9 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +8 -8
- package/src/NavigationProvider.ts +88 -15
- package/src/__tests__/NavigationProvider.test.ts +233 -2
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 7.0.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 1b9d026: Fix basename boundary matching and trailing-slash handling.
|
|
8
|
+
|
|
9
|
+
- `normalizePathname` no longer strips trailing slashes — only collapses consecutive slashes. Trailing slash is now preserved as part of the path identity.
|
|
10
|
+
- `_isWithinBasenameScope` uses a path-boundary check (`pathname === basename || pathname.startsWith(basename + '/')`) to prevent false positives from apps with overlapping name prefixes (e.g. `/apps/my-app` no longer matches `/apps/my-app-other/foo`).
|
|
11
|
+
- `_localizePath` falls back to `'/'` when the basename-stripped pathname is empty.
|
|
12
|
+
|
|
13
|
+
- 1b9d026: **Security Fix**: Replaced regex-based pathname normalization with iterative approach to prevent potential ReDoS (Regular Expression Denial of Service) vulnerability when processing user-controlled basename values.
|
|
14
|
+
|
|
15
|
+
The `normalizePathname` function now uses a simple character-by-character scan instead of `/\/+/g` regex, ensuring O(n) linear time complexity even with pathological input containing thousands of consecutive slashes.
|
|
16
|
+
|
|
17
|
+
This addresses CodeQL security alert: "Polynomial regular expression used on uncontrolled data"
|
|
18
|
+
|
|
19
|
+
Related: #4751
|
|
20
|
+
|
|
21
|
+
## 7.0.6
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- 987b53f: Internal: bump `jsdom` from `29.1.1` to `30.0.1`, matching the Node.js versions supported by CI.
|
|
26
|
+
|
|
3
27
|
## 7.0.5
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -8,16 +8,52 @@ import { pathToString } from './lib/utils';
|
|
|
8
8
|
/**
|
|
9
9
|
* Normalizes a pathname by:
|
|
10
10
|
* - Collapsing multiple consecutive slashes into a single slash
|
|
11
|
-
* - Removing trailing slashes
|
|
12
11
|
*
|
|
13
12
|
* @example
|
|
14
|
-
* normalizePathname("/app//users///profile/") // returns "/app/users/profile"
|
|
15
|
-
* normalizePathname("///multiple///slashes///") // returns "/multiple/slashes"
|
|
13
|
+
* normalizePathname("/app//users///profile/") // returns "/app/users/profile/"
|
|
14
|
+
* normalizePathname("///multiple///slashes///") // returns "/multiple/slashes/"
|
|
16
15
|
*
|
|
17
16
|
* @param path - The pathname to normalize
|
|
18
|
-
* @returns The normalized pathname without consecutive
|
|
17
|
+
* @returns The normalized pathname without consecutive slashes
|
|
19
18
|
*/
|
|
20
|
-
const normalizePathname = (path) =>
|
|
19
|
+
const normalizePathname = (path) => {
|
|
20
|
+
// Use iterative approach instead of regex to avoid potential ReDoS with untrusted input
|
|
21
|
+
let result = '';
|
|
22
|
+
let lastWasSlash = false;
|
|
23
|
+
for (let i = 0; i < path.length; i++) {
|
|
24
|
+
const char = path[i];
|
|
25
|
+
if (char === '/') {
|
|
26
|
+
if (!lastWasSlash) {
|
|
27
|
+
result += char;
|
|
28
|
+
lastWasSlash = true;
|
|
29
|
+
}
|
|
30
|
+
// Skip consecutive slashes
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
result += char;
|
|
34
|
+
lastWasSlash = false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Removes trailing slashes from a path string.
|
|
41
|
+
*
|
|
42
|
+
* @param path - The path to trim
|
|
43
|
+
* @returns The path without trailing slashes
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* stripTrailingSlashes("/apps/my-app/") // returns "/apps/my-app"
|
|
47
|
+
* stripTrailingSlashes("/apps/my-app///") // returns "/apps/my-app"
|
|
48
|
+
*/
|
|
49
|
+
const stripTrailingSlashes = (path) => {
|
|
50
|
+
// Use iterative approach to avoid ReDoS vulnerability
|
|
51
|
+
let endIndex = path.length;
|
|
52
|
+
while (endIndex > 0 && path[endIndex - 1] === '/') {
|
|
53
|
+
endIndex--;
|
|
54
|
+
}
|
|
55
|
+
return path.substring(0, endIndex);
|
|
56
|
+
};
|
|
21
57
|
/**
|
|
22
58
|
* Navigation provider implementation.
|
|
23
59
|
*
|
|
@@ -103,13 +139,13 @@ export class NavigationProvider extends BaseModuleProvider {
|
|
|
103
139
|
super(args);
|
|
104
140
|
// Extract configuration values
|
|
105
141
|
const { basename, history, telemetry, eventProvider } = args.config;
|
|
106
|
-
// Normalize the basename to strip trailing slashes
|
|
107
|
-
// the current URL to start with the exact
|
|
108
|
-
// of "/apps/my-app/" would fail to match
|
|
109
|
-
// render nothing (blank page).
|
|
110
|
-
//
|
|
111
|
-
|
|
112
|
-
this.#basename =
|
|
142
|
+
// Normalize the basename to strip trailing slashes and collapse consecutive
|
|
143
|
+
// slashes. React Router requires the current URL to start with the exact
|
|
144
|
+
// basename string, so a basename of "/apps/my-app/" would fail to match
|
|
145
|
+
// the URL "/apps/my-app" and render nothing (blank page).
|
|
146
|
+
// Treat '/' as "no basename" (empty string) since all paths start with '/'.
|
|
147
|
+
const normalizedBasename = basename ? stripTrailingSlashes(normalizePathname(basename)) : '';
|
|
148
|
+
this.#basename = normalizedBasename || undefined;
|
|
113
149
|
this.#event = eventProvider;
|
|
114
150
|
this.#telemetry = telemetry;
|
|
115
151
|
// History is required - validate and track error if missing
|
|
@@ -262,22 +298,53 @@ export class NavigationProvider extends BaseModuleProvider {
|
|
|
262
298
|
/**
|
|
263
299
|
* Checks whether a pathname falls within the configured basename scope.
|
|
264
300
|
*
|
|
301
|
+
* Uses a path-boundary check to avoid false positives from apps with
|
|
302
|
+
* overlapping name prefixes (e.g. `/apps/my-app` must not match
|
|
303
|
+
* `/apps/my-app-other/foo`).
|
|
304
|
+
*
|
|
265
305
|
* @param pathname - The pathname to check
|
|
266
|
-
* @returns `true` if the pathname
|
|
306
|
+
* @returns `true` if the pathname matches the basename exactly or starts
|
|
307
|
+
* with the basename followed by `/` (or no basename is set)
|
|
267
308
|
*/
|
|
268
309
|
_isWithinBasenameScope(pathname) {
|
|
269
|
-
|
|
310
|
+
// No basename means everything is in scope
|
|
311
|
+
if (!this.#basename)
|
|
312
|
+
return true;
|
|
313
|
+
// Normalize the pathname for comparison (collapse consecutive slashes)
|
|
314
|
+
const normalized = normalizePathname(pathname);
|
|
315
|
+
// Check exact match or path-boundary prefix
|
|
316
|
+
return normalized === this.#basename || normalized.startsWith(`${this.#basename}/`);
|
|
270
317
|
}
|
|
271
318
|
/**
|
|
272
319
|
* Localizes a path by stripping the basename prefix from the pathname.
|
|
273
320
|
*
|
|
321
|
+
* Only removes the basename when it matches on a path boundary to avoid
|
|
322
|
+
* incorrectly stripping partial matches.
|
|
323
|
+
*
|
|
274
324
|
* @param location - The full path to localize
|
|
275
325
|
* @returns A new {@link Path} with the basename removed from the pathname
|
|
276
326
|
*/
|
|
277
327
|
_localizePath(location) {
|
|
278
328
|
const { pathname, search, hash } = location;
|
|
329
|
+
// No basename - return normalized pathname as-is
|
|
330
|
+
if (!this.#basename) {
|
|
331
|
+
return {
|
|
332
|
+
pathname: normalizePathname(pathname) || '/',
|
|
333
|
+
search,
|
|
334
|
+
hash,
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
const normalized = normalizePathname(pathname);
|
|
338
|
+
let localized = normalized;
|
|
339
|
+
// Strip basename only if it matches at path boundary
|
|
340
|
+
if (normalized === this.#basename) {
|
|
341
|
+
localized = '/';
|
|
342
|
+
}
|
|
343
|
+
else if (normalized.startsWith(`${this.#basename}/`)) {
|
|
344
|
+
localized = normalized.slice(this.#basename.length);
|
|
345
|
+
}
|
|
279
346
|
return {
|
|
280
|
-
pathname:
|
|
347
|
+
pathname: localized || '/',
|
|
281
348
|
search,
|
|
282
349
|
hash,
|
|
283
350
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationProvider.js","sourceRoot":"","sources":["../../src/NavigationProvider.ts"],"names":[],"mappings":"AAAA,yHAAyH;AACzH,OAAO,EAA4B,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EACL,kBAAkB,GAEnB,MAAM,2CAA2C,CAAC;AAKnD,OAAO,EACL,cAAc,EACd,cAAc,GAEf,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C
|
|
1
|
+
{"version":3,"file":"NavigationProvider.js","sourceRoot":"","sources":["../../src/NavigationProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/version.js
CHANGED