UNPKG

@equinor/fusion-framework-cli

Version:

[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](./LICENSE)

839 lines (545 loc) 196 kB
# Change Log ## 12.3.9-next.0 ### Patch Changes - [#3693](https://github.com/equinor/fusion-framework/pull/3693) [`dd26dd3`](https://github.com/equinor/fusion-framework/commit/dd26dd3e652eb07a77bcdc878f8493c6db4fed48) Thanks [@github-actions](https://github.com/apps/github-actions)! - Update CLI auth commands to use new MSAL Node API format. Internal implementation change to adapt to MSAL Node interface updates. CLI commands continue to work the same way for end users. Why: Ensures compatibility with updated MSAL Node module API. - Updated dependencies [[`dd26dd3`](https://github.com/equinor/fusion-framework/commit/dd26dd3e652eb07a77bcdc878f8493c6db4fed48)]: - @equinor/fusion-framework-module-msal-node@1.1.0-next.0 - @equinor/fusion-framework-dev-portal@1.2.4 - @equinor/fusion-framework-dev-server@1.1.12-next.0 ## 12.3.8 ### Patch Changes - Updated dependencies [[`d6465bc`](https://github.com/equinor/fusion-framework/commit/d6465bc2787a37465e22964803501e44f6b19517)]: - @equinor/fusion-framework-dev-server@1.1.11 - @equinor/fusion-framework-dev-portal@1.2.4 ## 12.3.7 ### Patch Changes - [`e48c54b`](https://github.com/equinor/fusion-framework/commit/e48c54bdbbca0068859b843f00e753974a33dd13) Thanks [@odinr](https://github.com/odinr)! - Internal: bump commander from 14.0.1 to 14.0.2 to improve negative number auto-detection test; no public API changes. - [`86d081b`](https://github.com/equinor/fusion-framework/commit/86d081bcaf17b7713fd352ea838d605ef12b9a09) Thanks [@odinr](https://github.com/odinr)! - Internal: bump @rollup/plugin-replace from 6.0.2 to 6.0.3 to fix delimiter handling for valid JS identifiers; no public API changes. - [#3637](https://github.com/equinor/fusion-framework/pull/3637) [`f5b88e7`](https://github.com/equinor/fusion-framework/commit/f5b88e7ff8e896624de67bdf29091ba44bf8a628) Thanks [@dependabot](https://github.com/apps/dependabot)! - Internal: bump rollup from 4.52.4 to 4.52.5 to fix sourcemap debugId generation; no public API changes. - [#3679](https://github.com/equinor/fusion-framework/pull/3679) [`1706e4c`](https://github.com/equinor/fusion-framework/commit/1706e4c503d8ef4db46a9572392d23e9c081c82c) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update @rollup/plugin-commonjs from 28.0.6 to 29.0.0, which reverts previous Node.js builtins handling changes and adds requireNodeBuiltins option. - [#3681](https://github.com/equinor/fusion-framework/pull/3681) [`fb6ee63`](https://github.com/equinor/fusion-framework/commit/fb6ee637a1fbf90831a0a3b901520a76a440d4c9) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update simple-git from 3.28.0 to 3.29.0 for improved Windows path handling and branch API enhancements. - [#3583](https://github.com/equinor/fusion-framework/pull/3583) [`af2cad4`](https://github.com/equinor/fusion-framework/commit/af2cad4417e7ba403bf7300a49c688b9b5ef3f1b) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update type-fest from 5.0.1 to 5.1.0, adding new utility types (TupleOf, Xor, etc.) and fixing various type issues in development utilities. - [#3544](https://github.com/equinor/fusion-framework/pull/3544) [`443414f`](https://github.com/equinor/fusion-framework/commit/443414fe0351b529cecf0a667383640567d05e74) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update zod from 4.1.11 to 4.1.12, which includes a critical bug fix for ZodError.flatten() preventing crashes on 'toString' key and improved error handling throughout the framework. - Updated dependencies [[`f5b88e7`](https://github.com/equinor/fusion-framework/commit/f5b88e7ff8e896624de67bdf29091ba44bf8a628), [`3a21f9a`](https://github.com/equinor/fusion-framework/commit/3a21f9a8b36aaa7c80209c0989627b1dcc48a6cf), [`fe667d5`](https://github.com/equinor/fusion-framework/commit/fe667d54a8b9cb030ed7c2f2a6465c80b1b6b4f2), [`d8802e5`](https://github.com/equinor/fusion-framework/commit/d8802e5cd221e302529ea7d14e3c7c13734ad2eb)]: - @equinor/fusion-framework-dev-portal@1.2.4 - @equinor/fusion-framework-dev-server@1.1.10 - @equinor/fusion-framework-module-msal-node@1.0.8 - @equinor/fusion-imports@1.1.6 ## 12.3.6 ### Patch Changes - [#3652](https://github.com/equinor/fusion-framework/pull/3652) [`8d50adc`](https://github.com/equinor/fusion-framework/commit/8d50adc17e81fc46da81795125832af8add5f678) Thanks [@dependabot](https://github.com/apps/dependabot)! - **Security:** Update Vite to v7.1.12 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. **Changes:** - Updated Vite from v7.1.10 to v7.1.12 - Includes security fix for development server file system checks - Includes compatibility fix for CommonJS plugin - No breaking changes or API modifications **Security Fix (v7.1.11):** - **dev**: trim trailing slash before `server.fs.deny` check ([#20968](https://github.com/vitejs/vite/issues/20968)) - Prevents potential path traversal vulnerability in development server - Only affects development environment, not production builds **Bug Fix (v7.1.12):** - **deps**: downgrade commonjs plugin to 28.0.6 to avoid rollup/plugins issues ([#20990](https://github.com/vitejs/vite/issues/20990)) - Improves compatibility with Rollup plugin ecosystem - Prevents potential build issues All packages using Vite as a development dependency are updated to the latest secure version. This is a patch-level security and bug fix update that maintains full compatibility with existing functionality. closes: https://github.com/equinor/fusion/issues/723 - Updated dependencies [[`8d50adc`](https://github.com/equinor/fusion-framework/commit/8d50adc17e81fc46da81795125832af8add5f678)]: - @equinor/fusion-framework-dev-portal@1.2.3 - @equinor/fusion-framework-dev-server@1.1.9 ## 12.3.5 ### Patch Changes - [#3593](https://github.com/equinor/fusion-framework/pull/3593) [`c5a952c`](https://github.com/equinor/fusion-framework/commit/c5a952cb223ca2c6e723186b1a5a477dbec6c95d) Thanks [@Noggling](https://github.com/Noggling)! - ## Fix app config publish parameter 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. ### What Changed - Corrected parameter passing in `packages/cli/src/cli/commands/app/config.ts` - Changed `config: options.config` to `config` in the `publishAppConfig` call ### Impact - The `ffc app config --publish` command now correctly uses the provided config file argument - Fixes the issue where custom config files were not being passed to the publish function - No breaking changes to the CLI interface ### Example ```bash # This now works correctly with custom config files ffc app config my-custom.config.ts --publish --manifest app.manifest.ts --env prod ``` - [#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 Bug fixes: - fix: resolve bare targets of package "imports" using export maps; avoid fileURLToPath(null) - fix: error thrown with empty entry - Updated dependencies [[`fa12d3a`](https://github.com/equinor/fusion-framework/commit/fa12d3a2466a590a943d85c873f02bc45e8fba52)]: - @equinor/fusion-imports@1.1.5 - @equinor/fusion-framework-dev-portal@1.2.2 - @equinor/fusion-framework-dev-server@1.1.8 ## 12.3.4 ### Patch Changes - Updated dependencies []: - @equinor/fusion-framework-dev-server@1.1.7 - @equinor/fusion-framework-dev-portal@1.2.2 ## 12.3.3 ### Patch Changes - Updated dependencies []: - @equinor/fusion-framework-dev-server@1.1.6 - @equinor/fusion-framework-dev-portal@1.2.2 ## 12.3.2 ### Patch Changes - [#3574](https://github.com/equinor/fusion-framework/pull/3574) [`39e989f`](https://github.com/equinor/fusion-framework/commit/39e989f6ab477047d82740b2d96b757c90b10f74) Thanks [@Noggling](https://github.com/Noggling)! - Fix app development error by adding missing `is-mergeable-object` dependency 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. **Changes:** - Added `is-mergeable-object@^1.1.1` to dependencies in `packages/cli/package.json` **Impact:** - Fixes "Cannot find module 'is-mergeable-object'" errors during app development - Ensures proper dependency resolution for CLI tools that use deepmerge functionality - No breaking changes - this is purely a dependency fix ## 12.3.1 ### Patch Changes - [#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. - Created new `defaultHeaders` utility that includes CLI name, version, and user-agent - Updated app upload/tag operations to include default headers - Updated portal upload/tag operations to include default headers All HTTP requests from the CLI now include: - `X-Fusion-CLI-Name`: Identifies the CLI tool name - `X-Fusion-CLI-Version`: Specifies the CLI version making the request - `User-Agent`: Standard user agent header with CLI name and version This enhancement improves observability and helps service owners track and debug CLI interactions with backend services. Closes: #3539 - [#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. - Added `cliVersion` property to `ReleaseAnnotations` type - Ensured annotations are always returned (removed undefined return type) - Added fallback annotations for local builds with default values - Improved type safety by making annotations consistently available Thanks to @odinr for reporting in issue #3540. - [#3567](https://github.com/equinor/fusion-framework/pull/3567) [`f343b89`](https://github.com/equinor/fusion-framework/commit/f343b89a5716cc76ed5c8c0b714612c97100cf7a) Thanks [@Noggling](https://github.com/Noggling)! - Fix CLI for portal development by ensuring correct placement of viteConfig overrides. - Updated dependencies [[`8c6f679`](https://github.com/equinor/fusion-framework/commit/8c6f6790c69cca01bde55d622418040da1c5c9fc)]: - @equinor/fusion-framework-dev-portal@1.2.2 ## 12.3.0 ### Minor Changes - [#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)). - Added `/portal-proxy` service worker resource configuration to CLI dev server - Routes portal proxy requests to Fusion portal service API (`/@fusion-api/portal-config`) - Enhanced dev server creation with improved logging and error handling - Exported `defineDevServerConfig` helper for type-safe portal configuration - Updated `ffc app dev` command with better logging support This enables developers to run `ffc app dev` to test against real portals, supporting configuration of portal ID and version tags for targeted testing scenarios. ### Patch Changes - [`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. - Modified `startAppDevServer` function in `app-dev.ts` to use host configuration from local Vite config - Changed hardcoded 'localhost' host to respect `localViteConfig.server?.host` with 'localhost' as fallback - Improved configuration loading by storing `localViteConfig` in a variable to avoid duplicate loading - This allows developers to configure custom host settings (like '0.0.0.0' for network access) through their Vite config **How this affects consumers** Developers can now configure the dev server host through their local `vite.config.ts` file: ```ts // vite.config.ts export default defineConfig({ server: { host: "0.0.0.0", // Allow network access // or host: 'localhost' for local-only access }, }); ``` Previously, the host was always hardcoded to 'localhost', preventing network access to the dev server. ref: [3548](https://github.com/equinor/fusion-framework/issues/3548) - [#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. - Added detailed portal proxy configuration section in dev-server-config.md - Documented portal proxy behavior, use cases, and benefits - Provided complete code examples for portal proxy setup - Fixed broken relative links in application.md - Improved documentation navigation and consistency These documentation updates provide developers with complete guidance for configuring and using portal proxy functionality in development environments. - Updated dependencies [[`2d4fd18`](https://github.com/equinor/fusion-framework/commit/2d4fd18394e8545b4616140a93a369d5ae77ccbc), [`99a3c26`](https://github.com/equinor/fusion-framework/commit/99a3c26275c2089c3708124f5819ce383d8dc3dc)]: - @equinor/fusion-framework-dev-portal@1.2.1 - @equinor/fusion-framework-dev-server@1.1.5 ## 12.2.0 ### Minor Changes - [#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. - Modified `checkApp` function to return boolean values instead of log results for better programmatic usage - Added handling for HTTP 410 status (deleted apps) in app registration checks - Added pre-flight app registration validation to `publish` and `upload` commands - Commands now exit early if the app is not registered or has been deleted from the app store - Improved error handling and user feedback for app registration status This prevents publishing/uploading apps that are not registered in the app store, improving reliability and user experience. Thanks to @odinr for reporting this issue. Closes #3397 ### Patch Changes - [#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. - Added detailed `dev-server-config.md` documentation covering configuration options, API mocking, service discovery customization, and template environment overrides - Updated main `dev-server.md` documentation with improved architecture overview and configuration reference - Provided practical examples and troubleshooting guidance for dev-server configuration ref: [#3523](https://github.com/equinor/fusion-framework/issues/3523) - [#3532](https://github.com/equinor/fusion-framework/pull/3532) [`63ecde5`](https://github.com/equinor/fusion-framework/commit/63ecde5c29e775b341c3fac0c1eeb7123db5e2db) Thanks [@dependabot](https://github.com/apps/dependabot)! - Bump vite from 7.1.8 to 7.1.9 across development tools and plugins. This patch update fixes bugs and improves stability in the vite dependency. - Updated dependencies [[`6cb288b`](https://github.com/equinor/fusion-framework/commit/6cb288b9e1ec4fae68ae6899735c176837bb4275), [`11b5a00`](https://github.com/equinor/fusion-framework/commit/11b5a00047171f9969cabbcbbb53dd188ed8421e), [`63ac6a1`](https://github.com/equinor/fusion-framework/commit/63ac6a1178fc6f6b0702f51a9c36a67db76b92cd), [`63ecde5`](https://github.com/equinor/fusion-framework/commit/63ecde5c29e775b341c3fac0c1eeb7123db5e2db)]: - @equinor/fusion-framework-dev-portal@1.2.0 - @equinor/fusion-framework-dev-server@1.1.4 ## 12.1.3 ### Patch Changes - Updated dependencies [[`1db21e2`](https://github.com/equinor/fusion-framework/commit/1db21e21410f37bd9a8c1d31ab4f68452578a51e)]: - @equinor/fusion-framework-dev-portal@1.1.4 ## 12.1.2 ### Patch Changes - [`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. - Changed workspace dependencies from `workspace:^` to `workspace:*` across CLI, dev-server, and SPA vite plugin packages - Ensures exact version resolution within the monorepo for predictable builds and releases - Affects both dependencies and devDependencies where applicable - Updated dependencies [[`56c27ec`](https://github.com/equinor/fusion-framework/commit/56c27ec9de03e07e725eecfdf2c028a1e29b6ece)]: - @equinor/fusion-framework-dev-server@1.1.3 ## 12.1.1 ### Patch Changes - [#3463](https://github.com/equinor/fusion-framework/pull/3463) [`5ab3d2d`](https://github.com/equinor/fusion-framework/commit/5ab3d2d7e28b4266a0e65b0834889b6269881d23) Thanks [@odinr](https://github.com/odinr)! - Fix Git protocol selection to respect user's explicit HTTPS choice instead of auto-detecting SSH when available. Fixes: https://github.com/equinor/fusion-framework/issues/3462 ## 12.1.0 ### Minor Changes - [#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. - Added interactive prompt for users to choose between HTTPS and SSH protocols - Implemented intelligent SSH detection using both git config and filesystem checks - Removed automatic SSH-to-HTTPS fallback in favor of explicit user choice - Improved user experience with clear protocol descriptions and smart defaults - Refactored SSH detection logic into testable helper functions for better maintainability - Optimized SSH key detection to stop after finding first match for better performance - Enhanced cross-platform compatibility with proper Node.js APIs instead of shell commands This change gives users full control over their Git authentication method while maintaining compatibility across different development environments and improving code quality. ## 12.0.2 ### Patch Changes - [#3432](https://github.com/equinor/fusion-framework/pull/3432) [`528d72c`](https://github.com/equinor/fusion-framework/commit/528d72c04066f93fca1fa6469f33ec8d5383dcdc) Thanks [@dependabot](https://github.com/apps/dependabot)! - Updated vite from 7.1.5 to 7.1.7, including bug fixes for HMR, build system, and glob imports. - Updated dependencies [[`528d72c`](https://github.com/equinor/fusion-framework/commit/528d72c04066f93fca1fa6469f33ec8d5383dcdc)]: - @equinor/fusion-framework-dev-server@1.1.2 - @equinor/fusion-framework-dev-portal@1.1.2 ## 12.0.1 ### Patch Changes - [#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. - [#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 - **v4.1.10**: Fixed shape caching issue (#5263) improving validation performance for complex schemas - **v4.1.11**: Maintenance release with general improvements This patch update enhances schema validation performance without changing any APIs. - Updated dependencies [[`2291483`](https://github.com/equinor/fusion-framework/commit/2291483b10ea288102155839dc47dcfe2addc22c), [`3b614f8`](https://github.com/equinor/fusion-framework/commit/3b614f87138f5a52f8ccc50ca8c6598ef3db37d6), [`ff3ab8f`](https://github.com/equinor/fusion-framework/commit/ff3ab8fd64cacd9b0a691a696bb2a7c5187e2cf3)]: - @equinor/fusion-framework-dev-server@1.1.1 - @equinor/fusion-framework-module-msal-node@1.0.6 - @equinor/fusion-framework-dev-portal@1.1.1 - @equinor/fusion-imports@1.1.4 ## 12.0.0 ### Major Changes - [#3394](https://github.com/equinor/fusion-framework/pull/3394) [`c222c67`](https://github.com/equinor/fusion-framework/commit/c222c673bc7cdefff6eb0cd9436bfa3d1f185295) Thanks [@odinr](https://github.com/odinr)! - feat: migrate to zod v4 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. Key changes in source code: - Fixed record schema definitions to use explicit key and value types (`z.record(z.string(), z.any())`) - Updated portal manifest schemas to use `message` instead of `description` for error messages - Simplified error message options format (removed `required_error`, `invalid_type_error` from options object) - Updated ZodError `.errors` property to `.issues` for zod v4 compatibility - Enhanced `ApiAppConfigSchema` with proper record type definitions 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. Links: - [Zod v4 Migration Guide](https://github.com/colinhacks/zod/releases/tag/v4.0.0) - [Zod v4.1.8 Release Notes](https://github.com/colinhacks/zod/releases/tag/v4.1.8) ### Patch Changes - [#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 - Update app publish command description to clearly explain conditional building behavior - Add prominent note explaining when building occurs vs when it doesn't - Add complete portal publish command documentation (was missing) - Clarify differences between app and portal publish commands - Update command overview to include portal publish command - Fix CLI source code documentation to match actual behavior - Remove incorrect bundle parameter from portal publish examples Resolves: [Misleading description of the Fusion CLI publish action](https://github.com/equinor/fusion/issues/656) - Updated dependencies []: - @equinor/fusion-framework-dev-portal@1.1.0 ## 11.4.0 ### Minor Changes - [#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. ### Breaking Changes - Commander 14 requires Node.js v20 or higher (compatible with existing project requirements) ### New Features - Support for groups of options and commands in help - Support for unescaped negative numbers as arguments - Enhanced TypeScript support with parseArg property ### Links - [GitHub releases](https://github.com/tj/commander.js/releases/tag/v14.0.1) - [Changelog](https://github.com/tj/commander.js/blob/master/CHANGELOG.md) - [#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 Major version update of Vite build tool across all packages. This update includes: - Enhanced build performance and caching - Better error reporting with code frames - Improved TypeScript integration - Updated plugin ecosystem compatibility - New development server features ### Links - [Vite 7.1.5 Release Notes](https://github.com/vitejs/vite/releases/tag/v7.1.5) - [Vite 7.x Migration Guide](https://vitejs.dev/guide/migration) ### Patch Changes - [#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 ### Breaking Changes - ora v9.0.0 now requires Node.js 20+ (previously supported older versions) ### New Features - Fix clearing in some cases - Fix `frame()` not displaying dynamic `prefixText`/`suffixText` from functions - Fix multiline text exceeding console height leaving garbage when scrolling ### Links - [GitHub releases](https://github.com/sindresorhus/ora/releases/tag/v9.0.0) - [npm changelog](https://www.npmjs.com/package/ora?activeTab=versions) - [#3391](https://github.com/equinor/fusion-framework/pull/3391) [`7792659`](https://github.com/equinor/fusion-framework/commit/7792659bf2ade10dba5e54c610d5abff522324b6) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore: bump @vitest/coverage-v8 from 2.0.1 to 3.2.4 Major version update of Vitest coverage package for CLI testing. ### Breaking Changes - Updated from @vitest/coverage-v8 v2 to v3 - Coverage reporting may have configuration changes ### New Features - Enhanced coverage reporting capabilities - Improved test performance - Better error handling and reporting ### Links - [Vitest v3.2.4 Release Notes](https://github.com/vitest-dev/vitest/releases/tag/v3.2.4) - [Vitest v3 Migration Guide](https://vitest.dev/guide/migration.html) - [Coverage v8 Documentation](https://vitest.dev/guide/coverage.html) - Updated dependencies [[`6eeef2f`](https://github.com/equinor/fusion-framework/commit/6eeef2f2033dfacf7c972295c8c2cc2d4cd83976), [`7792659`](https://github.com/equinor/fusion-framework/commit/7792659bf2ade10dba5e54c610d5abff522324b6), [`aed6c53`](https://github.com/equinor/fusion-framework/commit/aed6c5385df496a86d06dc0af9dacafc255ea605), [`daa362e`](https://github.com/equinor/fusion-framework/commit/daa362e7d92ad362e46d666c434d0f09687abad5), [`2fff2ea`](https://github.com/equinor/fusion-framework/commit/2fff2ea1e4838627e297b7b401601f1186c95335), [`c511123`](https://github.com/equinor/fusion-framework/commit/c511123c835e24e9ddefcc4c47c2455f5df12087)]: - @equinor/fusion-framework-dev-portal@1.1.0 - @equinor/fusion-framework-dev-server@1.1.0 - @equinor/fusion-framework-module-msal-node@1.0.5 ## 11.3.1 ### Patch Changes - [#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 - Updated inquirer to latest patch version 12.9.6 - Includes bug fixes and performance improvements - No breaking changes in this patch update - [#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 - Updated rollup dependency to latest patch version - Includes bug fixes for tree-shaking array destructuring patterns - Performance improvements and platform support updates - No breaking changes - backward compatible update - [#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. ## Breaking Changes - **Node.js Requirements**: Requires Node.js 18+ (already satisfied) - **Vite Compatibility**: Updated to work with Vite 7.x (already using Vite 7.1.5) - **Snapshot Format**: Snapshots now use backtick quotes (\`) instead of single quotes - **Coverage API**: New coverage methods `enableCoverage()` and `disableCoverage()` - **TypeScript Support**: Enhanced TypeScript integration and type definitions ## Security Updates - CVE-2025-24963: Browser mode serves arbitrary files (fixed in 2.1.9) - CVE-2025-24964: Remote Code Execution vulnerability (fixed in 2.1.9) ## Migration Notes - Test snapshots may need regeneration due to quote format changes - Some test configurations might need updates for new TypeScript support - Peer dependency warnings for @vitest/coverage-v8 are expected and safe to ignore ## Links - [Vitest 3.0 Migration Guide](https://vitest.dev/guide/migration) - [Vitest 3.2.4 Release Notes](https://github.com/vitest-dev/vitest/releases/tag/v3.2.4) - Updated dependencies [[`bae9c95`](https://github.com/equinor/fusion-framework/commit/bae9c9554f335d0384b864436874bded47d00ed8), [`4215d80`](https://github.com/equinor/fusion-framework/commit/4215d80799d156a248feb0f195af370907332a33), [`07cc985`](https://github.com/equinor/fusion-framework/commit/07cc9857e1427b574e011cc319518e701dba784d)]: - @equinor/fusion-framework-dev-portal@1.0.3 - @equinor/fusion-framework-module-msal-node@1.0.4 - @equinor/fusion-framework-dev-server@1.0.3 - @equinor/fusion-imports@1.1.3 ## 11.3.0 ### Minor Changes - [#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. **New Features** - Added `ffc create app <name>` command with interactive template selection - Supports both `ffc create app` and `ffc app create` command patterns for improved flexibility - Includes template validation and interactive prompts using inquirer - Added comprehensive template repository system with schema validation - Implemented modular helper functions for each step of app creation **Template Support** - Supports both bare and basic application templates from fusion-app-template repository - Includes template validation and interactive prompts using inquirer - Added comprehensive template repository system with schema validation **Developer Experience** - Added IDE integration with automatic project opening - Includes dependency management and dev server startup - Added comprehensive documentation with examples and best practices - Updated CLI README with new command documentation - Added GitHub template integration links for alternative app creation methods **Error Handling & Reliability** - Enhanced error handling for spawn operations in IDE opening and dev server startup - Migrated to execa for automatic process cleanup and better signal handling - Fixed misleading success messages by wrapping template copy operations in try-catch blocks - Improved error logging in repository cleanup operations for better debugging - Added proper CLI exit codes for operation failures - Enhanced TSDoc documentation and inline comments across helper functions **Dependencies** - Added new dependencies: `inquirer`, `@types/inquirer`, and `execa` for enhanced CLI experience - Migrated process spawning from native child_process to execa for better process management 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. - [#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 - Added `updatePackageJson` helper for updating package.json with app name and resolving workspace dependencies - Added `resolve-workspace-dependencies` helper to convert workspace:^ dependencies to npm versions - Added `package-info` utility for fetching package metadata from npm registry - Integrated workspace dependency resolution into create app workflow - Improved error handling and logging throughout the create app process - Added comprehensive TSDoc documentation for all new functions This ensures that apps created from templates have proper npm versions instead of workspace references, making them deployable outside the monorepo. ### Patch Changes - [#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. ## New Features - **Path Security Validation**: Added `validateSafePath()` function to prevent path traversal attacks - **Safe Directory Operations**: Added `safeRmSync()` function for secure directory removal - **Enhanced Error Messages**: Improved user-friendly error messages with visual indicators ## Security Improvements - **Path Traversal Protection**: Prevents users from specifying paths outside the current working directory - **Input Validation**: Validates target paths before performing file system operations - **Safe Cleanup**: Directory removal operations now validate paths before execution ## User Experience - **Better Error Messages**: Clear, actionable error messages with ❌ and 💡 indicators - **Helpful Guidance**: Users get specific suggestions when path validation fails - **Clean Error Handling**: No more messy stack traces for path-related errors ## Technical Details - Uses `is-path-inside` library for robust path validation - Integrates path security into `checkTargetDirectory` helper - Maintains backward compatibility with existing functionality - Added comprehensive JSDoc documentation for all new functions - [`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. Fixed `--version` flag conflict in CLI tag commands and improved API consistency. - **Fixed:** Resolved conflict between custom `--version` option and Commander's built-in `--version` flag that displays CLI version - **Refactored:** Replaced separate `--appKey`/`--version` options with unified `--package name@version` syntax for both `app tag` and `portal tag` commands - **Improved:** Enhanced error handling with clear validation messages for package format - **Updated:** Documentation and help text to reflect new `--package` option usage - **Added:** Better user feedback with colored logging for successful operations **Breaking Changes:** 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: 1. The `--version` flag never worked properly due to the conflict with Commander's built-in version flag 2. The old API was fundamentally broken and unusable 3. Limited adoption in production environments means minimal impact 4. The same functionality is accessible through: - The `publish` command (recommended for standard releases) - The Fusion App Admin UI (graphical interface for release management) **Migration:** - Old: `fusion-framework-cli app tag --appKey my-app --version 1.2.3 latest` - New: `fusion-framework-cli app tag --package my-app@1.2.3 latest` This resolves the issue where `--version` would show CLI version (11.1.2) instead of using it as a bundle version parameter. Now `--version` correctly displays CLI version, and `--package` specifies the bundle to tag. **Credits:** Special thanks to [@estoksam](https://github.com/estoksam) for identifying and reporting this CLI flag conflict issue. **Fixes:** https://github.com/equinor/fusion/issues/652 - [#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. - Added `isGitDir` utility function to check if a directory is a valid git repository - Added `assertGitRepository` assertion function for git repository validation - Enhanced assert utilities with git repository checking capabilities These utilities support the create app command's repository validation and setup process. ## 11.2.0 ### Minor Changes - [#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. - Added new `docs/dev-server.md` with complete dev-server documentation - Updated README.md to include dev-server documentation link - Covers dev-server features, architecture, configuration, and troubleshooting ### Patch Changes - [#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. - Added detailed explanation of `app.vite.config.ts` → `vite.config.ts` file naming change - Emphasized that `vite.config.ts` should be a last resort for custom setups - Recommended using `dev-server.config.js` instead to avoid unexpected behavior - Updated migration checklist to include the file rename requirement - Enhanced v11.0.0 changelog with the breaking change documentation This addresses the undocumented breaking change that could cause time-consuming debugging for developers upgrading from v10 to v11. - Updated dependencies [[`1f629b5`](https://github.com/equinor/fusion-framework/commit/1f629b556c4e26170b1eb6ad8823c082cb2ac59d)]: - @equinor/fusion-framework-module-msal-node@1.0.3 ## 11.1.4 ### Patch Changes - [#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. - Disabled built-in normalization in `read-package-up` to preserve version build metadata - Added manual package data normalization using `normalize-package-data` library - Preserves original version with build metadata (e.g., `11.8.0+commit`) in app manifests - Maintains backward compatibility with existing version formats - Resolves issue where `+` build metadata was being stripped from versions in `app-manifest.json` This fix enables proper SemVer 2.0 compliant versioning for applications built with the CLI. Fixes https://github.com/equinor/fusion/issues/657 Thanks to [@v3gard](https://github.com/v3gard) for identifying and reporting this SemVer compliance issue. ## 11.1.3 ### Patch Changes - [#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. - Added `--silent` flag that completely disables the CLI logger and all logging output - Only outputs the resolved service details as JSON when silent mode is enabled - Enables piping the command output to other tools (e.g., `jq`, `grep`, etc.) - Modified logging calls to use optional chaining for silent mode compatibility - Cleaned up debug console.log statements - [#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. - Standardized option format from short flags to long flags (--debug, --port) - Added --env option support for runtime environment configuration - Updated logging message to be portal-specific ("Starting portal in development mode...") - Enhanced startPortalDevServer function call to include env parameter - [#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. - Removed local `libsecret.md` documentation file - Updated all libsecret references to point to centralized MSAL Node module documentation - Enhanced authentication guide with cross-references to underlying module documentation - Improved documentation structure by consolidating authentication docs in the appropriate module packages **Migration Notes:** - libsecret installation guide is now available at: https://equinor.github.io/fusion-framework/modules/auth/msal-node/docs/libsecret.html - All authentication-related documentation is now centralized in the MSAL Node module package - [#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. - Added the required `env` parameter to the `buildApplication` function call in `packages/cli/src/bin/app-pack.ts` - This ensures the build process receives the correct runtime environment configuration - [#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. - Replaced `stdout.write()` with `console.log()` for proper newline handling in: - `ffc app manifest` command - `ffc app config` command - `ffc portal manifest` command - `ffc portal config` command - Removed unused `stdout` imports - Improved output consistency and piping compatibility These changes ensure that shell prompts no longer concatenate to JSON output, making the commands safe to pipe to tools like `jq`. - [#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. - Updated command examples to use `ffc` (alias) instead of `fusion-framework-cli` - Improved TSDoc comments with comprehensive descriptions and examples - Streamlined help text by removing redundant information and improving formatting - Added proper @example and @remarks tags for better IntelliSense support - Enhanced option descriptions for clarity and consistency These changes improve the developer experience when using the CLI by providing clearer documentation and more accurate examples. Thanks to [@estoksam](https://github.com/estoksam) for reporting the CLI command help text issues in [fusion#651](https://github.com/equinor/fusion/issues/651). - Updated dependencies [[`8c88574`](https://github.com/equinor/fusion-framework/commit/8c885745ee345cd7ef219b2cc469fd19c8687467), [`c1cd89a`](https://github.com/equinor/fusion-framework/commit/c1cd89abad4ca8f232a497316232d1f5ac8c530a)]: - @equinor/fusion-framework-dev-portal@1.0.2 - @equinor/fusion-framework-module-msal-node@1.0.2 ## 11.1.2 ### Patch Changes - [#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. - Added `vite-tsconfig-paths` plugin for better TypeScript path resolution in development - Refactored app and portal dev servers to use centralized `loadViteConfig` function - Improved Vite config merging with `mergeConfigVite` for better configuration management - Added debug logging for Vite and dev server configurations - Moved output directory validation to build-time only for better performance - Updated dependencies [[`3590104`](https://github.com/equinor/fusion-framework/commit/3590104bdf3bba3386cdec7e2692078e6a92bd01)]: - @equinor/fusion-framework-dev-server@1.0.2 ## 11.1.1 ### Patch Changes - [#3327](https://github.com/equinor/fusion-framework/pull/3327) [`22d6d3b`](https://github.com/equinor/fusion-framework/commit/22d6d3b7753da8ad30054839e8a6083850a208fa) Thanks [@odinr](https://github.com/odinr)! - moved plugin `vite-tsconfig-paths` to `@equinor/fusion-framework-dev-server` - Updated dependencies [[`22d6d3b`](https://github.com/equinor/fusion-framework/commit/22d6d3b7753da8ad30054839e8a6083850a208fa)]: - @equinor/fusion-framework-dev-server@1.0.1 ## 11.1.0 ### Minor Changes - [#3323](https://github.com/equinor/fusion-framework/pull/3323) [`8b2633d`](https://github.com/equinor/fusion-framework/commit/8b2633dca8e61e18f19e605f5338a9925a8588ab) Thanks [@odinr](https://github.com/odinr)! - Add `vite-plugin-tsconfig-paths` to allow apps to use path aliases in tsconfig, instead of defining them manually in Vite config. > [!NOTE] > Newer versions of Vite wont resolve files from `baseUrl` in `tsconfig.json`. > > To fix this, you can either: > > - Update import with full relative path > - Add paths to `tsconfig.json` example: ```json { "compilerOptions": { "baseUrl": "src", "paths": { "@/*": ["./*"] } } } ``` ```typescript import { MyComponent } from "@/components"; ``` ‼️ Bad practice: ```json { "compilerOptions": { "baseUrl": ".", "paths": { "MyComponent": ["src/components/MyComponent"] } } } ``` ```typescript import { MyComponent } from "MyComponent"; ``` > [!IMPORTANT] > This is just best effort for resolving paths at build time. It does not guarantee that all paths will be resolved correctly in all scenarios. Please verify that your paths are working as expected after this update. ### Patch Changes - [#3323](https://github.com/equinor/fusion-framework/pull/3323) [`8b2633d`](https://github.com/equinor/fusion-framework/commit/8b2633dca8e61e18f19e605f5338a9925a8588ab) Thanks [@odinr](https://github.com/odinr)! - Added debug logging of included file system paths. > [!Note] > _Vite will not resolve files outside the working directory unless explicitly allowed._ - [#3323](https://github.com/equinor/fusion-framework/pull/3323) [`8b2633d`](https://github.com/equinor/fusion-framework/commit/8b2633dca8e61e18f19e605f5338a9925a8588ab) Thanks [@odinr](https://github.com/odinr)! - Improved CLI logger by adding a missing argument for enhanced debugging. Running `ffc app dev --debug` now provides more detailed output during development server startup. - [#3323](https://github.com/equinor/fusion-framework/pull/3323) [`8b2633d`](https://github.com/equinor/fusion-framework/commit/8b2633dca8e61e18f19e605f5338a9925a8588ab) Thanks [@odinr](https://github.com/odinr)! - Fixed issue where app routing was not properly handled in the development server configuration. Some request where given with `/`