@equinor/fusion-framework-vite-plugin-spa 4.0.1 → 4.0.4

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 CHANGED
@@ -1,5 +1,26 @@
1
1
  # @equinor/fusion-framework-vite-plugin-spa
2
2
 
3
+ ## 4.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 3005189: Fix SPA bootstrap portal template URL construction to normalize slash boundaries between `/portal-proxy`, `assetPath`, and `templateEntry`.
8
+
9
+ This avoids malformed entrypoint imports like `/portal-proxy//bundles/...` that can fail with unauthorized dynamic module fetches in dev-server scenarios where `spa.templateEnv.portal.proxy` is enabled.
10
+
11
+ ## 4.0.3
12
+
13
+ ### Patch Changes
14
+
15
+ - @equinor/fusion-framework-module-telemetry@5.0.1
16
+
17
+ ## 4.0.2
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies [02a5859]
22
+ - @equinor/fusion-framework-module-msal@8.0.2
23
+
3
24
  ## 4.0.1
4
25
 
5
26
  ### Patch Changes
@@ -4,6 +4,7 @@ import { enableMSAL } from '@equinor/fusion-framework-module-msal';
4
4
  import { enableServiceDiscovery, } from '@equinor/fusion-framework-module-service-discovery';
5
5
  import { enableTelemetry, TelemetryLevel, } from '@equinor/fusion-framework-module-telemetry';
6
6
  import { ConsoleAdapter } from '@equinor/fusion-framework-module-telemetry/console-adapter';
7
+ import { createPortalEntryPoint } from './create-portal-entry-point.js';
7
8
  import { registerServiceWorker } from './register-service-worker.js';
8
9
  import { version } from '../version.js';
9
10
  // Allow dynamic import without vite
@@ -113,13 +114,7 @@ enableTelemetry(configurator, {
113
114
  const el = document.createElement('div');
114
115
  document.body.innerHTML = '';
115
116
  document.body.appendChild(el);
116
- const portalEntryPoint = [
117
- portalProxy ? '/portal-proxy' : '',
118
- portal_manifest.build.assetPath,
119
- portal_manifest.build.templateEntry,
120
- ]
121
- .filter(Boolean)
122
- .join('/');
117
+ const portalEntryPoint = createPortalEntryPoint(portalProxy ? '/portal-proxy' : undefined, portal_manifest.build.assetPath, portal_manifest.build.templateEntry);
123
118
  // @todo: should test if the entrypoint is external or internal
124
119
  // @todo: add proper return type
125
120
  const { render } = await measurement
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/html/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/html/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Builds the portal template entrypoint URL used by the SPA bootstrap loader.
3
+ *
4
+ * @param segments - Ordered URL/path segments such as proxy prefix, asset path, and template entry.
5
+ * @returns A normalized entrypoint string with single slashes between segments.
6
+ */
7
+ export const createPortalEntryPoint = (...segments) => {
8
+ const normalized = segments
9
+ .filter((segment) => segment !== undefined && segment !== null)
10
+ .map((segment) => segment.trim())
11
+ .filter(Boolean)
12
+ .map((segment, index) => {
13
+ if (index === 0) {
14
+ return segment.replace(/\/+$/g, '');
15
+ }
16
+ return segment.replace(/^\/+|\/+$/g, '');
17
+ });
18
+ return normalized.join('/');
19
+ };
20
+ //# sourceMappingURL=create-portal-entry-point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-portal-entry-point.js","sourceRoot":"","sources":["../../../src/html/create-portal-entry-point.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,QAA0C,EAAU,EAAE;IAC9F,MAAM,UAAU,GAAG,QAAQ;SACxB,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC;SACjF,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAChC,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEL,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '4.0.1';
2
+ export const version = '4.0.4';
3
3
  //# sourceMappingURL=version.js.map
@@ -23303,7 +23303,7 @@ class TelemetryConfigurator extends BaseConfigBuilder {
23303
23303
  }
23304
23304
 
23305
23305
  // Generated by genversion.
23306
- const version$5 = '5.0.0';
23306
+ const version$5 = '5.0.1';
23307
23307
 
23308
23308
  /**
23309
23309
  * Enum representing the severity levels of telemetry items.
@@ -31765,7 +31765,7 @@ async function sha256Digest(dataString) {
31765
31765
  * Populates buffer with cryptographically random values.
31766
31766
  * @param dataBuffer
31767
31767
  */
31768
- function getRandomValues$1(dataBuffer) {
31768
+ function getRandomValues(dataBuffer) {
31769
31769
  return window.crypto.getRandomValues(dataBuffer);
31770
31770
  }
31771
31771
  /**
@@ -36696,7 +36696,7 @@ function generateCodeVerifier(performanceClient, logger, correlationId) {
36696
36696
  try {
36697
36697
  // Generate random values as utf-8
36698
36698
  const buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);
36699
- invoke(getRandomValues$1, GetRandomValues, logger, performanceClient, correlationId)(buffer);
36699
+ invoke(getRandomValues, GetRandomValues, logger, performanceClient, correlationId)(buffer);
36700
36700
  // encode verifier as base64
36701
36701
  const pkceCodeVerifierB64 = urlEncodeArr(buffer);
36702
36702
  return pkceCodeVerifierB64;
@@ -40731,7 +40731,7 @@ const createClientLogCallback = (provider, metadata, scope) => {
40731
40731
  };
40732
40732
 
40733
40733
  // Generated by genversion.
40734
- const version$2 = '8.0.1';
40734
+ const version$2 = '8.0.2';
40735
40735
 
40736
40736
  /**
40737
40737
  * Zod schema for telemetry configuration validation.
@@ -42597,16 +42597,9 @@ function unsafeStringify(arr, offset = 0) {
42597
42597
  byteToHex[arr[offset + 15]]).toLowerCase();
42598
42598
  }
42599
42599
 
42600
- let getRandomValues;
42601
42600
  const rnds8 = new Uint8Array(16);
42602
42601
  function rng() {
42603
- if (!getRandomValues) {
42604
- if (typeof crypto === 'undefined' || !crypto.getRandomValues) {
42605
- throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
42606
- }
42607
- getRandomValues = crypto.getRandomValues.bind(crypto);
42608
- }
42609
- return getRandomValues(rnds8);
42602
+ return crypto.getRandomValues(rnds8);
42610
42603
  }
42611
42604
 
42612
42605
  function stringToBytes(str) {
@@ -42635,7 +42628,10 @@ function v35(version, hash, value, namespace, buf, offset) {
42635
42628
  bytes[6] = (bytes[6] & 0x0f) | version;
42636
42629
  bytes[8] = (bytes[8] & 0x3f) | 0x80;
42637
42630
  if (buf) {
42638
- offset = offset || 0;
42631
+ offset ??= 0;
42632
+ if (offset < 0 || offset + 16 > buf.length) {
42633
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
42634
+ }
42639
42635
  for (let i = 0; i < 16; ++i) {
42640
42636
  buf[offset + i] = bytes[i];
42641
42637
  }
@@ -42644,9 +42640,12 @@ function v35(version, hash, value, namespace, buf, offset) {
42644
42640
  return unsafeStringify(bytes);
42645
42641
  }
42646
42642
 
42647
- const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
42648
- var native = { randomUUID };
42649
-
42643
+ function v4(options, buf, offset) {
42644
+ if (crypto.randomUUID) {
42645
+ return crypto.randomUUID();
42646
+ }
42647
+ return _v4(options);
42648
+ }
42650
42649
  function _v4(options, buf, offset) {
42651
42650
  options = options || {};
42652
42651
  const rnds = options.random ?? options.rng?.() ?? rng();
@@ -42657,12 +42656,6 @@ function _v4(options, buf, offset) {
42657
42656
  rnds[8] = (rnds[8] & 0x3f) | 0x80;
42658
42657
  return unsafeStringify(rnds);
42659
42658
  }
42660
- function v4(options, buf, offset) {
42661
- if (native.randomUUID && true && !options) {
42662
- return native.randomUUID();
42663
- }
42664
- return _v4(options);
42665
- }
42666
42659
 
42667
42660
  function f(s, x, y, z) {
42668
42661
  switch (s) {
@@ -42700,7 +42693,7 @@ function sha1(bytes) {
42700
42693
  }
42701
42694
  M[i] = arr;
42702
42695
  }
42703
- M[N - 1][14] = ((bytes.length - 1) * 8) / Math.pow(2, 32);
42696
+ M[N - 1][14] = ((bytes.length - 1) * 8) / 2 ** 32;
42704
42697
  M[N - 1][14] = Math.floor(M[N - 1][14]);
42705
42698
  M[N - 1][15] = ((bytes.length - 1) * 8) & 0xffffffff;
42706
42699
  for (let i = 0; i < N; ++i) {
@@ -45308,6 +45301,26 @@ class ConsoleAdapter extends BaseTelemetryAdapter {
45308
45301
  }
45309
45302
  }
45310
45303
 
45304
+ /**
45305
+ * Builds the portal template entrypoint URL used by the SPA bootstrap loader.
45306
+ *
45307
+ * @param segments - Ordered URL/path segments such as proxy prefix, asset path, and template entry.
45308
+ * @returns A normalized entrypoint string with single slashes between segments.
45309
+ */
45310
+ const createPortalEntryPoint = (...segments) => {
45311
+ const normalized = segments
45312
+ .filter((segment) => segment !== undefined && segment !== null)
45313
+ .map((segment) => segment.trim())
45314
+ .filter(Boolean)
45315
+ .map((segment, index) => {
45316
+ if (index === 0) {
45317
+ return segment.replace(/\/+$/g, '');
45318
+ }
45319
+ return segment.replace(/^\/+|\/+$/g, '');
45320
+ });
45321
+ return normalized.join('/');
45322
+ };
45323
+
45311
45324
  /**
45312
45325
  * Registers the Fusion SPA service worker and wires token acquisition.
45313
45326
  *
@@ -45498,7 +45511,7 @@ async function registerServiceWorker(framework) {
45498
45511
  }
45499
45512
 
45500
45513
  // Generated by genversion.
45501
- const version = '4.0.1';
45514
+ const version = '4.0.4';
45502
45515
 
45503
45516
  // Allow dynamic import without vite
45504
45517
  const importWithoutVite = (path) => import(/* @vite-ignore */ path);
@@ -45607,13 +45620,7 @@ enableTelemetry(configurator, {
45607
45620
  const el = document.createElement('div');
45608
45621
  document.body.innerHTML = '';
45609
45622
  document.body.appendChild(el);
45610
- const portalEntryPoint = [
45611
- portalProxy ? '/portal-proxy' : '',
45612
- portal_manifest.build.assetPath,
45613
- portal_manifest.build.templateEntry,
45614
- ]
45615
- .filter(Boolean)
45616
- .join('/');
45623
+ const portalEntryPoint = createPortalEntryPoint(portalProxy ? '/portal-proxy' : undefined, portal_manifest.build.assetPath, portal_manifest.build.templateEntry);
45617
45624
  // @todo: should test if the entrypoint is external or internal
45618
45625
  // @todo: add proper return type
45619
45626
  const { render } = await measurement