@indice/ng-config 0.0.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/README.md ADDED
@@ -0,0 +1,6 @@
1
+ # NgConfig
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.0.
4
+
5
+ It's a library that provides runtime configuration objects after retrieving from a remote config file.
6
+
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kaWNlLW5nLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZy9zcmMvaW5kaWNlLW5nLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,70 @@
1
+ import { computed, Inject, inject, Injectable, signal } from '@angular/core';
2
+ import cloneDeep from 'lodash/cloneDeep';
3
+ import merge from 'lodash/merge';
4
+ import { of } from 'rxjs';
5
+ import { catchError, map, tap } from 'rxjs/operators';
6
+ import { SettingsDataService } from './settings.service';
7
+ import { APP_ENVIRONMENT, APP_SETTINGS, APP_PROVIDERS_ARRAY, IAUTH_SETTINGS } from './tokens';
8
+ import * as i0 from "@angular/core";
9
+ const initialState = {
10
+ settings: {
11
+ isServed: false,
12
+ api_url: '',
13
+ api_docs: '',
14
+ auth_settings: {},
15
+ culture: '',
16
+ isTemplate: false,
17
+ production: false,
18
+ version: ''
19
+ },
20
+ };
21
+ export class SettingsFacadeService {
22
+ #settingsDataService;
23
+ #environment;
24
+ #state;
25
+ constructor(tokenAppsettings, appProvidersArray, authSettings) {
26
+ this.tokenAppsettings = tokenAppsettings;
27
+ this.appProvidersArray = appProvidersArray;
28
+ this.authSettings = authSettings;
29
+ this.#settingsDataService = inject(SettingsDataService);
30
+ this.#environment = inject(APP_ENVIRONMENT);
31
+ this.#state = signal(initialState);
32
+ this.settings = computed(() => this.#state().settings);
33
+ }
34
+ getAppDependencies() {
35
+ return this.appProvidersArray?.dependencies;
36
+ }
37
+ loadSettings() {
38
+ return this.#settingsDataService.getAppSettings().pipe(tap((settings) => console.log(settings)), map((settings) => {
39
+ let runtimeSettings = merge(cloneDeep(this.#environment), settings);
40
+ // Assign settings directly to the appSettings object
41
+ Object.assign(this.tokenAppsettings, runtimeSettings);
42
+ Object.assign(this.authSettings, this.tokenAppsettings.auth_settings);
43
+ // Update the state
44
+ this.#state.set({ settings: this.tokenAppsettings });
45
+ return true; // Indicate successful loading
46
+ }), catchError((error) => {
47
+ // Log the error and provide fallback behavior
48
+ console.error('Failed to load settings:', error);
49
+ return of(false); // Return false to indicate failure
50
+ }));
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsFacadeService, deps: [{ token: APP_SETTINGS }, { token: APP_PROVIDERS_ARRAY }, { token: IAUTH_SETTINGS }], target: i0.ɵɵFactoryTarget.Injectable }); }
53
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsFacadeService, providedIn: 'root' }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsFacadeService, decorators: [{
56
+ type: Injectable,
57
+ args: [{
58
+ providedIn: 'root',
59
+ }]
60
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
61
+ type: Inject,
62
+ args: [APP_SETTINGS]
63
+ }] }, { type: undefined, decorators: [{
64
+ type: Inject,
65
+ args: [APP_PROVIDERS_ARRAY]
66
+ }] }, { type: undefined, decorators: [{
67
+ type: Inject,
68
+ args: [IAUTH_SETTINGS]
69
+ }] }] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZmFjYWRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWcvc3JjL2xpYi9zZXR0aW5ncy1mYWNhZGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQW9CLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUU5RixNQUFNLFlBQVksR0FBK0I7SUFDN0MsUUFBUSxFQUFFO1FBQ04sUUFBUSxFQUFFLEtBQUs7UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLFFBQVEsRUFBRSxFQUFFO1FBQ1osYUFBYSxFQUFFLEVBQW1CO1FBQ2xDLE9BQU8sRUFBRSxFQUFFO1FBQ1gsVUFBVSxFQUFFLEtBQUs7UUFDakIsVUFBVSxFQUFFLEtBQUs7UUFDakIsT0FBTyxFQUFFLEVBQUU7S0FDZDtDQUNKLENBQUM7QUFLRixNQUFNLE9BQU8scUJBQXFCO0lBQ3JCLG9CQUFvQixDQUErQjtJQUNuRCxZQUFZLENBQTJCO0lBRXZDLE1BQU0sQ0FBd0I7SUFHdkMsWUFDa0MsZ0JBQThCLEVBQ3ZCLGlCQUFvQyxFQUN6QyxZQUEwQjtRQUY1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWM7UUFDdkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUN6QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVRyRCx5QkFBb0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRCxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV2QyxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlCLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBS08sQ0FBQztJQUVuRSxrQkFBa0I7UUFDZCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUM7SUFDaEQsQ0FBQztJQUdELFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUN4QyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3BFLHFEQUFxRDtZQUNyRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUN0RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRXRFLG1CQUFtQjtZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1lBRXJELE9BQU8sSUFBSSxDQUFDLENBQUMsOEJBQThCO1FBQy9DLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pCLDhDQUE4QztZQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRWpELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsbUNBQW1DO1FBQ3pELENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOzhHQXRDUSxxQkFBcUIsa0JBUWxCLFlBQVksYUFDWixtQkFBbUIsYUFDbkIsY0FBYztrSEFWakIscUJBQXFCLGNBRmxCLE1BQU07OzJGQUVULHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQVNRLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIGNvbXB1dGVkLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgaW5qZWN0LFxyXG4gICAgSW5qZWN0YWJsZSxcclxuICAgIHNpZ25hbFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xyXG5pbXBvcnQgbWVyZ2UgZnJvbSAnbG9kYXNoL21lcmdlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFwcFNldHRpbmdzU3RhdGUsIFNldHRpbmdzRGF0YVNlcnZpY2UgfSBmcm9tICcuL3NldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJQXBwU2V0dGluZ3MsIElBdXRoU2V0dGluZ3MsIEFwcFByb3ZpZGVyc0FycmF5IH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IEFQUF9FTlZJUk9OTUVOVCwgQVBQX1NFVFRJTkdTLCBBUFBfUFJPVklERVJTX0FSUkFZLCBJQVVUSF9TRVRUSU5HUyB9IGZyb20gJy4vdG9rZW5zJztcclxuXHJcbmNvbnN0IGluaXRpYWxTdGF0ZTogUmVhZG9ubHk8QXBwU2V0dGluZ3NTdGF0ZT4gPSB7XHJcbiAgICBzZXR0aW5nczoge1xyXG4gICAgICAgIGlzU2VydmVkOiBmYWxzZSxcclxuICAgICAgICBhcGlfdXJsOiAnJyxcclxuICAgICAgICBhcGlfZG9jczogJycsXHJcbiAgICAgICAgYXV0aF9zZXR0aW5nczoge30gYXMgSUF1dGhTZXR0aW5ncyxcclxuICAgICAgICBjdWx0dXJlOiAnJyxcclxuICAgICAgICBpc1RlbXBsYXRlOiBmYWxzZSxcclxuICAgICAgICBwcm9kdWN0aW9uOiBmYWxzZSxcclxuICAgICAgICB2ZXJzaW9uOiAnJ1xyXG4gICAgfSxcclxufTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzRmFjYWRlU2VydmljZSB7XHJcbiAgICByZWFkb25seSAjc2V0dGluZ3NEYXRhU2VydmljZSA9IGluamVjdChTZXR0aW5nc0RhdGFTZXJ2aWNlKTtcclxuICAgIHJlYWRvbmx5ICNlbnZpcm9ubWVudCA9IGluamVjdChBUFBfRU5WSVJPTk1FTlQpO1xyXG5cclxuICAgIHJlYWRvbmx5ICNzdGF0ZSA9IHNpZ25hbChpbml0aWFsU3RhdGUpO1xyXG4gICAgcmVhZG9ubHkgc2V0dGluZ3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLiNzdGF0ZSgpLnNldHRpbmdzKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEFQUF9TRVRUSU5HUykgcHJpdmF0ZSB0b2tlbkFwcHNldHRpbmdzOiBJQXBwU2V0dGluZ3MsXHJcbiAgICAgICAgQEluamVjdChBUFBfUFJPVklERVJTX0FSUkFZKSBwcml2YXRlIGFwcFByb3ZpZGVyc0FycmF5OiBBcHBQcm92aWRlcnNBcnJheSxcclxuICAgICAgICBASW5qZWN0KElBVVRIX1NFVFRJTkdTKSBwcml2YXRlIGF1dGhTZXR0aW5nczogSUFwcFNldHRpbmdzKSB7IH1cclxuXHJcbiAgICBnZXRBcHBEZXBlbmRlbmNpZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwUHJvdmlkZXJzQXJyYXk/LmRlcGVuZGVuY2llcztcclxuICAgIH1cclxuXHJcblxyXG4gICAgbG9hZFNldHRpbmdzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNzZXR0aW5nc0RhdGFTZXJ2aWNlLmdldEFwcFNldHRpbmdzKCkucGlwZShcclxuICAgICAgICAgICAgdGFwKChzZXR0aW5ncykgPT4gY29uc29sZS5sb2coc2V0dGluZ3MpKSxcclxuICAgICAgICAgICAgbWFwKChzZXR0aW5ncykgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJ1bnRpbWVTZXR0aW5ncyA9IG1lcmdlKGNsb25lRGVlcCh0aGlzLiNlbnZpcm9ubWVudCksIHNldHRpbmdzKTtcclxuICAgICAgICAgICAgICAgIC8vIEFzc2lnbiBzZXR0aW5ncyBkaXJlY3RseSB0byB0aGUgYXBwU2V0dGluZ3Mgb2JqZWN0XHJcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMudG9rZW5BcHBzZXR0aW5ncywgcnVudGltZVNldHRpbmdzKTtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5hdXRoU2V0dGluZ3MsIHRoaXMudG9rZW5BcHBzZXR0aW5ncy5hdXRoX3NldHRpbmdzKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHN0YXRlXHJcbiAgICAgICAgICAgICAgICB0aGlzLiNzdGF0ZS5zZXQoeyBzZXR0aW5nczogdGhpcy50b2tlbkFwcHNldHRpbmdzIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBJbmRpY2F0ZSBzdWNjZXNzZnVsIGxvYWRpbmdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBMb2cgdGhlIGVycm9yIGFuZCBwcm92aWRlIGZhbGxiYWNrIGJlaGF2aW9yXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBzZXR0aW5nczonLCBlcnJvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTsgLy8gUmV0dXJuIGZhbHNlIHRvIGluZGljYXRlIGZhaWx1cmVcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,51 @@
1
+ import { APP_INITIALIZER, Injector, makeEnvironmentProviders } from '@angular/core';
2
+ import { lastValueFrom } from 'rxjs';
3
+ import { SettingsFacadeService } from './settings-facade.service';
4
+ import { APP_ENVIRONMENT, APP_PROVIDERS_ARRAY, APP_SETTINGS, APP_SETTINGS_MANIFEST_URL, IAUTH_SETTINGS } from './tokens';
5
+ export function initializeAppSettings(appSettingsFacade) {
6
+ return async () => {
7
+ // Wait for settings to load
8
+ const success = await lastValueFrom(appSettingsFacade.loadSettings());
9
+ if (success) {
10
+ const dependencies = appSettingsFacade.getAppDependencies();
11
+ // Create a child injector with the dependencies
12
+ Injector.create({ providers: dependencies });
13
+ }
14
+ else {
15
+ console.error('Failed to initialize app settings.');
16
+ throw new Error('App settings could not be loaded.');
17
+ }
18
+ };
19
+ }
20
+ export function provideAppSettings(config = {}) {
21
+ return makeEnvironmentProviders([
22
+ {
23
+ provide: APP_SETTINGS_MANIFEST_URL,
24
+ useValue: '/assets/app-settings.manifest.json'
25
+ },
26
+ {
27
+ provide: APP_PROVIDERS_ARRAY,
28
+ useValue: config.dependencies || []
29
+ },
30
+ {
31
+ provide: APP_SETTINGS,
32
+ useValue: {} // Provide an empty object initially
33
+ },
34
+ {
35
+ provide: APP_ENVIRONMENT,
36
+ useValue: {}
37
+ },
38
+ {
39
+ provide: APP_INITIALIZER,
40
+ useFactory: initializeAppSettings,
41
+ deps: [SettingsFacadeService], // Add Injector to deps
42
+ multi: true,
43
+ },
44
+ {
45
+ provide: IAUTH_SETTINGS,
46
+ useFactory: (runtimeSettings) => runtimeSettings.auth_settings,
47
+ deps: [APP_SETTINGS],
48
+ }
49
+ ]);
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtaW5pdGlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWcvc3JjL2xpYi9zZXR0aW5ncy1pbml0aWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUVmLFFBQVEsRUFDUix3QkFBd0IsRUFDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSx5QkFBeUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHekgsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxpQkFBd0M7SUFFeEMsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNoQiw0QkFBNEI7UUFDNUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUV0RSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsa0JBQWtCLEVBQVcsQ0FBQztZQUNyRSxnREFBZ0Q7WUFDaEQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUE0QixFQUFFO0lBQy9ELE9BQU8sd0JBQXdCLENBQUM7UUFDOUI7WUFDRSxPQUFPLEVBQUUseUJBQXlCO1lBQ2xDLFFBQVEsRUFBRSxvQ0FBb0M7U0FDL0M7UUFDRDtZQUNFLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRTtTQUNwQztRQUNEO1lBQ0UsT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLEVBQUUsQ0FBQyxvQ0FBb0M7U0FDbEQ7UUFDRDtZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFFBQVEsRUFBRSxFQUFFO1NBQ2I7UUFDRDtZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxxQkFBcUI7WUFDakMsSUFBSSxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSx1QkFBdUI7WUFDdEQsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGNBQWM7WUFDdkIsVUFBVSxFQUFFLENBQUMsZUFBNkIsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLGFBQWE7WUFDNUUsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQ3JCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQVBQX0lOSVRJQUxJWkVSLFxyXG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxyXG4gIEluamVjdG9yLFxyXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVyc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNldHRpbmdzRmFjYWRlU2VydmljZSB9IGZyb20gJy4vc2V0dGluZ3MtZmFjYWRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBUFBfRU5WSVJPTk1FTlQsIEFQUF9QUk9WSURFUlNfQVJSQVksIEFQUF9TRVRUSU5HUywgQVBQX1NFVFRJTkdTX01BTklGRVNUX1VSTCwgSUFVVEhfU0VUVElOR1MgfSBmcm9tICcuL3Rva2Vucyc7XHJcbmltcG9ydCB7IEFwcFByb3ZpZGVyc0FycmF5LCBJQXBwU2V0dGluZ3MgfSBmcm9tICcuL3R5cGVzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplQXBwU2V0dGluZ3MoXHJcbiAgYXBwU2V0dGluZ3NGYWNhZGU6IFNldHRpbmdzRmFjYWRlU2VydmljZSxcclxuKSB7XHJcbiAgcmV0dXJuIGFzeW5jICgpID0+IHtcclxuICAgIC8vIFdhaXQgZm9yIHNldHRpbmdzIHRvIGxvYWRcclxuICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKGFwcFNldHRpbmdzRmFjYWRlLmxvYWRTZXR0aW5ncygpKTtcclxuXHJcbiAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBhcHBTZXR0aW5nc0ZhY2FkZS5nZXRBcHBEZXBlbmRlbmNpZXMoKSBhcyBhbnlbXTtcclxuICAgICAgLy8gQ3JlYXRlIGEgY2hpbGQgaW5qZWN0b3Igd2l0aCB0aGUgZGVwZW5kZW5jaWVzXHJcbiAgICAgIEluamVjdG9yLmNyZWF0ZSh7IHByb3ZpZGVyczogZGVwZW5kZW5jaWVzIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgYXBwIHNldHRpbmdzLicpO1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FwcCBzZXR0aW5ncyBjb3VsZCBub3QgYmUgbG9hZGVkLicpO1xyXG4gICAgfVxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQXBwU2V0dGluZ3MoY29uZmlnOiBBcHBQcm92aWRlcnNBcnJheSA9IHt9KTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xyXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBBUFBfU0VUVElOR1NfTUFOSUZFU1RfVVJMLFxyXG4gICAgICB1c2VWYWx1ZTogJy9hc3NldHMvYXBwLXNldHRpbmdzLm1hbmlmZXN0Lmpzb24nXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBBUFBfUFJPVklERVJTX0FSUkFZLFxyXG4gICAgICB1c2VWYWx1ZTogY29uZmlnLmRlcGVuZGVuY2llcyB8fCBbXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQVBQX1NFVFRJTkdTLCBcclxuICAgICAgdXNlVmFsdWU6IHt9IC8vIFByb3ZpZGUgYW4gZW1wdHkgb2JqZWN0IGluaXRpYWxseVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQVBQX0VOVklST05NRU5ULFxyXG4gICAgICB1c2VWYWx1ZToge31cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgdXNlRmFjdG9yeTogaW5pdGlhbGl6ZUFwcFNldHRpbmdzLFxyXG4gICAgICBkZXBzOiBbU2V0dGluZ3NGYWNhZGVTZXJ2aWNlXSwgLy8gQWRkIEluamVjdG9yIHRvIGRlcHNcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBJQVVUSF9TRVRUSU5HUyxcclxuICAgICAgdXNlRmFjdG9yeTogKHJ1bnRpbWVTZXR0aW5nczogSUFwcFNldHRpbmdzKSA9PiBydW50aW1lU2V0dGluZ3MuYXV0aF9zZXR0aW5ncyxcclxuICAgICAgZGVwczogW0FQUF9TRVRUSU5HU10sXHJcbiAgICB9XHJcbiAgXSk7XHJcbn0iXX0=
@@ -0,0 +1,23 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { APP_SETTINGS_MANIFEST_URL } from './tokens';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ export class SettingsDataService {
7
+ constructor(handler) {
8
+ this.APP_SETTINGS_MANIFEST_URL = inject(APP_SETTINGS_MANIFEST_URL);
9
+ this.http = new HttpClient(handler);
10
+ }
11
+ getAppSettings() {
12
+ return this.http.get(this.APP_SETTINGS_MANIFEST_URL);
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsDataService, deps: [{ token: i1.HttpBackend }], target: i0.ɵɵFactoryTarget.Injectable }); }
15
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsDataService, providedIn: 'root' }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsDataService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root',
21
+ }]
22
+ }], ctorParameters: () => [{ type: i1.HttpBackend }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZy9zcmMvbGliL3NldHRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBS3JELE1BQU0sT0FBTyxtQkFBbUI7SUFHNUIsWUFBWSxPQUFvQjtRQUR4Qiw4QkFBeUIsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUVsRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZSxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUN2RSxDQUFDOzhHQVRRLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmhCLE1BQU07OzJGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEJhY2tlbmQsIEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFQUF9TRVRUSU5HU19NQU5JRkVTVF9VUkwgfSBmcm9tICcuL3Rva2Vucyc7XHJcbmltcG9ydCB7IElBcHBTZXR0aW5ncyB9IGZyb20gJy4vdHlwZXMnO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0RhdGFTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudDtcclxuICAgIHByaXZhdGUgQVBQX1NFVFRJTkdTX01BTklGRVNUX1VSTCA9IGluamVjdChBUFBfU0VUVElOR1NfTUFOSUZFU1RfVVJMKTtcclxuICAgIGNvbnN0cnVjdG9yKGhhbmRsZXI6IEh0dHBCYWNrZW5kKSB7XHJcbiAgICAgICAgdGhpcy5odHRwID0gbmV3IEh0dHBDbGllbnQoaGFuZGxlcik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXBwU2V0dGluZ3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SUFwcFNldHRpbmdzPih0aGlzLkFQUF9TRVRUSU5HU19NQU5JRkVTVF9VUkwpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBcHBTZXR0aW5nc1N0YXRlID0ge1xyXG4gICAgc2V0dGluZ3M6IElBcHBTZXR0aW5ncyB8IG51bGw7XHJcbn07XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export const APP_SETTINGS = new InjectionToken('APP_SETTINGS');
3
+ export const IAUTH_SETTINGS = new InjectionToken('IAUTH_SETTINGS');
4
+ export const APP_ENVIRONMENT = new InjectionToken('APP_ENVIRONMENT');
5
+ export const APP_PROVIDERS_ARRAY = new InjectionToken('APP_PROVIDERS_ARRAY');
6
+ export const APP_SETTINGS_MANIFEST_URL = new InjectionToken('APP_SETTINGS_MANIFEST_URL');
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnL3NyYy9saWIvdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFlLGNBQWMsQ0FBQyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBZ0IsZ0JBQWdCLENBQUMsQ0FBQztBQUNsRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQU0saUJBQWlCLENBQUMsQ0FBQztBQUMxRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBb0IscUJBQXFCLENBQUMsQ0FBQztBQUNoRyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBUywyQkFBMkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBJQXBwU2V0dGluZ3MsIEFwcFByb3ZpZGVyc0FycmF5LCBJQXV0aFNldHRpbmdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBBUFBfU0VUVElOR1MgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUFwcFNldHRpbmdzPignQVBQX1NFVFRJTkdTJyk7XHJcbmV4cG9ydCBjb25zdCBJQVVUSF9TRVRUSU5HUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQXV0aFNldHRpbmdzPignSUFVVEhfU0VUVElOR1MnKTtcclxuZXhwb3J0IGNvbnN0IEFQUF9FTlZJUk9OTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdBUFBfRU5WSVJPTk1FTlQnKTtcclxuZXhwb3J0IGNvbnN0IEFQUF9QUk9WSURFUlNfQVJSQVkgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXBwUHJvdmlkZXJzQXJyYXk+KCdBUFBfUFJPVklERVJTX0FSUkFZJyk7XHJcbmV4cG9ydCBjb25zdCBBUFBfU0VUVElOR1NfTUFOSUZFU1RfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0FQUF9TRVRUSU5HU19NQU5JRkVTVF9VUkwnKTsiXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWcvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFwcFNldHRpbmdzIHtcclxuICAgIFtpbmRleDogc3RyaW5nXTogYW55O1xyXG4gICAgYXBpX3VybDogc3RyaW5nO1xyXG4gICAgYXBpX2RvY3M6IHN0cmluZztcclxuICAgIGF1dGhfc2V0dGluZ3M6IElBdXRoU2V0dGluZ3M7XHJcbiAgICBjdWx0dXJlOiBzdHJpbmc7XHJcbiAgICBpc1RlbXBsYXRlOiBib29sZWFuO1xyXG4gICAgcHJvZHVjdGlvbjogYm9vbGVhbjtcclxuICAgIHZlcnNpb246IHN0cmluZztcclxuICAgIGlzU2VydmVkOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElBdXRoU2V0dGluZ3Mge1xyXG4gICAgW2luZGV4OiBzdHJpbmddOiBhbnk7XHJcbiAgICBhdXRob3JpdHk6IHN0cmluZztcclxuICAgIGNsaWVudF9pZDogc3RyaW5nO1xyXG4gICAgZmlsdGVyUHJvdG9jb2xDbGFpbXM6IGJvb2xlYW47XHJcbiAgICBsb2FkVXNlckluZm86IGJvb2xlYW47XHJcbiAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IHN0cmluZztcclxuICAgIHJlZGlyZWN0X3VyaTogc3RyaW5nO1xyXG4gICAgcmVzcG9uc2VfdHlwZTogc3RyaW5nO1xyXG4gICAgc2NvcGU6IHN0cmluZztcclxuICAgIHNpbGVudF9yZWRpcmVjdF91cmk6IHN0cmluZztcclxuICAgIHJldm9rZUFjY2Vzc1Rva2VuT25TaWdub3V0OiBib29sZWFuO1xyXG4gICAgYWNjZXNzVG9rZW5FeHBpcmluZ05vdGlmaWNhdGlvblRpbWU6IG51bWJlcjtcclxuICAgIG1vbml0b3JTZXNzaW9uOiBib29sZWFuO1xyXG4gICAgYXV0b21hdGljU2lsZW50UmVuZXc6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBwUHJvdmlkZXJzQXJyYXkge1xyXG4gICAgZGVwZW5kZW5jaWVzPzogYW55W107XHJcbiAgICBtYW5pZmVzdFVybD86IHN0cmluZztcclxufSJdfQ==
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Public API Surface of ng-conf
3
+ */
4
+ export * from './lib/tokens';
5
+ export * from './lib/settings.service';
6
+ export * from './lib/settings-initializer';
7
+ export * from './lib/settings-facade.service';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nLWNvbmZcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXR0aW5ncy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2V0dGluZ3MtaW5pdGlhbGl6ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXR0aW5ncy1mYWNhZGUuc2VydmljZSc7XHJcbiJdfQ==
@@ -0,0 +1,152 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, signal, computed, Inject, Injector, makeEnvironmentProviders, APP_INITIALIZER } from '@angular/core';
3
+ import * as i1 from '@angular/common/http';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import { of, lastValueFrom } from 'rxjs';
6
+ import cloneDeep from 'lodash/cloneDeep';
7
+ import merge from 'lodash/merge';
8
+ import { tap, map, catchError } from 'rxjs/operators';
9
+
10
+ const APP_SETTINGS = new InjectionToken('APP_SETTINGS');
11
+ const IAUTH_SETTINGS = new InjectionToken('IAUTH_SETTINGS');
12
+ const APP_ENVIRONMENT = new InjectionToken('APP_ENVIRONMENT');
13
+ const APP_PROVIDERS_ARRAY = new InjectionToken('APP_PROVIDERS_ARRAY');
14
+ const APP_SETTINGS_MANIFEST_URL = new InjectionToken('APP_SETTINGS_MANIFEST_URL');
15
+
16
+ class SettingsDataService {
17
+ constructor(handler) {
18
+ this.APP_SETTINGS_MANIFEST_URL = inject(APP_SETTINGS_MANIFEST_URL);
19
+ this.http = new HttpClient(handler);
20
+ }
21
+ getAppSettings() {
22
+ return this.http.get(this.APP_SETTINGS_MANIFEST_URL);
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsDataService, deps: [{ token: i1.HttpBackend }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsDataService, providedIn: 'root' }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsDataService, decorators: [{
28
+ type: Injectable,
29
+ args: [{
30
+ providedIn: 'root',
31
+ }]
32
+ }], ctorParameters: () => [{ type: i1.HttpBackend }] });
33
+
34
+ const initialState = {
35
+ settings: {
36
+ isServed: false,
37
+ api_url: '',
38
+ api_docs: '',
39
+ auth_settings: {},
40
+ culture: '',
41
+ isTemplate: false,
42
+ production: false,
43
+ version: ''
44
+ },
45
+ };
46
+ class SettingsFacadeService {
47
+ #settingsDataService;
48
+ #environment;
49
+ #state;
50
+ constructor(tokenAppsettings, appProvidersArray, authSettings) {
51
+ this.tokenAppsettings = tokenAppsettings;
52
+ this.appProvidersArray = appProvidersArray;
53
+ this.authSettings = authSettings;
54
+ this.#settingsDataService = inject(SettingsDataService);
55
+ this.#environment = inject(APP_ENVIRONMENT);
56
+ this.#state = signal(initialState);
57
+ this.settings = computed(() => this.#state().settings);
58
+ }
59
+ getAppDependencies() {
60
+ return this.appProvidersArray?.dependencies;
61
+ }
62
+ loadSettings() {
63
+ return this.#settingsDataService.getAppSettings().pipe(tap((settings) => console.log(settings)), map((settings) => {
64
+ let runtimeSettings = merge(cloneDeep(this.#environment), settings);
65
+ // Assign settings directly to the appSettings object
66
+ Object.assign(this.tokenAppsettings, runtimeSettings);
67
+ Object.assign(this.authSettings, this.tokenAppsettings.auth_settings);
68
+ // Update the state
69
+ this.#state.set({ settings: this.tokenAppsettings });
70
+ return true; // Indicate successful loading
71
+ }), catchError((error) => {
72
+ // Log the error and provide fallback behavior
73
+ console.error('Failed to load settings:', error);
74
+ return of(false); // Return false to indicate failure
75
+ }));
76
+ }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsFacadeService, deps: [{ token: APP_SETTINGS }, { token: APP_PROVIDERS_ARRAY }, { token: IAUTH_SETTINGS }], target: i0.ɵɵFactoryTarget.Injectable }); }
78
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsFacadeService, providedIn: 'root' }); }
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SettingsFacadeService, decorators: [{
81
+ type: Injectable,
82
+ args: [{
83
+ providedIn: 'root',
84
+ }]
85
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
86
+ type: Inject,
87
+ args: [APP_SETTINGS]
88
+ }] }, { type: undefined, decorators: [{
89
+ type: Inject,
90
+ args: [APP_PROVIDERS_ARRAY]
91
+ }] }, { type: undefined, decorators: [{
92
+ type: Inject,
93
+ args: [IAUTH_SETTINGS]
94
+ }] }] });
95
+
96
+ function initializeAppSettings(appSettingsFacade) {
97
+ return async () => {
98
+ // Wait for settings to load
99
+ const success = await lastValueFrom(appSettingsFacade.loadSettings());
100
+ if (success) {
101
+ const dependencies = appSettingsFacade.getAppDependencies();
102
+ // Create a child injector with the dependencies
103
+ Injector.create({ providers: dependencies });
104
+ }
105
+ else {
106
+ console.error('Failed to initialize app settings.');
107
+ throw new Error('App settings could not be loaded.');
108
+ }
109
+ };
110
+ }
111
+ function provideAppSettings(config = {}) {
112
+ return makeEnvironmentProviders([
113
+ {
114
+ provide: APP_SETTINGS_MANIFEST_URL,
115
+ useValue: '/assets/app-settings.manifest.json'
116
+ },
117
+ {
118
+ provide: APP_PROVIDERS_ARRAY,
119
+ useValue: config.dependencies || []
120
+ },
121
+ {
122
+ provide: APP_SETTINGS,
123
+ useValue: {} // Provide an empty object initially
124
+ },
125
+ {
126
+ provide: APP_ENVIRONMENT,
127
+ useValue: {}
128
+ },
129
+ {
130
+ provide: APP_INITIALIZER,
131
+ useFactory: initializeAppSettings,
132
+ deps: [SettingsFacadeService], // Add Injector to deps
133
+ multi: true,
134
+ },
135
+ {
136
+ provide: IAUTH_SETTINGS,
137
+ useFactory: (runtimeSettings) => runtimeSettings.auth_settings,
138
+ deps: [APP_SETTINGS],
139
+ }
140
+ ]);
141
+ }
142
+
143
+ /*
144
+ * Public API Surface of ng-conf
145
+ */
146
+
147
+ /**
148
+ * Generated bundle index. Do not edit.
149
+ */
150
+
151
+ export { APP_ENVIRONMENT, APP_PROVIDERS_ARRAY, APP_SETTINGS, APP_SETTINGS_MANIFEST_URL, IAUTH_SETTINGS, SettingsDataService, SettingsFacadeService, initializeAppSettings, provideAppSettings };
152
+ //# sourceMappingURL=indice-ng-config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indice-ng-config.mjs","sources":["../../../projects/ng-config/src/lib/tokens.ts","../../../projects/ng-config/src/lib/settings.service.ts","../../../projects/ng-config/src/lib/settings-facade.service.ts","../../../projects/ng-config/src/lib/settings-initializer.ts","../../../projects/ng-config/src/public-api.ts","../../../projects/ng-config/src/indice-ng-config.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\nimport { IAppSettings, AppProvidersArray, IAuthSettings } from \"./types\";\r\n\r\nexport const APP_SETTINGS = new InjectionToken<IAppSettings>('APP_SETTINGS');\r\nexport const IAUTH_SETTINGS = new InjectionToken<IAuthSettings>('IAUTH_SETTINGS');\r\nexport const APP_ENVIRONMENT = new InjectionToken<any>('APP_ENVIRONMENT');\r\nexport const APP_PROVIDERS_ARRAY = new InjectionToken<AppProvidersArray>('APP_PROVIDERS_ARRAY');\r\nexport const APP_SETTINGS_MANIFEST_URL = new InjectionToken<string>('APP_SETTINGS_MANIFEST_URL');","import { Injectable, inject } from '@angular/core';\r\nimport { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport { APP_SETTINGS_MANIFEST_URL } from './tokens';\r\nimport { IAppSettings } from './types';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SettingsDataService {\r\n private http: HttpClient;\r\n private APP_SETTINGS_MANIFEST_URL = inject(APP_SETTINGS_MANIFEST_URL);\r\n constructor(handler: HttpBackend) {\r\n this.http = new HttpClient(handler);\r\n }\r\n\r\n getAppSettings() {\r\n return this.http.get<IAppSettings>(this.APP_SETTINGS_MANIFEST_URL);\r\n }\r\n}\r\n\r\nexport type AppSettingsState = {\r\n settings: IAppSettings | null;\r\n};\r\n","import {\r\n computed,\r\n Inject,\r\n inject,\r\n Injectable,\r\n signal\r\n} from '@angular/core';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport merge from 'lodash/merge';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { AppSettingsState, SettingsDataService } from './settings.service';\r\nimport { IAppSettings, IAuthSettings, AppProvidersArray } from './types';\r\nimport { APP_ENVIRONMENT, APP_SETTINGS, APP_PROVIDERS_ARRAY, IAUTH_SETTINGS } from './tokens';\r\n\r\nconst initialState: Readonly<AppSettingsState> = {\r\n settings: {\r\n isServed: false,\r\n api_url: '',\r\n api_docs: '',\r\n auth_settings: {} as IAuthSettings,\r\n culture: '',\r\n isTemplate: false,\r\n production: false,\r\n version: ''\r\n },\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SettingsFacadeService {\r\n readonly #settingsDataService = inject(SettingsDataService);\r\n readonly #environment = inject(APP_ENVIRONMENT);\r\n\r\n readonly #state = signal(initialState);\r\n readonly settings = computed(() => this.#state().settings);\r\n\r\n constructor(\r\n @Inject(APP_SETTINGS) private tokenAppsettings: IAppSettings,\r\n @Inject(APP_PROVIDERS_ARRAY) private appProvidersArray: AppProvidersArray,\r\n @Inject(IAUTH_SETTINGS) private authSettings: IAppSettings) { }\r\n\r\n getAppDependencies() {\r\n return this.appProvidersArray?.dependencies;\r\n }\r\n\r\n\r\n loadSettings(): Observable<boolean> {\r\n return this.#settingsDataService.getAppSettings().pipe(\r\n tap((settings) => console.log(settings)),\r\n map((settings) => {\r\n let runtimeSettings = merge(cloneDeep(this.#environment), settings);\r\n // Assign settings directly to the appSettings object\r\n Object.assign(this.tokenAppsettings, runtimeSettings);\r\n Object.assign(this.authSettings, this.tokenAppsettings.auth_settings);\r\n\r\n // Update the state\r\n this.#state.set({ settings: this.tokenAppsettings });\r\n\r\n return true; // Indicate successful loading\r\n }),\r\n catchError((error) => {\r\n // Log the error and provide fallback behavior\r\n console.error('Failed to load settings:', error);\r\n\r\n return of(false); // Return false to indicate failure\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n APP_INITIALIZER,\r\n EnvironmentProviders,\r\n Injector,\r\n makeEnvironmentProviders\r\n} from '@angular/core';\r\nimport { lastValueFrom } from 'rxjs';\r\nimport { SettingsFacadeService } from './settings-facade.service';\r\nimport { APP_ENVIRONMENT, APP_PROVIDERS_ARRAY, APP_SETTINGS, APP_SETTINGS_MANIFEST_URL, IAUTH_SETTINGS } from './tokens';\r\nimport { AppProvidersArray, IAppSettings } from './types';\r\n\r\nexport function initializeAppSettings(\r\n appSettingsFacade: SettingsFacadeService,\r\n) {\r\n return async () => {\r\n // Wait for settings to load\r\n const success = await lastValueFrom(appSettingsFacade.loadSettings());\r\n\r\n if (success) {\r\n const dependencies = appSettingsFacade.getAppDependencies() as any[];\r\n // Create a child injector with the dependencies\r\n Injector.create({ providers: dependencies });\r\n } else {\r\n console.error('Failed to initialize app settings.');\r\n throw new Error('App settings could not be loaded.');\r\n }\r\n };\r\n}\r\n\r\nexport function provideAppSettings(config: AppProvidersArray = {}): EnvironmentProviders {\r\n return makeEnvironmentProviders([\r\n {\r\n provide: APP_SETTINGS_MANIFEST_URL,\r\n useValue: '/assets/app-settings.manifest.json'\r\n },\r\n {\r\n provide: APP_PROVIDERS_ARRAY,\r\n useValue: config.dependencies || []\r\n },\r\n {\r\n provide: APP_SETTINGS, \r\n useValue: {} // Provide an empty object initially\r\n },\r\n {\r\n provide: APP_ENVIRONMENT,\r\n useValue: {}\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: initializeAppSettings,\r\n deps: [SettingsFacadeService], // Add Injector to deps\r\n multi: true,\r\n },\r\n {\r\n provide: IAUTH_SETTINGS,\r\n useFactory: (runtimeSettings: IAppSettings) => runtimeSettings.auth_settings,\r\n deps: [APP_SETTINGS],\r\n }\r\n ]);\r\n}","/*\r\n * Public API Surface of ng-conf\r\n */\r\n\r\nexport * from './lib/tokens';\r\nexport * from './lib/settings.service';\r\nexport * from './lib/settings-initializer';\r\nexport * from './lib/settings-facade.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@indice/ng-config" />
5
+ export * from './public-api';
@@ -0,0 +1,15 @@
1
+ import { Observable } from 'rxjs';
2
+ import { IAppSettings, AppProvidersArray } from './types';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SettingsFacadeService {
5
+ #private;
6
+ private tokenAppsettings;
7
+ private appProvidersArray;
8
+ private authSettings;
9
+ readonly settings: import("@angular/core").Signal<IAppSettings | null>;
10
+ constructor(tokenAppsettings: IAppSettings, appProvidersArray: AppProvidersArray, authSettings: IAppSettings);
11
+ getAppDependencies(): any[] | undefined;
12
+ loadSettings(): Observable<boolean>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingsFacadeService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<SettingsFacadeService>;
15
+ }
@@ -0,0 +1,5 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ import { SettingsFacadeService } from './settings-facade.service';
3
+ import { AppProvidersArray } from './types';
4
+ export declare function initializeAppSettings(appSettingsFacade: SettingsFacadeService): () => Promise<void>;
5
+ export declare function provideAppSettings(config?: AppProvidersArray): EnvironmentProviders;
@@ -0,0 +1,14 @@
1
+ import { HttpBackend } from '@angular/common/http';
2
+ import { IAppSettings } from './types';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SettingsDataService {
5
+ private http;
6
+ private APP_SETTINGS_MANIFEST_URL;
7
+ constructor(handler: HttpBackend);
8
+ getAppSettings(): import("rxjs").Observable<IAppSettings>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingsDataService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<SettingsDataService>;
11
+ }
12
+ export type AppSettingsState = {
13
+ settings: IAppSettings | null;
14
+ };
@@ -0,0 +1,7 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ import { IAppSettings, AppProvidersArray, IAuthSettings } from "./types";
3
+ export declare const APP_SETTINGS: InjectionToken<IAppSettings>;
4
+ export declare const IAUTH_SETTINGS: InjectionToken<IAuthSettings>;
5
+ export declare const APP_ENVIRONMENT: InjectionToken<any>;
6
+ export declare const APP_PROVIDERS_ARRAY: InjectionToken<AppProvidersArray>;
7
+ export declare const APP_SETTINGS_MANIFEST_URL: InjectionToken<string>;
package/lib/types.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ export interface IAppSettings {
2
+ [index: string]: any;
3
+ api_url: string;
4
+ api_docs: string;
5
+ auth_settings: IAuthSettings;
6
+ culture: string;
7
+ isTemplate: boolean;
8
+ production: boolean;
9
+ version: string;
10
+ isServed: boolean;
11
+ }
12
+ export interface IAuthSettings {
13
+ [index: string]: any;
14
+ authority: string;
15
+ client_id: string;
16
+ filterProtocolClaims: boolean;
17
+ loadUserInfo: boolean;
18
+ post_logout_redirect_uri: string;
19
+ redirect_uri: string;
20
+ response_type: string;
21
+ scope: string;
22
+ silent_redirect_uri: string;
23
+ revokeAccessTokenOnSignout: boolean;
24
+ accessTokenExpiringNotificationTime: number;
25
+ monitorSession: boolean;
26
+ automaticSilentRenew: boolean;
27
+ }
28
+ export interface AppProvidersArray {
29
+ dependencies?: any[];
30
+ manifestUrl?: string;
31
+ }
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@indice/ng-config",
3
+ "version": "0.0.1",
4
+ "description": "Indice dynamic runtime configuration provider for applications",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/indice-co/Indice.Angular.git"
8
+ },
9
+ "keywords": [
10
+ "angular",
11
+ "configuration"
12
+ ],
13
+ "author": "INDICE",
14
+ "license": "MIT",
15
+ "bugs": {
16
+ "url": "https://github.com/indice-co/Indice.Angular/issues"
17
+ },
18
+ "homepage": "https://github.com/indice-co/Indice.Angular#readme",
19
+ "peerDependencies": {
20
+ "@angular/common": "^17.3.0",
21
+ "@angular/core": "^17.3.0",
22
+ "@indice/ng-auth": "0.3.3"
23
+ },
24
+ "dependencies": {
25
+ "tslib": "^2.3.0"
26
+ },
27
+ "sideEffects": false,
28
+ "module": "fesm2022/indice-ng-config.mjs",
29
+ "typings": "index.d.ts",
30
+ "exports": {
31
+ "./package.json": {
32
+ "default": "./package.json"
33
+ },
34
+ ".": {
35
+ "types": "./index.d.ts",
36
+ "esm2022": "./esm2022/indice-ng-config.mjs",
37
+ "esm": "./esm2022/indice-ng-config.mjs",
38
+ "default": "./fesm2022/indice-ng-config.mjs"
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,4 @@
1
+ export * from './lib/tokens';
2
+ export * from './lib/settings.service';
3
+ export * from './lib/settings-initializer';
4
+ export * from './lib/settings-facade.service';