@o3r/apis-manager 11.6.0-prerelease.7 → 11.6.0-prerelease.8
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/apis-manager/api-factory.service.d.ts.map +1 -1
- package/apis-manager/api-manager.d.ts +1 -1
- package/apis-manager/api-manager.d.ts.map +1 -1
- package/apis-manager/api-manager.module.d.ts.map +1 -1
- package/apis-manager/api-manager.token.d.ts.map +1 -1
- package/apis-manager/index.d.ts +1 -1
- package/apis-manager/index.d.ts.map +1 -1
- package/esm2022/apis-manager/api-factory.service.mjs +11 -11
- package/esm2022/apis-manager/api-manager.helpers.mjs +2 -2
- package/esm2022/apis-manager/api-manager.mjs +3 -3
- package/esm2022/apis-manager/api-manager.module.mjs +4 -4
- package/esm2022/apis-manager/api-manager.token.mjs +2 -2
- package/esm2022/apis-manager/index.mjs +2 -2
- package/fesm2022/o3r-apis-manager.mjs +24 -24
- package/fesm2022/o3r-apis-manager.mjs.map +1 -1
- package/package.json +4 -4
- package/schematics/helpers/update-api-deps/index.d.ts.map +1 -1
- package/schematics/helpers/update-api-deps/index.js +8 -10
- package/schematics/ng-add/index.d.ts.map +1 -1
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/schema.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-factory.service.d.ts","sourceRoot":"","sources":["../../src/apis-manager/api-factory.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"api-factory.service.d.ts","sourceRoot":"","sources":["../../src/apis-manager/api-factory.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,SAAS,EACT,OAAO,EACR,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,cAAc,EAEf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACX,MAAM,eAAe,CAAC;;AAKvB,sCAAsC;AACtC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,kBAAkB,6CAAmE,CAAC;AAEnG,qBACa,iBAAiB;IAIG,OAAO,CAAC,QAAQ,CAAC,UAAU;IAH1D,yBAAyB;IACzB,OAAO,CAAC,UAAU,CAA2B;gBAEG,UAAU,EAAE,UAAU,EAA0C,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,YAAY,CAAC,EAAE;IAM7I;;;OAGG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;OAIG;IACI,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,CAAC,KAAK,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,YAAY,UAAQ,GAAG,CAAC;IAWzG;;;;OAIG;IACI,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,YAAY,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC;IAmB1F;;;OAGG;IACI,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;IAQlC;;;OAGG;IACI,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS;yCA1EtC,iBAAiB;6CAAjB,iBAAiB;CA6E7B"}
|
|
@@ -10,7 +10,7 @@ export declare class ApiManager {
|
|
|
10
10
|
private apiConfigurations;
|
|
11
11
|
/**
|
|
12
12
|
* Map of registered Api Client associated to specific API
|
|
13
|
-
*
|
|
13
|
+
* Warning: This should not be used to get the ApiClient for an API, the function getConfiguration() should be used instead
|
|
14
14
|
*/
|
|
15
15
|
get registeredApiConfigurations(): {
|
|
16
16
|
readonly [x: string]: ApiClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-manager.d.ts","sourceRoot":"","sources":["../../src/apis-manager/api-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"api-manager.d.ts","sourceRoot":"","sources":["../../src/apis-manager/api-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,iBAAiB,CAA+B;IAExD;;;OAGG;IACH,IAAW,2BAA2B;;MAErC;IAED;;;OAGG;gBACS,oBAAoB,EAAE,SAAS,EAAE,iBAAiB,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAO;IAKjG;;;OAGG;IACI,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAItD;;;;OAIG;IACI,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;CAOxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-manager.module.d.ts","sourceRoot":"","sources":["../../src/apis-manager/api-manager.module.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"api-manager.module.d.ts","sourceRoot":"","sources":["../../src/apis-manager/api-manager.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,UAAU,EACX,MAAM,eAAe,CAAC;;AAMvB,qBAKa,gBAAgB;IAC3B;;;;OAIG;WACW,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;yCANzE,gBAAgB;0CAAhB,gBAAgB;0CAAhB,gBAAgB;CAc5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-manager.token.d.ts","sourceRoot":"","sources":["../../src/apis-manager/api-manager.token.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"api-manager.token.d.ts","sourceRoot":"","sources":["../../src/apis-manager/api-manager.token.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACX,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,eAAO,MAAM,SAAS,4BAA6D,CAAC"}
|
package/apis-manager/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from './api-factory.service';
|
|
2
2
|
export * from './api-manager';
|
|
3
|
+
export * from './api-manager.helpers';
|
|
3
4
|
export * from './api-manager.module';
|
|
4
5
|
export * from './api-manager.token';
|
|
5
|
-
export * from './api-manager.helpers';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apis-manager/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apis-manager/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
|
|
2
|
-
import { ApiManager } from './api-manager';
|
|
3
|
-
import { API_TOKEN } from './api-manager.token';
|
|
1
|
+
import { Inject, Injectable, InjectionToken, Optional, } from '@angular/core';
|
|
2
|
+
import { ApiManager, } from './api-manager';
|
|
3
|
+
import { API_TOKEN, } from './api-manager.token';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "./api-manager";
|
|
6
6
|
/**
|
|
@@ -33,7 +33,6 @@ export class ApiFactoryService {
|
|
|
33
33
|
if (!refreshCache && cache) {
|
|
34
34
|
return cache;
|
|
35
35
|
}
|
|
36
|
-
// eslint-disable-next-line new-cap
|
|
37
36
|
const instance = new apiClass(this.getConfigFor(apiClass));
|
|
38
37
|
this.loadedApis[apiClass.apiName] = instance;
|
|
39
38
|
return instance;
|
|
@@ -44,16 +43,17 @@ export class ApiFactoryService {
|
|
|
44
43
|
* @param map Map of loaded APIs to update
|
|
45
44
|
*/
|
|
46
45
|
updateApiMapping(map) {
|
|
47
|
-
const newItems = Array.isArray(map)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
const newItems = Array.isArray(map)
|
|
47
|
+
? map
|
|
48
|
+
.reduce((acc, curr) => {
|
|
49
|
+
acc[curr.apiName] = curr;
|
|
50
|
+
return acc;
|
|
51
|
+
}, {})
|
|
52
|
+
: map;
|
|
52
53
|
this.loadedApis = {
|
|
53
54
|
...this.loadedApis,
|
|
54
55
|
...Object.entries(newItems)
|
|
55
56
|
.reduce((acc, [apiName, api]) => {
|
|
56
|
-
// eslint-disable-next-line new-cap
|
|
57
57
|
acc[apiName] = this.isApiClass(api) ? new api(this.getConfigFor(api)) : api;
|
|
58
58
|
return acc;
|
|
59
59
|
}, {})
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
92
92
|
type: Inject,
|
|
93
93
|
args: [INITIAL_APIS_TOKEN]
|
|
94
94
|
}] }] });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWZhY3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGlzLW1hbmFnZXIvYXBpLWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsR0FDVixNQUFNLHFCQUFxQixDQUFDOzs7QUFLN0I7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsb0JBQW9CLENBQUMsQ0FBQztBQUduRyxNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBQWdELFVBQXNCLEVBQTBDLElBQTZCO1FBQTdGLGVBQVUsR0FBVixVQUFVLENBQVk7UUFIdEUseUJBQXlCO1FBQ2pCLGVBQVUsR0FBd0IsRUFBRSxDQUFDO1FBRzNDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxVQUFVLENBQXNCLFFBQWE7UUFDbkQsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQWdCLFFBQWtELEVBQUUsWUFBWSxHQUFHLEtBQUs7UUFDbkcsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUMzQixPQUFPLEtBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUM3QyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGdCQUFnQixDQUFDLEdBQWtFO1FBQ3hGLE1BQU0sUUFBUSxHQUF5QyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUN2RSxDQUFDLENBQUMsR0FBRztpQkFDRixNQUFNLENBQTBDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUM3RCxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDekIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUVSLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsR0FBRyxJQUFJLENBQUMsVUFBVTtZQUNsQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2lCQUN4QixNQUFNLENBQXNCLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ25ELEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDNUUsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsSUFBZ0I7UUFDaEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLFFBQWlCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztrSUE1RVUsaUJBQWlCLGtCQUlSLFNBQVMsYUFBK0Qsa0JBQWtCO3NJQUpuRyxpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVU7OzBCQUtJLE1BQU07MkJBQUMsU0FBUzs7MEJBQTRDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBcGksXG4gIEFwaUNsaWVudCxcbiAgQXBpTmFtZSxcbn0gZnJvbSAnQGFtYS1zZGsvY29yZSc7XG5pbXBvcnQge1xuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdGlvblRva2VuLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBcGlNYW5hZ2VyLFxufSBmcm9tICcuL2FwaS1tYW5hZ2VyJztcbmltcG9ydCB7XG4gIEFQSV9UT0tFTixcbn0gZnJvbSAnLi9hcGktbWFuYWdlci50b2tlbic7XG5cbi8qKiBUeXBlIG9mIHRoZSBDbGFzcyBvZiBhbiBTREsgQXBpICovXG5leHBvcnQgdHlwZSBBcGlDbGFzc1R5cGU8VCBleHRlbmRzIEFwaSA9IEFwaT4gPSAobmV3IChjbGllbnQ6IEFwaUNsaWVudCkgPT4gVCkgJiBBcGlOYW1lO1xuXG4vKipcbiAqIEluaXRpYWwgQVBJcyBpbnN0YW50aWF0aW9uc1xuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9BUElTX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPChBcGkgfCBBcGlDbGFzc1R5cGUpW10+KCdJbml0aWFsIEFQSXMgdG9rZW4nKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFwaUZhY3RvcnlTZXJ2aWNlIHtcbiAgLyoqIE1hcCBvZiBsb2FkZWQgQVBJcyAqL1xuICBwcml2YXRlIGxvYWRlZEFwaXM6IFJlY29yZDxzdHJpbmcsIEFwaT4gPSB7fTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFQSV9UT0tFTikgcHJpdmF0ZSByZWFkb25seSBhcGlNYW5hZ2VyOiBBcGlNYW5hZ2VyLCBAT3B0aW9uYWwoKSBASW5qZWN0KElOSVRJQUxfQVBJU19UT0tFTikgYXBpcz86IChBcGkgfCBBcGlDbGFzc1R5cGUpW10pIHtcbiAgICBpZiAoYXBpcykge1xuICAgICAgdGhpcy51cGRhdGVBcGlNYXBwaW5nKGFwaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIHBhcmFtZXRlciBpcyBhIEFQSSBjbGFzc1xuICAgKiBAcGFyYW0gYXBpQ2xhc3Mgb2JqZWN0IHRvIGNoZWNrXG4gICAqL1xuICBwcml2YXRlIGlzQXBpQ2xhc3M8VCBleHRlbmRzIEFwaSA9IEFwaT4oYXBpQ2xhc3M6IGFueSk6IGFwaUNsYXNzIGlzIEFwaUNsYXNzVHlwZTxUPiB7XG4gICAgcmV0dXJuICEhYXBpQ2xhc3MuYXBpTmFtZSAmJiB0eXBlb2YgYXBpQ2xhc3MgPT09ICdmdW5jdGlvbic7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgYSBzcGVjaWZpYyBBUEkgd2l0aCBsb2FkZWQgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gYXBpQ2xhc3MgY2xhc3Mgb2YgdGhlIEFQSSB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gcmVmcmVzaENhY2hlIElnbm9yZSBjYWNoZWQgQVBJIGluc3RhbmNlIGFuZCByZWZyZXNoIGl0XG4gICAqL1xuICBwdWJsaWMgZ2V0QXBpPFQgZXh0ZW5kcyBBcGk+KGFwaUNsYXNzOiAobmV3IChjbGllbnQ6IEFwaUNsaWVudCkgPT4gVCkgJiBBcGlOYW1lLCByZWZyZXNoQ2FjaGUgPSBmYWxzZSk6IFQge1xuICAgIGNvbnN0IGNhY2hlID0gdGhpcy5sb2FkZWRBcGlzW2FwaUNsYXNzLmFwaU5hbWVdO1xuICAgIGlmICghcmVmcmVzaENhY2hlICYmIGNhY2hlKSB7XG4gICAgICByZXR1cm4gY2FjaGUgYXMgVDtcbiAgICB9XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBhcGlDbGFzcyh0aGlzLmdldENvbmZpZ0ZvcihhcGlDbGFzcykpO1xuICAgIHRoaXMubG9hZGVkQXBpc1thcGlDbGFzcy5hcGlOYW1lXSA9IGluc3RhbmNlO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIE1hcCBvZiBsb2FkZWQgQVBJcy5cbiAgICogTm90ZTogQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGEgc3BlY2lmaWMgQVBJXG4gICAqIEBwYXJhbSBtYXAgTWFwIG9mIGxvYWRlZCBBUElzIHRvIHVwZGF0ZVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUFwaU1hcHBpbmcobWFwOiAoQXBpIHwgQXBpQ2xhc3NUeXBlKVtdIHwgUmVjb3JkPHN0cmluZywgKEFwaSB8IEFwaUNsYXNzVHlwZSk+KSB7XG4gICAgY29uc3QgbmV3SXRlbXM6IFJlY29yZDxzdHJpbmcsIChBcGkgfCBBcGlDbGFzc1R5cGUpPiA9IEFycmF5LmlzQXJyYXkobWFwKVxuICAgICAgPyBtYXBcbiAgICAgICAgLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBBcGkgfCBBcGlDbGFzc1R5cGU8QXBpPj4+KChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICBhY2NbY3Vyci5hcGlOYW1lXSA9IGN1cnI7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgICA6IG1hcDtcblxuICAgIHRoaXMubG9hZGVkQXBpcyA9IHtcbiAgICAgIC4uLnRoaXMubG9hZGVkQXBpcyxcbiAgICAgIC4uLk9iamVjdC5lbnRyaWVzKG5ld0l0ZW1zKVxuICAgICAgICAucmVkdWNlPFJlY29yZDxzdHJpbmcsIEFwaT4+KChhY2MsIFthcGlOYW1lLCBhcGldKSA9PiB7XG4gICAgICAgICAgYWNjW2FwaU5hbWVdID0gdGhpcy5pc0FwaUNsYXNzKGFwaSkgPyBuZXcgYXBpKHRoaXMuZ2V0Q29uZmlnRm9yKGFwaSkpIDogYXBpO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIGNhY2hlIG9mIGxvYWRlZCBBUElzXG4gICAqIEBwYXJhbSBhcGlzIFdoaXRlbGlzdCBvZiBBUElzIHRvIGNsZWFyIGZyb20gdGhlIGNhY2hlLCBpZiBzcGVjaWZpZWQgb25seSB0aGVzZSBhcGlzIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBjYWNoZVxuICAgKi9cbiAgcHVibGljIGNsZWFyQ2FjaGUoYXBpcz86IEFwaU5hbWVbXSkge1xuICAgIGlmIChhcGlzKSB7XG4gICAgICBhcGlzLmZvckVhY2goKGFwaSkgPT4gZGVsZXRlIHRoaXMubG9hZGVkQXBpc1thcGkuYXBpTmFtZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvYWRlZEFwaXMgPSB7fTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGEgc3BlY2lmaWMgQVBJXG4gICAqIEBwYXJhbSBhcGlDbGFzcyBjbGFzcyBvZiB0aGUgQVBJIGZvciB3aGljaCByZXRyaWV2aW5nIHRoZSBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29uZmlnRm9yKGFwaUNsYXNzOiBBcGlOYW1lKTogQXBpQ2xpZW50IHtcbiAgICByZXR1cm4gdGhpcy5hcGlNYW5hZ2VyLmdldENvbmZpZ3VyYXRpb24oYXBpQ2xhc3MuYXBpTmFtZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -10,6 +10,6 @@ export function appendPreconnect(baseUrl, supportCrossOrigin = true) {
|
|
|
10
10
|
if (supportCrossOrigin) {
|
|
11
11
|
preConnectLink.setAttribute('crossorigin', '');
|
|
12
12
|
}
|
|
13
|
-
document.head.
|
|
13
|
+
document.head.append(preConnectLink);
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW1hbmFnZXIuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGlzLW1hbmFnZXIvYXBpLW1hbmFnZXIuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQWUsRUFBRSxrQkFBa0IsR0FBRyxJQUFJO0lBQ3pFLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDakQsY0FBYyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0MsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZCLGNBQWMsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBZGQgYSBwcmVjb25uZWN0IGA8bGluaz5gIGVsZW1lbnQgdG8gdGhlIERPTVxuICogQHBhcmFtIGJhc2VVcmwgdGhlIG9yaWdpbiBocmVmXG4gKiBAcGFyYW0gc3VwcG9ydENyb3NzT3JpZ2luIGFkZCBjcm9zc29yaWdpbiBhdHRyaWJ1dGUgdG8gdGhlIGxpbmsgZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kUHJlY29ubmVjdChiYXNlVXJsOiBzdHJpbmcsIHN1cHBvcnRDcm9zc09yaWdpbiA9IHRydWUpOiB2b2lkIHtcbiAgY29uc3QgcHJlQ29ubmVjdExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gIHByZUNvbm5lY3RMaW5rLnNldEF0dHJpYnV0ZSgncmVsJywgJ3ByZWNvbm5lY3QnKTtcbiAgcHJlQ29ubmVjdExpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgYmFzZVVybCk7XG4gIGlmIChzdXBwb3J0Q3Jvc3NPcmlnaW4pIHtcbiAgICBwcmVDb25uZWN0TGluay5zZXRBdHRyaWJ1dGUoJ2Nyb3Nzb3JpZ2luJywgJycpO1xuICB9XG4gIGRvY3VtZW50LmhlYWQuYXBwZW5kKHByZUNvbm5lY3RMaW5rKTtcbn1cbiJdfQ==
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
export class ApiManager {
|
|
8
8
|
/**
|
|
9
9
|
* Map of registered Api Client associated to specific API
|
|
10
|
-
*
|
|
10
|
+
* Warning: This should not be used to get the ApiClient for an API, the function getConfiguration() should be used instead
|
|
11
11
|
*/
|
|
12
12
|
get registeredApiConfigurations() {
|
|
13
13
|
return { ...this.apiConfigurations };
|
|
@@ -25,7 +25,7 @@ export class ApiManager {
|
|
|
25
25
|
* @param api API to get the configuration for
|
|
26
26
|
*/
|
|
27
27
|
getConfiguration(api) {
|
|
28
|
-
return api && this.apiConfigurations[typeof api === 'string' ? api : api.apiName] || this.defaultConfiguration;
|
|
28
|
+
return (api && this.apiConfigurations[typeof api === 'string' ? api : api.apiName]) || this.defaultConfiguration;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Set or override API configuration
|
|
@@ -41,4 +41,4 @@ export class ApiManager {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpcy1tYW5hZ2VyL2FwaS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFJckI7OztPQUdHO0lBQ0gsSUFBVywyQkFBMkI7UUFDcEMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFXLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksb0JBQStCLEVBQUUsb0JBQWtELEVBQUU7UUFDL0YsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMsR0FBa0I7UUFDeEMsT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGdCQUFnQixDQUFDLFNBQW9CLEVBQUUsR0FBa0I7UUFDOUQsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNsRixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQXBpLFxuICBBcGlDbGllbnQsXG59IGZyb20gJ0BhbWEtc2RrL2NvcmUnO1xuXG4vKipcbiAqIEFwaSBtYW5hZ2VyIGlzIHJlc3BvbnNpYmxlIHRvIHByb3ZpZGUgYW4gYXBpIGNvbmZpZ3VyYXRpb24gdG8gYSBzZXJ2aWNlIGZhY3RvcnksIHNvIHRoYXQgaXQgY291bGQgaW5zdGFudGlhdGUgYW4gQVBJXG4gKiB3aXRoIHRoZSByaWdodCBwYXJhbWV0ZXJzLiBJdCBjb250YWlucyBhIGRlZmF1bHQgY29uZmlndXJhdGlvbiBhbmQgYSBtYXAgb2Ygc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZm9yIEFQSSAvIHNldCBvZlxuICogQVBJLiBDb25maWd1cmF0aW9ucyBhcmUgb25seSBleHBvc2VkIHRocm91Z2ggdGhlIG1ldGhvZCBnZXRDb25maWd1cmF0aW9uLCB3aGljaCB3aWxsIG1lcmdlIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAqIGFuZCB0aGUgcmVxdWVzdGVkIG9uZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaU1hbmFnZXIge1xuICBwcml2YXRlIGRlZmF1bHRDb25maWd1cmF0aW9uOiBBcGlDbGllbnQ7XG4gIHByaXZhdGUgYXBpQ29uZmlndXJhdGlvbnM6IHsgW2tleTogc3RyaW5nXTogQXBpQ2xpZW50IH07XG5cbiAgLyoqXG4gICAqIE1hcCBvZiByZWdpc3RlcmVkIEFwaSBDbGllbnQgYXNzb2NpYXRlZCB0byBzcGVjaWZpYyBBUElcbiAgICogV2FybmluZzogVGhpcyBzaG91bGQgbm90IGJlIHVzZWQgdG8gZ2V0IHRoZSBBcGlDbGllbnQgZm9yIGFuIEFQSSwgdGhlIGZ1bmN0aW9uIGdldENvbmZpZ3VyYXRpb24oKSBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlZ2lzdGVyZWRBcGlDb25maWd1cmF0aW9ucygpIHtcbiAgICByZXR1cm4geyAuLi50aGlzLmFwaUNvbmZpZ3VyYXRpb25zIH0gYXMgY29uc3Q7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEFQSSBtYW5hZ2VyIHVzaW5nIGEgY3VzdG9tIEFwaUNsaWVudFxuICAgKiBAcGFyYW0gZGVmYXVsdENvbmZpZ3VyYXRpb25cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRlZmF1bHRDb25maWd1cmF0aW9uOiBBcGlDbGllbnQsIGFwaUNvbmZpZ3VyYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IEFwaUNsaWVudCB9ID0ge30pIHtcbiAgICB0aGlzLmRlZmF1bHRDb25maWd1cmF0aW9uID0gZGVmYXVsdENvbmZpZ3VyYXRpb247XG4gICAgdGhpcy5hcGlDb25maWd1cmF0aW9ucyA9IGFwaUNvbmZpZ3VyYXRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGEgY29uZmlndXJhdGlvbiBmb3IgYSBzcGVjaWZpYyBBUElcbiAgICogQHBhcmFtIGFwaSBBUEkgdG8gZ2V0IHRoZSBjb25maWd1cmF0aW9uIGZvclxuICAgKi9cbiAgcHVibGljIGdldENvbmZpZ3VyYXRpb24oYXBpPzogc3RyaW5nIHwgQXBpKTogQXBpQ2xpZW50IHtcbiAgICByZXR1cm4gKGFwaSAmJiB0aGlzLmFwaUNvbmZpZ3VyYXRpb25zW3R5cGVvZiBhcGkgPT09ICdzdHJpbmcnID8gYXBpIDogYXBpLmFwaU5hbWVdKSB8fCB0aGlzLmRlZmF1bHRDb25maWd1cmF0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBvciBvdmVycmlkZSBBUEkgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gYXBpQ2xpZW50IEFQSSBjb25maWd1cmF0aW9uIHRvIG92ZXJyaWRlIHRvIHRoZSBnaXZlbiBhcGlcbiAgICogQHBhcmFtIGFwaSBBUEkgbmFtZSB0byBvdmVycmlkZSwgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiB3aWxsIGJlIHVzZWQgaWYgbm90IHNwZWNpZmllZFxuICAgKi9cbiAgcHVibGljIHNldENvbmZpZ3VyYXRpb24oYXBpQ2xpZW50OiBBcGlDbGllbnQsIGFwaT86IHN0cmluZyB8IEFwaSk6IHZvaWQge1xuICAgIGlmIChhcGkpIHtcbiAgICAgIHRoaXMuYXBpQ29uZmlndXJhdGlvbnNbdHlwZW9mIGFwaSA9PT0gJ3N0cmluZycgPyBhcGkgOiBhcGkuYXBpTmFtZV0gPSBhcGlDbGllbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZ3VyYXRpb24gPSBhcGlDbGllbnQ7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { ApiFactoryService } from './api-factory.service';
|
|
3
|
-
import { API_TOKEN } from './api-manager.token';
|
|
1
|
+
import { NgModule, } from '@angular/core';
|
|
2
|
+
import { ApiFactoryService, } from './api-factory.service';
|
|
3
|
+
import { API_TOKEN, } from './api-manager.token';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
// Module that needs to be imported by the application to instantiate an SDK configuration.
|
|
6
6
|
export class ApiManagerModule {
|
|
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
31
31
|
]
|
|
32
32
|
}]
|
|
33
33
|
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW1hbmFnZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaXMtbWFuYWdlci9hcGktbWFuYWdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsaUJBQWlCLEdBQ2xCLE1BQU0sdUJBQXVCLENBQUM7QUFJL0IsT0FBTyxFQUNMLFNBQVMsR0FDVixNQUFNLHFCQUFxQixDQUFDOztBQUU3QiwyRkFBMkY7QUFNM0YsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFzQjtRQUMxQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7YUFDN0M7U0FDRixDQUFDO0lBQ0osQ0FBQztrSUFiVSxnQkFBZ0I7bUlBQWhCLGdCQUFnQjttSUFBaEIsZ0JBQWdCLGFBSmhCO1lBQ1QsaUJBQWlCO1NBQ2xCOzs0RkFFVSxnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULGlCQUFpQjtxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBOZ01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBcGlGYWN0b3J5U2VydmljZSxcbn0gZnJvbSAnLi9hcGktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFwaU1hbmFnZXIsXG59IGZyb20gJy4vYXBpLW1hbmFnZXInO1xuaW1wb3J0IHtcbiAgQVBJX1RPS0VOLFxufSBmcm9tICcuL2FwaS1tYW5hZ2VyLnRva2VuJztcblxuLy8gTW9kdWxlIHRoYXQgbmVlZHMgdG8gYmUgaW1wb3J0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uIHRvIGluc3RhbnRpYXRlIGFuIFNESyBjb25maWd1cmF0aW9uLlxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgQXBpRmFjdG9yeVNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcGlNYW5hZ2VyTW9kdWxlIHtcbiAgLyoqXG4gICAqIFByb3ZpZGUgYSBjdXN0b20gYXBpTWFuYWdlclxuICAgKiBBIGZhY3RvcnkgY2FuIGJlIHByb3ZpZGVkIHZpYSBpbmplY3Rpb24gdG8gdGhlIHRva2VuIEFQSV9UT0tFTlxuICAgKiBAcGFyYW0gYXBpTWFuYWdlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGFwaU1hbmFnZXI6IEFwaU1hbmFnZXIpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFwaU1hbmFnZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFwaU1hbmFnZXJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBBUElfVE9LRU4sIHVzZVZhbHVlOiBhcGlNYW5hZ2VyIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
1
|
+
import { InjectionToken, } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Token used by the core library to provide an Api manager to services. It can be provided in the app.
|
|
4
4
|
*/
|
|
5
5
|
export const API_TOKEN = new InjectionToken('Custom API manager token');
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW1hbmFnZXIudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpcy1tYW5hZ2VyL2FwaS1tYW5hZ2VyLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFLdkI7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQWEsMEJBQTBCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGlvblRva2VuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFwaU1hbmFnZXIsXG59IGZyb20gJy4vYXBpLW1hbmFnZXInO1xuXG4vKipcbiAqIFRva2VuIHVzZWQgYnkgdGhlIGNvcmUgbGlicmFyeSB0byBwcm92aWRlIGFuIEFwaSBtYW5hZ2VyIHRvIHNlcnZpY2VzLiBJdCBjYW4gYmUgcHJvdmlkZWQgaW4gdGhlIGFwcC5cbiAqL1xuZXhwb3J0IGNvbnN0IEFQSV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcGlNYW5hZ2VyPignQ3VzdG9tIEFQSSBtYW5hZ2VyIHRva2VuJyk7XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from './api-factory.service';
|
|
2
2
|
export * from './api-manager';
|
|
3
|
+
export * from './api-manager.helpers';
|
|
3
4
|
export * from './api-manager.module';
|
|
4
5
|
export * from './api-manager.token';
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpcy1tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwaS1mYWN0b3J5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGktbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2FwaS1tYW5hZ2VyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS1tYW5hZ2VyLnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpLW1hbmFnZXIuaGVscGVycyc7XG4iXX0=
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpcy1tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwaS1mYWN0b3J5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGktbWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL2FwaS1tYW5hZ2VyLmhlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGktbWFuYWdlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGktbWFuYWdlci50b2tlbic7XG4iXX0=
|
|
@@ -10,7 +10,7 @@ import { InjectionToken, Injectable, Inject, Optional, NgModule } from '@angular
|
|
|
10
10
|
class ApiManager {
|
|
11
11
|
/**
|
|
12
12
|
* Map of registered Api Client associated to specific API
|
|
13
|
-
*
|
|
13
|
+
* Warning: This should not be used to get the ApiClient for an API, the function getConfiguration() should be used instead
|
|
14
14
|
*/
|
|
15
15
|
get registeredApiConfigurations() {
|
|
16
16
|
return { ...this.apiConfigurations };
|
|
@@ -28,7 +28,7 @@ class ApiManager {
|
|
|
28
28
|
* @param api API to get the configuration for
|
|
29
29
|
*/
|
|
30
30
|
getConfiguration(api) {
|
|
31
|
-
return api && this.apiConfigurations[typeof api === 'string' ? api : api.apiName] || this.defaultConfiguration;
|
|
31
|
+
return (api && this.apiConfigurations[typeof api === 'string' ? api : api.apiName]) || this.defaultConfiguration;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Set or override API configuration
|
|
@@ -80,7 +80,6 @@ class ApiFactoryService {
|
|
|
80
80
|
if (!refreshCache && cache) {
|
|
81
81
|
return cache;
|
|
82
82
|
}
|
|
83
|
-
// eslint-disable-next-line new-cap
|
|
84
83
|
const instance = new apiClass(this.getConfigFor(apiClass));
|
|
85
84
|
this.loadedApis[apiClass.apiName] = instance;
|
|
86
85
|
return instance;
|
|
@@ -91,16 +90,17 @@ class ApiFactoryService {
|
|
|
91
90
|
* @param map Map of loaded APIs to update
|
|
92
91
|
*/
|
|
93
92
|
updateApiMapping(map) {
|
|
94
|
-
const newItems = Array.isArray(map)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
const newItems = Array.isArray(map)
|
|
94
|
+
? map
|
|
95
|
+
.reduce((acc, curr) => {
|
|
96
|
+
acc[curr.apiName] = curr;
|
|
97
|
+
return acc;
|
|
98
|
+
}, {})
|
|
99
|
+
: map;
|
|
99
100
|
this.loadedApis = {
|
|
100
101
|
...this.loadedApis,
|
|
101
102
|
...Object.entries(newItems)
|
|
102
103
|
.reduce((acc, [apiName, api]) => {
|
|
103
|
-
// eslint-disable-next-line new-cap
|
|
104
104
|
acc[apiName] = this.isApiClass(api) ? new api(this.getConfigFor(api)) : api;
|
|
105
105
|
return acc;
|
|
106
106
|
}, {})
|
|
@@ -140,6 +140,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
140
140
|
args: [INITIAL_APIS_TOKEN]
|
|
141
141
|
}] }] });
|
|
142
142
|
|
|
143
|
+
/**
|
|
144
|
+
* Add a preconnect `<link>` element to the DOM
|
|
145
|
+
* @param baseUrl the origin href
|
|
146
|
+
* @param supportCrossOrigin add crossorigin attribute to the link element
|
|
147
|
+
*/
|
|
148
|
+
function appendPreconnect(baseUrl, supportCrossOrigin = true) {
|
|
149
|
+
const preConnectLink = document.createElement('link');
|
|
150
|
+
preConnectLink.setAttribute('rel', 'preconnect');
|
|
151
|
+
preConnectLink.setAttribute('href', baseUrl);
|
|
152
|
+
if (supportCrossOrigin) {
|
|
153
|
+
preConnectLink.setAttribute('crossorigin', '');
|
|
154
|
+
}
|
|
155
|
+
document.head.append(preConnectLink);
|
|
156
|
+
}
|
|
157
|
+
|
|
143
158
|
// Module that needs to be imported by the application to instantiate an SDK configuration.
|
|
144
159
|
class ApiManagerModule {
|
|
145
160
|
/**
|
|
@@ -170,21 +185,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
170
185
|
}]
|
|
171
186
|
}] });
|
|
172
187
|
|
|
173
|
-
/**
|
|
174
|
-
* Add a preconnect `<link>` element to the DOM
|
|
175
|
-
* @param baseUrl the origin href
|
|
176
|
-
* @param supportCrossOrigin add crossorigin attribute to the link element
|
|
177
|
-
*/
|
|
178
|
-
function appendPreconnect(baseUrl, supportCrossOrigin = true) {
|
|
179
|
-
const preConnectLink = document.createElement('link');
|
|
180
|
-
preConnectLink.setAttribute('rel', 'preconnect');
|
|
181
|
-
preConnectLink.setAttribute('href', baseUrl);
|
|
182
|
-
if (supportCrossOrigin) {
|
|
183
|
-
preConnectLink.setAttribute('crossorigin', '');
|
|
184
|
-
}
|
|
185
|
-
document.head.appendChild(preConnectLink);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
188
|
/**
|
|
189
189
|
* Generated bundle index. Do not edit.
|
|
190
190
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"o3r-apis-manager.mjs","sources":["../../src/apis-manager/api-manager.ts","../../src/apis-manager/api-manager.token.ts","../../src/apis-manager/api-factory.service.ts","../../src/apis-manager/api-manager.module.ts","../../src/apis-manager/api-manager.helpers.ts","../../src/o3r-apis-manager.ts"],"sourcesContent":["import type { Api, ApiClient } from '@ama-sdk/core';\n\n/**\n * Api manager is responsible to provide an api configuration to a service factory, so that it could instantiate an API\n * with the right parameters. It contains a default configuration and a map of specific configurations for API / set of\n * API. Configurations are only exposed through the method getConfiguration, which will merge the default configuration\n * and the requested one.\n */\nexport class ApiManager {\n private defaultConfiguration: ApiClient;\n private apiConfigurations: { [key: string]: ApiClient };\n\n /**\n * Map of registered Api Client associated to specific API\n * @warning This should not be used to get the ApiClient for an API, the function getConfiguration() should be used instead\n */\n public get registeredApiConfigurations() {\n return {...this.apiConfigurations} as const;\n }\n\n /**\n * Create an API manager using a custom ApiClient\n * @param defaultConfiguration\n */\n constructor(defaultConfiguration: ApiClient, apiConfigurations: { [key: string]: ApiClient } = {}) {\n this.defaultConfiguration = defaultConfiguration;\n this.apiConfigurations = apiConfigurations;\n }\n\n /**\n * Retrieve a configuration for a specific API\n * @param api API to get the configuration for\n */\n public getConfiguration(api?: string | Api): ApiClient {\n return api && this.apiConfigurations[typeof api === 'string' ? api : api.apiName] || this.defaultConfiguration;\n }\n\n /**\n * Set or override API configuration\n * @param apiClient API configuration to override to the given api\n * @param api API name to override, the default configuration will be used if not specified\n */\n public setConfiguration(apiClient: ApiClient, api?: string | Api): void {\n if (api) {\n this.apiConfigurations[typeof api === 'string' ? api : api.apiName] = apiClient;\n } else {\n this.defaultConfiguration = apiClient;\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ApiManager } from './api-manager';\n\n/**\n * Token used by the core library to provide an Api manager to services. It can be provided in the app.\n */\nexport const API_TOKEN = new InjectionToken<ApiManager>('Custom API manager token');\n","import type { Api, ApiClient, ApiName } from '@ama-sdk/core';\nimport { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { ApiManager } from './api-manager';\nimport { API_TOKEN } from './api-manager.token';\n\n/** Type of the Class of an SDK Api */\nexport type ApiClassType<T extends Api = Api> = (new (client: ApiClient) => T) & ApiName;\n\n/**\n * Initial APIs instantiations\n */\nexport const INITIAL_APIS_TOKEN = new InjectionToken<(Api | ApiClassType)[]>('Initial APIs token');\n\n@Injectable()\nexport class ApiFactoryService {\n\n /** Map of loaded APIs */\n private loadedApis: Record<string, Api> = {};\n\n constructor(@Inject(API_TOKEN) private readonly apiManager: ApiManager, @Optional() @Inject(INITIAL_APIS_TOKEN) apis?: (Api | ApiClassType)[]) {\n if (apis) {\n this.updateApiMapping(apis);\n }\n }\n\n /**\n * Determine if the given parameter is a API class\n * @param apiClass object to check\n */\n private isApiClass<T extends Api = Api>(apiClass: any): apiClass is ApiClassType<T> {\n return !!apiClass.apiName && typeof apiClass === 'function';\n }\n\n /**\n * Retrieve a specific API with loaded configuration\n * @param apiClass class of the API to retrieve\n * @param refreshCache Ignore cached API instance and refresh it\n */\n public getApi<T extends Api>(apiClass: (new (client: ApiClient) => T) & ApiName, refreshCache = false): T {\n const cache = this.loadedApis[apiClass.apiName];\n if (!refreshCache && cache) {\n return cache as T;\n }\n\n // eslint-disable-next-line new-cap\n const instance = new apiClass(this.getConfigFor(apiClass));\n this.loadedApis[apiClass.apiName] = instance;\n return instance;\n }\n\n /**\n * Update the Map of loaded APIs.\n * Note: Can be used to override the a specific API\n * @param map Map of loaded APIs to update\n */\n public updateApiMapping(map: (Api | ApiClassType)[] | Record<string, (Api | ApiClassType)>) {\n const newItems: Record<string, (Api | ApiClassType)> = Array.isArray(map) ? map\n .reduce<Record<string, Api | ApiClassType<Api>>>((acc, curr) => {\n acc[curr.apiName] = curr;\n return acc;\n }, {}) : map;\n\n this.loadedApis = {\n ...this.loadedApis,\n ...Object.entries(newItems)\n .reduce<Record<string, Api>>((acc, [apiName, api]) => {\n // eslint-disable-next-line new-cap\n acc[apiName] = this.isApiClass(api) ? new api(this.getConfigFor(api)) : api;\n return acc;\n }, {})\n };\n }\n\n /**\n * Clear the cache of loaded APIs\n * @param apis Whitelist of APIs to clear from the cache, if specified only these apis will be removed from the cache\n */\n public clearCache(apis?: ApiName[]) {\n if (apis) {\n apis.forEach((api) => delete this.loadedApis[api.apiName]);\n } else {\n this.loadedApis = {};\n }\n }\n\n /**\n * Retrieve the configuration for a specific API\n * @param apiClass class of the API for which retrieving the configuration\n */\n public getConfigFor(apiClass: ApiName): ApiClient {\n return this.apiManager.getConfiguration(apiClass.apiName);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ApiFactoryService } from './api-factory.service';\nimport { ApiManager } from './api-manager';\nimport { API_TOKEN } from './api-manager.token';\n\n// Module that needs to be imported by the application to instantiate an SDK configuration.\n@NgModule({\n providers: [\n ApiFactoryService\n ]\n})\nexport class ApiManagerModule {\n /**\n * Provide a custom apiManager\n * A factory can be provided via injection to the token API_TOKEN\n * @param apiManager\n */\n public static forRoot(apiManager: ApiManager): ModuleWithProviders<ApiManagerModule> {\n return {\n ngModule: ApiManagerModule,\n providers: [\n { provide: API_TOKEN, useValue: apiManager }\n ]\n };\n }\n}\n","/**\n * Add a preconnect `<link>` element to the DOM\n * @param baseUrl the origin href\n * @param supportCrossOrigin add crossorigin attribute to the link element\n */\nexport function appendPreconnect(baseUrl: string, supportCrossOrigin = true): void {\n const preConnectLink = document.createElement('link');\n preConnectLink.setAttribute('rel', 'preconnect');\n preConnectLink.setAttribute('href', baseUrl);\n if (supportCrossOrigin) {\n preConnectLink.setAttribute('crossorigin', '');\n }\n document.head.appendChild(preConnectLink);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"o3r-apis-manager.mjs","sources":["../../src/apis-manager/api-manager.ts","../../src/apis-manager/api-manager.token.ts","../../src/apis-manager/api-factory.service.ts","../../src/apis-manager/api-manager.helpers.ts","../../src/apis-manager/api-manager.module.ts","../../src/o3r-apis-manager.ts"],"sourcesContent":["import type {\n Api,\n ApiClient,\n} from '@ama-sdk/core';\n\n/**\n * Api manager is responsible to provide an api configuration to a service factory, so that it could instantiate an API\n * with the right parameters. It contains a default configuration and a map of specific configurations for API / set of\n * API. Configurations are only exposed through the method getConfiguration, which will merge the default configuration\n * and the requested one.\n */\nexport class ApiManager {\n private defaultConfiguration: ApiClient;\n private apiConfigurations: { [key: string]: ApiClient };\n\n /**\n * Map of registered Api Client associated to specific API\n * Warning: This should not be used to get the ApiClient for an API, the function getConfiguration() should be used instead\n */\n public get registeredApiConfigurations() {\n return { ...this.apiConfigurations } as const;\n }\n\n /**\n * Create an API manager using a custom ApiClient\n * @param defaultConfiguration\n */\n constructor(defaultConfiguration: ApiClient, apiConfigurations: { [key: string]: ApiClient } = {}) {\n this.defaultConfiguration = defaultConfiguration;\n this.apiConfigurations = apiConfigurations;\n }\n\n /**\n * Retrieve a configuration for a specific API\n * @param api API to get the configuration for\n */\n public getConfiguration(api?: string | Api): ApiClient {\n return (api && this.apiConfigurations[typeof api === 'string' ? api : api.apiName]) || this.defaultConfiguration;\n }\n\n /**\n * Set or override API configuration\n * @param apiClient API configuration to override to the given api\n * @param api API name to override, the default configuration will be used if not specified\n */\n public setConfiguration(apiClient: ApiClient, api?: string | Api): void {\n if (api) {\n this.apiConfigurations[typeof api === 'string' ? api : api.apiName] = apiClient;\n } else {\n this.defaultConfiguration = apiClient;\n }\n }\n}\n","import {\n InjectionToken,\n} from '@angular/core';\nimport {\n ApiManager,\n} from './api-manager';\n\n/**\n * Token used by the core library to provide an Api manager to services. It can be provided in the app.\n */\nexport const API_TOKEN = new InjectionToken<ApiManager>('Custom API manager token');\n","import type {\n Api,\n ApiClient,\n ApiName,\n} from '@ama-sdk/core';\nimport {\n Inject,\n Injectable,\n InjectionToken,\n Optional,\n} from '@angular/core';\nimport {\n ApiManager,\n} from './api-manager';\nimport {\n API_TOKEN,\n} from './api-manager.token';\n\n/** Type of the Class of an SDK Api */\nexport type ApiClassType<T extends Api = Api> = (new (client: ApiClient) => T) & ApiName;\n\n/**\n * Initial APIs instantiations\n */\nexport const INITIAL_APIS_TOKEN = new InjectionToken<(Api | ApiClassType)[]>('Initial APIs token');\n\n@Injectable()\nexport class ApiFactoryService {\n /** Map of loaded APIs */\n private loadedApis: Record<string, Api> = {};\n\n constructor(@Inject(API_TOKEN) private readonly apiManager: ApiManager, @Optional() @Inject(INITIAL_APIS_TOKEN) apis?: (Api | ApiClassType)[]) {\n if (apis) {\n this.updateApiMapping(apis);\n }\n }\n\n /**\n * Determine if the given parameter is a API class\n * @param apiClass object to check\n */\n private isApiClass<T extends Api = Api>(apiClass: any): apiClass is ApiClassType<T> {\n return !!apiClass.apiName && typeof apiClass === 'function';\n }\n\n /**\n * Retrieve a specific API with loaded configuration\n * @param apiClass class of the API to retrieve\n * @param refreshCache Ignore cached API instance and refresh it\n */\n public getApi<T extends Api>(apiClass: (new (client: ApiClient) => T) & ApiName, refreshCache = false): T {\n const cache = this.loadedApis[apiClass.apiName];\n if (!refreshCache && cache) {\n return cache as T;\n }\n\n const instance = new apiClass(this.getConfigFor(apiClass));\n this.loadedApis[apiClass.apiName] = instance;\n return instance;\n }\n\n /**\n * Update the Map of loaded APIs.\n * Note: Can be used to override the a specific API\n * @param map Map of loaded APIs to update\n */\n public updateApiMapping(map: (Api | ApiClassType)[] | Record<string, (Api | ApiClassType)>) {\n const newItems: Record<string, (Api | ApiClassType)> = Array.isArray(map)\n ? map\n .reduce<Record<string, Api | ApiClassType<Api>>>((acc, curr) => {\n acc[curr.apiName] = curr;\n return acc;\n }, {})\n : map;\n\n this.loadedApis = {\n ...this.loadedApis,\n ...Object.entries(newItems)\n .reduce<Record<string, Api>>((acc, [apiName, api]) => {\n acc[apiName] = this.isApiClass(api) ? new api(this.getConfigFor(api)) : api;\n return acc;\n }, {})\n };\n }\n\n /**\n * Clear the cache of loaded APIs\n * @param apis Whitelist of APIs to clear from the cache, if specified only these apis will be removed from the cache\n */\n public clearCache(apis?: ApiName[]) {\n if (apis) {\n apis.forEach((api) => delete this.loadedApis[api.apiName]);\n } else {\n this.loadedApis = {};\n }\n }\n\n /**\n * Retrieve the configuration for a specific API\n * @param apiClass class of the API for which retrieving the configuration\n */\n public getConfigFor(apiClass: ApiName): ApiClient {\n return this.apiManager.getConfiguration(apiClass.apiName);\n }\n}\n","/**\n * Add a preconnect `<link>` element to the DOM\n * @param baseUrl the origin href\n * @param supportCrossOrigin add crossorigin attribute to the link element\n */\nexport function appendPreconnect(baseUrl: string, supportCrossOrigin = true): void {\n const preConnectLink = document.createElement('link');\n preConnectLink.setAttribute('rel', 'preconnect');\n preConnectLink.setAttribute('href', baseUrl);\n if (supportCrossOrigin) {\n preConnectLink.setAttribute('crossorigin', '');\n }\n document.head.append(preConnectLink);\n}\n","import {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n ApiFactoryService,\n} from './api-factory.service';\nimport {\n ApiManager,\n} from './api-manager';\nimport {\n API_TOKEN,\n} from './api-manager.token';\n\n// Module that needs to be imported by the application to instantiate an SDK configuration.\n@NgModule({\n providers: [\n ApiFactoryService\n ]\n})\nexport class ApiManagerModule {\n /**\n * Provide a custom apiManager\n * A factory can be provided via injection to the token API_TOKEN\n * @param apiManager\n */\n public static forRoot(apiManager: ApiManager): ModuleWithProviders<ApiManagerModule> {\n return {\n ngModule: ApiManagerModule,\n providers: [\n { provide: API_TOKEN, useValue: apiManager }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@o3r/apis-manager",
|
|
3
|
-
"version": "11.6.0-prerelease.
|
|
3
|
+
"version": "11.6.0-prerelease.8",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
"otter-module"
|
|
12
12
|
],
|
|
13
13
|
"peerDependencies": {
|
|
14
|
-
"@ama-sdk/client-fetch": "^11.6.0-prerelease.
|
|
15
|
-
"@ama-sdk/core": "^11.6.0-prerelease.
|
|
14
|
+
"@ama-sdk/client-fetch": "^11.6.0-prerelease.8",
|
|
15
|
+
"@ama-sdk/core": "^11.6.0-prerelease.8",
|
|
16
16
|
"@angular-devkit/schematics": "~18.2.0",
|
|
17
17
|
"@angular/common": "~18.2.0",
|
|
18
18
|
"@angular/core": "~18.2.0",
|
|
19
|
-
"@o3r/schematics": "^11.6.0-prerelease.
|
|
19
|
+
"@o3r/schematics": "^11.6.0-prerelease.8",
|
|
20
20
|
"@schematics/angular": "~18.2.0",
|
|
21
21
|
"rxjs": "^7.8.1",
|
|
22
22
|
"typescript": "~5.5.4"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/helpers/update-api-deps/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/helpers/update-api-deps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,IAAI,EAGL,MAAM,4BAA4B,CAAC;AAgBpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAwG1E"}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.updateApiDependencies = updateApiDependencies;
|
|
4
4
|
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
5
|
const schematics_2 = require("@o3r/schematics");
|
|
6
|
-
const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
|
|
7
6
|
const utility_1 = require("@schematics/angular/utility");
|
|
7
|
+
const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
|
|
8
8
|
const ts = require("typescript");
|
|
9
9
|
/**
|
|
10
10
|
* Update app.module file with api manager, if needed
|
|
@@ -53,11 +53,11 @@ export function apiManagerFactory(): ApiManager {
|
|
|
53
53
|
};
|
|
54
54
|
const updateTsConfig = (tree, context) => {
|
|
55
55
|
const workspaceProject = options.projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
|
|
56
|
-
const tsconfig = workspaceProject
|
|
57
|
-
workspaceProject.architect
|
|
58
|
-
workspaceProject.architect.build
|
|
59
|
-
workspaceProject.architect.build.options
|
|
60
|
-
workspaceProject.architect.build.options.tsConfig;
|
|
56
|
+
const tsconfig = workspaceProject
|
|
57
|
+
&& workspaceProject.architect
|
|
58
|
+
&& workspaceProject.architect.build
|
|
59
|
+
&& workspaceProject.architect.build.options
|
|
60
|
+
&& workspaceProject.architect.build.options.tsConfig;
|
|
61
61
|
if (!tsconfig) {
|
|
62
62
|
context.logger.warn('No tsconfig found in build target');
|
|
63
63
|
return tree;
|
|
@@ -70,10 +70,8 @@ export function apiManagerFactory(): ApiManager {
|
|
|
70
70
|
if (!tsconfigObj.compilerOptions.lib) {
|
|
71
71
|
tsconfigObj.compilerOptions.lib = [];
|
|
72
72
|
}
|
|
73
|
-
tsconfigObj.compilerOptions.lib.push('scripthost');
|
|
74
|
-
tsconfigObj.compilerOptions.lib.
|
|
75
|
-
tsconfigObj.compilerOptions.lib.push('dom');
|
|
76
|
-
tsconfigObj.compilerOptions.lib = tsconfigObj.compilerOptions.lib.reduce((acc, lib) => acc.indexOf(lib) >= 0 ? acc : [...acc, lib], []);
|
|
73
|
+
tsconfigObj.compilerOptions.lib.push('scripthost', 'es2020', 'dom');
|
|
74
|
+
tsconfigObj.compilerOptions.lib = tsconfigObj.compilerOptions.lib.reduce((acc, lib) => acc.includes(lib) ? acc : [...acc, lib], []);
|
|
77
75
|
tree.overwrite(tsconfig, JSON.stringify(tsconfigObj, null, 2));
|
|
78
76
|
return tree;
|
|
79
77
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,IAAI,EACV,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAqDlB;;;GAGG;AACH,eAAO,MAAM,KAAK,YAAa,qBAAqB,KAAG,IAGtD,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ngAdd = void 0;
|
|
4
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
4
|
const path = require("node:path");
|
|
5
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
6
6
|
const reportMissingSchematicsDep = (logger) => (reason) => {
|
|
7
7
|
logger.error(`[ERROR]: Adding @o3r/apis-manager has failed.
|
|
8
8
|
You need to install '@o3r/schematics' to be able to use the o3r apis-manager package. Please run 'ng add @o3r/schematics'.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjC,8BAA8B;IAC9B,UAAU,EAAE,OAAO,CAAC;IAEpB,+BAA+B;IAC/B,WAAW,EAAE,OAAO,CAAC;IAErB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
|