@rxap/config 19.2.0-dev.1 → 19.2.0-dev.3
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 +13 -0
- package/compodoc/changelog.html +11 -0
- package/compodoc/dependencies.html +1 -1
- package/compodoc/injectables/ConfigService.html +151 -69
- package/compodoc/interfaces/ConfigLoadOptions.html +251 -34
- package/compodoc/js/menu-wc.js +3 -0
- package/compodoc/js/menu-wc_es5.js +1 -1
- package/compodoc/js/search/search_index.js +2 -2
- package/compodoc/miscellaneous/enumerations.html +231 -0
- package/compodoc/properties.html +1 -1
- package/docs/documentation.json +813 -648
- package/docs/html/assets/hierarchy.js +1 -1
- package/docs/html/assets/navigation.js +1 -1
- package/docs/html/assets/search.js +1 -1
- package/docs/html/classes/ConfigLoaderService.html +2 -2
- package/docs/html/classes/ConfigService.html +6 -6
- package/docs/html/classes/ConfigTestingService.html +2 -2
- package/docs/html/enums/ConfigLoadingStrategy.html +3 -0
- package/docs/html/functions/ProvideConfig.html +1 -1
- package/docs/html/functions/dnsLookup.html +1 -1
- package/docs/html/functions/dnsResolver.html +1 -1
- package/docs/html/functions/fetchCidContent.html +1 -1
- package/docs/html/functions/fetchCidContentAsJson.html +1 -1
- package/docs/html/functions/fetchCidContentViaHttp.html +1 -1
- package/docs/html/functions/fetchContentViaHttp.html +1 -1
- package/docs/html/functions/raceSuccess.html +2 -2
- package/docs/html/hierarchy.html +1 -1
- package/docs/html/index.html +2 -2
- package/docs/html/interfaces/AppsNavigationConfig.html +2 -2
- package/docs/html/interfaces/Config.html +2 -2
- package/docs/html/interfaces/ConfigLoadOptions.html +8 -5
- package/docs/html/interfaces/LogoConfig.html +2 -2
- package/docs/html/interfaces/NavigationConfig.html +2 -2
- package/docs/html/interfaces/Oauth2Config.html +2 -2
- package/docs/html/interfaces/i18nConfig.html +2 -2
- package/docs/html/modules.html +1 -1
- package/docs/html/types/AnySchema.html +1 -1
- package/docs/html/types/Join.html +1 -1
- package/docs/html/types/LanguagesConfig.html +1 -1
- package/docs/html/types/Leaves.html +1 -1
- package/docs/html/types/NoInferType.html +1 -1
- package/docs/html/types/Paths.html +1 -1
- package/docs/html/variables/RXAP_CONFIG.html +1 -1
- package/docs/markdown/README.md +1 -1
- package/docs/markdown/classes/ConfigLoaderService.md +7 -7
- package/docs/markdown/classes/ConfigService.md +22 -22
- package/docs/markdown/classes/ConfigTestingService.md +8 -8
- package/docs/markdown/enumerations/ConfigLoadingStrategy.md +25 -0
- package/docs/markdown/functions/ProvideConfig.md +2 -2
- package/docs/markdown/functions/dnsLookup.md +2 -2
- package/docs/markdown/functions/dnsResolver.md +2 -2
- package/docs/markdown/functions/fetchCidContent.md +2 -2
- package/docs/markdown/functions/fetchCidContentAsJson.md +2 -2
- package/docs/markdown/functions/fetchCidContentViaHttp.md +2 -2
- package/docs/markdown/functions/fetchContentViaHttp.md +2 -2
- package/docs/markdown/functions/raceSuccess.md +2 -2
- package/docs/markdown/globals.md +6 -2
- package/docs/markdown/interfaces/AppsNavigationConfig.md +12 -12
- package/docs/markdown/interfaces/Config.md +6 -6
- package/docs/markdown/interfaces/ConfigLoadOptions.md +34 -10
- package/docs/markdown/interfaces/LogoConfig.md +5 -5
- package/docs/markdown/interfaces/NavigationConfig.md +9 -9
- package/docs/markdown/interfaces/Oauth2Config.md +3 -3
- package/docs/markdown/interfaces/i18nConfig.md +4 -4
- package/docs/markdown/type-aliases/AnySchema.md +2 -2
- package/docs/markdown/type-aliases/Join.md +2 -2
- package/docs/markdown/type-aliases/LanguagesConfig.md +2 -2
- package/docs/markdown/type-aliases/Leaves.md +2 -2
- package/docs/markdown/type-aliases/NoInferType.md +2 -2
- package/docs/markdown/type-aliases/Paths.md +2 -2
- package/docs/markdown/variables/RXAP_CONFIG.md +2 -2
- package/docs/wiki/Class.ConfigLoaderService.md +6 -6
- package/docs/wiki/Class.ConfigService.md +21 -21
- package/docs/wiki/Class.ConfigTestingService.md +7 -7
- package/docs/wiki/Enumeration.ConfigLoadingStrategy.md +21 -0
- package/docs/wiki/Function.ProvideConfig.md +1 -1
- package/docs/wiki/Function.dnsLookup.md +1 -1
- package/docs/wiki/Function.dnsResolver.md +1 -1
- package/docs/wiki/Function.fetchCidContent.md +1 -1
- package/docs/wiki/Function.fetchCidContentAsJson.md +1 -1
- package/docs/wiki/Function.fetchCidContentViaHttp.md +1 -1
- package/docs/wiki/Function.fetchContentViaHttp.md +1 -1
- package/docs/wiki/Function.raceSuccess.md +1 -1
- package/docs/wiki/Interface.AppsNavigationConfig.md +11 -11
- package/docs/wiki/Interface.Config.md +5 -5
- package/docs/wiki/Interface.ConfigLoadOptions.md +33 -9
- package/docs/wiki/Interface.LogoConfig.md +4 -4
- package/docs/wiki/Interface.NavigationConfig.md +8 -8
- package/docs/wiki/Interface.Oauth2Config.md +2 -2
- package/docs/wiki/Interface.i18nConfig.md +3 -3
- package/docs/wiki/TypeAlias.AnySchema.md +1 -1
- package/docs/wiki/TypeAlias.Join.md +1 -1
- package/docs/wiki/TypeAlias.LanguagesConfig.md +1 -1
- package/docs/wiki/TypeAlias.Leaves.md +1 -1
- package/docs/wiki/TypeAlias.NoInferType.md +1 -1
- package/docs/wiki/TypeAlias.Paths.md +1 -1
- package/docs/wiki/Variable.RXAP_CONFIG.md +1 -1
- package/docs/wiki/_Sidebar.md +4 -0
- package/docs/wiki/globals.md +5 -1
- package/fesm2022/rxap-config.mjs +118 -35
- package/fesm2022/rxap-config.mjs.map +1 -1
- package/lib/config.service.d.ts +10 -0
- package/package.json +6 -6
|
@@ -140,6 +140,13 @@
|
|
|
140
140
|
<tr>
|
|
141
141
|
<td class="col-md-4">
|
|
142
142
|
<ul class="index-list">
|
|
143
|
+
<li>
|
|
144
|
+
<span class="modifier">Optional</span>
|
|
145
|
+
<a href="#dnsServers"
|
|
146
|
+
>
|
|
147
|
+
dnsServers
|
|
148
|
+
</a>
|
|
149
|
+
</li>
|
|
143
150
|
<li>
|
|
144
151
|
<span class="modifier">Optional</span>
|
|
145
152
|
<a href="#fetchCidContent"
|
|
@@ -175,6 +182,13 @@
|
|
|
175
182
|
fromUrlParam
|
|
176
183
|
</a>
|
|
177
184
|
</li>
|
|
185
|
+
<li>
|
|
186
|
+
<span class="modifier">Optional</span>
|
|
187
|
+
<a href="#fromUrls"
|
|
188
|
+
>
|
|
189
|
+
fromUrls
|
|
190
|
+
</a>
|
|
191
|
+
</li>
|
|
178
192
|
<li>
|
|
179
193
|
<span class="modifier">Optional</span>
|
|
180
194
|
<a href="#schema"
|
|
@@ -189,6 +203,13 @@
|
|
|
189
203
|
static
|
|
190
204
|
</a>
|
|
191
205
|
</li>
|
|
206
|
+
<li>
|
|
207
|
+
<span class="modifier">Optional</span>
|
|
208
|
+
<a href="#strategy"
|
|
209
|
+
>
|
|
210
|
+
strategy
|
|
211
|
+
</a>
|
|
212
|
+
</li>
|
|
192
213
|
<li>
|
|
193
214
|
<span class="modifier">Optional</span>
|
|
194
215
|
<a href="#url"
|
|
@@ -207,6 +228,44 @@
|
|
|
207
228
|
|
|
208
229
|
<section data-compodoc="block-properties">
|
|
209
230
|
<h3 id="inputs">Properties</h3>
|
|
231
|
+
<table class="table table-sm table-bordered">
|
|
232
|
+
<tbody>
|
|
233
|
+
<tr>
|
|
234
|
+
<td class="col-md-4">
|
|
235
|
+
<a name="dnsServers"></a>
|
|
236
|
+
<span class="name "><b>dnsServers</b>
|
|
237
|
+
<a href="#dnsServers">
|
|
238
|
+
<span class="icon ion-ios-link"></span>
|
|
239
|
+
</a>
|
|
240
|
+
</span>
|
|
241
|
+
</td>
|
|
242
|
+
</tr>
|
|
243
|
+
<tr>
|
|
244
|
+
<td class="col-md-4">
|
|
245
|
+
<code>dnsServers: <code>string[]</code>
|
|
246
|
+
</code>
|
|
247
|
+
</td>
|
|
248
|
+
</tr>
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
<tr>
|
|
252
|
+
<td class="col-md-4">
|
|
253
|
+
<i>Type : </i> <code>string[]</code>
|
|
254
|
+
|
|
255
|
+
</td>
|
|
256
|
+
</tr>
|
|
257
|
+
|
|
258
|
+
<tr>
|
|
259
|
+
<td class="col-md-4">
|
|
260
|
+
<i>Optional</i>
|
|
261
|
+
</td>
|
|
262
|
+
</tr>
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
</tbody>
|
|
268
|
+
</table>
|
|
210
269
|
<table class="table table-sm table-bordered">
|
|
211
270
|
<tbody>
|
|
212
271
|
<tr>
|
|
@@ -409,6 +468,44 @@ If true, uses <code>location.hostname</code>. If a string, uses that domain.</p>
|
|
|
409
468
|
|
|
410
469
|
|
|
411
470
|
|
|
471
|
+
</tbody>
|
|
472
|
+
</table>
|
|
473
|
+
<table class="table table-sm table-bordered">
|
|
474
|
+
<tbody>
|
|
475
|
+
<tr>
|
|
476
|
+
<td class="col-md-4">
|
|
477
|
+
<a name="fromUrls"></a>
|
|
478
|
+
<span class="name "><b>fromUrls</b>
|
|
479
|
+
<a href="#fromUrls">
|
|
480
|
+
<span class="icon ion-ios-link"></span>
|
|
481
|
+
</a>
|
|
482
|
+
</span>
|
|
483
|
+
</td>
|
|
484
|
+
</tr>
|
|
485
|
+
<tr>
|
|
486
|
+
<td class="col-md-4">
|
|
487
|
+
<code>fromUrls: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
|
|
488
|
+
</code>
|
|
489
|
+
</td>
|
|
490
|
+
</tr>
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
<tr>
|
|
494
|
+
<td class="col-md-4">
|
|
495
|
+
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
|
|
496
|
+
|
|
497
|
+
</td>
|
|
498
|
+
</tr>
|
|
499
|
+
|
|
500
|
+
<tr>
|
|
501
|
+
<td class="col-md-4">
|
|
502
|
+
<i>Optional</i>
|
|
503
|
+
</td>
|
|
504
|
+
</tr>
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
|
|
412
509
|
</tbody>
|
|
413
510
|
</table>
|
|
414
511
|
<table class="table table-sm table-bordered">
|
|
@@ -491,6 +588,44 @@ If true, uses <code>location.hostname</code>. If a string, uses that domain.</p>
|
|
|
491
588
|
</div>
|
|
492
589
|
</td>
|
|
493
590
|
</tr>
|
|
591
|
+
</tbody>
|
|
592
|
+
</table>
|
|
593
|
+
<table class="table table-sm table-bordered">
|
|
594
|
+
<tbody>
|
|
595
|
+
<tr>
|
|
596
|
+
<td class="col-md-4">
|
|
597
|
+
<a name="strategy"></a>
|
|
598
|
+
<span class="name "><b>strategy</b>
|
|
599
|
+
<a href="#strategy">
|
|
600
|
+
<span class="icon ion-ios-link"></span>
|
|
601
|
+
</a>
|
|
602
|
+
</span>
|
|
603
|
+
</td>
|
|
604
|
+
</tr>
|
|
605
|
+
<tr>
|
|
606
|
+
<td class="col-md-4">
|
|
607
|
+
<code>strategy: <code><a href="../miscellaneous/enumerations.html#ConfigLoadingStrategy" target="_self" >ConfigLoadingStrategy</a></code>
|
|
608
|
+
</code>
|
|
609
|
+
</td>
|
|
610
|
+
</tr>
|
|
611
|
+
|
|
612
|
+
|
|
613
|
+
<tr>
|
|
614
|
+
<td class="col-md-4">
|
|
615
|
+
<i>Type : </i> <code><a href="../miscellaneous/enumerations.html#ConfigLoadingStrategy" target="_self" >ConfigLoadingStrategy</a></code>
|
|
616
|
+
|
|
617
|
+
</td>
|
|
618
|
+
</tr>
|
|
619
|
+
|
|
620
|
+
<tr>
|
|
621
|
+
<td class="col-md-4">
|
|
622
|
+
<i>Optional</i>
|
|
623
|
+
</td>
|
|
624
|
+
</tr>
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
|
|
494
629
|
</tbody>
|
|
495
630
|
</table>
|
|
496
631
|
<table class="table table-sm table-bordered">
|
|
@@ -559,8 +694,14 @@ import {
|
|
|
559
694
|
|
|
560
695
|
export type AnySchema = { validateAsync: (...args: any[]) => any };
|
|
561
696
|
|
|
697
|
+
export enum ConfigLoadingStrategy {
|
|
698
|
+
DEFAULT = 'default',
|
|
699
|
+
FIFO = 'fifo',
|
|
700
|
+
}
|
|
701
|
+
|
|
562
702
|
export interface ConfigLoadOptions {
|
|
563
703
|
fromUrlParam?: string | boolean;
|
|
704
|
+
fromUrls?: boolean;
|
|
564
705
|
fromLocalStorage?: boolean;
|
|
565
706
|
schema?: AnySchema;
|
|
566
707
|
url?: string | string[] | ((environment: Environment) => string | string[]);
|
|
@@ -579,6 +720,8 @@ export interface ConfigLoadOptions {
|
|
|
579
720
|
*/
|
|
580
721
|
fromCid?: string;
|
|
581
722
|
fetchCidContent?: (cid: string, path?: string) => Promise<Blob | null>;
|
|
723
|
+
dnsServers?: string[];
|
|
724
|
+
strategy?: ConfigLoadingStrategy;
|
|
582
725
|
}
|
|
583
726
|
|
|
584
727
|
@Injectable({
|
|
@@ -647,65 +790,132 @@ export class ConfigService<Config extends Record<string, any> = Re
|
|
|
647
790
|
options.fromUrlParam = environment.config.fromUrlParam;
|
|
648
791
|
options.fromLocalStorage = environment.config.fromLocalStorage;
|
|
649
792
|
options.schema = environment.config.schema;
|
|
793
|
+
options.strategy = environment.config.strategy as ConfigLoadingStrategy ?? options.strategy;
|
|
650
794
|
}
|
|
651
795
|
}
|
|
652
796
|
|
|
653
797
|
config = deepMerge(config, options?.static ?? {});
|
|
798
|
+
let done = false;
|
|
654
799
|
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
800
|
+
if (!done && options?.fromUrls !== false) {
|
|
801
|
+
try {
|
|
802
|
+
config = deepMerge(config, await this.loadConfigFromUrls(options, environment));
|
|
803
|
+
if (options.strategy === ConfigLoadingStrategy.FIFO) {
|
|
804
|
+
done = true;
|
|
805
|
+
}
|
|
806
|
+
} catch (error: any) {
|
|
807
|
+
if (options.strategy !== ConfigLoadingStrategy.FIFO) {
|
|
808
|
+
console.error('Could not load config from urls', error);
|
|
809
|
+
throw error;
|
|
810
|
+
} else {
|
|
811
|
+
console.warn('Could not load config from urls: ' + error.message + '. Will try next strategy.');
|
|
659
812
|
}
|
|
660
|
-
return coerceArray(url(environment));
|
|
661
813
|
}
|
|
662
|
-
|
|
663
|
-
}).flat();
|
|
814
|
+
}
|
|
664
815
|
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
816
|
+
if (!done && options?.fromLocalStorage !== false) {
|
|
817
|
+
try {
|
|
818
|
+
config = deepMerge(config, this.loadConfigFromLocalStorage(options));
|
|
819
|
+
if (options.strategy === ConfigLoadingStrategy.FIFO) {
|
|
820
|
+
done = true;
|
|
821
|
+
}
|
|
822
|
+
} catch (error: any) {
|
|
823
|
+
if (options.strategy !== ConfigLoadingStrategy.FIFO) {
|
|
824
|
+
console.error('Could not load config from local storage', error);
|
|
825
|
+
throw error;
|
|
826
|
+
} else {
|
|
827
|
+
console.warn('Could not load config from local storage: ' + error.message + '. Will try next strategy.');
|
|
828
|
+
}
|
|
672
829
|
}
|
|
673
830
|
}
|
|
674
831
|
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
832
|
+
if (!done && options?.fromUrlParam) {
|
|
833
|
+
try {
|
|
834
|
+
config = deepMerge(config, this.loadConfigFromUrlParam(options as any));
|
|
835
|
+
if (options.strategy === ConfigLoadingStrategy.FIFO) {
|
|
836
|
+
done = true;
|
|
837
|
+
}
|
|
838
|
+
} catch (error: any) {
|
|
839
|
+
if (options.strategy !== ConfigLoadingStrategy.FIFO) {
|
|
840
|
+
console.error('Could not load config from url param', error);
|
|
841
|
+
throw error;
|
|
842
|
+
} else {
|
|
843
|
+
console.warn('Could not load config from url param: ' + error.message + '. Will try next strategy.');
|
|
686
844
|
}
|
|
687
845
|
}
|
|
688
|
-
|
|
689
846
|
}
|
|
690
847
|
|
|
691
|
-
if (options?.
|
|
692
|
-
|
|
693
|
-
config = deepMerge(config, this.LoadConfigDefaultFromUrlParam(param));
|
|
848
|
+
if (!done && options?.fromDns) {
|
|
849
|
+
await this.loadConfigFromDns(options as any);
|
|
694
850
|
}
|
|
695
851
|
|
|
696
|
-
if (options?.
|
|
697
|
-
|
|
852
|
+
if (!done && options?.fromCid) {
|
|
853
|
+
try {
|
|
854
|
+
config = deepMerge(config, await this.loadConfigFromCid(options as any));
|
|
855
|
+
if (options.strategy === ConfigLoadingStrategy.FIFO) {
|
|
856
|
+
done = true;
|
|
857
|
+
}
|
|
858
|
+
} catch (error: any) {
|
|
859
|
+
if (options.strategy !== ConfigLoadingStrategy.FIFO) {
|
|
860
|
+
console.error('Could not load config from cid', error);
|
|
861
|
+
throw error;
|
|
862
|
+
} else {
|
|
863
|
+
console.warn('Could not load config from cid: ' + error.message + '. Will try next strategy.');
|
|
864
|
+
}
|
|
865
|
+
}
|
|
698
866
|
}
|
|
699
867
|
|
|
700
|
-
if (
|
|
701
|
-
|
|
868
|
+
if (!done) {
|
|
869
|
+
console.warn('No config loading strategy succeeded. Using default config.');
|
|
702
870
|
}
|
|
703
871
|
|
|
872
|
+
config = deepMerge(config, this.Overwrites);
|
|
873
|
+
|
|
704
874
|
console.debug('app config', config);
|
|
705
875
|
|
|
706
876
|
this.Config = config;
|
|
707
877
|
}
|
|
708
878
|
|
|
879
|
+
private static loadConfigFromUrlParam(options: ConfigLoadOptions & { fromUrlParam: string | true }) {
|
|
880
|
+
const param = typeof options.fromUrlParam === 'string' ? options.fromUrlParam : 'config';
|
|
881
|
+
return this.LoadConfigDefaultFromUrlParam(param);
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
private static loadConfigFromLocalStorage(options: ConfigLoadOptions) {
|
|
885
|
+
const localConfig = localStorage.getItem(ConfigService.LocalStorageKey);
|
|
886
|
+
if (localConfig) {
|
|
887
|
+
return JSON.parse(localConfig);
|
|
888
|
+
} else {
|
|
889
|
+
return {};
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
private static async loadConfigFromUrls(options: ConfigLoadOptions, environment?: Environment) {
|
|
894
|
+
let config: any = {};
|
|
895
|
+
const urls = (
|
|
896
|
+
options?.url ? coerceArray(options.url) : ConfigService.Urls
|
|
897
|
+
).map(url => {
|
|
898
|
+
if (typeof url === 'function') {
|
|
899
|
+
if (!environment) {
|
|
900
|
+
throw new Error('environment is required when url is a function');
|
|
901
|
+
}
|
|
902
|
+
return coerceArray(url(environment));
|
|
903
|
+
}
|
|
904
|
+
return coerceArray(url);
|
|
905
|
+
}).flat();
|
|
906
|
+
|
|
907
|
+
for (const url of urls) {
|
|
908
|
+
const loadedConfig = await this.loadConfig(url, true, options?.schema);
|
|
909
|
+
const match = url.match(/config\.([a-zA-Z0-9.\-_]+)\.json/);
|
|
910
|
+
if (match) {
|
|
911
|
+
SetToObject(config, match[1], loadedConfig);
|
|
912
|
+
} else {
|
|
913
|
+
config = deepMerge(config, loadedConfig);
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
return config;
|
|
917
|
+
}
|
|
918
|
+
|
|
709
919
|
private static async loadConfigFromCid(options: ConfigLoadOptions & { fromCid: string | boolean }) {
|
|
710
920
|
console.debug('Loading config from CID: ', options.fromCid);
|
|
711
921
|
try {
|
|
@@ -728,6 +938,13 @@ export class ConfigService<Config extends Record<string, any> = Re
|
|
|
728
938
|
|
|
729
939
|
private static async loadConfigFromDns(options: ConfigLoadOptions & { fromDns: string | boolean }) {
|
|
730
940
|
console.debug('Loading config from DNS');
|
|
941
|
+
const dnsServers = options.dnsServers ?? [];
|
|
942
|
+
if (dnsServers.length === 0) {
|
|
943
|
+
dnsServers.push(
|
|
944
|
+
'https://dns.google/resolve',
|
|
945
|
+
'https://cloudflare-dns.com/dns-query'
|
|
946
|
+
);
|
|
947
|
+
}
|
|
731
948
|
let domain = location.hostname;
|
|
732
949
|
if (typeof options.fromDns === 'string') {
|
|
733
950
|
domain = options.fromDns;
|
|
@@ -735,7 +952,7 @@ export class ConfigService<Config extends Record<string, any> = Re
|
|
|
735
952
|
domain = CoercePrefix(domain, '_config.');
|
|
736
953
|
try {
|
|
737
954
|
console.log(`Attempting DNS lookup for domain: ${domain}`);
|
|
738
|
-
const txtData = await dnsLookup(domain, 'TXT'
|
|
955
|
+
const txtData = await dnsLookup(domain, 'TXT', dnsServers);
|
|
739
956
|
console.log(`DNS TXT record data found: ${txtData}`);
|
|
740
957
|
// Example CID extraction logic (adapt to your TXT record format)
|
|
741
958
|
// This looks for IPFS CIDs (v0 'Qm...' or v1 'b...') potentially after 'ipfs://' or '/'
|
package/compodoc/js/menu-wc.js
CHANGED
|
@@ -113,6 +113,9 @@ customElements.define('compodoc-menu', class extends HTMLElement {
|
|
|
113
113
|
<span class="icon ion-ios-arrow-down"></span>
|
|
114
114
|
</div>
|
|
115
115
|
<ul class="links collapse " ${ isNormalMode ? 'id="miscellaneous-links"' : 'id="xs-miscellaneous-links"' }>
|
|
116
|
+
<li class="link">
|
|
117
|
+
<a href="miscellaneous/enumerations.html" data-type="entity-link">Enums</a>
|
|
118
|
+
</li>
|
|
116
119
|
<li class="link">
|
|
117
120
|
<a href="miscellaneous/functions.html" data-type="entity-link">Functions</a>
|
|
118
121
|
</li>
|
|
@@ -33,7 +33,7 @@ customElements.define('compodoc-menu', /*#__PURE__*/function (_HTMLElement) {
|
|
|
33
33
|
}, {
|
|
34
34
|
key: "render",
|
|
35
35
|
value: function render(isNormalMode) {
|
|
36
|
-
var tp = lithtml.html("\n <nav>\n <ul class=\"list\">\n <li class=\"title\">\n <a href=\"index.html\" data-type=\"index-link\">angular-config</a>\n </li>\n\n <li class=\"divider\"></li>\n ".concat(isNormalMode ? "<div id=\"book-search-input\" role=\"search\"><input type=\"text\" placeholder=\"Type to search\"></div>" : '', "\n <li class=\"chapter\">\n <a data-type=\"chapter-link\" href=\"index.html\"><span class=\"icon ion-ios-home\"></span>Getting started</a>\n <ul class=\"links\">\n <li class=\"link\">\n <a href=\"overview.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-keypad\"></span>Overview\n </a>\n </li>\n <li class=\"link\">\n <a href=\"index.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>README\n </a>\n </li>\n <li class=\"link\">\n <a href=\"changelog.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>CHANGELOG\n </a>\n </li>\n <li class=\"link\">\n <a href=\"license.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>LICENSE\n </a>\n </li>\n <li class=\"link\">\n <a href=\"dependencies.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-list\"></span>Dependencies\n </a>\n </li>\n <li class=\"link\">\n <a href=\"properties.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-apps\"></span>Properties\n </a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#injectables-links"' : 'data-bs-target="#xs-injectables-links"', ">\n <span class=\"icon ion-md-arrow-round-down\"></span>\n <span>Injectables</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? 'id="injectables-links"' : 'id="xs-injectables-links"', ">\n <li class=\"link\">\n <a href=\"injectables/ConfigLoaderService.html\" data-type=\"entity-link\" >ConfigLoaderService</a>\n </li>\n <li class=\"link\">\n <a href=\"injectables/ConfigService.html\" data-type=\"entity-link\" >ConfigService</a>\n </li>\n <li class=\"link\">\n <a href=\"injectables/ConfigTestingService.html\" data-type=\"entity-link\" >ConfigTestingService</a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#interfaces-links"' : 'data-bs-target="#xs-interfaces-links"', ">\n <span class=\"icon ion-md-information-circle-outline\"></span>\n <span>Interfaces</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? ' id="interfaces-links"' : 'id="xs-interfaces-links"', ">\n <li class=\"link\">\n <a href=\"interfaces/AppsNavigationConfig.html\" data-type=\"entity-link\" >AppsNavigationConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/Config.html\" data-type=\"entity-link\" >Config</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/ConfigLoadOptions.html\" data-type=\"entity-link\" >ConfigLoadOptions</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/i18nConfig.html\" data-type=\"entity-link\" >i18nConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/LogoConfig.html\" data-type=\"entity-link\" >LogoConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/NavigationConfig.html\" data-type=\"entity-link\" >NavigationConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/Oauth2Config.html\" data-type=\"entity-link\" >Oauth2Config</a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#miscellaneous-links"' : 'data-bs-target="#xs-miscellaneous-links"', ">\n <span class=\"icon ion-ios-cube\"></span>\n <span>Miscellaneous</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? 'id="miscellaneous-links"' : 'id="xs-miscellaneous-links"', ">\n <li class=\"link\">\n <a href=\"miscellaneous/functions.html\" data-type=\"entity-link\">Functions</a>\n </li>\n <li class=\"link\">\n <a href=\"miscellaneous/typealiases.html\" data-type=\"entity-link\">Type aliases</a>\n </li>\n <li class=\"link\">\n <a href=\"miscellaneous/variables.html\" data-type=\"entity-link\">Variables</a>\n </li>\n </ul>\n </li>\n <li class=\"divider\"></li>\n <li class=\"copyright\">\n Documentation generated using <a href=\"https://compodoc.app/\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img data-src=\"images/compodoc-vectorise.png\" class=\"img-responsive\" data-type=\"compodoc-logo\">\n </a>\n </li>\n </ul>\n </nav>\n "));
|
|
36
|
+
var tp = lithtml.html("\n <nav>\n <ul class=\"list\">\n <li class=\"title\">\n <a href=\"index.html\" data-type=\"index-link\">angular-config</a>\n </li>\n\n <li class=\"divider\"></li>\n ".concat(isNormalMode ? "<div id=\"book-search-input\" role=\"search\"><input type=\"text\" placeholder=\"Type to search\"></div>" : '', "\n <li class=\"chapter\">\n <a data-type=\"chapter-link\" href=\"index.html\"><span class=\"icon ion-ios-home\"></span>Getting started</a>\n <ul class=\"links\">\n <li class=\"link\">\n <a href=\"overview.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-keypad\"></span>Overview\n </a>\n </li>\n <li class=\"link\">\n <a href=\"index.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>README\n </a>\n </li>\n <li class=\"link\">\n <a href=\"changelog.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>CHANGELOG\n </a>\n </li>\n <li class=\"link\">\n <a href=\"license.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>LICENSE\n </a>\n </li>\n <li class=\"link\">\n <a href=\"dependencies.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-list\"></span>Dependencies\n </a>\n </li>\n <li class=\"link\">\n <a href=\"properties.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-apps\"></span>Properties\n </a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#injectables-links"' : 'data-bs-target="#xs-injectables-links"', ">\n <span class=\"icon ion-md-arrow-round-down\"></span>\n <span>Injectables</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? 'id="injectables-links"' : 'id="xs-injectables-links"', ">\n <li class=\"link\">\n <a href=\"injectables/ConfigLoaderService.html\" data-type=\"entity-link\" >ConfigLoaderService</a>\n </li>\n <li class=\"link\">\n <a href=\"injectables/ConfigService.html\" data-type=\"entity-link\" >ConfigService</a>\n </li>\n <li class=\"link\">\n <a href=\"injectables/ConfigTestingService.html\" data-type=\"entity-link\" >ConfigTestingService</a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#interfaces-links"' : 'data-bs-target="#xs-interfaces-links"', ">\n <span class=\"icon ion-md-information-circle-outline\"></span>\n <span>Interfaces</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? ' id="interfaces-links"' : 'id="xs-interfaces-links"', ">\n <li class=\"link\">\n <a href=\"interfaces/AppsNavigationConfig.html\" data-type=\"entity-link\" >AppsNavigationConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/Config.html\" data-type=\"entity-link\" >Config</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/ConfigLoadOptions.html\" data-type=\"entity-link\" >ConfigLoadOptions</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/i18nConfig.html\" data-type=\"entity-link\" >i18nConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/LogoConfig.html\" data-type=\"entity-link\" >LogoConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/NavigationConfig.html\" data-type=\"entity-link\" >NavigationConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/Oauth2Config.html\" data-type=\"entity-link\" >Oauth2Config</a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#miscellaneous-links"' : 'data-bs-target="#xs-miscellaneous-links"', ">\n <span class=\"icon ion-ios-cube\"></span>\n <span>Miscellaneous</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? 'id="miscellaneous-links"' : 'id="xs-miscellaneous-links"', ">\n <li class=\"link\">\n <a href=\"miscellaneous/enumerations.html\" data-type=\"entity-link\">Enums</a>\n </li>\n <li class=\"link\">\n <a href=\"miscellaneous/functions.html\" data-type=\"entity-link\">Functions</a>\n </li>\n <li class=\"link\">\n <a href=\"miscellaneous/typealiases.html\" data-type=\"entity-link\">Type aliases</a>\n </li>\n <li class=\"link\">\n <a href=\"miscellaneous/variables.html\" data-type=\"entity-link\">Variables</a>\n </li>\n </ul>\n </li>\n <li class=\"divider\"></li>\n <li class=\"copyright\">\n Documentation generated using <a href=\"https://compodoc.app/\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img data-src=\"images/compodoc-vectorise.png\" class=\"img-responsive\" data-type=\"compodoc-logo\">\n </a>\n </li>\n </ul>\n </nav>\n "));
|
|
37
37
|
this.innerHTML = tp.strings;
|
|
38
38
|
}
|
|
39
39
|
}]);
|