@equinor/fusion-framework-vite-plugin-spa 4.0.13 → 4.0.14
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 +28 -0
- package/dist/esm/html/bootstrap.js +3 -2
- package/dist/esm/html/bootstrap.js.map +1 -1
- package/dist/esm/html/create-portal-entry-point.js +5 -0
- package/dist/esm/html/create-portal-entry-point.js.map +1 -1
- package/dist/esm/html/{index.html.js → html.js} +1 -1
- package/dist/esm/html/html.js.map +1 -0
- package/dist/esm/html/register-service-worker.js +10 -0
- package/dist/esm/html/register-service-worker.js.map +1 -1
- package/dist/esm/html/sw.js +6 -0
- package/dist/esm/html/sw.js.map +1 -1
- package/dist/esm/plugin.js +4 -2
- package/dist/esm/plugin.js.map +1 -1
- package/dist/esm/util/{load-env.js → load-environment.js} +1 -1
- package/dist/esm/util/load-environment.js.map +1 -0
- package/dist/esm/util/object-to-env.js +2 -0
- package/dist/esm/util/object-to-env.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/html/bootstrap.js +723 -219
- package/dist/html/bootstrap.js.map +1 -1
- package/dist/html/sw.js +6 -0
- package/dist/html/sw.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/html/{index.html.d.ts → html.d.ts} +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +7 -7
- package/src/html/bootstrap.ts +4 -3
- package/src/html/create-portal-entry-point.ts +5 -0
- package/src/html/register-service-worker.ts +10 -0
- package/src/html/sw.ts +6 -0
- package/src/plugin.ts +4 -2
- package/src/util/object-to-env.ts +2 -0
- package/src/version.ts +1 -1
- package/dist/esm/html/index.html.js.map +0 -1
- package/dist/esm/util/load-env.js.map +0 -1
- /package/dist/types/util/{load-env.d.ts → load-environment.d.ts} +0 -0
- /package/src/html/{index.html.ts → html.ts} +0 -0
- /package/src/util/{load-env.ts → load-environment.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @equinor/fusion-framework-vite-plugin-spa
|
|
2
2
|
|
|
3
|
+
## 4.0.14
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 80c3e4a: Internal: renamed several source files to align with filename conventions and added a missing intent comment for object-merge logic; no public API changes.
|
|
8
|
+
- 80c3e4a: Internal: added intent comments to satisfy `fusion-lint` rules (control-flow, iterator/rxjs chains, TSDoc `@template` tags, and single-export-per-file), and referenced tracking issues (#5065, #5066) for pre-existing TODO comments. `InvalidRouteError` was moved to its own module (`invalid-route-error.ts`) in `api-service` to satisfy `single-export-per-file`. No behavior changes.
|
|
9
|
+
- Updated dependencies [80c3e4a]
|
|
10
|
+
- Updated dependencies [80c3e4a]
|
|
11
|
+
- Updated dependencies [80c3e4a]
|
|
12
|
+
- Updated dependencies [80c3e4a]
|
|
13
|
+
- Updated dependencies [80c3e4a]
|
|
14
|
+
- Updated dependencies [80c3e4a]
|
|
15
|
+
- Updated dependencies [80c3e4a]
|
|
16
|
+
- Updated dependencies [80c3e4a]
|
|
17
|
+
- Updated dependencies [80c3e4a]
|
|
18
|
+
- Updated dependencies [80c3e4a]
|
|
19
|
+
- Updated dependencies [80c3e4a]
|
|
20
|
+
- Updated dependencies [80c3e4a]
|
|
21
|
+
- Updated dependencies [80c3e4a]
|
|
22
|
+
- Updated dependencies [80c3e4a]
|
|
23
|
+
- Updated dependencies [80c3e4a]
|
|
24
|
+
- Updated dependencies [80c3e4a]
|
|
25
|
+
- @equinor/fusion-framework-module-http@8.0.4
|
|
26
|
+
- @equinor/fusion-framework-module-msal@10.0.2
|
|
27
|
+
- @equinor/fusion-framework-module-service-discovery@10.0.2
|
|
28
|
+
- @equinor/fusion-framework-module@6.1.1
|
|
29
|
+
- @equinor/fusion-framework-module-telemetry@7.0.1
|
|
30
|
+
|
|
3
31
|
## 4.0.13
|
|
4
32
|
|
|
5
33
|
### Patch Changes
|
|
@@ -51,6 +51,7 @@ enableTelemetry(configurator, {
|
|
|
51
51
|
},
|
|
52
52
|
// biome-ignore lint/suspicious/noExplicitAny: we need to use any here to allow dynamic properties
|
|
53
53
|
};
|
|
54
|
+
// Only attach user metadata when the auth module has resolved an account
|
|
54
55
|
if (modules?.auth) {
|
|
55
56
|
metadata.fusion.user = {
|
|
56
57
|
id: modules.auth.account?.homeAccountId,
|
|
@@ -115,8 +116,8 @@ enableTelemetry(configurator, {
|
|
|
115
116
|
document.body.innerHTML = '';
|
|
116
117
|
document.body.appendChild(el);
|
|
117
118
|
const portalEntryPoint = createPortalEntryPoint(portalProxy ? '/portal-proxy' : undefined, portal_manifest.build.assetPath, portal_manifest.build.templateEntry);
|
|
118
|
-
//
|
|
119
|
-
//
|
|
119
|
+
// TODO(#5066): should test if the entrypoint is external or internal
|
|
120
|
+
// TODO(#5066): add proper return type
|
|
120
121
|
const { render } = await measurement
|
|
121
122
|
.clone()
|
|
122
123
|
.resolve(importWithoutVite(portalEntryPoint), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/html/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAmB,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAmB,MAAM,uCAAuC,CAAC;AACpF,OAAO,EACL,sBAAsB,GAEvB,MAAM,oDAAoD,CAAC;AAE5D,OAAO,EACL,eAAe,EACf,cAAc,GAEf,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAE5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAWxC,oCAAoC;AACpC,MAAM,iBAAiB,GAAG,CAAI,IAAY,EAAc,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAE3F,uCAAuC;AACvC,MAAM,YAAY,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAE/C,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/html/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,15 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export const createPortalEntryPoint = (...segments) => {
|
|
8
8
|
const normalized = segments
|
|
9
|
+
// Drop undefined/null segments before further processing
|
|
9
10
|
.filter((segment) => segment !== undefined && segment !== null)
|
|
11
|
+
// Trim stray whitespace from each segment
|
|
10
12
|
.map((segment) => segment.trim())
|
|
13
|
+
// Drop any segments that became empty after trimming
|
|
11
14
|
.filter(Boolean)
|
|
15
|
+
// Strip leading slashes from every segment (and trailing slashes from the first)
|
|
12
16
|
.map((segment, index) => {
|
|
17
|
+
// The first segment may have a trailing slash (e.g. a base URL) that needs stripping
|
|
13
18
|
if (index === 0) {
|
|
14
19
|
return segment.replace(/\/+$/g, '');
|
|
15
20
|
}
|
|
@@ -1 +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;
|
|
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;QACzB,yDAAyD;SACxD,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC;QAClF,0CAA0C;SACzC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACjC,qDAAqD;SACpD,MAAM,CAAC,OAAO,CAAC;QAChB,iFAAiF;SAChF,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtB,qFAAqF;QACrF,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/html/html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;;;;;;wDAMoC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B9D,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -31,6 +31,7 @@ import { TelemetryLevel } from '@equinor/fusion-framework-module-telemetry';
|
|
|
31
31
|
*/
|
|
32
32
|
export async function registerServiceWorker(framework) {
|
|
33
33
|
const telemetry = framework.telemetry;
|
|
34
|
+
// Bail out early when the browser has no service worker support at all
|
|
34
35
|
if ('serviceWorker' in navigator === false) {
|
|
35
36
|
const exception = new Error('Service workers are not supported in this browser.');
|
|
36
37
|
exception.name = 'ServiceWorkerNotSupported';
|
|
@@ -41,6 +42,7 @@ export async function registerServiceWorker(framework) {
|
|
|
41
42
|
throw exception;
|
|
42
43
|
}
|
|
43
44
|
const resourceConfigs = import.meta.env.FUSION_SPA_SERVICE_WORKER_RESOURCES;
|
|
45
|
+
// The worker needs a resource config to know which requests to intercept
|
|
44
46
|
if (!resourceConfigs) {
|
|
45
47
|
const exception = new Error('Service worker config is not defined.');
|
|
46
48
|
exception.name = 'ServiceWorkerConfigNotDefined';
|
|
@@ -64,10 +66,12 @@ export async function registerServiceWorker(framework) {
|
|
|
64
66
|
navigator.serviceWorker.startMessages();
|
|
65
67
|
// listen for messages from the service worker (set up before registration)
|
|
66
68
|
navigator.serviceWorker.addEventListener('message', async (event) => {
|
|
69
|
+
// Only the GET_TOKEN message type requests a token from this handler
|
|
67
70
|
if (event.data.type === 'GET_TOKEN') {
|
|
68
71
|
try {
|
|
69
72
|
// extract scopes from the event data
|
|
70
73
|
const scopes = event.data.scopes;
|
|
74
|
+
// Scopes must be a real array before they can be used to request a token
|
|
71
75
|
if (!scopes || !Array.isArray(scopes)) {
|
|
72
76
|
const error = new Error('Invalid scopes provided');
|
|
73
77
|
error.name = 'InvalidScopesProvided';
|
|
@@ -75,6 +79,7 @@ export async function registerServiceWorker(framework) {
|
|
|
75
79
|
}
|
|
76
80
|
// request a token from the MSAL module
|
|
77
81
|
const token = await framework.auth.acquireToken({ request: { scopes } });
|
|
82
|
+
// A missing token means acquisition failed and the worker can't proceed
|
|
78
83
|
if (!token) {
|
|
79
84
|
const error = new Error('Failed to acquire token');
|
|
80
85
|
error.name = 'FailedToAcquireToken';
|
|
@@ -120,9 +125,11 @@ export async function registerServiceWorker(framework) {
|
|
|
120
125
|
if (registration.waiting) {
|
|
121
126
|
sendConfigToServiceWorker(registration.waiting);
|
|
122
127
|
}
|
|
128
|
+
// A worker still installing needs to reach the 'activated' state before it can receive config
|
|
123
129
|
if (registration.installing) {
|
|
124
130
|
registration.installing.addEventListener('statechange', (event) => {
|
|
125
131
|
const worker = event.target;
|
|
132
|
+
// Only send config once the worker has fully activated
|
|
126
133
|
if (worker.state === 'activated') {
|
|
127
134
|
sendConfigToServiceWorker(worker);
|
|
128
135
|
}
|
|
@@ -130,6 +137,7 @@ export async function registerServiceWorker(framework) {
|
|
|
130
137
|
}
|
|
131
138
|
// Listen for controller changes (happens during hard refresh or updates)
|
|
132
139
|
navigator.serviceWorker.addEventListener('controllerchange', () => {
|
|
140
|
+
// Only send config once this page is actually controlled by a worker
|
|
133
141
|
if (navigator.serviceWorker.controller) {
|
|
134
142
|
sendConfigToServiceWorker(navigator.serviceWorker.controller);
|
|
135
143
|
}
|
|
@@ -143,6 +151,7 @@ export async function registerServiceWorker(framework) {
|
|
|
143
151
|
});
|
|
144
152
|
// ensure we have an active service worker before sending config
|
|
145
153
|
const activeWorker = readyRegistration.active;
|
|
154
|
+
// Without an active worker there's nothing to send config to
|
|
146
155
|
if (!activeWorker) {
|
|
147
156
|
console.error('[Service Worker Registration] Service worker is not active after ready state');
|
|
148
157
|
return;
|
|
@@ -162,6 +171,7 @@ export async function registerServiceWorker(framework) {
|
|
|
162
171
|
navigator.serviceWorker.addEventListener('controllerchange', onControllerChange);
|
|
163
172
|
// Polling fallback and timeout to prevent infinite waiting
|
|
164
173
|
checkInterval = setInterval(() => {
|
|
174
|
+
// Stop polling once a controller has taken over
|
|
165
175
|
if (navigator.serviceWorker.controller)
|
|
166
176
|
finish();
|
|
167
177
|
}, 200);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-service-worker.js","sourceRoot":"","sources":["../../../src/html/register-service-worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAwB,MAAM,4CAA4C,CAAC;AAElG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAAyD;IAEzD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IACtC,IAAI,eAAe,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAClF,SAAS,CAAC,IAAI,GAAG,2BAA2B,CAAC;QAC7C,SAAS,CAAC,cAAc,CAAC;YACvB,IAAI,EAAE,yBAAyB,SAAS,CAAC,IAAI,EAAE;YAC/C,SAAS;SACV,CAAC,CAAC;QACH,MAAM,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"register-service-worker.js","sourceRoot":"","sources":["../../../src/html/register-service-worker.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/html/sw.js
CHANGED
|
@@ -42,6 +42,7 @@ function getScopeKey(scopes) {
|
|
|
42
42
|
*/
|
|
43
43
|
function isTokenValid(scopes) {
|
|
44
44
|
const scopeKey = getScopeKey(scopes);
|
|
45
|
+
// No cached entry at all means there's nothing to validate
|
|
45
46
|
if (!tokenCache.has(scopeKey)) {
|
|
46
47
|
return false;
|
|
47
48
|
}
|
|
@@ -73,6 +74,7 @@ async function requestTokenFromClient(scopes) {
|
|
|
73
74
|
const messageChannel = new MessageChannel();
|
|
74
75
|
const token = await new Promise((resolve, reject) => {
|
|
75
76
|
messageChannel.port1.onmessage = (event) => {
|
|
77
|
+
// Reject when the client reports it couldn't provide a token
|
|
76
78
|
if (event.data.error) {
|
|
77
79
|
reject(event.data.error);
|
|
78
80
|
}
|
|
@@ -80,6 +82,7 @@ async function requestTokenFromClient(scopes) {
|
|
|
80
82
|
};
|
|
81
83
|
clients[0].postMessage({ type: 'GET_TOKEN', scopes }, [messageChannel.port2]);
|
|
82
84
|
});
|
|
85
|
+
// A resolved but empty response means the client didn't actually return a token
|
|
83
86
|
if (!token) {
|
|
84
87
|
throw new Error('No token received');
|
|
85
88
|
}
|
|
@@ -102,6 +105,7 @@ async function getToken(scopes) {
|
|
|
102
105
|
}
|
|
103
106
|
const scopeKey = getScopeKey(scopes);
|
|
104
107
|
const { accessToken } = tokenCache.get(scopeKey) || {};
|
|
108
|
+
// A missing accessToken here means the client failed to provide a usable token
|
|
105
109
|
if (!accessToken) {
|
|
106
110
|
throw new Error('No access token found');
|
|
107
111
|
}
|
|
@@ -124,6 +128,7 @@ async function getToken(scopes) {
|
|
|
124
128
|
* - The comparison is performed using fully resolved absolute URLs.
|
|
125
129
|
*/
|
|
126
130
|
function getMatchingConfig(url) {
|
|
131
|
+
// Find the first configured resource whose resolved base URL prefixes the request URL
|
|
127
132
|
return resourceConfigurations.find((config) => {
|
|
128
133
|
const configUrl = new URL(config.url, config.url.startsWith('/') ? self.location.origin : undefined).href;
|
|
129
134
|
const requestUrl = new URL(url, self.location.origin).href;
|
|
@@ -141,6 +146,7 @@ self.addEventListener('activate', (event) => {
|
|
|
141
146
|
// Handle configuration from main thread
|
|
142
147
|
self.addEventListener('message', async (event) => {
|
|
143
148
|
const { type, config } = event.data;
|
|
149
|
+
// Only the INIT_CONFIG message carries resource configuration to apply
|
|
144
150
|
if (type === 'INIT_CONFIG') {
|
|
145
151
|
resourceConfigurations = config;
|
|
146
152
|
// CRITICAL: Force skipWaiting() and claim clients to ensure this service worker takes control
|
package/dist/esm/html/sw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sw.js","sourceRoot":"","sources":["../../../src/html/sw.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sw.js","sourceRoot":"","sources":["../../../src/html/sw.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAoBjC;;;;;;;;GAQG;AACH,MAAM,IAAI,GAAG,UAAiD,CAAC;AAE/D;;;;GAIG;AACH,IAAI,sBAAsB,GAA4B,EAAE,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,UAAU,GAAe,IAAI,GAAG,EAAE,CAAC;AAEzC;;;;;GAKG;AACH,SAAS,WAAW,CAAC,MAAgB;IACnC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,MAAgB;IACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,2DAA2D;IAC3D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,sBAAsB,CAAC,MAAgB;IACpD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,qCAAqC;IACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,0DAA0D;IAC1D,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,CAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzD,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;YACzC,6DAA6D;YAC7D,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,IAAkD,CAAC,CAAC;QACpE,CAAC,CAAC;QACF,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAChF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,+BAA+B;IAC/B,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAE3C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,QAAQ,CAAC,MAAgB;IACtC,gDAAgD;IAChD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvD,+EAA+E;IAC/E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,gCAAgC;AAChC;;;;;;;;;;;;;;GAcG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,sFAAsF;IACtF,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC,IAAI,CAAC;QACP,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QAC3D,OAAO,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAsB,EAAE,EAAE;IAC1D,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,iBAAiB;AACjB,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAsB,EAAE,EAAE;IAC3D,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,wCAAwC;AACxC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;IACvE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;IACpC,uEAAuE;IACvE,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,sBAAsB,GAAG,MAAiC,CAAC;QAE3D,8FAA8F;QAC9F,mFAAmF;QACnF,8EAA8E;QAC9E,6DAA6D;QAC7D,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,sBAAsB;AACtB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAExD,6CAA6C;IAC7C,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;YAC/B,oEAAoE;YACpE,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACnD,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,uDAAuD;YACvD,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC9C,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YACjF,CAAC;YAED,sDAAsD;YACtD,4EAA4E;YAC5E,uEAAuE;YACvE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAElC,oGAAoG;YACpG,gFAAgF;YAChF,OAAO,KAAK,CAAC,GAAG,EAAE;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,IAAI,IAAI,SAAS;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QACF,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/esm/plugin.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { normalizePath } from 'vite';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
|
-
import defaultTemplate from './html/
|
|
3
|
+
import defaultTemplate from './html/html.js';
|
|
4
4
|
import { objectToEnv } from './util/object-to-env.js';
|
|
5
|
-
import { loadEnvironment } from './util/load-
|
|
5
|
+
import { loadEnvironment } from './util/load-environment.js';
|
|
6
6
|
/**
|
|
7
7
|
* Built-in defaults applied when no matching value is provided by
|
|
8
8
|
* {@link PluginOptions.generateTemplateEnv} or `.env` files.
|
|
@@ -73,10 +73,12 @@ export const plugin = (options) => {
|
|
|
73
73
|
// load environment variables from files
|
|
74
74
|
const loadedEnv = loadEnvironment(config, configEnv, templateEnvPrefix);
|
|
75
75
|
log?.debug('plugin loaded environment\n', pluginEnv);
|
|
76
|
+
// Loaded env values override plugin-configured defaults
|
|
76
77
|
const env = { ...pluginEnv, ...loadedEnv };
|
|
77
78
|
log?.debug('plugin environment\n', env);
|
|
78
79
|
// define environment variables
|
|
79
80
|
config.define ??= {};
|
|
81
|
+
// Convert each env entry into a valid JS expression for Vite's config.define
|
|
80
82
|
for (const [key, value] of Object.entries(env)) {
|
|
81
83
|
// All values must be valid JavaScript expressions for Vite's config.define
|
|
82
84
|
// Try to parse as JSON first (handles booleans, numbers, objects, arrays)
|
package/dist/esm/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,MAAM,MAAM,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,eAAe,MAAM,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-environment.js","sourceRoot":"","sources":["../../../src/util/load-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAmB,MAAM,MAAM,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAkB,EAClB,GAAc,EACd,SAAS,GAAG,aAAa;IAEzB,6BAA6B;IAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3D,oCAAoC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACnF,0DAA0D;IAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -24,10 +24,12 @@
|
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
26
|
export function objectToEnv(obj, prefix = 'FUSION_SPA') {
|
|
27
|
+
// Build up the flat env record one entry at a time, recursing into nested objects
|
|
27
28
|
return Object.entries(obj).reduce((result, [key, value]) => {
|
|
28
29
|
// Convert camelCase to snake_case and uppercase
|
|
29
30
|
const snakeKey = key.replace(/([A-Z])/g, '_$1').toUpperCase();
|
|
30
31
|
const newPrefix = prefix ? `${prefix.replace(/_$/, '')}_${snakeKey}` : snakeKey;
|
|
32
|
+
// Nested (non-array) objects are flattened recursively under the extended prefix
|
|
31
33
|
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
32
34
|
// Recursively flatten nested objects
|
|
33
35
|
return Object.assign(result, objectToEnv(value, newPrefix));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-to-env.js","sourceRoot":"","sources":["../../../src/util/object-to-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,MAAM,GAAG,YAAY;IAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACzD,gDAAgD;QAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAE9D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEhF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,qCAAqC;YACrC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,8BAA8B;QAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"object-to-env.js","sourceRoot":"","sources":["../../../src/util/object-to-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,MAAM,GAAG,YAAY;IAC5D,kFAAkF;IAClF,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACzD,gDAAgD;QAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAE9D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEhF,iFAAiF;QACjF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,qCAAqC;YACrC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,8BAA8B;QAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,eAAe,WAAW,CAAC"}
|
package/dist/esm/version.js
CHANGED