@equinor/fusion-framework-module-app 7.2.0-next.0 → 7.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,46 +1,16 @@
1
1
  # Change Log
2
2
 
3
- ## 7.2.0-next.0
3
+ ## 7.2.1
4
4
 
5
- ### Minor Changes
6
-
7
- - [#3820](https://github.com/equinor/fusion-framework/pull/3820) [`d252b0d`](https://github.com/equinor/fusion-framework/commit/d252b0d442b7c8c1b50bf2768cf9ecbbb55a76f8) Thanks [@odinr](https://github.com/odinr)! - Add route schema support to app manifests for documentation and API schema generation.
8
-
9
- **New Features:**
10
- - **module-app**: Added `RouteSchemaEntry` type and `routes` field to `AppManifest` interface
11
- - **cli**: Added `RouteSchemaEntry` and `AppManifestWithRoutes` type exports for app manifest generation
12
-
13
- 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.
14
-
15
- ```typescript
16
- import type {
17
- RouteSchemaEntry,
18
- AppManifest,
19
- } from "@equinor/fusion-framework-module-app";
20
- import type { AppManifestWithRoutes } from "@equinor/fusion-framework-cli/app";
21
-
22
- const manifest: AppManifest = {
23
- appKey: "my-app",
24
- displayName: "My App",
25
- description: "My app description",
26
- type: "standalone",
27
- routes: [
28
- ["/", "Home page"],
29
- ["/products", "Products listing page"],
30
- ["/products/:id", "Product detail page", { id: "Product ID" }],
31
- ],
32
- };
33
- ```
5
+ ### Patch Changes
34
6
 
35
- The CLI package also exports `AppManifestWithRoutes` which allows RouteNode objects (from the router package) to be used in manifest definitions, which are then serialized to RouteSchemaEntry arrays.
7
+ - [#3845](https://github.com/equinor/fusion-framework/pull/3845) [`5114ac4`](https://github.com/equinor/fusion-framework/commit/5114ac4f71a60935d0194b9b2766f95adff0ba1e) Thanks [@asbjornhaland](https://github.com/asbjornhaland)! - Fix tsconfig references
36
8
 
37
- ### Patch Changes
9
+ ## 7.2.0
38
10
 
39
- - [#3820](https://github.com/equinor/fusion-framework/pull/3820) [`265bb76`](https://github.com/equinor/fusion-framework/commit/265bb767249989eeb1971e83f3fba94879e0813b) Thanks [@odinr](https://github.com/odinr)! - relase next
11
+ ### Minor Changes
40
12
 
41
- - Updated dependencies [[`265bb76`](https://github.com/equinor/fusion-framework/commit/265bb767249989eeb1971e83f3fba94879e0813b), [`d252b0d`](https://github.com/equinor/fusion-framework/commit/d252b0d442b7c8c1b50bf2768cf9ecbbb55a76f8), [`9f7597e`](https://github.com/equinor/fusion-framework/commit/9f7597ee237ef069dc24cbe39c73b5b26db157dd), [`75c068f`](https://github.com/equinor/fusion-framework/commit/75c068fea13c32435ac26bd9043cc156482bfaf1)]:
42
- - @equinor/fusion-observable@9.0.0-next.0
43
- - @equinor/fusion-query@7.0.0-next.0
13
+ - [#3842](https://github.com/equinor/fusion-framework/pull/3842) [`d38cd60`](https://github.com/equinor/fusion-framework/commit/d38cd60472380d60282c2a5672dc6e3bba3e7ca9) Thanks [@asbjornhaland](https://github.com/asbjornhaland)! - Add module fusion-framework-module-analytics
44
14
 
45
15
  ## 7.1.1
46
16
 
@@ -63,17 +33,20 @@
63
33
  ## New Features
64
34
 
65
35
  ### App Tag/Version Support
36
+
66
37
  - **App Client**: Added `getAppBuild` method to fetch build manifests by app key and tag
67
38
  - **App Module Provider**: Enhanced `getAppManifest` to accept optional tag parameter
68
39
  - **App Loading**: Modified `setCurrentApp` to support `AppReference` objects with tag specification
69
40
  - **URL Integration**: Added `getAppTagFromUrl` utility to extract app tags from URL parameters
70
41
 
71
42
  ### Enhanced Type System
43
+
72
44
  - Added `AppReference` type for specifying app key and optional tag
73
45
  - Extended `AppBundleState` to include optional `tag` property
74
46
  - Updated `AppBuildManifest` type definition for build-specific metadata
75
47
 
76
48
  ### API Improvements
49
+
77
50
  - **AppClient**: Updated interface to support tag-based manifest and build fetching
78
51
  - **App Class**: Added `tag` getter property for accessing current app tag
79
52
  - **Action System**: Enhanced `fetchManifest` action to handle tag parameters
@@ -81,6 +54,7 @@
81
54
  ## Changes by Package
82
55
 
83
56
  ### `@equinor/fusion-framework-module-app`
57
+
84
58
  - **AppClient.ts**: Added `getAppBuild` method with tag support and updated `getAppManifest` signature
85
59
  - **AppModuleProvider.ts**: Enhanced `setCurrentApp` method to handle `AppReference` objects with tags
86
60
  - **App.ts**: Added `tag` getter and improved error handling in initialization
@@ -89,6 +63,7 @@
89
63
  - **flows.ts**: Modified manifest fetching flow to handle tag-based requests
90
64
 
91
65
  ### `@equinor/fusion-framework-dev-portal`
66
+
92
67
  - **AppLoader.tsx**: Added `getAppTagFromUrl` utility function and integrated tag-based app loading
93
68
 
94
69
  ## Usage Examples
@@ -121,14 +96,17 @@
121
96
  ## Migration Guide
122
97
 
123
98
  ### For App Consumers
99
+
124
100
  - No breaking changes - existing code continues to work
125
101
  - Optionally use new tag-based loading for version-specific deployments
126
102
 
127
103
  ### For App Developers
104
+
128
105
  - Consider adding `&tag` URL parameter support for testing different versions
129
106
  - Use new `AppReference` type when programmatically setting current apps with tags
130
107
 
131
108
  ## Technical Details
109
+
132
110
  - **Backward Compatibility**: All changes are backward compatible
133
111
  - **Caching**: Tag-based manifests and builds are cached separately
134
112
  - **Error Handling**: Enhanced error handling for build and manifest loading failures
@@ -162,6 +140,7 @@
162
140
  ### Patch Changes
163
141
 
164
142
  - [#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
143
+
165
144
  - **v4.1.10**: Fixed shape caching issue (#5263) improving validation performance for complex schemas
166
145
  - **v4.1.11**: Maintenance release with general improvements
167
146
 
@@ -180,6 +159,7 @@
180
159
  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 app module to use explicit key and value types for records and updated error message format from `description` to `message` for zod v4 compatibility.
181
160
 
182
161
  Key changes in source code:
162
+
183
163
  - Fixed record schema definitions to use explicit key and value types (`z.record(z.string(), z.any())`)
184
164
  - Updated error message options format (replaced `description` with `message`)
185
165
  - Enhanced `ApiAppConfigSchema` with proper record type definitions for environment and endpoints
@@ -188,6 +168,7 @@
188
168
  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.
189
169
 
190
170
  Links:
171
+
191
172
  - [Zod v4 Migration Guide](https://github.com/colinhacks/zod/releases/tag/v4.0.0)
192
173
  - [Zod v4.1.8 Release Notes](https://github.com/colinhacks/zod/releases/tag/v4.1.8)
193
174
 
@@ -200,16 +181,19 @@
200
181
  - [#3395](https://github.com/equinor/fusion-framework/pull/3395) [`29f6710`](https://github.com/equinor/fusion-framework/commit/29f6710238baf9b29f42394b30cb8b97f25462c3) Thanks [@odinr](https://github.com/odinr)! - Updated immer from 9.0.16 to 10.1.3 across all packages.
201
182
 
202
183
  ### Breaking Changes
184
+
203
185
  - Immer 10.x introduces stricter TypeScript types for draft functions
204
186
  - `ValidRecipeReturnType` type constraints have changed
205
187
  - Promise return types in draft functions are no longer automatically handled
206
188
 
207
189
  ### Fixes Applied
190
+
208
191
  - Updated BookmarkProvider to handle new immer type constraints
209
192
  - Fixed ObservableInput type assignments in mergeScan operations
210
193
  - Removed async/await from immer draft functions to comply with new type requirements
211
194
 
212
195
  ### Links
196
+
213
197
  - [Immer 10.0.0 Release Notes](https://github.com/immerjs/immer/releases/tag/v10.0.0)
214
198
  - [Immer Migration Guide](https://github.com/immerjs/immer/blob/main/MIGRATION.md)
215
199
 
@@ -220,15 +204,18 @@
220
204
  - [#3347](https://github.com/equinor/fusion-framework/pull/3347) [`11143fa`](https://github.com/equinor/fusion-framework/commit/11143fa3002fb8a6c095052a04c7e596c56bafa8) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore: bump uuid from 11.0.3 to 13.0.0
221
205
 
222
206
  ### Breaking Changes
207
+
223
208
  - v13.0.0: Make browser exports the default
224
209
  - v12.0.0: Update to TypeScript 5.2, remove CommonJS support, drop Node 16 support
225
210
 
226
211
  ### New Features
212
+
227
213
  - Improved v4() performance
228
214
  - Added Node 24 to CI matrix
229
215
  - Restored node: prefix support
230
216
 
231
217
  ### Links
218
+
232
219
  - [GitHub releases](https://github.com/uuidjs/uuid/releases/tag/v13.0.0)
233
220
  - [npm changelog](https://www.npmjs.com/package/uuid?activeTab=versions)
234
221
 
@@ -241,6 +228,7 @@
241
228
  ### Patch Changes
242
229
 
243
230
  - [#3315](https://github.com/equinor/fusion-framework/pull/3315) [`2ea9fb6`](https://github.com/equinor/fusion-framework/commit/2ea9fb63bdf967e0d010ddae2af9f6fb32077240) Thanks [@Noggling](https://github.com/Noggling)! - Improve error handling in AppClient
231
+
244
232
  - Add support for HTTP 410 (Gone) status code handling across all error types
245
233
  - Import and use `HttpJsonResponseError` for more specific error handling in `getAppManifest`
246
234
  - Add 'deleted' error type to handle when application resources have been deleted
@@ -258,6 +246,7 @@
258
246
  ### Patch Changes
259
247
 
260
248
  - [#3088](https://github.com/equinor/fusion-framework/pull/3088) [`7441b13`](https://github.com/equinor/fusion-framework/commit/7441b13aa50dd7362d1629086a27b6b4e571575d) Thanks [@eikeland](https://github.com/eikeland)! - chore: update package typesVersions
249
+
261
250
  - Updated package.json typesVersions.
262
251
  - Ensures backward compatibility with older node versions.
263
252
  - Ensured consistency with workspace and repository configuration.
@@ -370,6 +359,7 @@
370
359
  ### Patch Changes
371
360
 
372
361
  - [#2519](https://github.com/equinor/fusion-framework/pull/2519) [`83a7ee9`](https://github.com/equinor/fusion-framework/commit/83a7ee971785343bccedc2d72cc02486193615af) Thanks [@eikeland](https://github.com/eikeland)! - ### Changes:
362
+
373
363
  - Updated `AppClient` class to improve the query for fetching app manifests:
374
364
  - Adjusted the query path manifests method to include `$expand=category,admins,owners,keywords` when `filterByCurrentUser` is not specified.
375
365
  - Minor formatting changes for better readability.
@@ -381,9 +371,11 @@
381
371
  - [#2685](https://github.com/equinor/fusion-framework/pull/2685) [`add2e98`](https://github.com/equinor/fusion-framework/commit/add2e98d23e683a801729e9af543cfa15c574e27) Thanks [@eikeland](https://github.com/eikeland)! - Added versioning support to `AppModuleProvider`.
382
372
 
383
373
  **Modified files:**
374
+
384
375
  - `packages/modules/app/src/AppModuleProvider.ts`
385
376
 
386
377
  **Changes:**
378
+
387
379
  - Imported `SemanticVersion` from `@equinor/fusion-framework-module`.
388
380
  - Imported `version` from `./version`.
389
381
  - Added a `version` getter to `AppModuleProvider` that returns a `SemanticVersion` instance.
@@ -398,9 +390,11 @@
398
390
  - [#2654](https://github.com/equinor/fusion-framework/pull/2654) [`59ab642`](https://github.com/equinor/fusion-framework/commit/59ab6424f3ce80649f42ddb6804b46f6789607ba) Thanks [@eikeland](https://github.com/eikeland)! - Reverting update to the `manifests` call `selector` function in `AppClient` to use `jsonSelector` and parse the response with `ApplicationSchema`.
399
391
 
400
392
  **Modified files:**
393
+
401
394
  - `packages/modules/app/src/AppClient.ts`
402
395
 
403
396
  **Changes:**
397
+
404
398
  - Replaced `res.json()` with `jsonSelector(res)`
405
399
  - Parsed the response using `ApplicationSchema.array().parse(response.value)`
406
400
 
@@ -435,6 +429,7 @@
435
429
  ```
436
430
 
437
431
  - [#2577](https://github.com/equinor/fusion-framework/pull/2577) [`c3ba9f1`](https://github.com/equinor/fusion-framework/commit/c3ba9f109d9f96d6dc6ee2f0ddac00c8b3090982) Thanks [@eikeland](https://github.com/eikeland)! - #### Changes:
432
+
438
433
  1. **AppClient.ts**
439
434
  - Added `updateAppSettings` method to set app settings by appKey.
440
435
  2. **AppModuleProvider.ts**
@@ -495,10 +490,12 @@
495
490
  > This will introduce breaking changes to the configuration of `AppConfigurator.client`.
496
491
 
497
492
  **Added**
493
+
498
494
  - Introduced `AppClient` class to handle application manifest and configuration queries.
499
495
  - Added `zod` to validate the application manifest.
500
496
 
501
497
  **Changed**
498
+
502
499
  - Updated `AppModuleProvider` to use `AppClient` for fetching application manifests and configurations.
503
500
  - Modified `AppConfigurator` to utilize `AppClient` for client configuration.
504
501
  - Updated `useApps` hook with new input parameter for `filterByCurrentUser` in `fusion-framework-react`.
@@ -577,6 +574,7 @@
577
574
  - [#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.
578
575
 
579
576
  Removing the `removeComments` option allows TypeScript to preserve comments in the compiled JavaScript output. This can be beneficial for several reasons:
577
+
580
578
  1. Improved debugging: Preserved comments can help developers understand the code better during debugging sessions.
581
579
  2. Documentation: JSDoc comments and other important code documentation will be retained in the compiled output.
582
580
  3. Source map accuracy: Keeping comments can lead to more accurate source maps, which is crucial for debugging and error tracking.
@@ -625,6 +623,7 @@
625
623
  ### Patch Changes
626
624
 
627
625
  - [#2235](https://github.com/equinor/fusion-framework/pull/2235) [`97e41a5`](https://github.com/equinor/fusion-framework/commit/97e41a55d05644b6684c6cb165b65b115bd416eb) Thanks [@odinr](https://github.com/odinr)! - - **Refactored**: The `actionBaseType` function has been renamed to `getBaseType` and its implementation has been updated.
626
+
628
627
  - **Added**: New utility types and functions for handling action types and payloads in a more type-safe manner.
629
628
 
630
629
  - [#2248](https://github.com/equinor/fusion-framework/pull/2248) [`da9dd83`](https://github.com/equinor/fusion-framework/commit/da9dd83c9352def5365b6c962dc8443589ac9526) Thanks [@asbjornhaland](https://github.com/asbjornhaland)! - #2235 renamed a method and changed type. This PR forgot to change to the correct param when using this method. Fixes typo - update to use actions `type` in the reducer.
@@ -700,6 +699,7 @@
700
699
  ### Patch Changes
701
700
 
702
701
  - [#1763](https://github.com/equinor/fusion-framework/pull/1763) [`1ca8264`](https://github.com/equinor/fusion-framework/commit/1ca826489a0d1dd755324344a12bbf6659a3be12) Thanks [@odinr](https://github.com/odinr)! - improve type of current application
702
+
703
703
  - result will be `undefined` if current application has never been set
704
704
  - result will be `IApplication` if current application is set
705
705
  - result will be `null` if current application is cleared
@@ -816,6 +816,7 @@
816
816
  ### Minor Changes
817
817
 
818
818
  - [#927](https://github.com/equinor/fusion-framework/pull/927) [`8bc4c5d6`](https://github.com/equinor/fusion-framework/commit/8bc4c5d6ed900e424efcab5572047c106d7ec04a) Thanks [@odinr](https://github.com/odinr)! - Create and expose interface for App
819
+
819
820
  - deprecate [AppModuleProvider.createApp](https://github.com/equinor/fusion-framework/blob/cf08d5ae3cef473e5025fd973a2a7a45a3b22dee/packages/modules/app/src/AppModuleProvider.ts#L171)
820
821
 
821
822
  this should not create any breaking changes since apps was only created from provider.
@@ -826,6 +827,7 @@
826
827
  ```
827
828
 
828
829
  - [#927](https://github.com/equinor/fusion-framework/pull/927) [`8bc4c5d6`](https://github.com/equinor/fusion-framework/commit/8bc4c5d6ed900e424efcab5572047c106d7ec04a) Thanks [@odinr](https://github.com/odinr)! - Allow updating manifest of application
830
+
829
831
  - add meta data for `setManifest` action to flag if `merge` or `replace`
830
832
  - add method on `App` to update manifest, _default flag `merge`_
831
833
  - check in state reducer if `setManifest` action is `update` or `merge`
@@ -836,6 +838,7 @@
836
838
  ### Patch Changes
837
839
 
838
840
  - [#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**
841
+
839
842
  - align all versions of typescript
840
843
  - update types to build
841
844
  - 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
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '7.2.0-next.0';
2
+ export const version = '7.2.1';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}