@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 +39 -36
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/app/events.d.ts +2 -0
- package/dist/types/types.d.ts +0 -14
- package/dist/types/version.d.ts +1 -1
- package/package.json +8 -8
- package/src/app/events.ts +2 -0
- package/src/types.ts +2 -16
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,46 +1,16 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
-
## 7.2.
|
|
3
|
+
## 7.2.1
|
|
4
4
|
|
|
5
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
9
|
+
## 7.2.0
|
|
38
10
|
|
|
39
|
-
|
|
11
|
+
### Minor Changes
|
|
40
12
|
|
|
41
|
-
-
|
|
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
|
package/dist/esm/version.js
CHANGED
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
|