@trackunit/iris-app-sdk-vite 1.0.33 → 1.0.36
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,3 +1,30 @@
|
|
|
1
|
+
## 1.0.36 (2026-06-22)
|
|
2
|
+
|
|
3
|
+
### 🧱 Updated Dependencies
|
|
4
|
+
|
|
5
|
+
- Updated iris-app-build-utilities to 2.0.32
|
|
6
|
+
- Updated iris-app-api to 2.0.31
|
|
7
|
+
- Updated iris-app to 2.0.34
|
|
8
|
+
|
|
9
|
+
## 1.0.35 (2026-06-22)
|
|
10
|
+
|
|
11
|
+
### 🩹 Fixes
|
|
12
|
+
|
|
13
|
+
- **iris-app-sdk:** degrade gracefully when custom-field check can't run [GLU-1302] ([#23721](https://github.com/Trackunit/manager/pull/23721))
|
|
14
|
+
|
|
15
|
+
### ❤️ Thank You
|
|
16
|
+
|
|
17
|
+
- Christian Sandbeck
|
|
18
|
+
- Claude Opus 4.8
|
|
19
|
+
|
|
20
|
+
## 1.0.34 (2026-06-19)
|
|
21
|
+
|
|
22
|
+
### 🧱 Updated Dependencies
|
|
23
|
+
|
|
24
|
+
- Updated iris-app-build-utilities to 2.0.31
|
|
25
|
+
- Updated iris-app-api to 2.0.30
|
|
26
|
+
- Updated iris-app to 2.0.33
|
|
27
|
+
|
|
1
28
|
## 1.0.33 (2026-06-19)
|
|
2
29
|
|
|
3
30
|
### 🧱 Updated Dependencies
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/iris-app-sdk-vite",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.36",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"repository": "https://github.com/Trackunit/manager",
|
|
6
6
|
"executors": "./executors.json",
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"rxjs": "7.8.1",
|
|
12
12
|
"win-ca": "^3.5.1",
|
|
13
|
-
"@trackunit/iris-app-build-utilities": "2.0.
|
|
14
|
-
"@trackunit/iris-app-api": "2.0.
|
|
13
|
+
"@trackunit/iris-app-build-utilities": "2.0.32",
|
|
14
|
+
"@trackunit/iris-app-api": "2.0.31",
|
|
15
15
|
"tslib": "^2.6.2",
|
|
16
16
|
"vite": "7.3.1",
|
|
17
17
|
"@module-federation/vite": "1.11.0",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@tailwindcss/postcss": "^4.1.18",
|
|
23
23
|
"@vitejs/plugin-react-swc": "^4.2.3",
|
|
24
24
|
"@nx/devkit": "22.7.5",
|
|
25
|
-
"@trackunit/iris-app": "2.0.
|
|
25
|
+
"@trackunit/iris-app": "2.0.34",
|
|
26
26
|
"cross-keychain": "^1.1.0",
|
|
27
27
|
"jwt-decode": "^3.1.2"
|
|
28
28
|
},
|
|
@@ -37,10 +37,19 @@ async function* serveExecutor(options, context) {
|
|
|
37
37
|
const irisAppManifest = (0, manifestLoader_1.loadManifest)(context.root, projectRootDir);
|
|
38
38
|
const checkCustomFieldsResult = await (0, checkCustomFields_1.checkCustomFields)(irisAppManifest, settings);
|
|
39
39
|
if (checkCustomFieldsResult === "out-of-sync") {
|
|
40
|
-
throw new Error("Custom fields are out of sync with the latest approved manifest,
|
|
40
|
+
throw new Error("Custom fields are out of sync with the latest approved manifest, which can cause the app to behave in unexpected ways. Please submit and get this version approved before you continue developing the app.");
|
|
41
41
|
}
|
|
42
42
|
if (checkCustomFieldsResult === "not-submitted") {
|
|
43
|
-
throw new Error("Custom fields are not submitted,
|
|
43
|
+
throw new Error("Custom fields are not submitted, which can cause the app to behave in unexpected ways. Please submit and get this version approved before you continue developing the app.");
|
|
44
|
+
}
|
|
45
|
+
if (checkCustomFieldsResult === "unverified") {
|
|
46
|
+
// The check could not be completed (network/auth/server failure). This is
|
|
47
|
+
// non-fatal for local development: warn loudly and continue serving rather
|
|
48
|
+
// than crashing. The underlying reason was already logged by checkCustomFields.
|
|
49
|
+
// eslint-disable-next-line no-console
|
|
50
|
+
console.warn("\n ⚠️ Custom-field in-sync check was skipped — the latest approved manifest could not be verified " +
|
|
51
|
+
"(see the warning above). The dev server will start, but your custom fields were NOT validated against the approved manifest. " +
|
|
52
|
+
"If your local custom field definitions are out of sync, the app may behave in unexpected ways.\n");
|
|
44
53
|
}
|
|
45
54
|
const serversideResult = await (0, iris_app_build_utilities_1.spawnServersideExtensions)(irisAppManifest, context.root);
|
|
46
55
|
try {
|
|
@@ -24,8 +24,25 @@ const checkCustomFields = async (irisAppManifest, settings) => {
|
|
|
24
24
|
}
|
|
25
25
|
// eslint-disable-next-line no-console
|
|
26
26
|
console.log("This app is using custom fields, fetching the latest approved manifest to validate that the local custom field definitions are in sync.");
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
// The in-sync check is advisory for local development: when it cannot be
|
|
28
|
+
// completed (auth can't be obtained, the endpoint is unreachable, returns an
|
|
29
|
+
// error, or sends back a malformed body) we degrade to "unverified" and let
|
|
30
|
+
// the caller continue, rather than throwing and aborting `serve`. Genuine
|
|
31
|
+
// "the check ran and found a problem" outcomes (out-of-sync / not-submitted)
|
|
32
|
+
// are still returned below. Mirrors the warn-and-continue idiom in
|
|
33
|
+
// accessTokenCache.ts.
|
|
34
|
+
let latestApprovedManifestIfAny;
|
|
35
|
+
try {
|
|
36
|
+
const tokenData = await (0, accessTokenCache_1.getCachedAccessToken)(settings);
|
|
37
|
+
latestApprovedManifestIfAny = await fetchLatestApprovedManifest(irisAppManifest.moduleFederationName, tokenData.access_token, settings);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
41
|
+
// eslint-disable-next-line no-console
|
|
42
|
+
console.warn(`[checkCustomFields] Could not verify custom fields against the latest approved manifest: ${reason}. ` +
|
|
43
|
+
"Skipping the in-sync check for this session and continuing — your custom fields were NOT validated.");
|
|
44
|
+
return "unverified";
|
|
45
|
+
}
|
|
29
46
|
if (!latestApprovedManifestIfAny) {
|
|
30
47
|
return "not-submitted";
|
|
31
48
|
}
|
|
@@ -92,6 +109,13 @@ async function fetchLatestApprovedManifest(irisAppId, accessToken, settings) {
|
|
|
92
109
|
if (body.errors && body.errors.length > 0) {
|
|
93
110
|
throw new Error(`GraphQL error fetching latest approved manifest: ${body.errors.map(e => e.message).join(", ")}`);
|
|
94
111
|
}
|
|
95
|
-
|
|
112
|
+
// A well-formed response always carries the `manifest` field (possibly null
|
|
113
|
+
// when the app has no approved version yet). Anything else means we cannot
|
|
114
|
+
// trust the result, so treat it as a failed fetch (→ "unverified" upstream)
|
|
115
|
+
// rather than misreporting it as "not-submitted".
|
|
116
|
+
if (!body.data || !("manifest" in body.data)) {
|
|
117
|
+
throw new Error(`Malformed response fetching latest approved manifest: missing data.manifest in ${JSON.stringify(body)}`);
|
|
118
|
+
}
|
|
119
|
+
return body.data.manifest ?? null;
|
|
96
120
|
}
|
|
97
121
|
//# sourceMappingURL=checkCustomFields.js.map
|