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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,47 @@
1
1
  # Change Log
2
2
 
3
+ ## 7.2.0-next.0
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
+ ```
34
+
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.
36
+
37
+ ### Patch Changes
38
+
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
40
+
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
44
+
3
45
  ## 7.1.1
4
46
 
5
47
  ### Patch Changes
@@ -21,20 +63,17 @@
21
63
  ## New Features
22
64
 
23
65
  ### App Tag/Version Support
24
-
25
66
  - **App Client**: Added `getAppBuild` method to fetch build manifests by app key and tag
26
67
  - **App Module Provider**: Enhanced `getAppManifest` to accept optional tag parameter
27
68
  - **App Loading**: Modified `setCurrentApp` to support `AppReference` objects with tag specification
28
69
  - **URL Integration**: Added `getAppTagFromUrl` utility to extract app tags from URL parameters
29
70
 
30
71
  ### Enhanced Type System
31
-
32
72
  - Added `AppReference` type for specifying app key and optional tag
33
73
  - Extended `AppBundleState` to include optional `tag` property
34
74
  - Updated `AppBuildManifest` type definition for build-specific metadata
35
75
 
36
76
  ### API Improvements
37
-
38
77
  - **AppClient**: Updated interface to support tag-based manifest and build fetching
39
78
  - **App Class**: Added `tag` getter property for accessing current app tag
40
79
  - **Action System**: Enhanced `fetchManifest` action to handle tag parameters
@@ -42,7 +81,6 @@
42
81
  ## Changes by Package
43
82
 
44
83
  ### `@equinor/fusion-framework-module-app`
45
-
46
84
  - **AppClient.ts**: Added `getAppBuild` method with tag support and updated `getAppManifest` signature
47
85
  - **AppModuleProvider.ts**: Enhanced `setCurrentApp` method to handle `AppReference` objects with tags
48
86
  - **App.ts**: Added `tag` getter and improved error handling in initialization
@@ -51,7 +89,6 @@
51
89
  - **flows.ts**: Modified manifest fetching flow to handle tag-based requests
52
90
 
53
91
  ### `@equinor/fusion-framework-dev-portal`
54
-
55
92
  - **AppLoader.tsx**: Added `getAppTagFromUrl` utility function and integrated tag-based app loading
56
93
 
57
94
  ## Usage Examples
@@ -84,17 +121,14 @@
84
121
  ## Migration Guide
85
122
 
86
123
  ### For App Consumers
87
-
88
124
  - No breaking changes - existing code continues to work
89
125
  - Optionally use new tag-based loading for version-specific deployments
90
126
 
91
127
  ### For App Developers
92
-
93
128
  - Consider adding `&tag` URL parameter support for testing different versions
94
129
  - Use new `AppReference` type when programmatically setting current apps with tags
95
130
 
96
131
  ## Technical Details
97
-
98
132
  - **Backward Compatibility**: All changes are backward compatible
99
133
  - **Caching**: Tag-based manifests and builds are cached separately
100
134
  - **Error Handling**: Enhanced error handling for build and manifest loading failures
@@ -128,7 +162,6 @@
128
162
  ### Patch Changes
129
163
 
130
164
  - [#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
131
-
132
165
  - **v4.1.10**: Fixed shape caching issue (#5263) improving validation performance for complex schemas
133
166
  - **v4.1.11**: Maintenance release with general improvements
134
167
 
@@ -147,7 +180,6 @@
147
180
  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.
148
181
 
149
182
  Key changes in source code:
150
-
151
183
  - Fixed record schema definitions to use explicit key and value types (`z.record(z.string(), z.any())`)
152
184
  - Updated error message options format (replaced `description` with `message`)
153
185
  - Enhanced `ApiAppConfigSchema` with proper record type definitions for environment and endpoints
@@ -156,7 +188,6 @@
156
188
  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.
157
189
 
158
190
  Links:
159
-
160
191
  - [Zod v4 Migration Guide](https://github.com/colinhacks/zod/releases/tag/v4.0.0)
161
192
  - [Zod v4.1.8 Release Notes](https://github.com/colinhacks/zod/releases/tag/v4.1.8)
162
193
 
@@ -169,19 +200,16 @@
169
200
  - [#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.
170
201
 
171
202
  ### Breaking Changes
172
-
173
203
  - Immer 10.x introduces stricter TypeScript types for draft functions
174
204
  - `ValidRecipeReturnType` type constraints have changed
175
205
  - Promise return types in draft functions are no longer automatically handled
176
206
 
177
207
  ### Fixes Applied
178
-
179
208
  - Updated BookmarkProvider to handle new immer type constraints
180
209
  - Fixed ObservableInput type assignments in mergeScan operations
181
210
  - Removed async/await from immer draft functions to comply with new type requirements
182
211
 
183
212
  ### Links
184
-
185
213
  - [Immer 10.0.0 Release Notes](https://github.com/immerjs/immer/releases/tag/v10.0.0)
186
214
  - [Immer Migration Guide](https://github.com/immerjs/immer/blob/main/MIGRATION.md)
187
215
 
@@ -192,18 +220,15 @@
192
220
  - [#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
193
221
 
194
222
  ### Breaking Changes
195
-
196
223
  - v13.0.0: Make browser exports the default
197
224
  - v12.0.0: Update to TypeScript 5.2, remove CommonJS support, drop Node 16 support
198
225
 
199
226
  ### New Features
200
-
201
227
  - Improved v4() performance
202
228
  - Added Node 24 to CI matrix
203
229
  - Restored node: prefix support
204
230
 
205
231
  ### Links
206
-
207
232
  - [GitHub releases](https://github.com/uuidjs/uuid/releases/tag/v13.0.0)
208
233
  - [npm changelog](https://www.npmjs.com/package/uuid?activeTab=versions)
209
234
 
@@ -216,7 +241,6 @@
216
241
  ### Patch Changes
217
242
 
218
243
  - [#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
219
-
220
244
  - Add support for HTTP 410 (Gone) status code handling across all error types
221
245
  - Import and use `HttpJsonResponseError` for more specific error handling in `getAppManifest`
222
246
  - Add 'deleted' error type to handle when application resources have been deleted
@@ -234,7 +258,6 @@
234
258
  ### Patch Changes
235
259
 
236
260
  - [#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
237
-
238
261
  - Updated package.json typesVersions.
239
262
  - Ensures backward compatibility with older node versions.
240
263
  - Ensured consistency with workspace and repository configuration.
@@ -347,7 +370,6 @@
347
370
  ### Patch Changes
348
371
 
349
372
  - [#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:
350
-
351
373
  - Updated `AppClient` class to improve the query for fetching app manifests:
352
374
  - Adjusted the query path manifests method to include `$expand=category,admins,owners,keywords` when `filterByCurrentUser` is not specified.
353
375
  - Minor formatting changes for better readability.
@@ -359,11 +381,9 @@
359
381
  - [#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`.
360
382
 
361
383
  **Modified files:**
362
-
363
384
  - `packages/modules/app/src/AppModuleProvider.ts`
364
385
 
365
386
  **Changes:**
366
-
367
387
  - Imported `SemanticVersion` from `@equinor/fusion-framework-module`.
368
388
  - Imported `version` from `./version`.
369
389
  - Added a `version` getter to `AppModuleProvider` that returns a `SemanticVersion` instance.
@@ -378,11 +398,9 @@
378
398
  - [#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`.
379
399
 
380
400
  **Modified files:**
381
-
382
401
  - `packages/modules/app/src/AppClient.ts`
383
402
 
384
403
  **Changes:**
385
-
386
404
  - Replaced `res.json()` with `jsonSelector(res)`
387
405
  - Parsed the response using `ApplicationSchema.array().parse(response.value)`
388
406
 
@@ -417,7 +435,6 @@
417
435
  ```
418
436
 
419
437
  - [#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:
420
-
421
438
  1. **AppClient.ts**
422
439
  - Added `updateAppSettings` method to set app settings by appKey.
423
440
  2. **AppModuleProvider.ts**
@@ -478,12 +495,10 @@
478
495
  > This will introduce breaking changes to the configuration of `AppConfigurator.client`.
479
496
 
480
497
  **Added**
481
-
482
498
  - Introduced `AppClient` class to handle application manifest and configuration queries.
483
499
  - Added `zod` to validate the application manifest.
484
500
 
485
501
  **Changed**
486
-
487
502
  - Updated `AppModuleProvider` to use `AppClient` for fetching application manifests and configurations.
488
503
  - Modified `AppConfigurator` to utilize `AppClient` for client configuration.
489
504
  - Updated `useApps` hook with new input parameter for `filterByCurrentUser` in `fusion-framework-react`.
@@ -562,7 +577,6 @@
562
577
  - [#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.
563
578
 
564
579
  Removing the `removeComments` option allows TypeScript to preserve comments in the compiled JavaScript output. This can be beneficial for several reasons:
565
-
566
580
  1. Improved debugging: Preserved comments can help developers understand the code better during debugging sessions.
567
581
  2. Documentation: JSDoc comments and other important code documentation will be retained in the compiled output.
568
582
  3. Source map accuracy: Keeping comments can lead to more accurate source maps, which is crucial for debugging and error tracking.
@@ -611,7 +625,6 @@
611
625
  ### Patch Changes
612
626
 
613
627
  - [#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.
614
-
615
628
  - **Added**: New utility types and functions for handling action types and payloads in a more type-safe manner.
616
629
 
617
630
  - [#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.
@@ -687,7 +700,6 @@
687
700
  ### Patch Changes
688
701
 
689
702
  - [#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
690
-
691
703
  - result will be `undefined` if current application has never been set
692
704
  - result will be `IApplication` if current application is set
693
705
  - result will be `null` if current application is cleared
@@ -804,7 +816,6 @@
804
816
  ### Minor Changes
805
817
 
806
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
807
-
808
819
  - deprecate [AppModuleProvider.createApp](https://github.com/equinor/fusion-framework/blob/cf08d5ae3cef473e5025fd973a2a7a45a3b22dee/packages/modules/app/src/AppModuleProvider.ts#L171)
809
820
 
810
821
  this should not create any breaking changes since apps was only created from provider.
@@ -815,7 +826,6 @@
815
826
  ```
816
827
 
817
828
  - [#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
818
-
819
829
  - add meta data for `setManifest` action to flag if `merge` or `replace`
820
830
  - add method on `App` to update manifest, _default flag `merge`_
821
831
  - check in state reducer if `setManifest` action is `update` or `merge`
@@ -826,7 +836,6 @@
826
836
  ### Patch Changes
827
837
 
828
838
  - [#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**
829
-
830
839
  - align all versions of typescript
831
840
  - update types to build
832
841
  - 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.1.1';
2
+ export const version = '7.2.0-next.0';
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,OAAO,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAC"}