@equinor/fusion-framework-cli 13.3.18 → 14.0.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +122 -123
  2. package/README.md +150 -193
  3. package/bin/build/bin.mjs +1 -1
  4. package/bin/build/cli.mjs +3 -3
  5. package/dist/esm/lib/app/app-manifest.js.map +1 -1
  6. package/dist/esm/lib/app/index.js +9 -1
  7. package/dist/esm/lib/app/index.js.map +1 -1
  8. package/dist/esm/lib/app/load-app-manifest.js +3 -2
  9. package/dist/esm/lib/app/load-app-manifest.js.map +1 -1
  10. package/dist/esm/lib/dev-server.js +8 -0
  11. package/dist/esm/lib/dev-server.js.map +1 -1
  12. package/dist/esm/lib/index.js.map +1 -1
  13. package/dist/esm/lib/portal/index.js +8 -0
  14. package/dist/esm/lib/portal/index.js.map +1 -1
  15. package/dist/esm/lib/portal/portal-manifest.js +20 -1
  16. package/dist/esm/lib/portal/portal-manifest.js.map +1 -1
  17. package/dist/esm/lib/utils/expect.js +16 -2
  18. package/dist/esm/lib/utils/expect.js.map +1 -1
  19. package/dist/esm/lib/utils/file-exists.js +28 -0
  20. package/dist/esm/lib/utils/file-exists.js.map +1 -1
  21. package/dist/esm/lib/utils/index.js +8 -0
  22. package/dist/esm/lib/utils/index.js.map +1 -1
  23. package/dist/esm/version.js +1 -1
  24. package/dist/types/bin/app-config-publish.d.ts +9 -0
  25. package/dist/types/bin/app-serve.d.ts +49 -0
  26. package/dist/types/bin/index.d.ts +11 -0
  27. package/dist/types/bin/portal-config-publish.d.ts +10 -0
  28. package/dist/types/bin/utils/index.d.ts +9 -0
  29. package/dist/types/cli/commands/app/serve.d.ts +34 -0
  30. package/dist/types/cli/commands/index.d.ts +9 -0
  31. package/dist/types/lib/app/app-manifest.d.ts +6 -4
  32. package/dist/types/lib/app/index.d.ts +10 -1
  33. package/dist/types/lib/dev-server.d.ts +8 -0
  34. package/dist/types/lib/index.d.ts +8 -0
  35. package/dist/types/lib/portal/index.d.ts +8 -0
  36. package/dist/types/lib/portal/portal-manifest.d.ts +20 -0
  37. package/dist/types/lib/utils/expect.d.ts +18 -2
  38. package/dist/types/lib/utils/file-exists.d.ts +30 -0
  39. package/dist/types/lib/utils/index.d.ts +8 -0
  40. package/dist/types/version.d.ts +1 -1
  41. package/docs/ai-commands.md +162 -40
  42. package/docs/application.md +63 -0
  43. package/docs/auth.md +9 -0
  44. package/docs/portal.md +20 -0
  45. package/package.json +21 -23
package/CHANGELOG.md CHANGED
@@ -1,5 +1,124 @@
1
1
  # Change Log
2
2
 
3
+ ## 14.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - abffa53: Major version bump for Fusion Framework React 19 release.
8
+
9
+ All packages are bumped to the next major version as part of the React 19 upgrade. This release drops support for React versions below 18 and includes breaking changes across the framework.
10
+
11
+ **Breaking changes:**
12
+ - Peer dependencies now require React 18 or 19 (`^18.0.0 || ^19.0.0`)
13
+ - React Router upgraded from v6 to v7
14
+ - Navigation module refactored with new history API
15
+ - `renderComponent` and `renderApp` now use `createRoot` API
16
+
17
+ **Migration:**
18
+ - Update your React version to 18.0.0 or higher before upgrading
19
+ - Replace `NavigationProvider.createRouter()` with `@equinor/fusion-framework-react-router`
20
+ - See individual package changelogs for package-specific migration steps
21
+
22
+ ### Minor Changes
23
+
24
+ - abffa53: Add automatic support for `?raw` imports in Vite builds.
25
+
26
+ The CLI now automatically includes the `rawImportsPlugin` in Vite configurations, enabling `?raw` imports for markdown files (and other configured extensions) without manual plugin configuration.
27
+
28
+ ```typescript
29
+ import readmeContent from "../../README.md?raw";
30
+ ```
31
+
32
+ This ensures consistent behavior across all Fusion Framework CLI builds.
33
+
34
+ - abffa53: Add `app serve` command to serve built applications with the dev-portal.
35
+
36
+ The new `serve` command provides a production-like preview environment for testing built applications locally. It serves your built application through the dev-portal, similar to the `dev` command but using production-built files.
37
+
38
+ ```sh
39
+ pnpm fusion-framework-cli app serve
40
+ pnpm fusion-framework-cli app serve --port 5000
41
+ pnpm fusion-framework-cli app serve --dir ./dist --host 0.0.0.0
42
+ ```
43
+
44
+ The command automatically detects the build directory from your Vite configuration and provides options for custom port, host, directory, manifest, and config files. The application must be built first using `ffc app build` before serving.
45
+
46
+ - abffa53: Add route schema support to app manifests for documentation and API schema generation.
47
+
48
+ **New Features:**
49
+ - **module-app**: Added `RouteSchemaEntry` type and `routes` field to `AppManifest` interface
50
+ - **cli**: Added `RouteSchemaEntry` type export for app manifest generation
51
+
52
+ Route schemas allow applications to document their routes in app manifests, enabling automatic API documentation and schema generation. The `RouteSchemaEntry` type represents a route with its path, description, and optional parameter/search schemas.
53
+
54
+ ```typescript
55
+ import type {
56
+ RouteSchemaEntry,
57
+ AppManifest,
58
+ } from "@equinor/fusion-framework-module-app";
59
+
60
+ const manifest: AppManifest = {
61
+ appKey: "my-app",
62
+ displayName: "My App",
63
+ description: "My app description",
64
+ type: "standalone",
65
+ routes: [
66
+ ["/", "Home page"],
67
+ ["/products", "Products listing page"],
68
+ ["/products/:id", "Product detail page", { id: "Product ID" }],
69
+ ],
70
+ };
71
+ ```
72
+
73
+ ### Patch Changes
74
+
75
+ - ae92f13: Require `simple-git` 3.32.3 or newer in published package manifests to align installs with the upstream fix for CVE-2026-28292.
76
+
77
+ This does not change the CLI API. It tightens the minimum allowed dependency version so fresh installs and manifest-based scanners resolve the first safe `simple-git` release.
78
+
79
+ - c123c39: chore: bump simple-git from 3.32.3 to 3.33.0
80
+
81
+ Includes security improvements:
82
+ - Pathspec input sanitization for git.clone() and git.mirror()
83
+ - Enhanced git -c safety checks
84
+
85
+ - 3de232c: fix(cli): break turbo workspace cycle for AI plugins
86
+
87
+ Upgrade turbo from 2.8.10 to 2.8.14. This version introduces stricter workspace cycle detection, requiring the AI plugin dependencies to be moved from the CLI package's devDependencies to the root package.json.
88
+
89
+ The CLI plugins are now configured at the repository root (fusion-cli.config.ts) instead of in the packages/cli package, ensuring a clean workspace dependency graph for turbo's build scheduler.
90
+
91
+ This change has no impact on the published CLI package's public API. Plugins continue to be wired identically; only the source of the wire definition has changed.
92
+
93
+ Additional improvements from turbo 2.8.14:
94
+ - Fix: Ensures turbo watch mode respects task dependencies on first run
95
+ - Perf: Skip irrelevant packages for faster monorepo builds
96
+ - Feature: AI agent telemetry support in turbo traces
97
+
98
+ - 32bcf83: Bump `vite` from `7.3.1` to `8.0.0`.
99
+
100
+ Vite 8 replaces Rollup with Rolldown and esbuild with Oxc for faster builds.
101
+ No breaking API changes affect this codebase. The `dev-server` peerDependency
102
+ is widened to accept both Vite 7 and Vite 8.
103
+
104
+ - Updated dependencies [abffa53]
105
+ - Updated dependencies [abffa53]
106
+ - Updated dependencies [abffa53]
107
+ - Updated dependencies [abffa53]
108
+ - Updated dependencies [abffa53]
109
+ - Updated dependencies [abffa53]
110
+ - Updated dependencies [abffa53]
111
+ - Updated dependencies [aa35c46]
112
+ - Updated dependencies [abffa53]
113
+ - Updated dependencies [abffa53]
114
+ - Updated dependencies [32bcf83]
115
+ - Updated dependencies [abffa53]
116
+ - @equinor/fusion-framework-dev-portal@5.0.0
117
+ - @equinor/fusion-framework-dev-server@2.0.0
118
+ - @equinor/fusion-framework-module-msal-node@4.0.0
119
+ - @equinor/fusion-framework-vite-plugin-raw-imports@2.0.0
120
+ - @equinor/fusion-imports@2.0.0
121
+
3
122
  ## 13.3.18
4
123
 
5
124
  ### Patch Changes
@@ -170,7 +289,6 @@
170
289
  This streamlines the deployment workflow by combining bundle upload and config upload in a single command.
171
290
 
172
291
  **Internal changes:**
173
-
174
292
  - Refactored `publishAppConfig` to accept pre-resolved config and framework instance, improving modularity and reusability
175
293
  - Updated `generateApplicationConfig` to return both config and package metadata, with graceful fallback when package resolution fails
176
294
  - Simplified `app config` command flow by handling config generation and manifest loading before publishing
@@ -202,7 +320,6 @@
202
320
  The CLI publish command now supports validating applications using metadata extracted from bundle artifacts instead of requiring local package.json and manifest files. This enables publishing applications from any directory in CI/CD pipelines without maintaining the full project structure.
203
321
 
204
322
  **New capabilities:**
205
-
206
323
  - Extract app information from bundle's `metadata.json`
207
324
  - Validate app registration using artifact metadata when bundle path is provided
208
325
  - Maintain backward compatibility with existing package.json-based validation
@@ -235,7 +352,6 @@
235
352
  - [#3922](https://github.com/equinor/fusion-framework/pull/3922) [`d34ebd8`](https://github.com/equinor/fusion-framework/commit/d34ebd82c93acabc88f88e44a725f084af3af5ec) Thanks [@odinr](https://github.com/odinr)! - Enable AG Grid Enterprise license injection for the dev-portal by setting a global window key produced from the SPA template environment. The portal reads `window.FUSION_AG_GRID_KEY` to configure the AG Grid module and silence license warnings when a valid key is present. CLI docs now mention the license key setup.
236
353
 
237
354
  **Usage:**
238
-
239
355
  - In your SPA environment file, set `FUSION_SPA_AG_GRID_KEY=your-license-key-here`.
240
356
  - The SPA HTML template injects `window.FUSION_AG_GRID_KEY` before bootstrap runs, and the dev-portal picks it up automatically.
241
357
 
@@ -281,7 +397,6 @@
281
397
  - [#3932](https://github.com/equinor/fusion-framework/pull/3932) [`15aaa87`](https://github.com/equinor/fusion-framework/commit/15aaa87e6a8b391c0672db0dcdca4c1cac3b50a7) Thanks [@dependabot](https://github.com/apps/dependabot)! - Internal: update rollup build dependency from 4.52.5 to 4.55.2.
282
398
 
283
399
  This update includes:
284
-
285
400
  - Improved circular dependency handling for manual chunks
286
401
  - Enhanced tree-shaking for Symbol properties
287
402
  - Performance improvements via variable name caching
@@ -313,7 +428,6 @@
313
428
  - [`e2d2a76`](https://github.com/equinor/fusion-framework/commit/e2d2a76d08b86c3a9d8783fed1606551df9d5633) Thanks [@odinr](https://github.com/odinr)! - Add plugin system for extensible CLI architecture and new framework configuration utilities.
314
429
 
315
430
  **Plugin System:**
316
-
317
431
  - Support for optional plugins via `fusion-cli.config.ts` configuration file
318
432
  - Automatic plugin discovery and loading from project root or CLI package directory
319
433
  - Plugin registration via package name or direct function imports
@@ -321,23 +435,19 @@
321
435
  - Multiple plugin resolution strategies for different installation methods
322
436
 
323
437
  **New Exports:**
324
-
325
438
  - `configureFramework` - Separated framework configuration from initialization for advanced use cases
326
439
  - `defineFusionCli` - Type-safe utility for defining CLI plugin configurations
327
440
 
328
441
  **Enhancements:**
329
-
330
442
  - Non-interactive mode support for `create app` command with `--git-protocol`, `--cleanup`/`--no-cleanup`, and `--no-open` options
331
443
  - Automatic `.env` file loading via dotenv for environment variable support
332
444
  - Improved error handling and plugin resolution strategies
333
445
 
334
446
  **Documentation:**
335
-
336
447
  - Added comprehensive AI commands documentation (internal use only)
337
448
  - Updated README with plugin system usage instructions
338
449
 
339
450
  **Quick Usage:**
340
-
341
451
  1. Install a plugin package:
342
452
 
343
453
  ```sh
@@ -461,7 +571,6 @@
461
571
  Portal tagging functionality has been enhanced to accept any string value for tags instead of being restricted to predefined enum values.
462
572
 
463
573
  **Breaking Changes**
464
-
465
574
  - **Removed `AllowedPortalTags` enum**: The enum that previously restricted portal tags to only `'latest'` and `'preview'` has been removed.
466
575
  - **No longer exported**: `AllowedPortalTags` is no longer exported from `@equinor/fusion-framework-cli/bin`.
467
576
 
@@ -496,13 +605,11 @@
496
605
  ```
497
606
 
498
607
  **Enhanced Documentation**
499
-
500
608
  - Updated CLI help text with practical examples
501
609
  - Added common tag examples (`latest`, `preview`, `next`, `stable`) in documentation
502
610
  - Maintained guidance while showing flexibility
503
611
 
504
612
  **Validation**
505
-
506
613
  - Tags must be non-empty strings
507
614
  - No other restrictions on tag format or content
508
615
  - Backward compatibility maintained for existing tag values
@@ -572,20 +679,17 @@
572
679
  This update addresses a security vulnerability in Vite's development server and includes bug fixes for improved compatibility. The update ensures secure development environments and better plugin ecosystem compatibility.
573
680
 
574
681
  **Changes:**
575
-
576
682
  - Updated Vite from v7.1.10 to v7.1.12
577
683
  - Includes security fix for development server file system checks
578
684
  - Includes compatibility fix for CommonJS plugin
579
685
  - No breaking changes or API modifications
580
686
 
581
687
  **Security Fix (v7.1.11):**
582
-
583
688
  - **dev**: trim trailing slash before `server.fs.deny` check ([#20968](https://github.com/vitejs/vite/issues/20968))
584
689
  - Prevents potential path traversal vulnerability in development server
585
690
  - Only affects development environment, not production builds
586
691
 
587
692
  **Bug Fix (v7.1.12):**
588
-
589
693
  - **deps**: downgrade commonjs plugin to 28.0.6 to avoid rollup/plugins issues ([#20990](https://github.com/vitejs/vite/issues/20990))
590
694
  - Improves compatibility with Rollup plugin ecosystem
591
695
  - Prevents potential build issues
@@ -607,12 +711,10 @@
607
711
  Fixed a bug in the `app config` command where the `config` parameter was incorrectly referenced as `options.config` when calling `publishAppConfig`. This was causing the publish functionality to fail when a custom config file path was provided.
608
712
 
609
713
  ### What Changed
610
-
611
714
  - Corrected parameter passing in `packages/cli/src/cli/commands/app/config.ts`
612
715
  - Changed `config: options.config` to `config` in the `publishAppConfig` call
613
716
 
614
717
  ### Impact
615
-
616
718
  - The `ffc app config --publish` command now correctly uses the provided config file argument
617
719
  - Fixes the issue where custom config files were not being passed to the publish function
618
720
  - No breaking changes to the CLI interface
@@ -627,7 +729,6 @@
627
729
  - [#3584](https://github.com/equinor/fusion-framework/pull/3584) [`0dd31cd`](https://github.com/equinor/fusion-framework/commit/0dd31cd1078b383ddab4a8cf1bb03d502e214715) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore: bump @rollup/plugin-node-resolve from 16.0.1 to 16.0.3
628
730
 
629
731
  Bug fixes:
630
-
631
732
  - fix: resolve bare targets of package "imports" using export maps; avoid fileURLToPath(null)
632
733
  - fix: error thrown with empty entry
633
734
 
@@ -661,11 +762,9 @@
661
762
  Added `is-mergeable-object` as a direct dependency to resolve runtime errors when using the CLI's app development features. This package is required by `deepmerge` but was not explicitly declared as a dependency, causing module resolution failures during app development.
662
763
 
663
764
  **Changes:**
664
-
665
765
  - Added `is-mergeable-object@^1.1.1` to dependencies in `packages/cli/package.json`
666
766
 
667
767
  **Impact:**
668
-
669
768
  - Fixes "Cannot find module 'is-mergeable-object'" errors during app development
670
769
  - Ensures proper dependency resolution for CLI tools that use deepmerge functionality
671
770
  - No breaking changes - this is purely a dependency fix
@@ -675,13 +774,11 @@
675
774
  ### Patch Changes
676
775
 
677
776
  - [#3559](https://github.com/equinor/fusion-framework/pull/3559) [`6667a4e`](https://github.com/equinor/fusion-framework/commit/6667a4ee24a5374a02ec76952f440d495d62dbc3) Thanks [@eikeland](https://github.com/eikeland)! - Added default headers to CLI REST API requests for better identification and tracking.
678
-
679
777
  - Created new `defaultHeaders` utility that includes CLI name, version, and user-agent
680
778
  - Updated app upload/tag operations to include default headers
681
779
  - Updated portal upload/tag operations to include default headers
682
780
 
683
781
  All HTTP requests from the CLI now include:
684
-
685
782
  - `X-Fusion-CLI-Name`: Identifies the CLI tool name
686
783
  - `X-Fusion-CLI-Version`: Specifies the CLI version making the request
687
784
  - `User-Agent`: Standard user agent header with CLI name and version
@@ -691,7 +788,6 @@
691
788
  Closes: #3539
692
789
 
693
790
  - [#3552](https://github.com/equinor/fusion-framework/pull/3552) [`8694e5b`](https://github.com/equinor/fusion-framework/commit/8694e5bb9bb1249dc52853dc6a5048f81ed9ab9c) Thanks [@eikeland](https://github.com/eikeland)! - Fixed release annotations to always include CLI version and required metadata.
694
-
695
791
  - Added `cliVersion` property to `ReleaseAnnotations` type
696
792
  - Ensured annotations are always returned (removed undefined return type)
697
793
  - Added fallback annotations for local builds with default values
@@ -709,7 +805,6 @@
709
805
  ### Minor Changes
710
806
 
711
807
  - [#3547](https://github.com/equinor/fusion-framework/pull/3547) [`99a3c26`](https://github.com/equinor/fusion-framework/commit/99a3c26275c2089c3708124f5819ce383d8dc3dc) Thanks [@odinr](https://github.com/odinr)! - Enhanced CLI with portal proxy support for testing apps in real portal environments ([Issue #3546](https://github.com/equinor/fusion-framework/issues/3546)).
712
-
713
808
  - Added `/portal-proxy` service worker resource configuration to CLI dev server
714
809
  - Routes portal proxy requests to Fusion portal service API (`/@fusion-api/portal-config`)
715
810
  - Enhanced dev server creation with improved logging and error handling
@@ -721,7 +816,6 @@
721
816
  ### Patch Changes
722
817
 
723
818
  - [`4717aab`](https://github.com/equinor/fusion-framework/commit/4717aab6b50d0a795255f7615bb334eae8dc9d3f) Thanks [@Noggling](https://github.com/Noggling)! - Enhanced dev server host configuration to respect Vite config settings.
724
-
725
819
  - Modified `startAppDevServer` function in `app-dev.ts` to use host configuration from local Vite config
726
820
  - Changed hardcoded 'localhost' host to respect `localViteConfig.server?.host` with 'localhost' as fallback
727
821
  - Improved configuration loading by storing `localViteConfig` in a variable to avoid duplicate loading
@@ -746,7 +840,6 @@
746
840
  ref: [3548](https://github.com/equinor/fusion-framework/issues/3548)
747
841
 
748
842
  - [#3547](https://github.com/equinor/fusion-framework/pull/3547) [`99a3c26`](https://github.com/equinor/fusion-framework/commit/99a3c26275c2089c3708124f5819ce383d8dc3dc) Thanks [@odinr](https://github.com/odinr)! - Enhanced CLI documentation with comprehensive portal proxy configuration guide.
749
-
750
843
  - Added detailed portal proxy configuration section in dev-server-config.md
751
844
  - Documented portal proxy behavior, use cases, and benefits
752
845
  - Provided complete code examples for portal proxy setup
@@ -764,7 +857,6 @@
764
857
  ### Minor Changes
765
858
 
766
859
  - [#3512](https://github.com/equinor/fusion-framework/pull/3512) [`6f17817`](https://github.com/equinor/fusion-framework/commit/6f17817d3e1290d0befca8bb528728128612f8f1) Thanks [@eikeland](https://github.com/eikeland)! - Enhanced app management commands with pre-flight registration checks.
767
-
768
860
  - Modified `checkApp` function to return boolean values instead of log results for better programmatic usage
769
861
  - Added handling for HTTP 410 status (deleted apps) in app registration checks
770
862
  - Added pre-flight app registration validation to `publish` and `upload` commands
@@ -780,7 +872,6 @@
780
872
  ### Patch Changes
781
873
 
782
874
  - [#3534](https://github.com/equinor/fusion-framework/pull/3534) [`8049b43`](https://github.com/equinor/fusion-framework/commit/8049b43847370c73814939f258a86723329b6b3c) Thanks [@odinr](https://github.com/odinr)! - Enhanced dev-server documentation with comprehensive configuration guide.
783
-
784
875
  - Added detailed `dev-server-config.md` documentation covering configuration options, API mocking, service discovery customization, and template environment overrides
785
876
  - Updated main `dev-server.md` documentation with improved architecture overview and configuration reference
786
877
  - Provided practical examples and troubleshooting guidance for dev-server configuration
@@ -807,7 +898,6 @@
807
898
  ### Patch Changes
808
899
 
809
900
  - [`56c27ec`](https://github.com/equinor/fusion-framework/commit/56c27ec9de03e07e725eecfdf2c028a1e29b6ece) Thanks [@odinr](https://github.com/odinr)! - Updated workspace dependencies to use exact version specifiers for consistent release behavior.
810
-
811
901
  - Changed workspace dependencies from `workspace:^` to `workspace:*` across CLI, dev-server, and SPA vite plugin packages
812
902
  - Ensures exact version resolution within the monorepo for predictable builds and releases
813
903
  - Affects both dependencies and devDependencies where applicable
@@ -828,7 +918,6 @@
828
918
  ### Minor Changes
829
919
 
830
920
  - [#3459](https://github.com/equinor/fusion-framework/pull/3459) [`58b5cee`](https://github.com/equinor/fusion-framework/commit/58b5ceeba5c6488a459ecaa22013823d3310ebc9) Thanks [@odinr](https://github.com/odinr)! - Enhanced Git repository cloning with user-controlled protocol selection.
831
-
832
921
  - Added interactive prompt for users to choose between HTTPS and SSH protocols
833
922
  - Implemented intelligent SSH detection using both git config and filesystem checks
834
923
  - Removed automatic SSH-to-HTTPS fallback in favor of explicit user choice
@@ -856,7 +945,6 @@
856
945
  - [#3425](https://github.com/equinor/fusion-framework/pull/3425) [`41cc520`](https://github.com/equinor/fusion-framework/commit/41cc520707c37672c59855ed53a0d4cedae0ec61) Thanks [@dependabot](https://github.com/apps/dependabot)! - Updated pretty-bytes from 7.0.1 to 7.1.0, adding `fixedWidth` and `nonBreakingSpace` options for enhanced CLI output formatting.
857
946
 
858
947
  - [#3428](https://github.com/equinor/fusion-framework/pull/3428) [`1700ca8`](https://github.com/equinor/fusion-framework/commit/1700ca8851fa108e55e9729fd24f595272766e63) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update zod from 4.1.9 to 4.1.11
859
-
860
948
  - **v4.1.10**: Fixed shape caching issue (#5263) improving validation performance for complex schemas
861
949
  - **v4.1.11**: Maintenance release with general improvements
862
950
 
@@ -877,7 +965,6 @@
877
965
  Updated source code to migrate from zod v3 to v4. Updated zod dependency from v3.25.76 to v4.1.8 and modified schema definitions in the CLI package to use explicit key and value types for records, updated error message format, and changed ZodError `.errors` property to `.issues` for zod v4 compatibility.
878
966
 
879
967
  Key changes in source code:
880
-
881
968
  - Fixed record schema definitions to use explicit key and value types (`z.record(z.string(), z.any())`)
882
969
  - Updated portal manifest schemas to use `message` instead of `description` for error messages
883
970
  - Simplified error message options format (removed `required_error`, `invalid_type_error` from options object)
@@ -887,14 +974,12 @@
887
974
  Breaking changes: Record schemas must specify both key and value types explicitly. Error message format has changed from zod v3 to v4 format. Function schema definitions now require explicit typing.
888
975
 
889
976
  Links:
890
-
891
977
  - [Zod v4 Migration Guide](https://github.com/colinhacks/zod/releases/tag/v4.0.0)
892
978
  - [Zod v4.1.8 Release Notes](https://github.com/colinhacks/zod/releases/tag/v4.1.8)
893
979
 
894
980
  ### Patch Changes
895
981
 
896
982
  - [#3418](https://github.com/equinor/fusion-framework/pull/3418) [`6426d40`](https://github.com/equinor/fusion-framework/commit/6426d4051d153a01f2bc37ba7e7f4d0e85a82753) Thanks [@odinr](https://github.com/odinr)! - Improve publish command documentation clarity
897
-
898
983
  - Update app publish command description to clearly explain conditional building behavior
899
984
  - Add prominent note explaining when building occurs vs when it doesn't
900
985
  - Add complete portal publish command documentation (was missing)
@@ -915,24 +1000,20 @@
915
1000
  - [#3369](https://github.com/equinor/fusion-framework/pull/3369) [`bd8360e`](https://github.com/equinor/fusion-framework/commit/bd8360e6b93704b3f8ba4eb0d7fd142e27c01ef9) Thanks [@dependabot](https://github.com/apps/dependabot)! - Updated commander from v13 to v14 with improved help system and Node.js v20+ requirement.
916
1001
 
917
1002
  ### Breaking Changes
918
-
919
1003
  - Commander 14 requires Node.js v20 or higher (compatible with existing project requirements)
920
1004
 
921
1005
  ### New Features
922
-
923
1006
  - Support for groups of options and commands in help
924
1007
  - Support for unescaped negative numbers as arguments
925
1008
  - Enhanced TypeScript support with parseArg property
926
1009
 
927
1010
  ### Links
928
-
929
1011
  - [GitHub releases](https://github.com/tj/commander.js/releases/tag/v14.0.1)
930
1012
  - [Changelog](https://github.com/tj/commander.js/blob/master/CHANGELOG.md)
931
1013
 
932
1014
  - [#3349](https://github.com/equinor/fusion-framework/pull/3349) [`c511123`](https://github.com/equinor/fusion-framework/commit/c511123c835e24e9ddefcc4c47c2455f5df12087) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore: bump vite from 6.x to 7.1.5
933
1015
 
934
1016
  Major version update of Vite build tool across all packages. This update includes:
935
-
936
1017
  - Enhanced build performance and caching
937
1018
  - Better error reporting with code frames
938
1019
  - Improved TypeScript integration
@@ -940,7 +1021,6 @@
940
1021
  - New development server features
941
1022
 
942
1023
  ### Links
943
-
944
1024
  - [Vite 7.1.5 Release Notes](https://github.com/vitejs/vite/releases/tag/v7.1.5)
945
1025
  - [Vite 7.x Migration Guide](https://vitejs.dev/guide/migration)
946
1026
 
@@ -949,17 +1029,14 @@
949
1029
  - [#3389](https://github.com/equinor/fusion-framework/pull/3389) [`db19291`](https://github.com/equinor/fusion-framework/commit/db192912ec35b41a10f0324ee70ecc85a686d4fa) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore: bump ora from 8.2.0 to 9.0.0
950
1030
 
951
1031
  ### Breaking Changes
952
-
953
1032
  - ora v9.0.0 now requires Node.js 20+ (previously supported older versions)
954
1033
 
955
1034
  ### New Features
956
-
957
1035
  - Fix clearing in some cases
958
1036
  - Fix `frame()` not displaying dynamic `prefixText`/`suffixText` from functions
959
1037
  - Fix multiline text exceeding console height leaving garbage when scrolling
960
1038
 
961
1039
  ### Links
962
-
963
1040
  - [GitHub releases](https://github.com/sindresorhus/ora/releases/tag/v9.0.0)
964
1041
  - [npm changelog](https://www.npmjs.com/package/ora?activeTab=versions)
965
1042
 
@@ -968,18 +1045,15 @@
968
1045
  Major version update of Vitest coverage package for CLI testing.
969
1046
 
970
1047
  ### Breaking Changes
971
-
972
1048
  - Updated from @vitest/coverage-v8 v2 to v3
973
1049
  - Coverage reporting may have configuration changes
974
1050
 
975
1051
  ### New Features
976
-
977
1052
  - Enhanced coverage reporting capabilities
978
1053
  - Improved test performance
979
1054
  - Better error handling and reporting
980
1055
 
981
1056
  ### Links
982
-
983
1057
  - [Vitest v3.2.4 Release Notes](https://github.com/vitest-dev/vitest/releases/tag/v3.2.4)
984
1058
  - [Vitest v3 Migration Guide](https://vitest.dev/guide/migration.html)
985
1059
  - [Coverage v8 Documentation](https://vitest.dev/guide/coverage.html)
@@ -994,13 +1068,11 @@
994
1068
  ### Patch Changes
995
1069
 
996
1070
  - [#3379](https://github.com/equinor/fusion-framework/pull/3379) [`96d319c`](https://github.com/equinor/fusion-framework/commit/96d319c64e2ccb0ad080d633b74b76cbc4f48083) Thanks [@dependabot](https://github.com/apps/dependabot)! - Updated inquirer dependency from 12.9.4 to 12.9.6
997
-
998
1071
  - Updated inquirer to latest patch version 12.9.6
999
1072
  - Includes bug fixes and performance improvements
1000
1073
  - No breaking changes in this patch update
1001
1074
 
1002
1075
  - [#3381](https://github.com/equinor/fusion-framework/pull/3381) [`bae9c95`](https://github.com/equinor/fusion-framework/commit/bae9c9554f335d0384b864436874bded47d00ed8) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update rollup from 4.46.3 to 4.50.2
1003
-
1004
1076
  - Updated rollup dependency to latest patch version
1005
1077
  - Includes bug fixes for tree-shaking array destructuring patterns
1006
1078
  - Performance improvements and platform support updates
@@ -1009,7 +1081,6 @@
1009
1081
  - [#2910](https://github.com/equinor/fusion-framework/pull/2910) [`07cc985`](https://github.com/equinor/fusion-framework/commit/07cc9857e1427b574e011cc319518e701dba784d) Thanks [@dependabot](https://github.com/apps/dependabot)! - Updated vitest from 2.1.9 to 3.2.4 across all packages.
1010
1082
 
1011
1083
  ## Breaking Changes
1012
-
1013
1084
  - **Node.js Requirements**: Requires Node.js 18+ (already satisfied)
1014
1085
  - **Vite Compatibility**: Updated to work with Vite 7.x (already using Vite 7.1.5)
1015
1086
  - **Snapshot Format**: Snapshots now use backtick quotes (\`) instead of single quotes
@@ -1017,18 +1088,15 @@
1017
1088
  - **TypeScript Support**: Enhanced TypeScript integration and type definitions
1018
1089
 
1019
1090
  ## Security Updates
1020
-
1021
1091
  - CVE-2025-24963: Browser mode serves arbitrary files (fixed in 2.1.9)
1022
1092
  - CVE-2025-24964: Remote Code Execution vulnerability (fixed in 2.1.9)
1023
1093
 
1024
1094
  ## Migration Notes
1025
-
1026
1095
  - Test snapshots may need regeneration due to quote format changes
1027
1096
  - Some test configurations might need updates for new TypeScript support
1028
1097
  - Peer dependency warnings for @vitest/coverage-v8 are expected and safe to ignore
1029
1098
 
1030
1099
  ## Links
1031
-
1032
1100
  - [Vitest 3.0 Migration Guide](https://vitest.dev/guide/migration)
1033
1101
  - [Vitest 3.2.4 Release Notes](https://github.com/vitest-dev/vitest/releases/tag/v3.2.4)
1034
1102
 
@@ -1045,7 +1113,6 @@
1045
1113
  - [#3377](https://github.com/equinor/fusion-framework/pull/3377) [`70638da`](https://github.com/equinor/fusion-framework/commit/70638da56c0dad3f349a2d063e8d8bcea3b71b12) Thanks [@odinr](https://github.com/odinr)! - Add comprehensive create app command for generating Fusion applications from templates.
1046
1114
 
1047
1115
  **New Features**
1048
-
1049
1116
  - Added `ffc create app <name>` command with interactive template selection
1050
1117
  - Supports both `ffc create app` and `ffc app create` command patterns for improved flexibility
1051
1118
  - Includes template validation and interactive prompts using inquirer
@@ -1053,13 +1120,11 @@
1053
1120
  - Implemented modular helper functions for each step of app creation
1054
1121
 
1055
1122
  **Template Support**
1056
-
1057
1123
  - Supports both bare and basic application templates from fusion-app-template repository
1058
1124
  - Includes template validation and interactive prompts using inquirer
1059
1125
  - Added comprehensive template repository system with schema validation
1060
1126
 
1061
1127
  **Developer Experience**
1062
-
1063
1128
  - Added IDE integration with automatic project opening
1064
1129
  - Includes dependency management and dev server startup
1065
1130
  - Added comprehensive documentation with examples and best practices
@@ -1067,7 +1132,6 @@
1067
1132
  - Added GitHub template integration links for alternative app creation methods
1068
1133
 
1069
1134
  **Error Handling & Reliability**
1070
-
1071
1135
  - Enhanced error handling for spawn operations in IDE opening and dev server startup
1072
1136
  - Migrated to execa for automatic process cleanup and better signal handling
1073
1137
  - Fixed misleading success messages by wrapping template copy operations in try-catch blocks
@@ -1076,14 +1140,12 @@
1076
1140
  - Enhanced TSDoc documentation and inline comments across helper functions
1077
1141
 
1078
1142
  **Dependencies**
1079
-
1080
1143
  - Added new dependencies: `inquirer`, `@types/inquirer`, and `execa` for enhanced CLI experience
1081
1144
  - Migrated process spawning from native child_process to execa for better process management
1082
1145
 
1083
1146
  The new command provides an intuitive way for developers to bootstrap new Fusion applications using predefined templates from the ecosystem while maintaining backward compatibility and providing robust error handling.
1084
1147
 
1085
1148
  - [#3377](https://github.com/equinor/fusion-framework/pull/3377) [`70638da`](https://github.com/equinor/fusion-framework/commit/70638da56c0dad3f349a2d063e8d8bcea3b71b12) Thanks [@odinr](https://github.com/odinr)! - Add workspace dependency resolution to create app command
1086
-
1087
1149
  - Added `updatePackageJson` helper for updating package.json with app name and resolving workspace dependencies
1088
1150
  - Added `resolve-workspace-dependencies` helper to convert workspace:^ dependencies to npm versions
1089
1151
  - Added `package-info` utility for fetching package metadata from npm registry
@@ -1098,25 +1160,21 @@
1098
1160
  - [#3377](https://github.com/equinor/fusion-framework/pull/3377) [`70638da`](https://github.com/equinor/fusion-framework/commit/70638da56c0dad3f349a2d063e8d8bcea3b71b12) Thanks [@odinr](https://github.com/odinr)! - Enhanced CLI security with path validation and improved error handling for create command.
1099
1161
 
1100
1162
  ## New Features
1101
-
1102
1163
  - **Path Security Validation**: Added `validateSafePath()` function to prevent path traversal attacks
1103
1164
  - **Safe Directory Operations**: Added `safeRmSync()` function for secure directory removal
1104
1165
  - **Enhanced Error Messages**: Improved user-friendly error messages with visual indicators
1105
1166
 
1106
1167
  ## Security Improvements
1107
-
1108
1168
  - **Path Traversal Protection**: Prevents users from specifying paths outside the current working directory
1109
1169
  - **Input Validation**: Validates target paths before performing file system operations
1110
1170
  - **Safe Cleanup**: Directory removal operations now validate paths before execution
1111
1171
 
1112
1172
  ## User Experience
1113
-
1114
1173
  - **Better Error Messages**: Clear, actionable error messages with ❌ and 💡 indicators
1115
1174
  - **Helpful Guidance**: Users get specific suggestions when path validation fails
1116
1175
  - **Clean Error Handling**: No more messy stack traces for path-related errors
1117
1176
 
1118
1177
  ## Technical Details
1119
-
1120
1178
  - Uses `is-path-inside` library for robust path validation
1121
1179
  - Integrates path security into `checkTargetDirectory` helper
1122
1180
  - Maintains backward compatibility with existing functionality
@@ -1125,7 +1183,6 @@
1125
1183
  - [`7983d30`](https://github.com/equinor/fusion-framework/commit/7983d302f5269d70646c3c5231944b8081844e86) Thanks [@odinr](https://github.com/odinr)! - **Note:** This changeset documents changes that were already implemented and released in [PR #3341](https://github.com/equinor/fusion-framework/pull/3341) (merged 2025-09-05) and included in the [🤖 Bip Bop - Fusion Framework Release](https://github.com/equinor/fusion-framework/pull/3342) (merged 2025-09-08). This changeset serves as a historical record and comprehensive documentation of the CLI tag command improvements, ensuring the changelog contains detailed information about the breaking changes, migration path, and technical details that may be referenced by users upgrading or troubleshooting CLI issues.
1126
1184
 
1127
1185
  Fixed `--version` flag conflict in CLI tag commands and improved API consistency.
1128
-
1129
1186
  - **Fixed:** Resolved conflict between custom `--version` option and Commander's built-in `--version` flag that displays CLI version
1130
1187
  - **Refactored:** Replaced separate `--appKey`/`--version` options with unified `--package name@version` syntax for both `app tag` and `portal tag` commands
1131
1188
  - **Improved:** Enhanced error handling with clear validation messages for package format
@@ -1134,7 +1191,6 @@
1134
1191
 
1135
1192
  **Breaking Changes:**
1136
1193
  This introduces a breaking change to the CLI API by removing the `--version` and `--appKey` options in favor of the `--package` option. However, we're releasing this as a patch since:
1137
-
1138
1194
  1. The `--version` flag never worked properly due to the conflict with Commander's built-in version flag
1139
1195
  2. The old API was fundamentally broken and unusable
1140
1196
  3. Limited adoption in production environments means minimal impact
@@ -1143,7 +1199,6 @@
1143
1199
  - The Fusion App Admin UI (graphical interface for release management)
1144
1200
 
1145
1201
  **Migration:**
1146
-
1147
1202
  - Old: `fusion-framework-cli app tag --appKey my-app --version 1.2.3 latest`
1148
1203
  - New: `fusion-framework-cli app tag --package my-app@1.2.3 latest`
1149
1204
 
@@ -1154,7 +1209,6 @@
1154
1209
  **Fixes:** https://github.com/equinor/fusion/issues/652
1155
1210
 
1156
1211
  - [#3377](https://github.com/equinor/fusion-framework/pull/3377) [`70638da`](https://github.com/equinor/fusion-framework/commit/70638da56c0dad3f349a2d063e8d8bcea3b71b12) Thanks [@odinr](https://github.com/odinr)! - Add git repository validation utilities to CLI package.
1157
-
1158
1212
  - Added `isGitDir` utility function to check if a directory is a valid git repository
1159
1213
  - Added `assertGitRepository` assertion function for git repository validation
1160
1214
  - Enhanced assert utilities with git repository checking capabilities
@@ -1166,7 +1220,6 @@
1166
1220
  ### Minor Changes
1167
1221
 
1168
1222
  - [#3362](https://github.com/equinor/fusion-framework/pull/3362) [`6151ff4`](https://github.com/equinor/fusion-framework/commit/6151ff429fc5dc221a4cb43f11362cf39c2a3136) Thanks [@odinr](https://github.com/odinr)! - Added comprehensive dev-server documentation with architecture overview and configuration guide.
1169
-
1170
1223
  - Added new `docs/dev-server.md` with complete dev-server documentation
1171
1224
  - Updated README.md to include dev-server documentation link
1172
1225
  - Covers dev-server features, architecture, configuration, and troubleshooting
@@ -1174,7 +1227,6 @@
1174
1227
  ### Patch Changes
1175
1228
 
1176
1229
  - [#3345](https://github.com/equinor/fusion-framework/pull/3345) [`0b53fa8`](https://github.com/equinor/fusion-framework/commit/0b53fa8dcd31b0b333a172bfcc15b342c5548bf9) Thanks [@odinr](https://github.com/odinr)! - Documented missing breaking change for Vite configuration file naming in CLI v11 migration guide and changelog.
1177
-
1178
1230
  - Added detailed explanation of `app.vite.config.ts` → `vite.config.ts` file naming change
1179
1231
  - Emphasized that `vite.config.ts` should be a last resort for custom setups
1180
1232
  - Recommended using `dev-server.config.js` instead to avoid unexpected behavior
@@ -1191,7 +1243,6 @@
1191
1243
  ### Patch Changes
1192
1244
 
1193
1245
  - [#3356](https://github.com/equinor/fusion-framework/pull/3356) [`2e47652`](https://github.com/equinor/fusion-framework/commit/2e47652aba8ab14dea62307953666d8f136d7ca0) Thanks [@odinr](https://github.com/odinr)! - Fix SemVer 2.0 compliance issue where build metadata was stripped from package versions.
1194
-
1195
1246
  - Disabled built-in normalization in `read-package-up` to preserve version build metadata
1196
1247
  - Added manual package data normalization using `normalize-package-data` library
1197
1248
  - Preserves original version with build metadata (e.g., `11.8.0+commit`) in app manifests
@@ -1209,7 +1260,6 @@
1209
1260
  ### Patch Changes
1210
1261
 
1211
1262
  - [#3341](https://github.com/equinor/fusion-framework/pull/3341) [`cd09bef`](https://github.com/equinor/fusion-framework/commit/cd09befcdab4162a38d4dfd14f280ce228ea97d9) Thanks [@odinr](https://github.com/odinr)! - Added `--silent` option to the `disco resolve` command to disable CLI logger output and only output structured JSON results for piping.
1212
-
1213
1263
  - Added `--silent` flag that completely disables the CLI logger and all logging output
1214
1264
  - Only outputs the resolved service details as JSON when silent mode is enabled
1215
1265
  - Enables piping the command output to other tools (e.g., `jq`, `grep`, etc.)
@@ -1217,31 +1267,26 @@
1217
1267
  - Cleaned up debug console.log statements
1218
1268
 
1219
1269
  - [#3341](https://github.com/equinor/fusion-framework/pull/3341) [`cd09bef`](https://github.com/equinor/fusion-framework/commit/cd09befcdab4162a38d4dfd14f280ce228ea97d9) Thanks [@odinr](https://github.com/odinr)! - Aligned portal dev command options with app dev command for consistency.
1220
-
1221
1270
  - Standardized option format from short flags to long flags (--debug, --port)
1222
1271
  - Added --env option support for runtime environment configuration
1223
1272
  - Updated logging message to be portal-specific ("Starting portal in development mode...")
1224
1273
  - Enhanced startPortalDevServer function call to include env parameter
1225
1274
 
1226
1275
  - [#3343](https://github.com/equinor/fusion-framework/pull/3343) [`33054ac`](https://github.com/equinor/fusion-framework/commit/33054ac27b309e9d0301dd1f1d63639dac27f00b) Thanks [@odinr](https://github.com/odinr)! - Reorganized authentication documentation to improve maintainability and user experience.
1227
-
1228
1276
  - Removed local `libsecret.md` documentation file
1229
1277
  - Updated all libsecret references to point to centralized MSAL Node module documentation
1230
1278
  - Enhanced authentication guide with cross-references to underlying module documentation
1231
1279
  - Improved documentation structure by consolidating authentication docs in the appropriate module packages
1232
1280
 
1233
1281
  **Migration Notes:**
1234
-
1235
1282
  - libsecret installation guide is now available at: https://equinor.github.io/fusion-framework/modules/auth/msal-node/docs/libsecret.html
1236
1283
  - All authentication-related documentation is now centralized in the MSAL Node module package
1237
1284
 
1238
1285
  - [#3341](https://github.com/equinor/fusion-framework/pull/3341) [`cd09bef`](https://github.com/equinor/fusion-framework/commit/cd09befcdab4162a38d4dfd14f280ce228ea97d9) Thanks [@odinr](https://github.com/odinr)! - Fixed missing `env` parameter in `buildApplication` call within `bundleApp` function.
1239
-
1240
1286
  - Added the required `env` parameter to the `buildApplication` function call in `packages/cli/src/bin/app-pack.ts`
1241
1287
  - This ensures the build process receives the correct runtime environment configuration
1242
1288
 
1243
1289
  - [#3341](https://github.com/equinor/fusion-framework/pull/3341) [`cd09bef`](https://github.com/equinor/fusion-framework/commit/cd09befcdab4162a38d4dfd14f280ce228ea97d9) Thanks [@odinr](https://github.com/odinr)! - Fixed stdout concatenation issues in CLI commands that output JSON to stdout.
1244
-
1245
1290
  - Replaced `stdout.write()` with `console.log()` for proper newline handling in:
1246
1291
  - `ffc app manifest` command
1247
1292
  - `ffc app config` command
@@ -1253,7 +1298,6 @@
1253
1298
  These changes ensure that shell prompts no longer concatenate to JSON output, making the commands safe to pipe to tools like `jq`.
1254
1299
 
1255
1300
  - [#3341](https://github.com/equinor/fusion-framework/pull/3341) [`cd09bef`](https://github.com/equinor/fusion-framework/commit/cd09befcdab4162a38d4dfd14f280ce228ea97d9) Thanks [@odinr](https://github.com/odinr)! - Enhanced CLI command documentation and help text across all commands.
1256
-
1257
1301
  - Updated command examples to use `ffc` (alias) instead of `fusion-framework-cli`
1258
1302
  - Improved TSDoc comments with comprehensive descriptions and examples
1259
1303
  - Streamlined help text by removing redundant information and improving formatting
@@ -1273,7 +1317,6 @@
1273
1317
  ### Patch Changes
1274
1318
 
1275
1319
  - [#3330](https://github.com/equinor/fusion-framework/pull/3330) [`3590104`](https://github.com/equinor/fusion-framework/commit/3590104bdf3bba3386cdec7e2692078e6a92bd01) Thanks [@odinr](https://github.com/odinr)! - Enhanced Vite configuration with improved TypeScript path resolution and centralized config loading.
1276
-
1277
1320
  - Added `vite-tsconfig-paths` plugin for better TypeScript path resolution in development
1278
1321
  - Refactored app and portal dev servers to use centralized `loadViteConfig` function
1279
1322
  - Improved Vite config merging with `mergeConfigVite` for better configuration management
@@ -1372,14 +1415,12 @@
1372
1415
  ### Patch Changes
1373
1416
 
1374
1417
  - [#3271](https://github.com/equinor/fusion-framework/pull/3271) [`7832bd7`](https://github.com/equinor/fusion-framework/commit/7832bd78843621ca95373596761bec29d4bdbbb8) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependency `chalk` to ^5.6.0
1375
-
1376
1418
  - Updated `chalk` to version ^5.6.0 in root, CLI, and log utils packages.
1377
1419
  - No breaking changes expected.
1378
1420
 
1379
1421
  See [chalk changelog](https://github.com/chalk/chalk/releases) for details.
1380
1422
 
1381
1423
  - [#3309](https://github.com/equinor/fusion-framework/pull/3309) [`29efd10`](https://github.com/equinor/fusion-framework/commit/29efd10c48f9d11ba5aa7246d3217c5ea81ddc14) Thanks [@odinr](https://github.com/odinr)! - - Removed all YAML/Markdown frontmatter blocks from CLI documentation files in `/packages/cli/docs` and `/packages/cli/README.md` for a cleaner, more maintainable documentation source.
1382
-
1383
1424
  - Updated all internal documentation links to use relative paths without leading `./` for consistency and compatibility with VuePress.
1384
1425
  - Updated the `TODO.md` file to remove completed or obsolete tasks and clarify remaining todos.
1385
1426
 
@@ -1394,7 +1435,6 @@
1394
1435
  ### Major Changes
1395
1436
 
1396
1437
  - [#3075](https://github.com/equinor/fusion-framework/pull/3075) [`8fffbfb`](https://github.com/equinor/fusion-framework/commit/8fffbfb12daa9748bf5290e5084cd4d409aed253) Thanks [@odinr](https://github.com/odinr)! - **Major Changes**
1397
-
1398
1438
  - **Rewrite:** The CLI has been rewritten to use Fusion Framework internally, minimizing dependencies and improving performance. It is now a first-class citizen in the Fusion Framework ecosystem, providing a more consistent and integrated experience.
1399
1439
  - **Dev Portal Modularization:** The dev portal has been moved to a separate package `@equinor/fusion-framework-dev-server`, enabling modular architecture and independent updates. The dev portal can be configured via `dev-server.config.js` and supports live preview and API mocking.
1400
1440
  - **Command Structure:** CLI is now divided into three main groups: `bin` (executable functions), `commands` (CLI commands), and `lib` (for consumers, config, and utilities). This improves organization and modularity.
@@ -1406,22 +1446,18 @@
1406
1446
  - **New Utility Functions:** The CLI now includes new utility modules for resolving CI/CD metadata (GitHub Actions, Azure DevOps), git commit and remote info, and package metadata. These utilities support advanced scripting and automation scenarios.
1407
1447
 
1408
1448
  **Minor Changes**
1409
-
1410
1449
  - **Portal Config Support:** Added helpers for loading and resolving portal configuration files, with new types and utilities for authoring static or dynamic portal configs. Dev server logic updated to use resolved portal config.
1411
1450
  - **Manifest Refactor:** Portal manifest now uses `name` and `templateEntry` for consistency with app manifests. Dev server config and routing updated. Asset paths now use `/@fs` for local development. Improved type safety and schema validation.
1412
1451
  - **ESM Modernization:** Refactored CLI to use deepmerge instead of lodash.mergewith, updated all imports to use explicit `.js` extensions, and re-exported all bin entrypoints for ESM compatibility. Updated package.json and tsconfig.json for ESM.
1413
1452
 
1414
1453
  **Patch Changes**
1415
-
1416
1454
  - **Dev Server Config:** Refactored config loading and merging, added `RecursivePartial` type, custom array merge strategy, and improved documentation. Arrays of route objects are now merged by `match` property to ensure uniqueness.
1417
1455
  - **Node Version Check:** Added Node.js version check and LTS recommendation to CLI entrypoint. Build config injects version info via environment variables.
1418
1456
 
1419
1457
  **Other**
1420
-
1421
1458
  - Improved maintainability, type safety, and developer experience throughout the CLI and dev server packages.
1422
1459
 
1423
1460
  **Note:**
1424
-
1425
1461
  - The removal of Vite config and schema utilities is a breaking change for users who previously relied on CLI-provided defaults. Please migrate to custom configuration as needed.
1426
1462
  - The new utility modules are available for advanced use cases and automation, but do not affect most standard CLI usage.
1427
1463
  - If you are authoring an `app.config.ts` file, you now need to import the config helper as follows:
@@ -1435,14 +1471,12 @@
1435
1471
 
1436
1472
  +- See the CLI's [README](https://github.com/equinor/fusion-framework/blob/main/packages/cli/README.md) for a full overview, installation, and command reference.
1437
1473
  +- The [docs folder](https://github.com/equinor/fusion-framework/tree/main/packages/cli/docs) contains:
1438
-
1439
1474
  - - [Developing Apps](https://github.com/equinor/fusion-framework/blob/main/packages/cli/docs/application.md): Step-by-step guide to app setup, config, CI/CD, and best practices.
1440
1475
  - - [Developing Portals](https://github.com/equinor/fusion-framework/blob/main/packages/cli/docs/portal.md): Portal template development, manifest/schema, and deployment.
1441
1476
  - - [Authentication](https://github.com/equinor/fusion-framework/blob/main/packages/cli/docs/auth.md): Local and CI/CD authentication, MSAL, and secure token storage.
1442
1477
  - - [Migration Guide: v10 to v11](https://github.com/equinor/fusion-framework/blob/main/packages/cli/docs/migration-v10-to-v11.md): Breaking changes, deprecated commands, and upgrade steps.
1443
1478
  - - [libsecret setup](https://github.com/equinor/fusion-framework/blob/main/packages/cli/docs/libsecret.md): Secure credential storage for Linux users.
1444
1479
  +- For real-world examples, see the [cookbooks/](https://github.com/equinor/fusion-framework/tree/main/cookbooks) directory.
1445
-
1446
1480
  * Key usage notes:
1447
1481
  - All config and manifest files must use helpers from `@equinor/fusion-framework-cli/app`.
1448
1482
  - Use `fusion-framework-cli auth login` for local authentication; use `FUSION_TOKEN` for CI/CD.
@@ -1469,7 +1503,6 @@
1469
1503
  ### Patch Changes
1470
1504
 
1471
1505
  - [#3268](https://github.com/equinor/fusion-framework/pull/3268) [`7ef5afc`](https://github.com/equinor/fusion-framework/commit/7ef5afc96a8c2cebecedc85703be820d84e3885a) Thanks [@odinr](https://github.com/odinr)! - Fix: Improve type safety and error handling in `AppAssetExportPlugin` (app-assets plugin).
1472
-
1473
1506
  - Use `unknown as PluginContext` for type casting in `resolveId` and `emitAssetSync` calls.
1474
1507
  - Add null check and warning if asset emission fails.
1475
1508
  - Minor code style and safety improvements.
@@ -1516,18 +1549,15 @@
1516
1549
  ### Minor Changes
1517
1550
 
1518
1551
  - [#2930](https://github.com/equinor/fusion-framework/pull/2930) [`5da6b2d`](https://github.com/equinor/fusion-framework/commit/5da6b2d4cb7fb93ff3784753a0052d3362ab828d) Thanks [@odinr](https://github.com/odinr)! - **@equinor/fusion-framework-react:**
1519
-
1520
1552
  - Enhanced `useAppContextNavigation` to support custom context path extraction and generation. This allows for more flexible navigation handling based on application-specific requirements.
1521
1553
 
1522
1554
  **@equinor/fusion-framework-module-context:**
1523
-
1524
1555
  - Added support for custom context path extraction and generation in `ContextConfigBuilder`, `ContextProvider`, and `ContextModuleConfigurator`.
1525
1556
  - Introduced `setContextPathExtractor` and `setContextPathGenerator` methods in `ContextConfigBuilder` to allow developers to define custom logic for extracting and generating context paths.
1526
1557
  - Updated `ContextProvider` to utilize `extractContextIdFromPath` and `generatePathFromContext` from the configuration, enabling dynamic path handling.
1527
1558
  - Enhanced `ContextModuleConfigurator` to include `extractContextIdFromPath` and `generatePathFromContext` in the module configuration.
1528
1559
 
1529
1560
  If you are using `@equinor/fusion-framework-module-context` and need custom logic for context path handling:
1530
-
1531
1561
  1. Use `setContextPathExtractor` to define how to extract context IDs from paths.
1532
1562
  2. Use `setContextPathGenerator` to define how to generate paths based on context items.
1533
1563
 
@@ -1554,11 +1584,11 @@
1554
1584
  // Custom logic to generate path from context
1555
1585
  const path = contextProvider.generatePathFromContext?.(
1556
1586
  context,
1557
- location.pathname
1587
+ location.pathname,
1558
1588
  );
1559
1589
  return path ?? fallbackPathGenerator(context, location.pathname);
1560
1590
  }),
1561
- filter(Boolean)
1591
+ filter(Boolean),
1562
1592
  )
1563
1593
  .subscribe((path) => history.push(path));
1564
1594
  ```
@@ -1582,7 +1612,6 @@
1582
1612
  - [#2885](https://github.com/equinor/fusion-framework/pull/2885) [`abb3560`](https://github.com/equinor/fusion-framework/commit/abb3560a22ad8830df19904272035458433f4237) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update he `Typescript` version `^5.7.3` to `^5.8.2`
1583
1613
 
1584
1614
  - [#2890](https://github.com/equinor/fusion-framework/pull/2890) [`1ad39f5`](https://github.com/equinor/fusion-framework/commit/1ad39f509a33627f2ad877a4125386a80ab8f510) Thanks [@odinr](https://github.com/odinr)! - refactor: adhere to self-closing tags for components
1585
-
1586
1615
  - Updated `SelectorPage.tsx` to use self-closing tags for `PersonSelect` components.
1587
1616
  - Updated `Header.Actions.tsx` to use self-closing tags for `fwc-person-avatar` component.
1588
1617
  - Updated `FeatureSheetContent.tsx` to use self-closing tags for `Icon` and `Divider` components.
@@ -1692,12 +1721,10 @@
1692
1721
  - [#2661](https://github.com/equinor/fusion-framework/pull/2661) [`f60748b`](https://github.com/equinor/fusion-framework/commit/f60748b4f3980f00fa3aed131fef97513f1424c6) Thanks [@eikeland](https://github.com/eikeland)! - Added `noOpen` option to the development server configuration.
1693
1722
 
1694
1723
  **Modified files:**
1695
-
1696
1724
  - `packages/cli/src/bin/create-dev-serve.ts`
1697
1725
  - `packages/cli/src/bin/main.app.ts`
1698
1726
 
1699
1727
  **Changes:**
1700
-
1701
1728
  - Added `noOpen` boolean option to `createDevServer` function.
1702
1729
  - Updated the server configuration to conditionally open the app in the default browser based on the `noOpen` option.
1703
1730
  - Added `-n, --noOpen` option to the CLI command for starting the development server.
@@ -1743,7 +1770,6 @@
1743
1770
  ### Patch Changes
1744
1771
 
1745
1772
  - [#2612](https://github.com/equinor/fusion-framework/pull/2612) [`1f9da67`](https://github.com/equinor/fusion-framework/commit/1f9da67df85f466763788039c9f0df67164eb391) Thanks [@eikeland](https://github.com/eikeland)! - ### Changes
1746
-
1747
1773
  - Stopped using node:path join in app-proxy-plugin since it caused issues on windows
1748
1774
 
1749
1775
  ## 10.2.4
@@ -1755,7 +1781,6 @@
1755
1781
  `AppLoader.tsx`
1756
1782
 
1757
1783
  ### Changes
1758
-
1759
1784
  - Added import for last operator from rxjs/operators.
1760
1785
  - Updated the initialize subscription to use the last operator.
1761
1786
 
@@ -1764,7 +1789,6 @@
1764
1789
  ### Patch Changes
1765
1790
 
1766
1791
  - [#2591](https://github.com/equinor/fusion-framework/pull/2591) [`445760c`](https://github.com/equinor/fusion-framework/commit/445760ce73e1d76303c83c367a394adfb5b7a479) Thanks [@eikeland](https://github.com/eikeland)! - ### Updated Dependencies:
1767
-
1768
1792
  - Updated @equinor/fusion-wc-person to ^3.0.5 in package.json.
1769
1793
 
1770
1794
  ## 10.2.2
@@ -1784,14 +1808,11 @@
1784
1808
  ### Minor Changes
1785
1809
 
1786
1810
  - [#2410](https://github.com/equinor/fusion-framework/pull/2410) [`9d1cb90`](https://github.com/equinor/fusion-framework/commit/9d1cb9003fa10e7ccaa95c20ef86f0a618034641) Thanks [@odinr](https://github.com/odinr)! - Updated Bookmark Integration in Dev Portal
1787
-
1788
1811
  - **Refactored `BookMarkSideSheet.tsx`:**
1789
-
1790
1812
  - Replaced `useHasBookmark` with `useCurrentAppModule<BookmarkModule>('bookmark')` for better module integration.
1791
1813
  - Updated button `disabled` state to use `bookmarkProvider?.hasBookmarkCreators`.
1792
1814
 
1793
1815
  - **Updated `Header.tsx`:**
1794
-
1795
1816
  - Added `useCurrentAppModule<BookmarkModule>('bookmark')` to manage bookmark module state.
1796
1817
  - Disabled bookmark button if `bookmarkProvider` is not available.
1797
1818
  - Passed `bookmarkProvider` to `BookmarkProvider` component.
@@ -1823,7 +1844,6 @@
1823
1844
  ### Patch Changes
1824
1845
 
1825
1846
  - [#2523](https://github.com/equinor/fusion-framework/pull/2523) [`e188193`](https://github.com/equinor/fusion-framework/commit/e188193a09802cfb74bd8aeaa8713b75b10a0638) Thanks [@eikeland](https://github.com/eikeland)! - ## changes:
1826
-
1827
1847
  - changing ci urls to new domain
1828
1848
 
1829
1849
  ## 10.0.2
@@ -1831,7 +1851,6 @@
1831
1851
  ### Patch Changes
1832
1852
 
1833
1853
  - [#2521](https://github.com/equinor/fusion-framework/pull/2521) [`65f03fa`](https://github.com/equinor/fusion-framework/commit/65f03fa01b71d387874dbe8ae21163c7c1c3d4b8) Thanks [@eikeland](https://github.com/eikeland)! - ### Adds CHANGELOG.md to app zip package
1834
-
1835
1854
  - Removed individual file additions for package.json, LICENSE.md, and README.md.
1836
1855
  - Added a loop to handle multiple files (package.json, LICENSE.md, README.md, CHANGELOG.md) in a more concise manner.
1837
1856
  - Updated the spinner messages accordingly.
@@ -1851,7 +1870,6 @@
1851
1870
  Introduces new parameters to the `build-config` command for publishing the app config to a build version.
1852
1871
 
1853
1872
  Commands:
1854
-
1855
1873
  - `build-pack` - Bundle the app for distribution
1856
1874
  - `-o, --output <output>` - Output directory for the packed app
1857
1875
  - `-a, --archive` - Archive name for the packed app
@@ -1912,7 +1930,6 @@
1912
1930
  ```
1913
1931
 
1914
1932
  **breaking changes:**
1915
-
1916
1933
  - renaming all commands accociated with build.
1917
1934
  - The app-config endpoints is now an object containing url and scopes, where name is the object key:
1918
1935
 
@@ -1933,12 +1950,10 @@
1933
1950
  ### Minor Changes
1934
1951
 
1935
1952
  - [#2494](https://github.com/equinor/fusion-framework/pull/2494) [`e11ad64`](https://github.com/equinor/fusion-framework/commit/e11ad64a42210443bdfd9ab9eb2fb95e7e345251) Thanks [@odinr](https://github.com/odinr)! - Introduced `proxyRequestLogger` to log proxy requests in the CLI.
1936
-
1937
1953
  - Show the request URL and method in the console when a proxy request is made.
1938
1954
  - Show proxy response status code
1939
1955
 
1940
1956
  - [#2494](https://github.com/equinor/fusion-framework/pull/2494) [`e11ad64`](https://github.com/equinor/fusion-framework/commit/e11ad64a42210443bdfd9ab9eb2fb95e7e345251) Thanks [@odinr](https://github.com/odinr)! - Create a plugin `externalPublicPlugin` to fix the issue with serving the `index.html` file from the specified external public directory. Vite mode `spa` will not serve the `index.html` file from the specified external public directory.
1941
-
1942
1957
  - Enhanced the middleware to intercept requests and serve the `index.html` file from the specified external public directory.
1943
1958
  - Transformed the HTML using Vite's `transformIndexHtml` method.
1944
1959
  - Applied appropriate content headers and additional configured headers before sending the response.
@@ -1955,7 +1970,6 @@
1955
1970
  ```
1956
1971
 
1957
1972
  - [#2494](https://github.com/equinor/fusion-framework/pull/2494) [`e11ad64`](https://github.com/equinor/fusion-framework/commit/e11ad64a42210443bdfd9ab9eb2fb95e7e345251) Thanks [@odinr](https://github.com/odinr)! - Updated commands in CLI to reflect purpose of the command:
1958
-
1959
1973
  - renamed `config` to `build-config` to generate build config of an application.
1960
1974
  - renamed `pack`to `build-pack` to bundle an application.
1961
1975
  - added `build-manifest` command to generate build manifest of an application.
@@ -1971,16 +1985,13 @@
1971
1985
  It sets up proxy rules for API and bundle requests and serves the app configuration and manifest based on the app key and version.
1972
1986
 
1973
1987
  Key Features:
1974
-
1975
1988
  1. Proxy Configuration:
1976
-
1977
1989
  - Proxies API calls to the Fusion apps backend.
1978
1990
  - Proxies bundle requests to the Fusion apps backend.
1979
1991
  - Uses a base path `proxyPath` for proxying.
1980
1992
  - Captures and reuses authorization tokens for asset requests.
1981
1993
 
1982
1994
  2. **App Configuration and Manifest**:
1983
-
1984
1995
  - Serves the app configuration if the request matches the current app and version.
1985
1996
  - Serves the app manifest if the request matches the current app.
1986
1997
 
@@ -2057,7 +2068,6 @@
2057
2068
  - [#2494](https://github.com/equinor/fusion-framework/pull/2494) [`e11ad64`](https://github.com/equinor/fusion-framework/commit/e11ad64a42210443bdfd9ab9eb2fb95e7e345251) Thanks [@odinr](https://github.com/odinr)! - Updating fusion-wc-person to fix issues when using selectedPerson = null in PersonSelect component.
2058
2069
 
2059
2070
  Updated the following dependencies
2060
-
2061
2071
  - `@equinor/fusion-wc-person` from `^3.0.1` to `^3.0.3` in `packages/cli/package.json` and `packages/react/components/people-resolver/package.json`.
2062
2072
 
2063
2073
  - [#2494](https://github.com/equinor/fusion-framework/pull/2494) [`e11ad64`](https://github.com/equinor/fusion-framework/commit/e11ad64a42210443bdfd9ab9eb2fb95e7e345251) Thanks [@odinr](https://github.com/odinr)! - Generated base manifest from package will now include `StandardIncludeAssetExtensions` as `allowedExtensions`
@@ -2069,7 +2079,6 @@
2069
2079
  - [#2493](https://github.com/equinor/fusion-framework/pull/2493) [`4839295`](https://github.com/equinor/fusion-framework/commit/4839295263f07704bc43930351ce34dfb27a4c81) Thanks [@eikeland](https://github.com/eikeland)! - Updating fusion-wc-person to fix issues when using selectedPerson = null in PersonSelect component.
2070
2080
 
2071
2081
  Updated the following dependencies
2072
-
2073
2082
  - `@equinor/fusion-wc-person` from `^3.0.1` to `^3.0.3` in `packages/cli/package.json` and `packages/react/components/people-resolver/package.json`.
2074
2083
 
2075
2084
  - Updated dependencies [[`4839295`](https://github.com/equinor/fusion-framework/commit/4839295263f07704bc43930351ce34dfb27a4c81)]:
@@ -2089,7 +2098,6 @@
2089
2098
 
2090
2099
  > [!NOTE]
2091
2100
  > This is a quick fix until the new major version of the CLI is released.
2092
-
2093
2101
  - Updated the `baseUri` to use a more specific URL path for service discovery.
2094
2102
  - Changed from `new URL(import.meta.url).origin` to `String(new URL('/_discovery/environments/current', import.meta.url))`.
2095
2103
  - Changed parsing of service discovery response to match new API format.
@@ -2151,7 +2159,6 @@
2151
2159
  - [#2350](https://github.com/equinor/fusion-framework/pull/2350) [`960ca34`](https://github.com/equinor/fusion-framework/commit/960ca34cae26f386e28c16bac00e7932f4f9199a) Thanks [@dependabot](https://github.com/apps/dependabot)! - build(deps): bump @equinor/eds-core-react from 0.38.0 to 0.40.1
2152
2160
 
2153
2161
  - [#2360](https://github.com/equinor/fusion-framework/pull/2360) [`1c7ac1b`](https://github.com/equinor/fusion-framework/commit/1c7ac1b42213f33a668e79d750e0b12b227a7052) Thanks [@eikeland](https://github.com/eikeland)! - Enhanced ContextSelector component in the CLI package:
2154
-
2155
2162
  - Implemented responsive context clearing mechanism
2156
2163
  - Improved handling of context selection and clearing events
2157
2164
  - Optimized component rendering with useMemo and useCallback hooks
@@ -2195,7 +2202,6 @@
2195
2202
  - [#2320](https://github.com/equinor/fusion-framework/pull/2320) [`1dd85f3`](https://github.com/equinor/fusion-framework/commit/1dd85f3a408a73df556d1812a5f280945cc100ee) Thanks [@odinr](https://github.com/odinr)! - Removed the `removeComments` option from the `tsconfig.base.json` file.
2196
2203
 
2197
2204
  Removing the `removeComments` option allows TypeScript to preserve comments in the compiled JavaScript output. This can be beneficial for several reasons:
2198
-
2199
2205
  1. Improved debugging: Preserved comments can help developers understand the code better during debugging sessions.
2200
2206
  2. Documentation: JSDoc comments and other important code documentation will be retained in the compiled output.
2201
2207
  3. Source map accuracy: Keeping comments can lead to more accurate source maps, which is crucial for debugging and error tracking.
@@ -2314,7 +2320,6 @@
2314
2320
  ### Patch Changes
2315
2321
 
2316
2322
  - [#2107](https://github.com/equinor/fusion-framework/pull/2107) [`491c2e0`](https://github.com/equinor/fusion-framework/commit/491c2e05a2383dc7aa310f11ba6f7325a69e7197) Thanks [@odinr](https://github.com/odinr)! - Fixed issue with missing process env `FUSION_LOG_LEVEL`
2317
-
2318
2323
  - added default resolve value when generating base vite configuration
2319
2324
  - moved default query log level resolve outside class
2320
2325
 
@@ -2482,7 +2487,6 @@
2482
2487
  ### Patch Changes
2483
2488
 
2484
2489
  - [#1878](https://github.com/equinor/fusion-framework/pull/1878) [`fe1a239`](https://github.com/equinor/fusion-framework/commit/fe1a239e9ce9fc0e39b4faf67ffda40d287d5bd2) Thanks [@asbjornhaland](https://github.com/asbjornhaland)! - - Add error icon for errors
2485
-
2486
2490
  - Add info icon for no result
2487
2491
 
2488
2492
  - [#1875](https://github.com/equinor/fusion-framework/pull/1875) [`e018c6e`](https://github.com/equinor/fusion-framework/commit/e018c6e5b5f8676b642ded1bb8b5b41bc65f674f) Thanks [@asbjornhaland](https://github.com/asbjornhaland)! - Show message when unhandled error occurs in context selector
@@ -2818,7 +2822,6 @@
2818
2822
  ### Patch Changes
2819
2823
 
2820
2824
  - [#1348](https://github.com/equinor/fusion-framework/pull/1348) [`0acc8827`](https://github.com/equinor/fusion-framework/commit/0acc8827e5e2df8b5b2aeac5e1a2cd29c4384e78) Thanks [@dependabot](https://github.com/apps/dependabot)! - build(deps): bump @equinor/eds-core-react from 0.32.4 to 0.33.0
2821
-
2822
2825
  - support for [styled-components@6](https://styled-components.com/releases#v6.0.0)
2823
2826
 
2824
2827
  ## 9.1.3
@@ -2916,7 +2919,6 @@
2916
2919
  > the CLI was thrown together as a proof of concept, but grown un-manageable, because of lack of structure
2917
2920
 
2918
2921
  **Main Features**
2919
-
2920
2922
  - Separate logic and utilities from program (app/cli commands)
2921
2923
  - allow user to provide config files `app.{config,manifest,vite}.{ts,js,json}`
2922
2924
  - the cli will try to resolve from `.ts` then `.js` then `.json`
@@ -2949,7 +2951,7 @@
2949
2951
  },
2950
2952
  },
2951
2953
  },
2952
- })
2954
+ }),
2953
2955
  );
2954
2956
  ```
2955
2957
 
@@ -3026,7 +3028,6 @@
3026
3028
 
3027
3029
  align CLI with EDS and use style components instead of emotion 🥲
3028
3030
  prevent conflict of react types dependent on both emotion and eds
3029
-
3030
3031
  - remove @emotion/\*
3031
3032
  - convert emotion to styled-components
3032
3033
  - fix styling of cli
@@ -3062,7 +3063,6 @@
3062
3063
  see [react changelog](https://github.com/facebook/react/releases) for details
3063
3064
 
3064
3065
  - [#1122](https://github.com/equinor/fusion-framework/pull/1122) [`1a055b21`](https://github.com/equinor/fusion-framework/commit/1a055b21e07f84bc5d35cc891586aa9aa0bdf661) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update styled-components to [^6.0.7](https://github.com/styled-components/styled-components/releases/tag/v6.0.7)
3065
-
3066
3066
  - upgraded dev deps of `@equinor/fusion-framework-react-components-bookmark` to react 18, see style-components [changelog](https://github.com/styled-components/styled-components/releases/tag/v6.0.0)
3067
3067
  - removed `@types/style-components` from `@equinor/fusion-framework-react-components-bookmark`
3068
3068
 
@@ -3140,7 +3140,6 @@
3140
3140
  both `"main": "src/index.ts"` and `"main": "/src/index.ts"` will resolve.
3141
3141
 
3142
3142
  - [#905](https://github.com/equinor/fusion-framework/pull/905) [`a7858a1c`](https://github.com/equinor/fusion-framework/commit/a7858a1c01542e2dc94370709f122b4b99c3219c) Thanks [@odinr](https://github.com/odinr)! - **🚧 Chore: dedupe packages**
3143
-
3144
3143
  - align all versions of typescript
3145
3144
  - update types to build
3146
3145
  - a couple of typecasts did not [satisfies](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-0.html#satisfies-support-in-jsdoc) and was recasted as `unknwon`, marked with `TODO`, should be fixed in future