@equinor/fusion-framework-module-http 0.1.0-beta.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/README.md +49 -3
- package/dist/esm/client-msal.js +6 -5
- package/dist/esm/client-msal.js.map +1 -1
- package/dist/esm/client.js +29 -5
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/configurator.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/provider.js +16 -9
- package/dist/esm/provider.js.map +1 -1
- package/dist/esm/selector.js +12 -0
- package/dist/esm/selector.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/client-msal.d.ts +7 -5
- package/dist/types/client.d.ts +17 -9
- package/dist/types/configurator.d.ts +5 -4
- package/dist/types/index.d.ts +2 -1
- package/dist/types/provider.d.ts +4 -2
- package/dist/types/selector.d.ts +1 -0
- package/package.json +6 -3
- package/src/client-msal.ts +18 -8
- package/src/client.ts +97 -24
- package/src/configurator.ts +50 -5
- package/src/index.ts +7 -1
- package/src/provider.ts +23 -9
- package/src/selector.ts +12 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
|
|
6
|
+
# 0.2.0 (2022-05-31)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **module-http:** add json support ([a6adbbb](https://github.com/equinor/fusion-framework/commit/a6adbbb36ca1391f8813be6141ef963031098764))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## 0.1.1 (2022-02-09)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @equinor/fusion-framework-module-http
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# 0.1.0 (2022-02-07)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* expose http client interface ([8660822](https://github.com/equinor/fusion-framework/commit/8660822b669e549bd454aa8a6a0adcaeb5e7917f))
|
|
31
|
+
* **module-http:** allow defaultScopes ([d476de9](https://github.com/equinor/fusion-framework/commit/d476de99e6289e60684f02bcd7b669e23f3789bb))
|
|
32
|
+
* **module-http:** fix check if config when creating client ([950ebc1](https://github.com/equinor/fusion-framework/commit/950ebc18f8f35bb7e6f97d6a98bd91d87616a94e))
|
|
33
|
+
* **module-http:** fix merge of process operators ([5a1d6d2](https://github.com/equinor/fusion-framework/commit/5a1d6d2942475c61c994f4ec26812c949cabbdf1))
|
|
34
|
+
* **module-http:** fix relative url resolve ([0d8c311](https://github.com/equinor/fusion-framework/commit/0d8c311c66b52eec22d465e0db57fa003506ab0c))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Features
|
|
38
|
+
|
|
39
|
+
* add module for http clients ([7b02db7](https://github.com/equinor/fusion-framework/commit/7b02db7c2e34b97659bc72af7b5b31307cf55e5f))
|
|
40
|
+
* http client base uri ([233cabf](https://github.com/equinor/fusion-framework/commit/233cabfea0f2b07955670e553472427ec27a3aa0))
|
|
41
|
+
* **module-http:** add check for registered client keys ([93b42f8](https://github.com/equinor/fusion-framework/commit/93b42f88ad092e24fe4f1a216394893128d35734))
|
|
42
|
+
* **module-http:** allow selector for http requests ([ea300c8](https://github.com/equinor/fusion-framework/commit/ea300c8ad5555e4514b35ac43a4c8494461afd91))
|
package/README.md
CHANGED
|
@@ -1,11 +1,57 @@
|
|
|
1
|
-
##
|
|
1
|
+
## Configure
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Module for configuring and providing http clients
|
|
4
|
+
|
|
5
|
+
### Simple
|
|
6
|
+
```ts
|
|
5
7
|
const configure = (config) => {
|
|
6
8
|
config.http.configureClient(
|
|
7
9
|
'bar',
|
|
8
10
|
'https://somewhere-test.com'
|
|
9
11
|
);
|
|
10
12
|
}
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Standard
|
|
16
|
+
```ts
|
|
17
|
+
const configure = (config) => {
|
|
18
|
+
config.http.configureClient(
|
|
19
|
+
'bar',
|
|
20
|
+
{
|
|
21
|
+
baseUri: 'https://foo.bar',
|
|
22
|
+
defaultScopes: ['foobar/.default']
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Callback
|
|
29
|
+
```ts
|
|
30
|
+
const configure = async(config) => {
|
|
31
|
+
config.http.configureClient(
|
|
32
|
+
'bar',
|
|
33
|
+
(client): => {
|
|
34
|
+
client.uri = 'https://foo.bar'
|
|
35
|
+
client.defaultScopes: ['foobar/.default']
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Consumption
|
|
42
|
+
```ts
|
|
43
|
+
const client = modules.http.createClient('foo');
|
|
44
|
+
const selector = (response: Response): Promise<FooBar> => response.json();
|
|
45
|
+
// stream
|
|
46
|
+
client.fetch('/api/admin', {selector, scopes: ['foobar/.admin']}).subscribe(x => console.log(x));
|
|
47
|
+
// async
|
|
48
|
+
client.fetchAsync('/api', {selector}).then(console.log);
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Operators
|
|
52
|
+
```ts
|
|
53
|
+
const client = modules.http.createClient('foo');
|
|
54
|
+
const logger = console.debug;
|
|
55
|
+
client.requestHandler.add((x: Request) => logger(x));
|
|
56
|
+
client.responseHandler.add((x: Request) => logger(x));
|
|
11
57
|
```
|
package/dist/esm/client-msal.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { HttpClient } from './client';
|
|
2
2
|
export class HttpClientMsal extends HttpClient {
|
|
3
|
-
|
|
4
|
-
fetch(init) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
defaultScopes = [];
|
|
4
|
+
fetch(path, init) {
|
|
5
|
+
const args = Object.assign(init || {}, {
|
|
6
|
+
scopes: this.defaultScopes.concat(init?.scopes || []),
|
|
7
|
+
});
|
|
8
|
+
return super._fetch(path, args);
|
|
8
9
|
}
|
|
9
10
|
}
|
|
10
11
|
export default HttpClientMsal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-msal.js","sourceRoot":"","sources":["../../src/client-msal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client-msal.js","sourceRoot":"","sources":["../../src/client-msal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkC,MAAM,UAAU,CAAC;AAQtE,MAAM,OAAO,cAGX,SAAQ,UAA+B;IAE9B,aAAa,GAAa,EAAE,CAAC;IAGpC,KAAK,CACD,IAAY,EACZ,IAAmD;QAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE;YACnC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;SACxD,CAA6C,CAAC;QAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;CACJ;AAED,eAAe,cAAc,CAAC"}
|
package/dist/esm/client.js
CHANGED
|
@@ -2,6 +2,7 @@ import { firstValueFrom, of, Subject } from 'rxjs';
|
|
|
2
2
|
import { switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
3
3
|
import { fromFetch } from 'rxjs/fetch';
|
|
4
4
|
import { ProcessOperators } from './process-operators';
|
|
5
|
+
import { jsonSelector } from './selector';
|
|
5
6
|
export class HttpRequestHandler extends ProcessOperators {
|
|
6
7
|
setHeader(key, value) {
|
|
7
8
|
return this.set('header-' + key, (request) => {
|
|
@@ -31,16 +32,39 @@ export class HttpClient {
|
|
|
31
32
|
}
|
|
32
33
|
_init() {
|
|
33
34
|
}
|
|
34
|
-
fetch(
|
|
35
|
-
|
|
36
|
-
return of({ ...options, uri: this._resolveUrl(options.path) }).pipe(switchMap((x) => this._prepareRequest(x)), tap((x) => this._request$.next(x)), switchMap(({ uri, path: _path, ...args }) => fromFetch(uri, args)), switchMap((x) => this._prepareResponse(x)), tap((x) => this._response$.next(x)), takeUntil(this._abort$));
|
|
35
|
+
fetch(path, args) {
|
|
36
|
+
return this._fetch(path, args);
|
|
37
37
|
}
|
|
38
|
-
fetchAsync(
|
|
39
|
-
return firstValueFrom(this.fetch(
|
|
38
|
+
fetchAsync(path, args) {
|
|
39
|
+
return firstValueFrom(this.fetch(path, args));
|
|
40
|
+
}
|
|
41
|
+
json(path, args) {
|
|
42
|
+
const body = typeof args?.body === 'object' ? JSON.stringify(args?.body) : args?.body;
|
|
43
|
+
const selector = args?.selector ?? jsonSelector;
|
|
44
|
+
const header = new Headers(args?.headers);
|
|
45
|
+
header.append('Content-Type', 'application/json');
|
|
46
|
+
return this.fetch(path, {
|
|
47
|
+
...args,
|
|
48
|
+
body,
|
|
49
|
+
selector,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
jsonAsync(path, args) {
|
|
53
|
+
return firstValueFrom(this.json(path, args));
|
|
40
54
|
}
|
|
41
55
|
abort() {
|
|
42
56
|
this._abort$.next();
|
|
43
57
|
}
|
|
58
|
+
_fetch(path, args) {
|
|
59
|
+
const { selector, ...options } = Object.assign({}, args || { selector: undefined }, {
|
|
60
|
+
path,
|
|
61
|
+
});
|
|
62
|
+
const response$ = of({
|
|
63
|
+
...options,
|
|
64
|
+
uri: this._resolveUrl(options.path),
|
|
65
|
+
}).pipe(switchMap((x) => this._prepareRequest(x)), tap((x) => this._request$.next(x)), switchMap(({ uri, path: _path, ...args }) => fromFetch(uri, args)), switchMap((x) => this._prepareResponse(x)), tap((x) => this._response$.next(x)), switchMap((x) => (selector ? selector(x) : Promise.resolve(x))), takeUntil(this._abort$));
|
|
66
|
+
return response$;
|
|
67
|
+
}
|
|
44
68
|
_prepareRequest(init) {
|
|
45
69
|
return this.requestHandler.process(init);
|
|
46
70
|
}
|
package/dist/esm/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA+B,EAAE,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../src/configurator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../src/configurator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA6B,MAAM,UAAU,CAAC;AA8EzE,MAAM,OAAO,sBAAsB;IAGrB,QAAQ,GAA+C,EAAE,CAAC;IAGpE,IAAW,OAAO;QACd,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAGQ,qBAAqB,CAAiC;IAGtD,yBAAyB,GAAG,IAAI,kBAAkB,EAExD,CAAC;IAMJ,YAAY,MAAsC;QAC9C,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACxC,CAAC;IAGD,SAAS,CAAC,IAAY;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAGD,eAAe,CACX,IAAY,EACZ,IAAsE;QAEtE,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;YAClB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,GAAI,OAAiD;SACxD,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,eAAe,sBAAsB,CAAC"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAiC,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/esm/provider.js
CHANGED
|
@@ -20,22 +20,29 @@ export class HttpClientProvider {
|
|
|
20
20
|
hasClient(key) {
|
|
21
21
|
return Object.keys(this.config.clients).includes(key);
|
|
22
22
|
}
|
|
23
|
-
createClient(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
config = { baseUri: key };
|
|
27
|
-
}
|
|
28
|
-
else if (!config) {
|
|
29
|
-
throw new ClientNotFoundException(`No registered http client for key [${key}]`);
|
|
30
|
-
}
|
|
31
|
-
const { baseUri, onCreate, ctor = this.config.defaultHttpClientCtor, requestHandler = this.config.defaultHttpRequestHandler, } = config;
|
|
23
|
+
createClient(keyOrConfig) {
|
|
24
|
+
const config = this._resolveConfig(keyOrConfig);
|
|
25
|
+
const { baseUri, defaultScopes = [], onCreate, ctor = this.config.defaultHttpClientCtor, requestHandler = this.config.defaultHttpRequestHandler, } = config;
|
|
32
26
|
const options = { requestHandler };
|
|
33
27
|
const instance = new ctor(baseUri || '', options);
|
|
28
|
+
Object.assign(instance, { defaultScopes });
|
|
34
29
|
onCreate && onCreate(instance);
|
|
35
30
|
return instance;
|
|
36
31
|
}
|
|
37
32
|
createCustomClient(key) {
|
|
38
33
|
return this.createClient(key);
|
|
39
34
|
}
|
|
35
|
+
_resolveConfig(keyOrConfig) {
|
|
36
|
+
if (typeof keyOrConfig === 'string') {
|
|
37
|
+
const config = this.config.clients[keyOrConfig];
|
|
38
|
+
if (!config && isURL(keyOrConfig)) {
|
|
39
|
+
return { baseUri: keyOrConfig };
|
|
40
|
+
}
|
|
41
|
+
else if (!config) {
|
|
42
|
+
throw new ClientNotFoundException(`No registered http client for key [${keyOrConfig}]`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return keyOrConfig;
|
|
46
|
+
}
|
|
40
47
|
}
|
|
41
48
|
//# sourceMappingURL=provider.js.map
|
package/dist/esm/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AAoBD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1B,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,mBAAmB;QACf,mDAAmD;QACnD,6BAA6B;QAC7B,iCAAiC;QACjC,0BAA0B;QAC1B,oBAAoB,EACxB,GAAG,CACN,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,OAAO,kBAAkB;IAGL;IAAtB,YAAsB,MAAwC;QAAxC,WAAM,GAAN,MAAM,CAAkC;IAAG,CAAC;IAE3D,SAAS,CAAC,GAAW;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAEM,YAAY,CAAC,WAAgD;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,EACF,OAAO,EACP,aAAa,GAAG,EAAE,EAClB,QAAQ,EACR,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EACxC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,GACzD,GAAG,MAAoC,CAAC;QACzC,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAY,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3C,QAAQ,IAAI,QAAQ,CAAC,QAAmB,CAAC,CAAC;QAC1C,OAAO,QAAmB,CAAC;IAC/B,CAAC;IAEM,kBAAkB,CAAuB,GAAW;QACvD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAiB,CAAC;IAClD,CAAC;IAES,cAAc,CACpB,WAAgD;QAEhD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;gBAC/B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;aACnC;iBAAM,IAAI,CAAC,MAAM,EAAE;gBAChB,MAAM,IAAI,uBAAuB,CAC7B,sCAAsC,WAAW,GAAG,CACvD,CAAC;aACL;SACJ;QACD,OAAO,WAAyC,CAAC;IACrD,CAAC;CACJ"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const jsonSelector = (response) => {
|
|
2
|
+
if (!response.ok) {
|
|
3
|
+
throw new Error('Network response was not OK');
|
|
4
|
+
}
|
|
5
|
+
try {
|
|
6
|
+
return response.json();
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
throw Error('failed to parse response', { cause: err });
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/selector.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CACxB,QAAmB,EACL,EAAE;IAChB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAClD;IACD,IAAI;QACA,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;KAC1B;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,GAAY,EAAE,CAAC,CAAC;KACpE;AACL,CAAC,CAAC"}
|