@equinor/fusion-framework 7.3.20 → 7.4.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,5 +1,50 @@
1
1
  # Change Log
2
2
 
3
+ ## 7.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#3590](https://github.com/equinor/fusion-framework/pull/3590) [`0bc6b38`](https://github.com/equinor/fusion-framework/commit/0bc6b38e61c98a2f9dea7b55fa9983f268f860be) Thanks [@odinr](https://github.com/odinr)! - Internal: Add static className properties to configurator classes (ModulesConfigurator, FrameworkConfigurator, AppConfigurator) to prevent constructor name mangling during compilation and ensure proper event naming.
8
+
9
+ - Updated dependencies [[`d08ee58`](https://github.com/equinor/fusion-framework/commit/d08ee5850acf5bbbf63ac93c8da81647e3ca55b5), [`dcdec9f`](https://github.com/equinor/fusion-framework/commit/dcdec9f87d591781d11db34c24e6bf85de3a3f48), [`6dfb29e`](https://github.com/equinor/fusion-framework/commit/6dfb29eef67548228c05668b44ad02a34c83b050), [`6900d98`](https://github.com/equinor/fusion-framework/commit/6900d98142c84f4703095f8d03b09af57a1d7d2e), [`e1a94c5`](https://github.com/equinor/fusion-framework/commit/e1a94c5a1df4ac2ec92ed25b75648397a3dbfa7b), [`e1a94c5`](https://github.com/equinor/fusion-framework/commit/e1a94c5a1df4ac2ec92ed25b75648397a3dbfa7b), [`88e0e58`](https://github.com/equinor/fusion-framework/commit/88e0e58fcdcfa069be2c652ac46a4bb11e91abb1), [`31e2581`](https://github.com/equinor/fusion-framework/commit/31e2581fca2765dc7caf54f74db3db51020b53b7), [`0bc6b38`](https://github.com/equinor/fusion-framework/commit/0bc6b38e61c98a2f9dea7b55fa9983f268f860be), [`a13de68`](https://github.com/equinor/fusion-framework/commit/a13de68b2f196a779ea850af055d8db7926941ce)]:
10
+ - @equinor/fusion-framework-module-context@7.0.2
11
+ - @equinor/fusion-framework-module-event@4.4.0
12
+ - @equinor/fusion-framework-module-services@7.1.3
13
+ - @equinor/fusion-framework-module-http@7.0.3
14
+ - @equinor/fusion-framework-module@5.0.4
15
+ - @equinor/fusion-framework-module-msal@5.1.1
16
+ - @equinor/fusion-framework-module-telemetry@4.3.0
17
+ - @equinor/fusion-framework-module-service-discovery@9.0.3
18
+
19
+ ## 7.4.0
20
+
21
+ ### Minor Changes
22
+
23
+ - [#3492](https://github.com/equinor/fusion-framework/pull/3492) [`7ba4713`](https://github.com/equinor/fusion-framework/commit/7ba47139a8d7cfbb757bd4626425c611e22c2126) Thanks [@odinr](https://github.com/odinr)! - Integrate telemetry module into framework core.
24
+
25
+ - Add TelemetryModule to FusionModules type definition
26
+ - Enable telemetry in FrameworkConfigurator with default configuration
27
+ - Add event$ observable with framework-specific event prefixing
28
+ - Include framework metadata in telemetry collection
29
+
30
+ resolves: [#3491](https://github.com/equinor/fusion-framework/issues/3491)
31
+
32
+ ### Patch Changes
33
+
34
+ - [#3490](https://github.com/equinor/fusion-framework/pull/3490) [`45954e5`](https://github.com/equinor/fusion-framework/commit/45954e5db471a2faa24e88e41fc6d6c18817d6d1) Thanks [@odinr](https://github.com/odinr)! - Remove explicit logger initialization from configurator constructors in favor of telemetry.
35
+
36
+ - Removed `this.logger = new ModuleConsoleLogger(...)` from FrameworkConfigurator, AppConfigurator, and WidgetConfigurator constructors
37
+ - Logger functionality will be handled through telemetry module with console logging adapter
38
+
39
+ This prepares the configurators to use telemetry for logging instead of direct console logger initialization.
40
+
41
+ - Updated dependencies [[`6cb288b`](https://github.com/equinor/fusion-framework/commit/6cb288b9e1ec4fae68ae6899735c176837bb4275), [`a66d70a`](https://github.com/equinor/fusion-framework/commit/a66d70a9fa40ab14f2534be4f22b6d1f602097a0), [`45954e5`](https://github.com/equinor/fusion-framework/commit/45954e5db471a2faa24e88e41fc6d6c18817d6d1), [`4e78565`](https://github.com/equinor/fusion-framework/commit/4e7856590f73fee840b065a0e4d89962e167ed9e), [`0bad642`](https://github.com/equinor/fusion-framework/commit/0bad642205a7f780dcb6685243102b65b3755fa2), [`45954e5`](https://github.com/equinor/fusion-framework/commit/45954e5db471a2faa24e88e41fc6d6c18817d6d1)]:
42
+ - @equinor/fusion-framework-module-context@7.0.1
43
+ - @equinor/fusion-framework-module-http@7.0.2
44
+ - @equinor/fusion-framework-module@5.0.3
45
+ - @equinor/fusion-framework-module-telemetry@4.2.0
46
+ - @equinor/fusion-framework-module-service-discovery@9.0.2
47
+
3
48
  ## 7.3.20
4
49
 
5
50
  ### Patch Changes
@@ -1,26 +1,137 @@
1
- import { ModuleConsoleLogger, ModulesConfigurator, } from '@equinor/fusion-framework-module';
1
+ import { ModulesConfigurator, } from '@equinor/fusion-framework-module';
2
2
  import event from '@equinor/fusion-framework-module-event';
3
3
  import http, { configureHttpClient, configureHttp, } from '@equinor/fusion-framework-module-http';
4
4
  import auth from '@equinor/fusion-framework-module-msal';
5
5
  import context from '@equinor/fusion-framework-module-context';
6
6
  import disco from '@equinor/fusion-framework-module-service-discovery';
7
7
  import services from '@equinor/fusion-framework-module-services';
8
+ import telemetry, { enableTelemetry } from '@equinor/fusion-framework-module-telemetry';
9
+ import { version } from './version.js';
8
10
  /**
9
11
  * Module configurator for Framework modules
10
12
  * @template TModules - Addition modules
11
13
  * @template TRef - usually undefined, optional references
12
14
  */
13
15
  export class FrameworkConfigurator extends ModulesConfigurator {
16
+ /**
17
+ * The class name used for event naming. This static property ensures
18
+ * the name is preserved through compilation and minification.
19
+ */
20
+ static className = 'FrameworkConfigurator';
21
+ /**
22
+ * Creates a new FrameworkConfigurator instance with default telemetry configuration.
23
+ *
24
+ * Initializes the framework with core modules (event, auth, http, service discovery,
25
+ * services, context, and telemetry) and sets up default telemetry that includes
26
+ * framework version metadata and 'framework' scope for all telemetry events.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const configurator = new FrameworkConfigurator();
31
+ * // Now ready to configure additional modules
32
+ * ```
33
+ */
14
34
  constructor() {
15
- super([event, auth, http, disco, services, context]);
16
- this.logger = new ModuleConsoleLogger('FrameworkConfigurator');
35
+ super([event, auth, http, disco, services, context, telemetry]);
36
+ // default configuration
37
+ enableTelemetry(this, {
38
+ configure: (builder) => {
39
+ builder.setMetadata({
40
+ fusion: {
41
+ type: 'framework-telemetry',
42
+ framework: {
43
+ version,
44
+ },
45
+ },
46
+ });
47
+ builder.setDefaultScope(['framework']);
48
+ },
49
+ });
17
50
  }
51
+ /**
52
+ * Configures the global HTTP module settings such as base URLs, default headers,
53
+ * request/response interceptors, and timeout settings.
54
+ *
55
+ * This affects all HTTP requests made through the framework's HTTP module.
56
+ * Use this for application-wide HTTP configuration.
57
+ *
58
+ * @param args - HTTP module configuration arguments (same as configureHttp function)
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * configurator.configureHttp({
63
+ * baseUri: 'https://api.example.com',
64
+ * defaultHeaders: { 'X-App-Version': '1.0.0' }
65
+ * });
66
+ * ```
67
+ */
18
68
  configureHttp(...args) {
19
69
  this.addConfig(configureHttp(...args));
20
70
  }
71
+ /**
72
+ * Configures a named HTTP client instance with specific settings.
73
+ *
74
+ * Unlike configureHttp which sets global HTTP settings, this creates a named client
75
+ * that can have its own base URL, headers, interceptors, and other HTTP-specific
76
+ * configuration. Useful for connecting to different APIs or services with different requirements.
77
+ *
78
+ * @param args - HTTP client configuration arguments: [name, clientOptions]
79
+ * where name is a string identifier and clientOptions contains HTTP settings
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * // Configure a client for external API
84
+ * configurator.configureHttpClient('external-api', {
85
+ * baseUri: 'https://external-api.com',
86
+ * defaultHeaders: { 'Authorization': 'Bearer token' }
87
+ * });
88
+ *
89
+ * // Configure a client for internal services
90
+ * configurator.configureHttpClient('internal', {
91
+ * baseUri: 'https://internal.company.com',
92
+ * timeout: 10000
93
+ * });
94
+ * ```
95
+ */
21
96
  configureHttpClient(...args) {
22
97
  this.addConfig(configureHttpClient(...args));
23
98
  }
99
+ /**
100
+ * Configures Microsoft Authentication Library (MSAL) authentication for the framework.
101
+ *
102
+ * This sets up OAuth 2.0 / OpenID Connect authentication using Azure AD or other
103
+ * MSAL-compatible identity providers. The authentication module will handle token
104
+ * acquisition, refresh, and user session management.
105
+ *
106
+ * @param cb_or_config - Authentication configuration. Can be either:
107
+ * - A callback function that receives an auth builder for advanced configuration
108
+ * - A client configuration object with MSAL settings
109
+ * @param requiresAuth - Whether the application requires authentication to function.
110
+ * When true (default), unauthenticated users cannot access the app.
111
+ * When false, authentication is optional but available when needed.
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * // Simple configuration with client config object
116
+ * configurator.configureMsal({
117
+ * clientId: 'your-client-id',
118
+ * authority: 'https://login.microsoftonline.com/your-tenant-id'
119
+ * });
120
+ *
121
+ * // Advanced configuration with callback
122
+ * configurator.configureMsal((builder) => {
123
+ * builder.setClientConfig({
124
+ * clientId: 'your-client-id',
125
+ * authority: 'https://login.microsoftonline.com/your-tenant-id'
126
+ * });
127
+ * builder.setScopes(['User.Read', 'api://your-api/scope']);
128
+ * builder.setRequiresAuth(true);
129
+ * });
130
+ *
131
+ * // Optional authentication
132
+ * configurator.configureMsal(config, false);
133
+ * ```
134
+ */
24
135
  configureMsal(cb_or_config, requiresAuth = true) {
25
136
  this.addConfig({
26
137
  module: auth,
@@ -37,9 +148,70 @@ export class FrameworkConfigurator extends ModulesConfigurator {
37
148
  },
38
149
  });
39
150
  }
151
+ /**
152
+ * Configures the service discovery module to automatically find and connect to services.
153
+ *
154
+ * Service discovery allows the framework to dynamically locate microservices and APIs
155
+ * at runtime rather than hardcoding their URLs. This is essential in distributed systems
156
+ * where services may be deployed across multiple environments or scaled dynamically.
157
+ *
158
+ * @param args - Configuration object for service discovery
159
+ * @param args.client - HTTP client configuration used to communicate with the
160
+ * service discovery registry. Typically includes base URL,
161
+ * authentication, and timeout settings.
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * configurator.configureServiceDiscovery({
166
+ * client: {
167
+ * baseUri: 'https://service-registry.company.com',
168
+ * defaultHeaders: { 'Authorization': 'Bearer token' },
169
+ * timeout: 5000
170
+ * }
171
+ * });
172
+ * ```
173
+ */
40
174
  configureServiceDiscovery(args) {
41
175
  this.configureHttpClient('service_discovery', args.client);
42
176
  }
177
+ /**
178
+ * Configures application telemetry and observability settings.
179
+ *
180
+ * Telemetry enables tracking of application usage, performance metrics, errors,
181
+ * and custom events. This helps with monitoring, debugging, and understanding
182
+ * how your application is being used. The framework comes with default telemetry
183
+ * that includes framework version and scope information.
184
+ *
185
+ * @param cb - Configuration callback function that receives a telemetry builder.
186
+ * Use this to customize telemetry settings like event scopes, metadata,
187
+ * sampling rates, and custom instrumentation.
188
+ *
189
+ * @example
190
+ * ```typescript
191
+ * configurator.configureTelemetry((builder) => {
192
+ * // Add custom metadata to all telemetry events
193
+ * builder.setMetadata({
194
+ * application: 'my-app',
195
+ * environment: 'production',
196
+ * version: '1.2.3'
197
+ * });
198
+ *
199
+ * // Set custom scopes for filtering events
200
+ * builder.setDefaultScope(['app', 'performance']);
201
+ *
202
+ * // Configure sampling (only send 10% of events)
203
+ * builder.setSamplingRate(0.1);
204
+ *
205
+ * // Add custom instrumentation
206
+ * builder.addInstrumentation('custom-operation', (context) => {
207
+ * // Track custom metrics
208
+ * });
209
+ * });
210
+ * ```
211
+ */
212
+ configureTelemetry(cb) {
213
+ enableTelemetry(this, cb);
214
+ }
43
215
  }
44
216
  export default FrameworkConfigurator;
45
217
  //# sourceMappingURL=FrameworkConfigurator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkConfigurator.js","sourceRoot":"","sources":["../../src/FrameworkConfigurator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,MAAM,wCAAwC,CAAC;AAE3D,OAAO,IAAI,EAAE,EACX,mBAAmB,EACnB,aAAa,GAEd,MAAM,uCAAuC,CAAC;AAG/C,OAAO,IAA2B,MAAM,uCAAuC,CAAC;AAEhF,OAAO,OAAO,MAAM,0CAA0C,CAAC;AAE/D,OAAO,KAAK,MAAM,oDAAoD,CAAC;AACvE,OAAO,QAAQ,MAAM,2CAA2C,CAAC;AAKjE;;;;GAIG;AACH,MAAM,OAAO,qBAIX,SAAQ,mBAAkD;IAC1D;QACE,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;IACjE,CAAC;IAEM,aAAa,CAAC,GAAG,IAAsC;QAC5D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAEM,mBAAmB,CAAC,GAAG,IAA4C;QACxE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEM,aAAa,CAAC,YAA6C,EAAE,YAAY,GAAG,IAAI;QACrF,IAAI,CAAC,SAAS,CAAC;YACb,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACrB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;oBACvC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;gBACD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;oBACrC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEM,yBAAyB,CAAC,IAAmD;QAClF,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"FrameworkConfigurator.js","sourceRoot":"","sources":["../../src/FrameworkConfigurator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,GAEpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,MAAM,wCAAwC,CAAC;AAE3D,OAAO,IAAI,EAAE,EACX,mBAAmB,EACnB,aAAa,GAEd,MAAM,uCAAuC,CAAC;AAG/C,OAAO,IAA2B,MAAM,uCAAuC,CAAC;AAEhF,OAAO,OAAO,MAAM,0CAA0C,CAAC;AAE/D,OAAO,KAAK,MAAM,oDAAoD,CAAC;AACvE,OAAO,QAAQ,MAAM,2CAA2C,CAAC;AACjE,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAIxF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC;;;;GAIG;AACH,MAAM,OAAO,qBAIX,SAAQ,mBAAkD;IAC1D;;;OAGG;IACH,MAAM,CAAU,SAAS,GAAW,uBAAuB,CAAC;IAE5D;;;;;;;;;;;;OAYG;IACH;QACE,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QAEhE,wBAAwB;QACxB,eAAe,CAAC,IAAI,EAAE;YACpB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACrB,OAAO,CAAC,WAAW,CAAC;oBAClB,MAAM,EAAE;wBACN,IAAI,EAAE,qBAAqB;wBAC3B,SAAS,EAAE;4BACT,OAAO;yBACR;qBACF;iBACF,CAAC,CAAC;gBACH,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACzC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,aAAa,CAAC,GAAG,IAAsC;QAC5D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,mBAAmB,CAAC,GAAG,IAA4C;QACxE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACI,aAAa,CAAC,YAA6C,EAAE,YAAY,GAAG,IAAI;QACrF,IAAI,CAAC,SAAS,CAAC;YACb,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACrB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;oBACvC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;gBACD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;oBACrC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,yBAAyB,CAAC,IAAmD;QAClF,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACI,kBAAkB,CAAC,EAAyC;QACjE,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;;AAGH,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { describe, it, expect, beforeEach } from 'vitest';
2
+ import { firstValueFrom, take } from 'rxjs';
3
+ import { FrameworkConfigurator } from '../FrameworkConfigurator.js';
4
+ import { SemanticVersion } from '@equinor/fusion-framework-module';
5
+ describe('FrameworkConfigurator', () => {
6
+ let configurator;
7
+ // Create a mock module for testing
8
+ const createMockModule = (name, version = '1.0.0') => ({
9
+ name,
10
+ version: new SemanticVersion(version),
11
+ initialize: () => ({ mockInstance: true }),
12
+ });
13
+ beforeEach(() => {
14
+ configurator = new FrameworkConfigurator();
15
+ });
16
+ describe('Event Name Prefixing', () => {
17
+ it('should prefix event names with "FrameworkConfigurator::"', async () => {
18
+ // Trigger event by adding a config
19
+ configurator.addConfig({
20
+ module: createMockModule('test', '1.0.0'),
21
+ configure: () => { },
22
+ });
23
+ // Wait for the first event to be emitted
24
+ const event = await firstValueFrom(configurator.event$.pipe(take(1)));
25
+ expect(event.name).toMatch(/^FrameworkConfigurator::/);
26
+ });
27
+ });
28
+ });
29
+ //# sourceMappingURL=FrameworkConfigurator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrameworkConfigurator.test.js","sourceRoot":"","sources":["../../../src/__tests__/FrameworkConfigurator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,YAAmC,CAAC;IAExC,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,OAAO,GAAG,OAAO,EAAa,EAAE,CAAC,CAAC;QACxE,IAAI;QACJ,OAAO,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC;QACrC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAC3C,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACd,YAAY,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,mCAAmC;YACnC,YAAY,CAAC,SAAS,CAAC;gBACrB,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;gBACzC,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC;aACpB,CAAC,CAAC;YAEH,yCAAyC;YACzC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '7.3.20';
2
+ export const version = '7.4.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,QAAQ,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}