@owlmeans/client-entrypoint 0.1.18-rc.45 → 0.1.18-rc.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -10
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/client-entrypoint/SKILL.md +1 -1
- package/build/consts.d.ts +2 -0
- package/build/consts.d.ts.map +1 -0
- package/build/consts.js +2 -0
- package/build/consts.js.map +1 -0
- package/build/entrypoint.d.ts.map +1 -1
- package/build/entrypoint.js +6 -5
- package/build/entrypoint.js.map +1 -1
- package/build/failure.d.ts +2 -16
- package/build/failure.d.ts.map +1 -1
- package/build/failure.js +1 -1
- package/build/failure.js.map +1 -1
- package/build/helper/types.d.ts +10 -0
- package/build/helper/types.d.ts.map +1 -0
- package/build/helper/types.js +2 -0
- package/build/helper/types.js.map +1 -0
- package/build/helper.d.ts +4 -4
- package/build/helper.d.ts.map +1 -1
- package/build/helper.js +22 -19
- package/build/helper.js.map +1 -1
- package/build/index.d.ts +4 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -1
- package/build/index.js.map +1 -1
- package/build/stab.d.ts +4 -0
- package/build/stab.d.ts.map +1 -0
- package/build/stab.js +5 -0
- package/build/stab.js.map +1 -0
- package/build/types.d.ts +16 -2
- package/build/types.d.ts.map +1 -1
- package/build/utils/handler/types.d.ts +15 -0
- package/build/utils/handler/types.d.ts.map +1 -0
- package/build/utils/handler/types.js +2 -0
- package/build/utils/handler/types.js.map +1 -0
- package/build/utils/handler.d.ts +6 -4
- package/build/utils/handler.d.ts.map +1 -1
- package/build/utils/handler.js +120 -114
- package/build/utils/handler.js.map +1 -1
- package/build/utils/index.d.ts +1 -0
- package/build/utils/index.d.ts.map +1 -1
- package/build/utils/index.js.map +1 -1
- package/build/utils/types.local.d.ts +5 -0
- package/build/utils/types.local.d.ts.map +1 -0
- package/build/utils/types.local.js +2 -0
- package/build/utils/types.local.js.map +1 -0
- package/package.json +13 -13
- package/src/consts.ts +1 -0
- package/src/entrypoint.ts +6 -5
- package/src/failure.ts +3 -21
- package/src/helper/types.ts +10 -0
- package/src/helper.ts +28 -23
- package/src/index.ts +4 -1
- package/src/stab.ts +6 -0
- package/src/types.ts +18 -6
- package/src/utils/handler/types.ts +15 -0
- package/src/utils/handler.ts +81 -79
- package/src/utils/index.ts +1 -0
- package/src/utils/types.local.ts +5 -0
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ re-exports of `@owlmeans/web-client` or `@owlmeans/web-panel`. Protocols are dec
|
|
|
10
10
|
## Installation
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
bun add @owlmeans/client-entrypoint@^0.1.18-rc.
|
|
13
|
+
bun add @owlmeans/client-entrypoint@^0.1.18-rc.47
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
## Concepts
|
|
@@ -116,15 +116,15 @@ so `call({ params })` is enough. Never add `{ body: {} }` as a workaround.
|
|
|
116
116
|
|
|
117
117
|
### 5. Narrowing a payload to a schema
|
|
118
118
|
|
|
119
|
-
`pickPerSchema(object, schema)` keeps only the keys the AJV schema declares and skips `null` values.
|
|
119
|
+
`clientRequestHelper.pickPerSchema(object, schema)` keeps only the keys the AJV schema declares and skips `null` values.
|
|
120
120
|
It is useful when a form model carries more fields than the contract accepts.
|
|
121
121
|
|
|
122
122
|
```ts
|
|
123
|
-
import {
|
|
123
|
+
import { clientRequestHelper } from '@owlmeans/client-entrypoint'
|
|
124
124
|
import type { ProjectUpdate } from 'my-app-common'
|
|
125
125
|
import { ProjectUpdateSchema } from 'my-app-common'
|
|
126
126
|
|
|
127
|
-
const body = pickPerSchema<typeof formValues, ProjectUpdate>(formValues, ProjectUpdateSchema)
|
|
127
|
+
const body = clientRequestHelper.pickPerSchema<typeof formValues, ProjectUpdate>(formValues, ProjectUpdateSchema)
|
|
128
128
|
await ctx.entrypoint(apiProtocols.project.update).call({ params: { id }, body })
|
|
129
129
|
```
|
|
130
130
|
|
|
@@ -138,8 +138,8 @@ await ctx.entrypoint(apiProtocols.project.update).call({ params: { id }, body })
|
|
|
138
138
|
| `bindAll(tree)` | function | Materialize every protocol in a named declaration tree |
|
|
139
139
|
| `bindScreen(protocol, handler, options?)` | function | Materialize a frontend protocol with its renderer |
|
|
140
140
|
| `stab` | const | No-op `RefedEntrypointHandler` for a URL-only frontend binding |
|
|
141
|
-
| `provideRequest(alias, path)` |
|
|
142
|
-
| `pickPerSchema(object, schema)` |
|
|
141
|
+
| `clientRequestHelper.provideRequest(alias, path)` | helper member | A minimal `AbstractRequest` for a dynamic boundary (for example a socket request) |
|
|
142
|
+
| `clientRequestHelper.pickPerSchema(object, schema)` | helper member | Keep only the non-null keys an AJV schema declares |
|
|
143
143
|
| `ClientProtocolEntrypoint<Protocol>` | type | The bound view of a protocol — see *Entrypoint members* |
|
|
144
144
|
| `ClientEntrypoint<T, R>` | type | The untyped bound entrypoint shape the protocol view is built from |
|
|
145
145
|
| `ClientEntrypointOptions` | type | `routeOptions?` (`ClientRouteOptions`), `validateOnCall?`, plus common entrypoint options |
|
|
@@ -164,9 +164,10 @@ await ctx.entrypoint(apiProtocols.project.update).call({ params: { id }, body })
|
|
|
164
164
|
|
|
165
165
|
| Symbol | Kind | Purpose |
|
|
166
166
|
|---|---|---|
|
|
167
|
-
| `
|
|
168
|
-
| `
|
|
169
|
-
| `
|
|
167
|
+
| `apiCallOf(ref)` / `makeApiCallHelper(ref)` | helper | The call mechanics bound to one entrypoint ref (one per ref through `apiCallOf`) |
|
|
168
|
+
| `apiCallOf(ref).apiInvoke(options?)` | helper member | The round trip behind `invoke()` |
|
|
169
|
+
| `apiCallOf(ref).apiHandler` | helper member | The handler that picks the transport service or the API client |
|
|
170
|
+
| `apiCallOf(ref).entrypointUrl(request?, options?)` | helper member | The address behind `url()` |
|
|
170
171
|
| `validate(ref)` | function | The filter behind `validate()` |
|
|
171
172
|
| `isEntrypoint(value)` | function | Re-export from `@owlmeans/entrypoint/utils` |
|
|
172
173
|
|
|
@@ -204,7 +205,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
|
|
|
204
205
|
your project's skill store (`.agents/skills/`):
|
|
205
206
|
|
|
206
207
|
```sh
|
|
207
|
-
npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
208
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.49
|
|
208
209
|
```
|
|
209
210
|
|
|
210
211
|
The embedded files are version-matched to this package release. Do not edit them
|
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/client-entrypoint",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-10-
|
|
4
|
+
"version": "0.1.18-rc.47",
|
|
5
|
+
"generatedAt": "2026-10-05T21:03:06.381Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -7,7 +7,7 @@ user-invocable: false
|
|
|
7
7
|
|
|
8
8
|
# @owlmeans/client-entrypoint
|
|
9
9
|
|
|
10
|
-
**Install:** `bun add @owlmeans/client-entrypoint@^0.1.18-rc.
|
|
10
|
+
**Install:** `bun add @owlmeans/client-entrypoint@^0.1.18-rc.47`
|
|
11
11
|
|
|
12
12
|
Bind a declaration from `@owlmeans/entrypoint`; never construct or replace a contextual
|
|
13
13
|
entrypoint by alias.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,8BAA8B,CAAA"}
|
package/build/consts.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,2BAA2B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAiB,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAClH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAO7E,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,GAAI,CAAC,EAAE,CAAC,SAAS,eAAe,GAAG,eAAe,OAClF,gBAAgB,YACX,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,SAC/B,uBAAuB,KAC7B,gBAAgB,CAAC,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAiB,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAClH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAO7E,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,GAAI,CAAC,EAAE,CAAC,SAAS,eAAe,GAAG,eAAe,OAClF,gBAAgB,YACX,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,SAC/B,uBAAuB,KAC7B,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAsDvB,CAAA"}
|
package/build/entrypoint.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { validate } from './utils/entrypoint.js';
|
|
2
2
|
import { route } from '@owlmeans/client-route';
|
|
3
|
-
import {
|
|
3
|
+
import { apiCallOf } from './utils/handler.js';
|
|
4
4
|
import { AppType } from '@owlmeans/context';
|
|
5
|
-
import {
|
|
5
|
+
import { clientRequestHelper } from './helper.js';
|
|
6
6
|
/** Attach client behaviour to an entrypoint already materialized from a protocol. */
|
|
7
7
|
export const bindMaterializedEntrypoint = (arg, handler, opts) => {
|
|
8
8
|
const entrypointHandle = { ref: undefined };
|
|
9
9
|
let _entrypoint;
|
|
10
|
+
const apiHandler = ref => apiCallOf(ref).apiHandler;
|
|
10
11
|
const _handler = handler ?? (arg.route.route.type === AppType.Backend ? apiHandler : undefined);
|
|
11
12
|
assertExplicitHandler(arg.route.route.type, handler);
|
|
12
13
|
const routeModel = route(arg.route, opts?.routeOptions);
|
|
@@ -17,20 +18,20 @@ export const bindMaterializedEntrypoint = (arg, handler, opts) => {
|
|
|
17
18
|
_entrypoint.filter = opts?.filter ?? arg.filter;
|
|
18
19
|
_entrypoint.gate = opts?.gate ?? arg.gate;
|
|
19
20
|
_entrypoint.gateParams = opts?.gateParams ?? arg.gateParams;
|
|
20
|
-
_entrypoint.url = ((req, urlOpts) => entrypointUrl(
|
|
21
|
+
_entrypoint.url = ((req, urlOpts) => apiCallOf(entrypointHandle).entrypointUrl(req, urlOpts));
|
|
21
22
|
// An entrypoint carrying a renderer IS a screen: it is addressed by URL, never called over the
|
|
22
23
|
// wire. Saying so here turns what used to be a URL-shaped answer from `call()` into a report.
|
|
23
24
|
_entrypoint.invoke = (handler != null
|
|
24
25
|
? (async () => {
|
|
25
26
|
throw new SyntaxError(`Entrypoint ${_entrypoint.alias} renders a screen - address it with url() instead of call()/invoke()`);
|
|
26
27
|
})
|
|
27
|
-
: apiInvoke(
|
|
28
|
+
: apiCallOf(entrypointHandle).apiInvoke(opts));
|
|
28
29
|
_entrypoint.call = (async (req) => (await _entrypoint.invoke(req)).value);
|
|
29
30
|
_entrypoint.request = ((request) => {
|
|
30
31
|
if (entrypointHandle.ref == null) {
|
|
31
32
|
throw SyntaxError(`Try to request uninitialized entrypoint ${JSON.stringify(arg)}`);
|
|
32
33
|
}
|
|
33
|
-
const _request = provideRequest(entrypointHandle.ref.alias, entrypointHandle.ref.path());
|
|
34
|
+
const _request = clientRequestHelper.provideRequest(entrypointHandle.ref.alias, entrypointHandle.ref.path());
|
|
34
35
|
request != null && Object.entries(request).forEach(([key, value]) => {
|
|
35
36
|
_request[key] = value;
|
|
36
37
|
});
|
package/build/entrypoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,qFAAqF;AACrF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,GAAqB,EACrB,OAAsC,EACtC,IAA8B,EACN,EAAE;IAC1B,MAAM,gBAAgB,GAAwB,EAAE,GAAG,EAAE,SAAS,EAAE,CAAA;IAEhE,IAAI,WAAmC,CAAA;IAEvC,MAAM,UAAU,GAAiC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU,CAAA;IACjF,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAE/F,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;IACvD,WAAW,GAAG,GAA6B,CAAA;IAC3C,WAAW,CAAC,KAAK,GAAG,UAAU,CAAA;IAC9B,wFAAwF;IACxF,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACnF,WAAW,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAA;IAC/C,WAAW,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,CAAA;IACzC,WAAW,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,GAAG,CAAC,UAAU,CAAA;IAE3D,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,GAAgB,EAAE,OAAgC,EAAE,EAAE,CACxE,SAAS,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,GAAY,EAAE,OAAO,CAAC,CAAkC,CAAA;IAEpG,+FAA+F;IAC/F,8FAA8F;IAC9F,WAAW,CAAC,MAAM,GAAG,CAAC,OAAO,IAAI,IAAI;QACnC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;YACZ,MAAM,IAAI,WAAW,CACnB,cAAc,WAAW,CAAC,KAAK,sEAAsE,CACtG,CAAA;QACH,CAAC,CAAC;QACF,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAqC,CAAA;IAEpF,WAAW,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,GAAgB,EAAE,EAAE,CAC7C,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAmC,CAAA;IAE1E,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,OAAU,EAAK,EAAE;QACvC,IAAI,gBAAgB,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACjC,MAAM,WAAW,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACrF,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAM,CAAA;QAEjH,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClE,QAAQ,CAAC,GAAc,CAAC,GAAG,KAAK,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAQ,CAAA;IAET,WAAW,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC,gBAAgB,CAAC,CAAA;IAEjD,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAEjD,gBAAgB,CAAC,GAAG,GAAG,WAAW,CAAA;IAElC,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAC5B,IAAa,EAAE,OAAiD,EAChE,EAAE;IACF,IAAI,IAAI,KAAK,OAAO,CAAC,OAAO,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,WAAW,CAAC,iEAAiE,CAAC,CAAA;IAC1F,CAAC;AACH,CAAC,CAAA"}
|
package/build/failure.d.ts
CHANGED
|
@@ -1,19 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
3
|
-
export declare const ENTRYPOINT_FAILURE_SERVICE = "client-entrypoint:failure";
|
|
4
|
-
export interface EntrypointFailure {
|
|
5
|
-
alias: string;
|
|
6
|
-
request: AbstractRequest;
|
|
7
|
-
error: unknown;
|
|
8
|
-
}
|
|
9
|
-
export interface EntrypointFailurePlugin {
|
|
10
|
-
alias: string;
|
|
11
|
-
onFailure: (failure: EntrypointFailure) => void | Promise<void>;
|
|
12
|
-
}
|
|
13
|
-
export interface EntrypointFailureService extends LazyService {
|
|
14
|
-
registerPlugin: (plugin: EntrypointFailurePlugin) => void;
|
|
15
|
-
notify: (failure: EntrypointFailure) => Promise<void>;
|
|
16
|
-
}
|
|
1
|
+
import { type BasicContext } from '@owlmeans/context';
|
|
2
|
+
import type { EntrypointFailureService } from './types.js';
|
|
17
3
|
/** Context-local observers for rejected client calls; observers never replace the thrown error. */
|
|
18
4
|
export declare const ensureEntrypointFailureService: (ctx: BasicContext<any>) => EntrypointFailureService;
|
|
19
5
|
//# sourceMappingURL=failure.d.ts.map
|
package/build/failure.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGxE,OAAO,KAAK,EAA2B,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAInF,mGAAmG;AACnG,eAAO,MAAM,8BAA8B,QAAS,YAAY,CAAC,GAAG,CAAC,KAAG,wBAiBvE,CAAA"}
|
package/build/failure.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createLazyService } from '@owlmeans/context';
|
|
2
2
|
import { logger } from '@owlmeans/log';
|
|
3
|
+
import { ENTRYPOINT_FAILURE_SERVICE } from './consts.js';
|
|
3
4
|
const log = logger('client-entrypoint');
|
|
4
|
-
export const ENTRYPOINT_FAILURE_SERVICE = 'client-entrypoint:failure';
|
|
5
5
|
/** Context-local observers for rejected client calls; observers never replace the thrown error. */
|
|
6
6
|
export const ensureEntrypointFailureService = (ctx) => {
|
|
7
7
|
if (ctx.hasService(ENTRYPOINT_FAILURE_SERVICE)) {
|
package/build/failure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAGxD,MAAM,GAAG,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AAEvC,mGAAmG;AACnG,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,GAAsB,EAA4B,EAAE;IACjG,IAAI,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAC/C,OAAO,GAAG,CAAC,OAAO,CAA2B,0BAA0B,CAAC,CAAA;IAC1E,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmC,CAAA;IAC1D,MAAM,OAAO,GAAG,iBAAiB,CAA2B,0BAA0B,EAAE;QACtF,cAAc,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA,CAAC,CAAC;QAC/D,MAAM,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;YACtB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACtC,IAAI,CAAC;oBAAC,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;gBAAC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACrD,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;gBACxF,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IACF,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAC5B,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AbstractRequest } from '@owlmeans/entrypoint';
|
|
2
|
+
import type { JSONSchemaType } from 'ajv';
|
|
3
|
+
/** Builds and shapes the requests a client sends. */
|
|
4
|
+
export interface ClientRequestHelper {
|
|
5
|
+
/** A minimal cancellable `AbstractRequest` for an entrypoint alias at a path. */
|
|
6
|
+
provideRequest: <T extends {} = {}>(alias: string, path: string) => AbstractRequest<T>;
|
|
7
|
+
/** Keeps only the non-null keys of `object` the AJV schema declares. */
|
|
8
|
+
pickPerSchema: <T, R>(object: T, schema: JSONSchemaType<R>) => Partial<R>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/helper/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAEzC,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,cAAc,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,CAAA;IACtF,wEAAwE;IACxE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;CAC1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/helper/types.ts"],"names":[],"mappings":""}
|
package/build/helper.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { RefedEntrypointHandler } from './types.js';
|
|
2
1
|
import type { AbstractRequest } from '@owlmeans/entrypoint';
|
|
3
|
-
import type {
|
|
4
|
-
export declare const
|
|
2
|
+
import type { ClientRequestHelper } from './helper/types.js';
|
|
3
|
+
export declare const createClientRequestHelper: () => ClientRequestHelper;
|
|
4
|
+
export declare const clientRequestHelper: ClientRequestHelper;
|
|
5
|
+
/** @deprecated compat:factory-refactor — use `clientRequestHelper.provideRequest(…)` */
|
|
5
6
|
export declare const provideRequest: <T extends {} = {}>(alias: string, path: string) => AbstractRequest<T>;
|
|
6
|
-
export declare const pickPerSchema: <T, R>(object: T, schema: JSONSchemaType<R>) => Partial<R>;
|
|
7
7
|
//# sourceMappingURL=helper.d.ts.map
|
package/build/helper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAE5D,eAAO,MAAM,yBAAyB,QAAO,mBA0B5C,CAAA;AAED,eAAO,MAAM,mBAAmB,qBAA8B,CAAA;AAE9D,wFAAwF;AACxF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,MAAM,QAAQ,MAAM,KAAG,eAAe,CAAC,CAAC,CAAuD,CAAA"}
|
package/build/helper.js
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
export const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
export const createClientRequestHelper = () => {
|
|
2
|
+
const provideRequest = (alias, path) => {
|
|
3
|
+
const request = {
|
|
4
|
+
alias,
|
|
5
|
+
params: {},
|
|
6
|
+
headers: {},
|
|
7
|
+
query: {},
|
|
8
|
+
path,
|
|
9
|
+
canceled: false,
|
|
10
|
+
cancel: () => request.canceled = true
|
|
11
|
+
};
|
|
12
|
+
return request;
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
const pickPerSchema = (object, schema) => Object.keys(schema.properties).reduce((acc, key) => {
|
|
15
|
+
if (object[key] != null) {
|
|
16
|
+
acc[key] = object[key];
|
|
17
|
+
}
|
|
18
|
+
return acc;
|
|
19
|
+
}, {});
|
|
20
|
+
return { provideRequest, pickPerSchema };
|
|
15
21
|
};
|
|
16
|
-
export const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
return acc;
|
|
21
|
-
}, {});
|
|
22
|
+
export const clientRequestHelper = createClientRequestHelper();
|
|
23
|
+
/** @deprecated compat:factory-refactor — use `clientRequestHelper.provideRequest(…)` */
|
|
24
|
+
export const provideRequest = (alias, path) => clientRequestHelper.provideRequest(alias, path);
|
|
22
25
|
//# sourceMappingURL=helper.js.map
|
package/build/helper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAwB,EAAE;IACjE,MAAM,cAAc,GAAG,CAAoB,KAAa,EAAE,IAAY,EAAsB,EAAE;QAC5F,MAAM,OAAO,GAAG;YACd,KAAK;YACL,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;YACT,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI;SACtC,CAAA;QAED,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAO,MAAS,EAAE,MAAyB,EAAc,EAAE,CAC/E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,IAAI,MAAM,CAAC,GAAc,CAAC,IAAI,IAAI,EAAE,CAAC;YACnC,GAAG,CAAC,GAAc,CAAC,GAAG,MAAM,CAAC,GAAc,CAA0B,CAAA;QACvE,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAgB,CACpB,CAAA;IAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,yBAAyB,EAAE,CAAA;AAE9D,wFAAwF;AACxF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAoB,KAAa,EAAE,IAAY,EAAsB,EAAE,CAAC,mBAAmB,CAAC,cAAc,CAAI,KAAK,EAAE,IAAI,CAAC,CAAA"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export type * from './types.js';
|
|
2
|
+
export type * from './helper/types.js';
|
|
2
3
|
export * from './errors.js';
|
|
3
4
|
export * from './failure.js';
|
|
5
|
+
export * from './consts.js';
|
|
4
6
|
export * from './protocol.js';
|
|
5
|
-
export {
|
|
7
|
+
export { clientRequestHelper, createClientRequestHelper, provideRequest } from './helper.js';
|
|
8
|
+
export { stab } from './stab.js';
|
|
6
9
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,mBAAmB,YAAY,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,mBAAmB,YAAY,CAAA;AAC/B,mBAAmB,mBAAmB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
|
package/build/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export * from './errors.js';
|
|
2
2
|
export * from './failure.js';
|
|
3
|
+
export * from './consts.js';
|
|
3
4
|
export * from './protocol.js';
|
|
4
|
-
export {
|
|
5
|
+
export { clientRequestHelper, createClientRequestHelper, provideRequest } from './helper.js';
|
|
6
|
+
export { stab } from './stab.js';
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
package/build/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":"AAGA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
|
package/build/stab.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stab.d.ts","sourceRoot":"","sources":["../src/stab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAExD,wDAAwD;AACxD,eAAO,MAAM,IAAI,EAAE,sBAAsB,CAAC,EAAE,CAE3C,CAAA"}
|
package/build/stab.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stab.js","sourceRoot":"","sources":["../src/stab.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,MAAM,CAAC,MAAM,IAAI,GAA+B,GAAG,EAAE,CAAC,GAAG,EAAE;IACzD,OAAO,KAAK,CAAQ,CAAA;AACtB,CAAC,CAAA"}
|
package/build/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ClientRouteModel, ClientRouteOptions } from '@owlmeans/client-route';
|
|
2
2
|
import type { AbstractRequest, CommonEntrypoint, CommonEntrypointOptions, EntrypointHandler, EntrypointOutcome, EntrypointProtocolDeclaration, RegisteredEntrypoint, RequestOf } from '@owlmeans/entrypoint';
|
|
3
|
+
import type { LazyService } from '@owlmeans/context';
|
|
3
4
|
export interface ClientEntrypoint<T = {}, R extends ClientRequest = ClientRequest> extends CommonEntrypoint {
|
|
4
5
|
route: ClientRouteModel;
|
|
5
6
|
/**
|
|
@@ -25,9 +26,9 @@ export interface ClientEntrypoint<T = {}, R extends ClientRequest = ClientReques
|
|
|
25
26
|
* its request and reply types are read directly from the declaration and cannot be replaced at a
|
|
26
27
|
* call site.
|
|
27
28
|
*/
|
|
28
|
-
export
|
|
29
|
+
export interface ClientProtocolEntrypoint<Protocol extends EntrypointProtocolDeclaration> extends Omit<ClientEntrypoint, 'call' | 'invoke' | 'url' | 'validate' | 'request'>, RegisteredEntrypoint<RequestOf<Protocol>, import('@owlmeans/entrypoint').ResponseOf<Protocol>> {
|
|
29
30
|
readonly protocol: Protocol;
|
|
30
|
-
}
|
|
31
|
+
}
|
|
31
32
|
export interface EntrypointCall<T, Req extends ClientRequest = ClientRequest> {
|
|
32
33
|
<Type extends T, R extends Req = Req>(req?: Partial<R>): Promise<Type>;
|
|
33
34
|
}
|
|
@@ -60,4 +61,17 @@ export interface EntrypointRef<T, R extends AbstractRequest = AbstractRequest> {
|
|
|
60
61
|
export interface RefedEntrypointHandler<T = {}, R extends AbstractRequest = AbstractRequest> {
|
|
61
62
|
(ref: EntrypointRef<T, R>): EntrypointHandler;
|
|
62
63
|
}
|
|
64
|
+
export interface EntrypointFailure {
|
|
65
|
+
alias: string;
|
|
66
|
+
request: AbstractRequest;
|
|
67
|
+
error: unknown;
|
|
68
|
+
}
|
|
69
|
+
export interface EntrypointFailurePlugin {
|
|
70
|
+
alias: string;
|
|
71
|
+
onFailure: (failure: EntrypointFailure) => void | Promise<void>;
|
|
72
|
+
}
|
|
73
|
+
export interface EntrypointFailureService extends LazyService {
|
|
74
|
+
registerPlugin: (plugin: EntrypointFailurePlugin) => void;
|
|
75
|
+
notify: (failure: EntrypointFailure) => Promise<void>;
|
|
76
|
+
}
|
|
63
77
|
//# sourceMappingURL=types.d.ts.map
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,KAAK,EACV,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,iBAAiB,EAC7E,iBAAiB,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,SAAS,EAClF,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AbstractRequest, EntrypointHandler } from '@owlmeans/entrypoint';
|
|
2
|
+
import type { ClientEntrypointOptions, EntrypointInvoke, EntrypointUrlOptions } from '../../types.js';
|
|
3
|
+
/** How a client entrypoint reaches its backend: the handler, the round trip and the address. */
|
|
4
|
+
export interface ApiCallHelper<T, R extends AbstractRequest = AbstractRequest> {
|
|
5
|
+
/**
|
|
6
|
+
* The handler that carries the entrypoint's call: the transport service bound to its route's
|
|
7
|
+
* protocol, else the API client of the web service its route answers on.
|
|
8
|
+
*/
|
|
9
|
+
apiHandler: EntrypointHandler;
|
|
10
|
+
/** The round trip behind `invoke()`: builds the request, validates it on demand and notifies failure observers. */
|
|
11
|
+
apiInvoke: (opts?: ClientEntrypointOptions) => EntrypointInvoke<T, R>;
|
|
12
|
+
/** The address behind `url()`: `:params` filled in, the query appended, absolute when the route is not local. */
|
|
13
|
+
entrypointUrl: (req?: Partial<R>, opts?: EntrypointUrlOptions) => Promise<string>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/handler/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErG,gGAAgG;AAChG,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,eAAe,GAAG,eAAe;IAC3E;;;OAGG;IACH,UAAU,EAAE,iBAAiB,CAAA;IAC7B,mHAAmH;IACnH,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,uBAAuB,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACrE,iHAAiH;IACjH,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAClF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/handler/types.ts"],"names":[],"mappings":""}
|
package/build/utils/handler.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
export declare const
|
|
1
|
+
import { type AbstractRequest } from '@owlmeans/entrypoint';
|
|
2
|
+
import type { EntrypointUrlOptions, EntrypointRef, ClientRequest } from '../types.js';
|
|
3
|
+
import type { ApiCallHelper } from './handler/types.js';
|
|
4
|
+
export declare const makeApiCallHelper: <T, R extends AbstractRequest = AbstractRequest>(ref: EntrypointRef<T, R>) => ApiCallHelper<T, R>;
|
|
5
|
+
export declare const apiCallOf: <T, R extends AbstractRequest = AbstractRequest<{}>>(target: EntrypointRef<T, R>) => ApiCallHelper<T, R>;
|
|
6
|
+
/** @deprecated compat:factory-refactor — use `makeApiCallHelper(ref).entrypointUrl(…)` */
|
|
5
7
|
export declare const entrypointUrl: <T, R extends ClientRequest = ClientRequest>(ref: EntrypointRef<T, R>, req?: Partial<R>, opts?: EntrypointUrlOptions) => Promise<string>;
|
|
6
8
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/utils/handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/utils/handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAwG,MAAM,sBAAsB,CAAA;AACjK,OAAO,KAAK,EAAsC,oBAAoB,EAA2B,aAAa,EAAE,aAAa,EAA4B,MAAM,aAAa,CAAA;AAU5K,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIvD,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,CAAC,SAAS,eAAe,GAAG,eAAe,OACzE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KACvB,aAAa,CAAC,CAAC,EAAE,CAAC,CA4IpB,CAAA;AAED,eAAO,MAAM,SAAS,GAhJY,CAAC,EAAE,CAAC,SAAS,eAAe,2EAgJA,CAAA;AAE9D,0FAA0F;AAC1F,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,SAAS,aAAa,GAAG,aAAa,OACjE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,SAAS,oBAAoB,KACtE,OAAO,CAAC,MAAM,CAAoD,CAAA"}
|