@odx/angular 8.1.0 → 9.0.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,13 @@
1
1
  # @odx/angular
2
2
 
3
+ ## 9.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 65fe0c6: BREAKING CHANGE: All uses of the browsers cache API was removed due to too many race with caches on application level. Please handle request/response caching on application level.
8
+
9
+ BREAKING CHANGE: The "AuthHttpCache" service was removed due to too many race conditions with caches on application level. Please remove all usages of the "AuthHttpCache" (@odx/auth) from your application.
10
+
3
11
  ## 8.1.0
4
12
 
5
13
  ### Minor Changes
@@ -1,6 +1,5 @@
1
1
  import { inject, InjectionToken } from '@angular/core';
2
2
  import { bootstrapApplication } from '@angular/platform-browser';
3
- import { CacheStorageClient } from '@odx/angular/utils';
4
3
  /**
5
4
  * Creates a loader function for fetching application environment data over HTTP and caching it.
6
5
  * Utilizes `CacheStorageClient` for caching the fetched data to optimize performance and reduce network load.
@@ -14,8 +13,9 @@ import { CacheStorageClient } from '@odx/angular/utils';
14
13
  * });
15
14
  */
16
15
  export function createHttpApplicationEnvironmentLoader(handler) {
17
- const cache = new CacheStorageClient('@odx/angular/sdk::ApplicationEnvironment');
18
- return (...args) => cache.request(...args).then((dto) => handler(dto));
16
+ return (...args) => fetch(...args)
17
+ .then((res) => res.json())
18
+ .then((dto) => handler(dto));
19
19
  }
20
20
  /**
21
21
  * The application environment module can be used to load environment data before application startup,
@@ -82,4 +82,4 @@ export function createApplicationEnvironment(loader) {
82
82
  loadApplicationEnvironment,
83
83
  };
84
84
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2RrL3NyYy9saWIvYXBwbGljYXRpb24tZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBYXhEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLHNDQUFzQyxDQUNwRCxPQUF3QztJQUV4QyxNQUFNLEtBQUssR0FBRyxJQUFJLGtCQUFrQixDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFFakYsT0FBTyxDQUFDLEdBQUcsSUFBK0MsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBVSxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDN0gsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNHO0FBQ0gsTUFBTSxVQUFVLDRCQUE0QixDQUFpQyxNQUFrRDtJQUM3SCxJQUFJLFdBQWlCLENBQUM7SUFDdEIsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBTywwQ0FBMEMsRUFBRTtRQUNuRyxVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBbUI7S0FDbkMsQ0FBQyxDQUFDO0lBRUgsU0FBUyw0QkFBNEI7UUFDbkMsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSyxVQUFVLDBCQUEwQixDQUFDLEdBQUcsSUFBK0I7UUFDMUUsV0FBVyxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FDM0U7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxVQUFVLG1DQUFtQyxDQUNoRCxNQUFpQyxFQUNqQyxHQUFHLElBQTZDO1FBRWhELE1BQU0sMEJBQTBCLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUU1QyxPQUFPLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE9BQU87UUFDTCx1QkFBdUI7UUFDdkIsNEJBQTRCO1FBQzVCLG1DQUFtQztRQUNuQywwQkFBMEI7S0FDM0IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYm9vdHN0cmFwQXBwbGljYXRpb24gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IENhY2hlU3RvcmFnZUNsaWVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0eXBlIGRlZmluaXRpb24gZm9yIGxvYWRpbmcgZW52aXJvbm1lbnQgZGF0YSBmb3IgYW4gYXBwbGljYXRpb24uXG4gKiBJdCdzIGEgZ2VuZXJpYyBsb2FkZXIgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHBhcmFtZXRlcnMgYW5kIHJldHVybnMgYSBQcm9taXNlIG9mIGVudmlyb25tZW50IGRhdGEuXG4gKlxuICogQHRlbXBsYXRlIEVudmlyb25tZW50RGF0YSBUaGUgdHlwZSBvZiB0aGUgZW52aXJvbm1lbnQgZGF0YSB0byBiZSBsb2FkZWQuXG4gKiBAdGVtcGxhdGUgUGFyYW1zIFRoZSB0eXBlcyBvZiB0aGUgcGFyYW1ldGVycyBhY2NlcHRlZCBieSB0aGUgbG9hZGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIHsuLi5QYXJhbXN9IGFyZ3MgLSBQYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgbG9hZGVyIGZ1bmN0aW9uLlxuICogQHJldHVybnMge1Byb21pc2U8RW52aXJvbm1lbnREYXRhPn0gQSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgbG9hZGVkIGVudmlyb25tZW50IGRhdGEuXG4gKi9cbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uRW52aXJvbm1lbnRMb2FkZXI8RW52aXJvbm1lbnREYXRhLCBQYXJhbXMgZXh0ZW5kcyB1bmtub3duW10+ID0gKC4uLmFyZ3M6IFBhcmFtcykgPT4gUHJvbWlzZTxFbnZpcm9ubWVudERhdGE+O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBsb2FkZXIgZnVuY3Rpb24gZm9yIGZldGNoaW5nIGFwcGxpY2F0aW9uIGVudmlyb25tZW50IGRhdGEgb3ZlciBIVFRQIGFuZCBjYWNoaW5nIGl0LlxuICogVXRpbGl6ZXMgYENhY2hlU3RvcmFnZUNsaWVudGAgZm9yIGNhY2hpbmcgdGhlIGZldGNoZWQgZGF0YSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZSBhbmQgcmVkdWNlIG5ldHdvcmsgbG9hZC5cbiAqXG4gKiBAdGVtcGxhdGUgRGF0YSBUaGUgdHlwZSBvZiB0aGUgZGF0YSBleHBlY3RlZCBmcm9tIHRoZSBIVFRQIHJlcXVlc3QuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyIC0gQSBmdW5jdGlvbiB0aGF0IHByb2Nlc3NlcyB0aGUgZmV0Y2hlZCBkYXRhIGFuZCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlc2lyZWQgZW52aXJvbm1lbnQgZGF0YSBmb3JtYXQuXG4gKiBAcmV0dXJucyB7QXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcjxEYXRhLCBQYXJhbWV0ZXJzPENhY2hlU3RvcmFnZUNsaWVudFsncmVxdWVzdCddPj59IEEgbG9hZGVyIGZ1bmN0aW9uIHRoYXQgZmV0Y2hlcywgY2FjaGVzLCBhbmQgcHJvY2Vzc2VzIGVudmlyb25tZW50IGRhdGEuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgZW52aXJvbm1lbnRMb2FkZXIgPSBjcmVhdGVIdHRwQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcihhc3luYyAoZHRvKSA9PiB7XG4gKiAgIHJldHVybiB7IGFwaUVuZHBvaW50OiBkdG8uYXBpRW5kcG9pbnQsIGZlYXR1cmVGbGFnczogZHRvLmZlYXR1cmVGbGFncyB9O1xuICogfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIdHRwQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcjxEYXRhPihcbiAgaGFuZGxlcjogKGR0bzogdW5rbm93bikgPT4gUHJvbWlzZTxEYXRhPixcbik6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRMb2FkZXI8RGF0YSwgUGFyYW1ldGVyczxDYWNoZVN0b3JhZ2VDbGllbnRbJ3JlcXVlc3QnXT4+IHtcbiAgY29uc3QgY2FjaGUgPSBuZXcgQ2FjaGVTdG9yYWdlQ2xpZW50KCdAb2R4L2FuZ3VsYXIvc2RrOjpBcHBsaWNhdGlvbkVudmlyb25tZW50Jyk7XG5cbiAgcmV0dXJuICguLi5hcmdzOiBQYXJhbWV0ZXJzPENhY2hlU3RvcmFnZUNsaWVudFsncmVxdWVzdCddPikgPT4gY2FjaGUucmVxdWVzdDx1bmtub3duPiguLi5hcmdzKS50aGVuKChkdG8pID0+IGhhbmRsZXIoZHRvKSk7XG59XG5cbi8qKlxuICogVGhlIGFwcGxpY2F0aW9uIGVudmlyb25tZW50IG1vZHVsZSBjYW4gYmUgdXNlZCB0byBsb2FkIGVudmlyb25tZW50IGRhdGEgYmVmb3JlIGFwcGxpY2F0aW9uIHN0YXJ0dXAsXG4gKiB0aGF0IGNhbiBiZSB1c2VkIHRvIGxvYWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZyb20gYW4gZXh0ZXJuYWwgVVJMLlxuICpcbiAqIEB0ZW1wbGF0ZSBEYXRhIFRoZSB0eXBlIG9mIHRoZSBlbnZpcm9ubWVudCBkYXRhLlxuICogQHRlbXBsYXRlIFBhcmFtcyBUaGUgdHlwZXMgb2YgdGhlIHBhcmFtZXRlcnMgYWNjZXB0ZWQgYnkgdGhlIGxvYWRlciBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7QXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcjxEYXRhLCBQYXJhbXM+fSBsb2FkZXIgLSBBIGxvYWRlciBmdW5jdGlvbiB0aGF0IGFzeW5jaHJvbm91c2x5IGxvYWRzIHRoZSBlbnZpcm9ubWVudCBkYXRhLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggdGhlIGFwcGxpY2F0aW9uIGVudmlyb25tZW50LCBpbmNsdWRpbmcgdGhlIEluamVjdGlvblRva2VuXG4gKiAgICAgICAgICBhbmQgZnVuY3Rpb25zIGZvciBsb2FkaW5nIGFuZCBib290c3RyYXBwaW5nIHRoZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBlbnZpcm9ubWVudC5cbiAqIEBleGFtcGxlXG4gKiBUbyBhZGQgYW4gYXBwbGljYXRpb24gZW52aXJvbm1lbnQgdG8geW91ciBBbmd1bGFyIGFwcGxpY2F0aW9uLCBmb2xsb3cgdGhlIGZvbGxvd2luZyBzdGVwczpcbiAqIDEuIENyZWF0ZSB0aGUgYXBwbGljYXRpb24gZW52aXJvbm1lbnQgd2l0aCB5b3VyIGxvYWRlcjpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBjcmVhdGVBcHBsaWNhdGlvbkVudmlyb25tZW50LCBjcmVhdGVIdHRwQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlciB9IGZyb20gJ0BvZHgvYW5ndWxhci9zZGsnO1xuICogaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG4gKlxuICogZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uQ29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICogICBlbnZpcm9ubWVudDogei5lbnVtKFsnZGV2JywgJ3N0YWdlJywgJ3Byb2QnXSksXG4gKiAgIGFwcE5hbWU6IHouc3RyaW5nKCkuZGVmYXVsdCgnQXBwJyksXG4gKiB9KTtcbiAqXG4gKiBjb25zdCBodHRwRW52aXJvbm1lbnRMb2FkZXIgPSBjcmVhdGVIdHRwQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcigocmVzKSA9PiByZXMuanNvbigpLnRoZW4oQXBwbGljYXRpb25Db25maWdTY2hlbWEucGFyc2UpKTtcbiAqIGV4cG9ydCBjb25zdCB7IGluamVjdEFwcGxpY2F0aW9uRW52aXJvbm1lbnQsIGJvb3RzdHJhcEFwcGxpY2F0aW9uV2l0aEVudmlyb25tZW50IH0gPSBjcmVhdGVBcHBsaWNhdGlvbkVudmlyb25tZW50KGh0dHBFbnZpcm9ubWVudExvYWRlcik7XG4gKiBgYGBcbiAqIFRoaXMgZXhhbXBsZSBjcmVhdGVzIGFuIEhUVFAgZW52aXJvbm1lbnQgbG9hZGVyIHdoaWNoIHBhcnNlcyB0aGUgcmVzcG9uc2UgYXMgSlNPTiBhbmQgdmFsaWRhdGUgaXQgYWdhaW5zdCBhIHNjaGVtYVxuICpcbiAqIDIuIFByb3ZpZGUgdGhlIGFwcGxpY2F0aW9uIGVudmlyb25tZW50OlxuICogYGBgdHNcbiAqIGJvb3RzdHJhcEFwcGxpY2F0aW9uV2l0aEVudmlyb25tZW50KFsnYXNzZXRzL2NvbmZpZy5qc29uJ10sIEFwcENvbXBvbmVudCwgeyBwcm92aWRlcnM6IFtdIH0pO1xuICogYGBgXG4gKlxuICogMy4gVXNlIHRoZSBhcHBsaWNhdGlvbiBlbnZpcm9ubWVudCB2aWEgRElcbiAqIGBgYHRzXG4gKiBjbGFzcyBNeVNlcnZpY2Uge1xuICogICBwcml2YXRlIHJlYWRvbmx5IGVudmlyb25tZW50ID0gaW5qZWN0QXBwbGljYXRpb25FbnZpcm9ubWVudCgpO1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBcHBsaWNhdGlvbkVudmlyb25tZW50PERhdGEsIFBhcmFtcyBleHRlbmRzIHVua25vd25bXT4obG9hZGVyOiBBcHBsaWNhdGlvbkVudmlyb25tZW50TG9hZGVyPERhdGEsIFBhcmFtcz4pIHtcbiAgbGV0IGVudmlyb25tZW50OiBEYXRhO1xuICBjb25zdCBBUFBMSUNBVElPTl9FTlZJUk9OTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEYXRhPignQG9keC9hbmd1bGFyL3Nkazo6QXBwbGljYXRpb25FbnZpcm9ubWVudCcsIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gZW52aXJvbm1lbnQgYXMgRGF0YSxcbiAgfSk7XG5cbiAgZnVuY3Rpb24gaW5qZWN0QXBwbGljYXRpb25FbnZpcm9ubWVudCgpOiBEYXRhIHtcbiAgICByZXR1cm4gaW5qZWN0KEFQUExJQ0FUSU9OX0VOVklST05NRU5UKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGxvYWRBcHBsaWNhdGlvbkVudmlyb25tZW50KC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGxvYWRlcj4pOiBQcm9taXNlPERhdGE+IHtcbiAgICBlbnZpcm9ubWVudCA9IGF3YWl0IGxvYWRlciguLi5hcmdzKTtcbiAgICBpZiAoIWVudmlyb25tZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tAb2R4L2FuZ3VsYXIvc2RrXSBGYWlsZWQgbG9hZCBhcHBsaWNhdGlvbiBlbnZpcm9ubWVudCcpO1xuICAgIH1cbiAgICByZXR1cm4gZW52aXJvbm1lbnQ7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBib290c3RyYXBBcHBsaWNhdGlvbldpdGhFbnZpcm9ubWVudChcbiAgICBwYXJhbXM6IFBhcmFtZXRlcnM8dHlwZW9mIGxvYWRlcj4sXG4gICAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgYm9vdHN0cmFwQXBwbGljYXRpb24+XG4gICk6IFByb21pc2U8QXBwbGljYXRpb25SZWY+IHtcbiAgICBhd2FpdCBsb2FkQXBwbGljYXRpb25FbnZpcm9ubWVudCguLi5wYXJhbXMpO1xuXG4gICAgcmV0dXJuIGJvb3RzdHJhcEFwcGxpY2F0aW9uKC4uLmFyZ3MpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBBUFBMSUNBVElPTl9FTlZJUk9OTUVOVCxcbiAgICBpbmplY3RBcHBsaWNhdGlvbkVudmlyb25tZW50LFxuICAgIGJvb3RzdHJhcEFwcGxpY2F0aW9uV2l0aEVudmlyb25tZW50LFxuICAgIGxvYWRBcHBsaWNhdGlvbkVudmlyb25tZW50LFxuICB9O1xufVxuIl19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2RrL3NyYy9saWIvYXBwbGljYXRpb24tZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBYWpFOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLHNDQUFzQyxDQUNwRCxPQUF3QztJQUV4QyxPQUFPLENBQUMsR0FBRyxJQUE4QixFQUFFLEVBQUUsQ0FDM0MsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ1gsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekIsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ0c7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQWlDLE1BQWtEO0lBQzdILElBQUksV0FBaUIsQ0FBQztJQUN0QixNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFPLDBDQUEwQyxFQUFFO1FBQ25HLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFtQjtLQUNuQyxDQUFDLENBQUM7SUFFSCxTQUFTLDRCQUE0QjtRQUNuQyxPQUFPLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLFVBQVUsMEJBQTBCLENBQUMsR0FBRyxJQUErQjtRQUMxRSxXQUFXLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztTQUMzRTtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLFVBQVUsbUNBQW1DLENBQ2hELE1BQWlDLEVBQ2pDLEdBQUcsSUFBNkM7UUFFaEQsTUFBTSwwQkFBMEIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLE9BQU8sb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsT0FBTztRQUNMLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsbUNBQW1DO1FBQ25DLDBCQUEwQjtLQUMzQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBib290c3RyYXBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG4vKipcbiAqIEEgZnVuY3Rpb24gdHlwZSBkZWZpbml0aW9uIGZvciBsb2FkaW5nIGVudmlyb25tZW50IGRhdGEgZm9yIGFuIGFwcGxpY2F0aW9uLlxuICogSXQncyBhIGdlbmVyaWMgbG9hZGVyIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBwYXJhbWV0ZXJzIGFuZCByZXR1cm5zIGEgUHJvbWlzZSBvZiBlbnZpcm9ubWVudCBkYXRhLlxuICpcbiAqIEB0ZW1wbGF0ZSBFbnZpcm9ubWVudERhdGEgVGhlIHR5cGUgb2YgdGhlIGVudmlyb25tZW50IGRhdGEgdG8gYmUgbG9hZGVkLlxuICogQHRlbXBsYXRlIFBhcmFtcyBUaGUgdHlwZXMgb2YgdGhlIHBhcmFtZXRlcnMgYWNjZXB0ZWQgYnkgdGhlIGxvYWRlciBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7Li4uUGFyYW1zfSBhcmdzIC0gUGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIGxvYWRlciBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIHtQcm9taXNlPEVudmlyb25tZW50RGF0YT59IEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGxvYWRlZCBlbnZpcm9ubWVudCBkYXRhLlxuICovXG5leHBvcnQgdHlwZSBBcHBsaWNhdGlvbkVudmlyb25tZW50TG9hZGVyPEVudmlyb25tZW50RGF0YSwgUGFyYW1zIGV4dGVuZHMgdW5rbm93bltdPiA9ICguLi5hcmdzOiBQYXJhbXMpID0+IFByb21pc2U8RW52aXJvbm1lbnREYXRhPjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbG9hZGVyIGZ1bmN0aW9uIGZvciBmZXRjaGluZyBhcHBsaWNhdGlvbiBlbnZpcm9ubWVudCBkYXRhIG92ZXIgSFRUUCBhbmQgY2FjaGluZyBpdC5cbiAqIFV0aWxpemVzIGBDYWNoZVN0b3JhZ2VDbGllbnRgIGZvciBjYWNoaW5nIHRoZSBmZXRjaGVkIGRhdGEgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UgYW5kIHJlZHVjZSBuZXR3b3JrIGxvYWQuXG4gKlxuICogQHRlbXBsYXRlIERhdGEgVGhlIHR5cGUgb2YgdGhlIGRhdGEgZXhwZWN0ZWQgZnJvbSB0aGUgSFRUUCByZXF1ZXN0LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaGFuZGxlciAtIEEgZnVuY3Rpb24gdGhhdCBwcm9jZXNzZXMgdGhlIGZldGNoZWQgZGF0YSBhbmQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBkZXNpcmVkIGVudmlyb25tZW50IGRhdGEgZm9ybWF0LlxuICogQHJldHVybnMge0FwcGxpY2F0aW9uRW52aXJvbm1lbnRMb2FkZXI8RGF0YSwgUGFyYW1ldGVyczxDYWNoZVN0b3JhZ2VDbGllbnRbJ3JlcXVlc3QnXT4+fSBBIGxvYWRlciBmdW5jdGlvbiB0aGF0IGZldGNoZXMsIGNhY2hlcywgYW5kIHByb2Nlc3NlcyBlbnZpcm9ubWVudCBkYXRhLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGVudmlyb25tZW50TG9hZGVyID0gY3JlYXRlSHR0cEFwcGxpY2F0aW9uRW52aXJvbm1lbnRMb2FkZXIoYXN5bmMgKGR0bykgPT4ge1xuICogICByZXR1cm4geyBhcGlFbmRwb2ludDogZHRvLmFwaUVuZHBvaW50LCBmZWF0dXJlRmxhZ3M6IGR0by5mZWF0dXJlRmxhZ3MgfTtcbiAqIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSHR0cEFwcGxpY2F0aW9uRW52aXJvbm1lbnRMb2FkZXI8RGF0YT4oXG4gIGhhbmRsZXI6IChkdG86IHVua25vd24pID0+IFByb21pc2U8RGF0YT4sXG4pOiBBcHBsaWNhdGlvbkVudmlyb25tZW50TG9hZGVyPERhdGEsIFBhcmFtZXRlcnM8dHlwZW9mIGZldGNoPj4ge1xuICByZXR1cm4gKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGZldGNoPikgPT5cbiAgICBmZXRjaCguLi5hcmdzKVxuICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcbiAgICAgIC50aGVuKChkdG8pID0+IGhhbmRsZXIoZHRvKSk7XG59XG5cbi8qKlxuICogVGhlIGFwcGxpY2F0aW9uIGVudmlyb25tZW50IG1vZHVsZSBjYW4gYmUgdXNlZCB0byBsb2FkIGVudmlyb25tZW50IGRhdGEgYmVmb3JlIGFwcGxpY2F0aW9uIHN0YXJ0dXAsXG4gKiB0aGF0IGNhbiBiZSB1c2VkIHRvIGxvYWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZyb20gYW4gZXh0ZXJuYWwgVVJMLlxuICpcbiAqIEB0ZW1wbGF0ZSBEYXRhIFRoZSB0eXBlIG9mIHRoZSBlbnZpcm9ubWVudCBkYXRhLlxuICogQHRlbXBsYXRlIFBhcmFtcyBUaGUgdHlwZXMgb2YgdGhlIHBhcmFtZXRlcnMgYWNjZXB0ZWQgYnkgdGhlIGxvYWRlciBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7QXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcjxEYXRhLCBQYXJhbXM+fSBsb2FkZXIgLSBBIGxvYWRlciBmdW5jdGlvbiB0aGF0IGFzeW5jaHJvbm91c2x5IGxvYWRzIHRoZSBlbnZpcm9ubWVudCBkYXRhLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggdGhlIGFwcGxpY2F0aW9uIGVudmlyb25tZW50LCBpbmNsdWRpbmcgdGhlIEluamVjdGlvblRva2VuXG4gKiAgICAgICAgICBhbmQgZnVuY3Rpb25zIGZvciBsb2FkaW5nIGFuZCBib290c3RyYXBwaW5nIHRoZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBlbnZpcm9ubWVudC5cbiAqIEBleGFtcGxlXG4gKiBUbyBhZGQgYW4gYXBwbGljYXRpb24gZW52aXJvbm1lbnQgdG8geW91ciBBbmd1bGFyIGFwcGxpY2F0aW9uLCBmb2xsb3cgdGhlIGZvbGxvd2luZyBzdGVwczpcbiAqIDEuIENyZWF0ZSB0aGUgYXBwbGljYXRpb24gZW52aXJvbm1lbnQgd2l0aCB5b3VyIGxvYWRlcjpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBjcmVhdGVBcHBsaWNhdGlvbkVudmlyb25tZW50LCBjcmVhdGVIdHRwQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlciB9IGZyb20gJ0BvZHgvYW5ndWxhci9zZGsnO1xuICogaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG4gKlxuICogZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uQ29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICogICBlbnZpcm9ubWVudDogei5lbnVtKFsnZGV2JywgJ3N0YWdlJywgJ3Byb2QnXSksXG4gKiAgIGFwcE5hbWU6IHouc3RyaW5nKCkuZGVmYXVsdCgnQXBwJyksXG4gKiB9KTtcbiAqXG4gKiBjb25zdCBodHRwRW52aXJvbm1lbnRMb2FkZXIgPSBjcmVhdGVIdHRwQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcigocmVzKSA9PiByZXMuanNvbigpLnRoZW4oQXBwbGljYXRpb25Db25maWdTY2hlbWEucGFyc2UpKTtcbiAqIGV4cG9ydCBjb25zdCB7IGluamVjdEFwcGxpY2F0aW9uRW52aXJvbm1lbnQsIGJvb3RzdHJhcEFwcGxpY2F0aW9uV2l0aEVudmlyb25tZW50IH0gPSBjcmVhdGVBcHBsaWNhdGlvbkVudmlyb25tZW50KGh0dHBFbnZpcm9ubWVudExvYWRlcik7XG4gKiBgYGBcbiAqIFRoaXMgZXhhbXBsZSBjcmVhdGVzIGFuIEhUVFAgZW52aXJvbm1lbnQgbG9hZGVyIHdoaWNoIHBhcnNlcyB0aGUgcmVzcG9uc2UgYXMgSlNPTiBhbmQgdmFsaWRhdGUgaXQgYWdhaW5zdCBhIHNjaGVtYVxuICpcbiAqIDIuIFByb3ZpZGUgdGhlIGFwcGxpY2F0aW9uIGVudmlyb25tZW50OlxuICogYGBgdHNcbiAqIGJvb3RzdHJhcEFwcGxpY2F0aW9uV2l0aEVudmlyb25tZW50KFsnYXNzZXRzL2NvbmZpZy5qc29uJ10sIEFwcENvbXBvbmVudCwgeyBwcm92aWRlcnM6IFtdIH0pO1xuICogYGBgXG4gKlxuICogMy4gVXNlIHRoZSBhcHBsaWNhdGlvbiBlbnZpcm9ubWVudCB2aWEgRElcbiAqIGBgYHRzXG4gKiBjbGFzcyBNeVNlcnZpY2Uge1xuICogICBwcml2YXRlIHJlYWRvbmx5IGVudmlyb25tZW50ID0gaW5qZWN0QXBwbGljYXRpb25FbnZpcm9ubWVudCgpO1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBcHBsaWNhdGlvbkVudmlyb25tZW50PERhdGEsIFBhcmFtcyBleHRlbmRzIHVua25vd25bXT4obG9hZGVyOiBBcHBsaWNhdGlvbkVudmlyb25tZW50TG9hZGVyPERhdGEsIFBhcmFtcz4pIHtcbiAgbGV0IGVudmlyb25tZW50OiBEYXRhO1xuICBjb25zdCBBUFBMSUNBVElPTl9FTlZJUk9OTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEYXRhPignQG9keC9hbmd1bGFyL3Nkazo6QXBwbGljYXRpb25FbnZpcm9ubWVudCcsIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gZW52aXJvbm1lbnQgYXMgRGF0YSxcbiAgfSk7XG5cbiAgZnVuY3Rpb24gaW5qZWN0QXBwbGljYXRpb25FbnZpcm9ubWVudCgpOiBEYXRhIHtcbiAgICByZXR1cm4gaW5qZWN0KEFQUExJQ0FUSU9OX0VOVklST05NRU5UKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGxvYWRBcHBsaWNhdGlvbkVudmlyb25tZW50KC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGxvYWRlcj4pOiBQcm9taXNlPERhdGE+IHtcbiAgICBlbnZpcm9ubWVudCA9IGF3YWl0IGxvYWRlciguLi5hcmdzKTtcbiAgICBpZiAoIWVudmlyb25tZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tAb2R4L2FuZ3VsYXIvc2RrXSBGYWlsZWQgbG9hZCBhcHBsaWNhdGlvbiBlbnZpcm9ubWVudCcpO1xuICAgIH1cbiAgICByZXR1cm4gZW52aXJvbm1lbnQ7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBib290c3RyYXBBcHBsaWNhdGlvbldpdGhFbnZpcm9ubWVudChcbiAgICBwYXJhbXM6IFBhcmFtZXRlcnM8dHlwZW9mIGxvYWRlcj4sXG4gICAgLi4uYXJnczogUGFyYW1ldGVyczx0eXBlb2YgYm9vdHN0cmFwQXBwbGljYXRpb24+XG4gICk6IFByb21pc2U8QXBwbGljYXRpb25SZWY+IHtcbiAgICBhd2FpdCBsb2FkQXBwbGljYXRpb25FbnZpcm9ubWVudCguLi5wYXJhbXMpO1xuXG4gICAgcmV0dXJuIGJvb3RzdHJhcEFwcGxpY2F0aW9uKC4uLmFyZ3MpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBBUFBMSUNBVElPTl9FTlZJUk9OTUVOVCxcbiAgICBpbmplY3RBcHBsaWNhdGlvbkVudmlyb25tZW50LFxuICAgIGJvb3RzdHJhcEFwcGxpY2F0aW9uV2l0aEVudmlyb25tZW50LFxuICAgIGxvYWRBcHBsaWNhdGlvbkVudmlyb25tZW50LFxuICB9O1xufVxuIl19
@@ -1,6 +1,5 @@
1
1
  import { InjectionToken, inject } from '@angular/core';
2
2
  import { bootstrapApplication } from '@angular/platform-browser';
3
- import { CacheStorageClient } from '@odx/angular/utils';
4
3
 
5
4
  /**
6
5
  * Creates a loader function for fetching application environment data over HTTP and caching it.
@@ -15,8 +14,9 @@ import { CacheStorageClient } from '@odx/angular/utils';
15
14
  * });
16
15
  */
17
16
  function createHttpApplicationEnvironmentLoader(handler) {
18
- const cache = new CacheStorageClient('@odx/angular/sdk::ApplicationEnvironment');
19
- return (...args) => cache.request(...args).then((dto) => handler(dto));
17
+ return (...args) => fetch(...args)
18
+ .then((res) => res.json())
19
+ .then((dto) => handler(dto));
20
20
  }
21
21
  /**
22
22
  * The application environment module can be used to load environment data before application startup,
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-sdk.mjs","sources":["../../../../libs/angular/sdk/src/lib/application-environment.ts","../../../../libs/angular/sdk/src/odx-angular-sdk.ts"],"sourcesContent":["import { ApplicationRef, inject, InjectionToken } from '@angular/core';\nimport { bootstrapApplication } from '@angular/platform-browser';\nimport { CacheStorageClient } from '@odx/angular/utils';\n\n/**\n * A function type definition for loading environment data for an application.\n * It's a generic loader function that accepts parameters and returns a Promise of environment data.\n *\n * @template EnvironmentData The type of the environment data to be loaded.\n * @template Params The types of the parameters accepted by the loader function.\n * @param {...Params} args - Parameters passed to the loader function.\n * @returns {Promise<EnvironmentData>} A promise resolving to the loaded environment data.\n */\nexport type ApplicationEnvironmentLoader<EnvironmentData, Params extends unknown[]> = (...args: Params) => Promise<EnvironmentData>;\n\n/**\n * Creates a loader function for fetching application environment data over HTTP and caching it.\n * Utilizes `CacheStorageClient` for caching the fetched data to optimize performance and reduce network load.\n *\n * @template Data The type of the data expected from the HTTP request.\n * @param {Function} handler - A function that processes the fetched data and returns a promise resolving to the desired environment data format.\n * @returns {ApplicationEnvironmentLoader<Data, Parameters<CacheStorageClient['request']>>} A loader function that fetches, caches, and processes environment data.\n * @example\n * const environmentLoader = createHttpApplicationEnvironmentLoader(async (dto) => {\n * return { apiEndpoint: dto.apiEndpoint, featureFlags: dto.featureFlags };\n * });\n */\nexport function createHttpApplicationEnvironmentLoader<Data>(\n handler: (dto: unknown) => Promise<Data>,\n): ApplicationEnvironmentLoader<Data, Parameters<CacheStorageClient['request']>> {\n const cache = new CacheStorageClient('@odx/angular/sdk::ApplicationEnvironment');\n\n return (...args: Parameters<CacheStorageClient['request']>) => cache.request<unknown>(...args).then((dto) => handler(dto));\n}\n\n/**\n * The application environment module can be used to load environment data before application startup,\n * that can be used to load environment variables from an external URL.\n *\n * @template Data The type of the environment data.\n * @template Params The types of the parameters accepted by the loader function.\n * @param {ApplicationEnvironmentLoader<Data, Params>} loader - A loader function that asynchronously loads the environment data.\n * @returns An object containing utilities for working with the application environment, including the InjectionToken\n * and functions for loading and bootstrapping the application with the environment.\n * @example\n * To add an application environment to your Angular application, follow the following steps:\n * 1. Create the application environment with your loader:\n * ```ts\n * import { createApplicationEnvironment, createHttpApplicationEnvironmentLoader } from '@odx/angular/sdk';\n * import { z } from 'zod';\n *\n * export const ApplicationConfigSchema = z.object({\n * environment: z.enum(['dev', 'stage', 'prod']),\n * appName: z.string().default('App'),\n * });\n *\n * const httpEnvironmentLoader = createHttpApplicationEnvironmentLoader((res) => res.json().then(ApplicationConfigSchema.parse));\n * export const { injectApplicationEnvironment, bootstrapApplicationWithEnvironment } = createApplicationEnvironment(httpEnvironmentLoader);\n * ```\n * This example creates an HTTP environment loader which parses the response as JSON and validate it against a schema\n *\n * 2. Provide the application environment:\n * ```ts\n * bootstrapApplicationWithEnvironment(['assets/config.json'], AppComponent, { providers: [] });\n * ```\n *\n * 3. Use the application environment via DI\n * ```ts\n * class MyService {\n * private readonly environment = injectApplicationEnvironment();\n * }\n * ```\n */\nexport function createApplicationEnvironment<Data, Params extends unknown[]>(loader: ApplicationEnvironmentLoader<Data, Params>) {\n let environment: Data;\n const APPLICATION_ENVIRONMENT = new InjectionToken<Data>('@odx/angular/sdk::ApplicationEnvironment', {\n providedIn: 'root',\n factory: () => environment as Data,\n });\n\n function injectApplicationEnvironment(): Data {\n return inject(APPLICATION_ENVIRONMENT);\n }\n\n async function loadApplicationEnvironment(...args: Parameters<typeof loader>): Promise<Data> {\n environment = await loader(...args);\n if (!environment) {\n throw new Error('[@odx/angular/sdk] Failed load application environment');\n }\n return environment;\n }\n\n async function bootstrapApplicationWithEnvironment(\n params: Parameters<typeof loader>,\n ...args: Parameters<typeof bootstrapApplication>\n ): Promise<ApplicationRef> {\n await loadApplicationEnvironment(...params);\n\n return bootstrapApplication(...args);\n }\n\n return {\n APPLICATION_ENVIRONMENT,\n injectApplicationEnvironment,\n bootstrapApplicationWithEnvironment,\n loadApplicationEnvironment,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAeA;;;;;;;;;;;AAWG;AACG,SAAU,sCAAsC,CACpD,OAAwC,EAAA;AAExC,IAAA,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,0CAA0C,CAAC,CAAC;IAEjF,OAAO,CAAC,GAAG,IAA+C,KAAK,KAAK,CAAC,OAAO,CAAU,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7H,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCG;AACG,SAAU,4BAA4B,CAAiC,MAAkD,EAAA;AAC7H,IAAA,IAAI,WAAiB,CAAC;AACtB,IAAA,MAAM,uBAAuB,GAAG,IAAI,cAAc,CAAO,0CAA0C,EAAE;AACnG,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,OAAO,EAAE,MAAM,WAAmB;AACnC,KAAA,CAAC,CAAC;AAEH,IAAA,SAAS,4BAA4B,GAAA;AACnC,QAAA,OAAO,MAAM,CAAC,uBAAuB,CAAC,CAAC;KACxC;AAED,IAAA,eAAe,0BAA0B,CAAC,GAAG,IAA+B,EAAA;AAC1E,QAAA,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAC3E,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;AAED,IAAA,eAAe,mCAAmC,CAChD,MAAiC,EACjC,GAAG,IAA6C,EAAA;AAEhD,QAAA,MAAM,0BAA0B,CAAC,GAAG,MAAM,CAAC,CAAC;AAE5C,QAAA,OAAO,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;KACtC;IAED,OAAO;QACL,uBAAuB;QACvB,4BAA4B;QAC5B,mCAAmC;QACnC,0BAA0B;KAC3B,CAAC;AACJ;;AC3GA;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-sdk.mjs","sources":["../../../../libs/angular/sdk/src/lib/application-environment.ts","../../../../libs/angular/sdk/src/odx-angular-sdk.ts"],"sourcesContent":["import { ApplicationRef, inject, InjectionToken } from '@angular/core';\nimport { bootstrapApplication } from '@angular/platform-browser';\n\n/**\n * A function type definition for loading environment data for an application.\n * It's a generic loader function that accepts parameters and returns a Promise of environment data.\n *\n * @template EnvironmentData The type of the environment data to be loaded.\n * @template Params The types of the parameters accepted by the loader function.\n * @param {...Params} args - Parameters passed to the loader function.\n * @returns {Promise<EnvironmentData>} A promise resolving to the loaded environment data.\n */\nexport type ApplicationEnvironmentLoader<EnvironmentData, Params extends unknown[]> = (...args: Params) => Promise<EnvironmentData>;\n\n/**\n * Creates a loader function for fetching application environment data over HTTP and caching it.\n * Utilizes `CacheStorageClient` for caching the fetched data to optimize performance and reduce network load.\n *\n * @template Data The type of the data expected from the HTTP request.\n * @param {Function} handler - A function that processes the fetched data and returns a promise resolving to the desired environment data format.\n * @returns {ApplicationEnvironmentLoader<Data, Parameters<CacheStorageClient['request']>>} A loader function that fetches, caches, and processes environment data.\n * @example\n * const environmentLoader = createHttpApplicationEnvironmentLoader(async (dto) => {\n * return { apiEndpoint: dto.apiEndpoint, featureFlags: dto.featureFlags };\n * });\n */\nexport function createHttpApplicationEnvironmentLoader<Data>(\n handler: (dto: unknown) => Promise<Data>,\n): ApplicationEnvironmentLoader<Data, Parameters<typeof fetch>> {\n return (...args: Parameters<typeof fetch>) =>\n fetch(...args)\n .then((res) => res.json())\n .then((dto) => handler(dto));\n}\n\n/**\n * The application environment module can be used to load environment data before application startup,\n * that can be used to load environment variables from an external URL.\n *\n * @template Data The type of the environment data.\n * @template Params The types of the parameters accepted by the loader function.\n * @param {ApplicationEnvironmentLoader<Data, Params>} loader - A loader function that asynchronously loads the environment data.\n * @returns An object containing utilities for working with the application environment, including the InjectionToken\n * and functions for loading and bootstrapping the application with the environment.\n * @example\n * To add an application environment to your Angular application, follow the following steps:\n * 1. Create the application environment with your loader:\n * ```ts\n * import { createApplicationEnvironment, createHttpApplicationEnvironmentLoader } from '@odx/angular/sdk';\n * import { z } from 'zod';\n *\n * export const ApplicationConfigSchema = z.object({\n * environment: z.enum(['dev', 'stage', 'prod']),\n * appName: z.string().default('App'),\n * });\n *\n * const httpEnvironmentLoader = createHttpApplicationEnvironmentLoader((res) => res.json().then(ApplicationConfigSchema.parse));\n * export const { injectApplicationEnvironment, bootstrapApplicationWithEnvironment } = createApplicationEnvironment(httpEnvironmentLoader);\n * ```\n * This example creates an HTTP environment loader which parses the response as JSON and validate it against a schema\n *\n * 2. Provide the application environment:\n * ```ts\n * bootstrapApplicationWithEnvironment(['assets/config.json'], AppComponent, { providers: [] });\n * ```\n *\n * 3. Use the application environment via DI\n * ```ts\n * class MyService {\n * private readonly environment = injectApplicationEnvironment();\n * }\n * ```\n */\nexport function createApplicationEnvironment<Data, Params extends unknown[]>(loader: ApplicationEnvironmentLoader<Data, Params>) {\n let environment: Data;\n const APPLICATION_ENVIRONMENT = new InjectionToken<Data>('@odx/angular/sdk::ApplicationEnvironment', {\n providedIn: 'root',\n factory: () => environment as Data,\n });\n\n function injectApplicationEnvironment(): Data {\n return inject(APPLICATION_ENVIRONMENT);\n }\n\n async function loadApplicationEnvironment(...args: Parameters<typeof loader>): Promise<Data> {\n environment = await loader(...args);\n if (!environment) {\n throw new Error('[@odx/angular/sdk] Failed load application environment');\n }\n return environment;\n }\n\n async function bootstrapApplicationWithEnvironment(\n params: Parameters<typeof loader>,\n ...args: Parameters<typeof bootstrapApplication>\n ): Promise<ApplicationRef> {\n await loadApplicationEnvironment(...params);\n\n return bootstrapApplication(...args);\n }\n\n return {\n APPLICATION_ENVIRONMENT,\n injectApplicationEnvironment,\n bootstrapApplicationWithEnvironment,\n loadApplicationEnvironment,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAcA;;;;;;;;;;;AAWG;AACG,SAAU,sCAAsC,CACpD,OAAwC,EAAA;IAExC,OAAO,CAAC,GAAG,IAA8B,KACvC,KAAK,CAAC,GAAG,IAAI,CAAC;SACX,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;SACzB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCG;AACG,SAAU,4BAA4B,CAAiC,MAAkD,EAAA;AAC7H,IAAA,IAAI,WAAiB,CAAC;AACtB,IAAA,MAAM,uBAAuB,GAAG,IAAI,cAAc,CAAO,0CAA0C,EAAE;AACnG,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,OAAO,EAAE,MAAM,WAAmB;AACnC,KAAA,CAAC,CAAC;AAEH,IAAA,SAAS,4BAA4B,GAAA;AACnC,QAAA,OAAO,MAAM,CAAC,uBAAuB,CAAC,CAAC;KACxC;AAED,IAAA,eAAe,0BAA0B,CAAC,GAAG,IAA+B,EAAA;AAC1E,QAAA,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAC3E,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;AAED,IAAA,eAAe,mCAAmC,CAChD,MAAiC,EACjC,GAAG,IAA6C,EAAA;AAEhD,QAAA,MAAM,0BAA0B,CAAC,GAAG,MAAM,CAAC,CAAC;AAE5C,QAAA,OAAO,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;KACtC;IAED,OAAO;QACL,uBAAuB;QACvB,4BAA4B;QAC5B,mCAAmC;QACnC,0BAA0B;KAC3B,CAAC;AACJ;;AC3GA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/angular",
3
- "version": "8.1.0",
3
+ "version": "9.0.0",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
@@ -1,5 +1,4 @@
1
1
  import { ApplicationRef, InjectionToken } from '@angular/core';
2
- import { CacheStorageClient } from '@odx/angular/utils';
3
2
  /**
4
3
  * A function type definition for loading environment data for an application.
5
4
  * It's a generic loader function that accepts parameters and returns a Promise of environment data.
@@ -22,7 +21,7 @@ export type ApplicationEnvironmentLoader<EnvironmentData, Params extends unknown
22
21
  * return { apiEndpoint: dto.apiEndpoint, featureFlags: dto.featureFlags };
23
22
  * });
24
23
  */
25
- export declare function createHttpApplicationEnvironmentLoader<Data>(handler: (dto: unknown) => Promise<Data>): ApplicationEnvironmentLoader<Data, Parameters<CacheStorageClient['request']>>;
24
+ export declare function createHttpApplicationEnvironmentLoader<Data>(handler: (dto: unknown) => Promise<Data>): ApplicationEnvironmentLoader<Data, Parameters<typeof fetch>>;
26
25
  /**
27
26
  * The application environment module can be used to load environment data before application startup,
28
27
  * that can be used to load environment variables from an external URL.