@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 +42 -33
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types.d.ts +14 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +8 -8
- package/src/types.ts +16 -2
- package/src/version.ts +1 -1
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
|
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,cAAc,CAAC"}
|