@trackunit/iris-app-sdk-vite 1.0.39 → 1.0.41-alpha-7bce9c1cf2a.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/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## 1.0.40 (2026-06-23)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **iris-app-sdk:** persistent reminder when custom-field check was skipped [GLU-1303] ([#23892](https://github.com/Trackunit/manager/pull/23892), [#23721](https://github.com/Trackunit/manager/issues/23721))
6
+
7
+ ### ❤️ Thank You
8
+
9
+ - Christian Sandbeck
10
+ - Claude Opus 4.8
11
+
1
12
  ## 1.0.39 (2026-06-23)
2
13
 
3
14
  ### 🧱 Updated Dependencies
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/iris-app-sdk-vite",
3
- "version": "1.0.39",
3
+ "version": "1.0.41-alpha-7bce9c1cf2a.0",
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.35",
14
- "@trackunit/iris-app-api": "2.0.34",
13
+ "@trackunit/iris-app-build-utilities": "2.0.36-alpha-7bce9c1cf2a.0",
14
+ "@trackunit/iris-app-api": "2.0.35-alpha-7bce9c1cf2a.0",
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.37",
25
+ "@trackunit/iris-app": "2.0.38-alpha-7bce9c1cf2a.0",
26
26
  "cross-keychain": "^1.1.0",
27
27
  "jwt-decode": "^3.1.2"
28
28
  },
@@ -57,6 +57,8 @@ async function* serveExecutor(options, context) {
57
57
  const defaultConfig = await (0, defaultViteConfig_1.getDefaultViteConfig)("development", context.root, projectRootDir, irisAppManifest, context, {
58
58
  serversidePortMap: serversideResult.portMap,
59
59
  skipTypeChecking,
60
+ // Surface a persistent rebuild reminder when the in-sync check was skipped.
61
+ degraded: checkCustomFieldsResult === "unverified",
60
62
  });
61
63
  // Load optional custom config
62
64
  let finalConfig = defaultConfig;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCustomFieldsDegradedReminderPlugin = exports.CUSTOM_FIELDS_DEGRADED_REMINDER = void 0;
4
+ /**
5
+ * Reminder re-emitted on every rebuild / hot-update while the custom-field
6
+ * in-sync check is in a degraded state (Phase 1's `"unverified"` outcome).
7
+ *
8
+ * Kept short and consistent with the verbose startup warning in the serve
9
+ * executor so that a long-running session keeps reminding the developer their
10
+ * custom fields were never validated against the approved manifest.
11
+ */
12
+ exports.CUSTOM_FIELDS_DEGRADED_REMINDER = "⚠️ Reminder: the custom-field in-sync check was skipped this session — your custom fields were NOT validated " +
13
+ "against the approved manifest. If your local custom field definitions are out of sync, the app may behave in unexpected ways.";
14
+ /**
15
+ * Vite plugin that re-logs the degraded custom-field warning on every hot
16
+ * update / rebuild, so the one-time startup warning isn't forgotten during a
17
+ * long serve session. The hook is a no-op unless `degraded` is true.
18
+ *
19
+ * State is injected via the factory argument (rather than read from a global)
20
+ * so the plugin is unit-testable without a running Vite server.
21
+ *
22
+ * @param degraded whether the custom-field check ended in the `"unverified"` state.
23
+ */
24
+ const createCustomFieldsDegradedReminderPlugin = (degraded) => ({
25
+ name: "trackunit-iris-app-custom-fields-degraded-reminder",
26
+ handleHotUpdate: () => {
27
+ if (!degraded) {
28
+ return;
29
+ }
30
+ // eslint-disable-next-line no-console
31
+ console.warn(exports.CUSTOM_FIELDS_DEGRADED_REMINDER);
32
+ },
33
+ });
34
+ exports.createCustomFieldsDegradedReminderPlugin = createCustomFieldsDegradedReminderPlugin;
35
+ //# sourceMappingURL=customFieldsDegradedReminderPlugin.js.map
@@ -45,6 +45,7 @@ const getDefaultViteConfig = async (mode, nxRootDir, appDir, _irisAppManifest, c
45
45
  config: { mode },
46
46
  serversidePortMap: options.serversidePortMap,
47
47
  skipTypeChecking: options.skipTypeChecking,
48
+ degraded: options.degraded,
48
49
  });
49
50
  return {
50
51
  root: appDir,
@@ -12,6 +12,7 @@ const vite_2 = require("vite");
12
12
  const vite_plugin_checker_1 = tslib_1.__importDefault(require("vite-plugin-checker"));
13
13
  const vite_plugin_css_injected_by_js_1 = tslib_1.__importDefault(require("vite-plugin-css-injected-by-js"));
14
14
  const devServerTiming_1 = require("./devServerTiming");
15
+ const customFieldsDegradedReminderPlugin_1 = require("./customFieldsDegradedReminderPlugin");
15
16
  const extensionLoaderCache_1 = require("./extensionLoaderCache");
16
17
  const manifestCache_1 = require("./manifestCache");
17
18
  const manifestLoader_1 = require("./manifestLoader");
@@ -644,6 +645,9 @@ async function getTrackunitIrisAppVitePlugins(options) {
644
645
  relativeCSSInjection: true,
645
646
  }),
646
647
  bundleAnalyzerPlugin,
648
+ // When the custom-field in-sync check could not be completed, keep reminding
649
+ // the developer on every rebuild that their custom fields were not validated.
650
+ options.degraded && (0, customFieldsDegradedReminderPlugin_1.createCustomFieldsDegradedReminderPlugin)(true),
647
651
  ];
648
652
  (0, devServerTiming_1.logTiming)(performance.now() - pluginConstructionStart, "plugin construction: complete");
649
653
  return plugins.filter(Boolean);