@owlmeans/entrypoint 0.1.18-rc.39 → 0.1.18-rc.40
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 +2 -2
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/entrypoint/SKILL.md +1 -1
- package/build/consts.d.ts +0 -5
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +0 -5
- package/build/consts.js.map +1 -1
- package/build/filter.d.ts +20 -5
- package/build/filter.d.ts.map +1 -1
- package/build/filter.js +7 -5
- package/build/filter.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/materialize.d.ts +1 -6
- package/build/materialize.d.ts.map +1 -1
- package/build/materialize.js.map +1 -1
- package/build/protocol.d.ts +3 -190
- package/build/protocol.d.ts.map +1 -1
- package/build/protocol.js.map +1 -1
- package/build/types.d.ts +168 -2
- package/build/types.d.ts.map +1 -1
- package/build/types.local.d.ts +27 -0
- package/build/types.local.d.ts.map +1 -0
- package/build/types.local.js +2 -0
- package/build/types.local.js.map +1 -0
- package/build/utils.d.ts +6 -0
- package/build/utils.d.ts.map +1 -0
- package/build/utils.js +6 -0
- package/build/utils.js.map +1 -0
- package/package.json +5 -5
- package/src/consts.ts +0 -5
- package/src/filter.ts +9 -5
- package/src/index.ts +1 -0
- package/src/materialize.ts +1 -7
- package/src/protocol.ts +3 -214
- package/src/types.local.ts +24 -0
- package/src/types.ts +199 -2
- package/src/utils.ts +5 -0
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ entrypoint is registered in — `path()` walks the parent chain, `mount()` adds
|
|
|
17
17
|
## Installation
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
bun add @owlmeans/entrypoint@^0.1.18-rc.
|
|
20
|
+
bun add @owlmeans/entrypoint@^0.1.18-rc.40
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Concepts
|
|
@@ -304,7 +304,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
|
|
|
304
304
|
your project's skill store (`.agents/skills/`):
|
|
305
305
|
|
|
306
306
|
```sh
|
|
307
|
-
npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
307
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.48
|
|
308
308
|
```
|
|
309
309
|
|
|
310
310
|
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/entrypoint",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-10-
|
|
4
|
+
"version": "0.1.18-rc.40",
|
|
5
|
+
"generatedAt": "2026-10-05T08:32:19.134Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
package/build/consts.d.ts
CHANGED
|
@@ -4,9 +4,4 @@ export declare enum EntrypointOutcome {
|
|
|
4
4
|
Created = "created",
|
|
5
5
|
Finished = "finished"
|
|
6
6
|
}
|
|
7
|
-
/**
|
|
8
|
-
* Service alias a transport registers under. The default protocol is the web one, so an application
|
|
9
|
-
* that binds nothing keeps talking HTTP.
|
|
10
|
-
*/
|
|
11
|
-
export declare const transportAlias: (protocol?: string) => string;
|
|
12
7
|
//# sourceMappingURL=consts.d.ts.map
|
package/build/consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,oBAAY,iBAAiB;IAC3B,EAAE,OAAO;IACT,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,oBAAY,iBAAiB;IAC3B,EAAE,OAAO;IACT,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB"}
|
package/build/consts.js
CHANGED
|
@@ -5,9 +5,4 @@ export var EntrypointOutcome;
|
|
|
5
5
|
EntrypointOutcome["Created"] = "created";
|
|
6
6
|
EntrypointOutcome["Finished"] = "finished";
|
|
7
7
|
})(EntrypointOutcome || (EntrypointOutcome = {}));
|
|
8
|
-
/**
|
|
9
|
-
* Service alias a transport registers under. The default protocol is the web one, so an application
|
|
10
|
-
* that binds nothing keeps talking HTTP.
|
|
11
|
-
*/
|
|
12
|
-
export const transportAlias = (protocol = 'http') => `transport:${protocol}`;
|
|
13
8
|
//# sourceMappingURL=consts.js.map
|
package/build/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,8BAAS,CAAA;IACT,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;AACvB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,8BAAS,CAAA;IACT,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;AACvB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B"}
|
package/build/filter.d.ts
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
import type { JSONSchemaType } from 'ajv';
|
|
2
2
|
import type { Filter } from './types.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
declare const body: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter;
|
|
4
|
+
declare const query: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter;
|
|
5
|
+
declare const params: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter;
|
|
6
|
+
declare const response: <T>(schema: JSONSchemaType<T>, code?: number, filter?: Filter) => Filter;
|
|
7
|
+
declare const headers: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter;
|
|
8
|
+
export declare const createFilterHelper: () => {
|
|
9
|
+
body: typeof body;
|
|
10
|
+
query: typeof query;
|
|
11
|
+
params: typeof params;
|
|
12
|
+
response: typeof response;
|
|
13
|
+
headers: typeof headers;
|
|
14
|
+
};
|
|
15
|
+
export declare const filterHelper: {
|
|
16
|
+
body: typeof body;
|
|
17
|
+
query: typeof query;
|
|
18
|
+
params: typeof params;
|
|
19
|
+
response: typeof response;
|
|
20
|
+
headers: typeof headers;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
8
23
|
//# sourceMappingURL=filter.d.ts.map
|
package/build/filter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,QAAA,MAAM,IAAI,GAAI,CAAC,UAAU,cAAc,CAAC,CAAC,CAAC,WAAW,MAAM,KAAG,MAE7D,CAAA;AAED,QAAA,MAAM,KAAK,GAAI,CAAC,UAAU,cAAc,CAAC,CAAC,CAAC,WAAW,MAAM,KAAG,MAE9D,CAAA;AAED,QAAA,MAAM,MAAM,GAAI,CAAC,UAAU,cAAc,CAAC,CAAC,CAAC,WAAW,MAAM,KAAG,MAE/D,CAAA;AAED,QAAA,MAAM,QAAQ,GAAI,CAAC,UAAU,cAAc,CAAC,CAAC,CAAC,SAAS,MAAM,WAAW,MAAM,KAAG,MAMhF,CAAA;AAED,QAAA,MAAM,OAAO,GAAI,CAAC,UAAU,cAAc,CAAC,CAAC,CAAC,WAAW,MAAM,KAAG,MAEhE,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;CAAqD,CAAA;AAEpF,eAAO,MAAM,YAAY;;;;;;CAAuB,CAAA"}
|
package/build/filter.js
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
const body = (schema, filter) => {
|
|
2
2
|
return { ...filter, body: schema };
|
|
3
3
|
};
|
|
4
|
-
|
|
4
|
+
const query = (schema, filter) => {
|
|
5
5
|
return { ...filter, query: schema };
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
const params = (schema, filter) => {
|
|
8
8
|
return { ...filter, params: schema };
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
const response = (schema, code, filter) => {
|
|
11
11
|
let _schema = schema;
|
|
12
12
|
if (filter?.response != null && code != null) {
|
|
13
13
|
_schema = { ...filter.response, [code]: schema };
|
|
14
14
|
}
|
|
15
15
|
return { ...filter, response: _schema };
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
const headers = (schema, filter) => {
|
|
18
18
|
return { ...filter, headers: schema };
|
|
19
19
|
};
|
|
20
|
+
export const createFilterHelper = () => ({ body, query, params, response, headers });
|
|
21
|
+
export const filterHelper = createFilterHelper();
|
|
20
22
|
//# sourceMappingURL=filter.js.map
|
package/build/filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAGA,MAAM,
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAAG,CAAI,MAAyB,EAAE,MAAe,EAAU,EAAE;IACrE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAa,EAAE,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,CAAI,MAAyB,EAAE,MAAe,EAAU,EAAE;IACtE,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAa,EAAE,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAI,MAAyB,EAAE,MAAe,EAAU,EAAE;IACvE,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAa,EAAE,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAI,MAAyB,EAAE,IAAa,EAAE,MAAe,EAAU,EAAE;IACxF,IAAI,OAAO,GAAQ,MAAM,CAAA;IACzB,IAAI,MAAM,EAAE,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QAC7C,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IAClD,CAAC;IACD,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AACzC,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAI,MAAyB,EAAE,MAAe,EAAU,EAAE;IACxE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAa,EAAE,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;AAEpF,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA"}
|
package/build/index.d.ts
CHANGED
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,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
|
|
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,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
|
package/build/index.js
CHANGED
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
|
package/build/materialize.d.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { EntrypointProtocolDeclaration } from './protocol.js';
|
|
3
|
-
/** A context-bound entrypoint made from an immutable protocol declaration. */
|
|
4
|
-
export type MaterializedEntrypoint<Protocol extends EntrypointProtocolDeclaration> = CommonEntrypoint & {
|
|
5
|
-
readonly protocol: Protocol;
|
|
6
|
-
};
|
|
1
|
+
import type { EntrypointProtocolDeclaration, MaterializedEntrypoint } from './types.js';
|
|
7
2
|
/**
|
|
8
3
|
* Make a local, mutable registration from a shared declaration. The protocol is never mutated;
|
|
9
4
|
* guards, route resolution and handlers belong exclusively to this materialized entrypoint.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialize.d.ts","sourceRoot":"","sources":["../src/materialize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"materialize.d.ts","sourceRoot":"","sources":["../src/materialize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmC,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAgCxH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,SAAS,6BAA6B,YACxE,QAAQ,KACjB,sBAAsB,CAAC,QAAQ,CAGjC,CAAA"}
|
package/build/materialize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialize.js","sourceRoot":"","sources":["../src/materialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"materialize.js","sourceRoot":"","sources":["../src/materialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,MAAM,QAAQ,GAAG,CAAC,QAAuC,EAAsB,EAAE;IAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAEnD,IAAI,OAAO,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,SAAS,CAAA;IAEzD,OAAO;QACL,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC;QACvE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7E,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1E,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC;QAChF,mFAAmF;QACnF,uFAAuF;QACvF,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACvC,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/E,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;gBACtF,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;aAChC,CAAC,CAAC;SACJ;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,QAAuC,EAA2B,EAAE,CAAC,CAAC;IACvF,MAAM,EAAE,QAAQ,CAAC,MAAM;IACvB,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK;IAC1B,UAAU,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IACzE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;CAC3B,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAAkB,EACgB,EAAE,CAAC,MAAM,CAAC,MAAM,CAClD,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,EACvE,EAAE,QAAQ,EAAE,CACb,CAAA"}
|
package/build/protocol.d.ts
CHANGED
|
@@ -1,121 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type { JSONSchemaType, AnySchemaObject } from 'ajv';
|
|
1
|
+
import type { EntrypointReference } from '@owlmeans/context';
|
|
2
|
+
import type { JSONSchemaType } from 'ajv';
|
|
4
3
|
import type { RouteModel } from '@owlmeans/route';
|
|
5
|
-
import type {
|
|
6
|
-
import type { ResolvedEntity } from './types.js';
|
|
7
|
-
import type { AbstractRequest } from './types.js';
|
|
8
|
-
/** A deliberately broad value used only by declarations without an I/O contract. */
|
|
9
|
-
export type OpenValue = object | string | number | boolean | bigint | null | undefined;
|
|
10
|
-
/** The request accepted by a declaration that intentionally supplies no contract. */
|
|
11
|
-
export interface OpenRequest {
|
|
12
|
-
body?: object;
|
|
13
|
-
params?: object;
|
|
14
|
-
query?: object;
|
|
15
|
-
headers?: object;
|
|
16
|
-
}
|
|
17
|
-
/** The four independent request sections an entrypoint may declare. */
|
|
18
|
-
export interface RequestShape {
|
|
19
|
-
body?: OpenValue;
|
|
20
|
-
params?: object;
|
|
21
|
-
query?: object;
|
|
22
|
-
headers?: object;
|
|
23
|
-
}
|
|
24
|
-
/** Addressing and transport controls are never part of an entrypoint's payload contract. */
|
|
25
|
-
export interface CallOptions {
|
|
26
|
-
auth?: Auth;
|
|
27
|
-
host?: string;
|
|
28
|
-
base?: string | boolean;
|
|
29
|
-
unsecure?: boolean;
|
|
30
|
-
timeout?: number;
|
|
31
|
-
signal?: AbortSignal;
|
|
32
|
-
}
|
|
33
|
-
interface TypeToken {
|
|
34
|
-
readonly kind: 'entrypoint-type';
|
|
35
|
-
readonly schema?: AnySchemaObject;
|
|
36
|
-
}
|
|
37
|
-
/** A type-only contract source, optionally paired with an AJV schema. */
|
|
38
|
-
export type Typed<T> = TypeToken & {
|
|
39
|
-
readonly value?: T;
|
|
40
|
-
};
|
|
41
|
-
declare const entrypointSchemaType: unique symbol;
|
|
42
|
-
/**
|
|
43
|
-
* A JSON schema carrying the model type it validates. Use `schema<Model>(...)` once beside the
|
|
44
|
-
* model; every protocol that consumes it then infers the model without another generic.
|
|
45
|
-
*/
|
|
46
|
-
export type EntrypointSchema<T> = JSONSchemaType<T> & {
|
|
47
|
-
readonly [entrypointSchemaType]: T;
|
|
48
|
-
};
|
|
4
|
+
import type { EntrypointContract, EntrypointGate, EntrypointOptions, EntrypointProtocol, EntrypointProtocolDeclaration, EntrypointSchema, EntrypointTree, OpenRequest, OpenValue, RegisteredEntrypoint, RequestFromSources, RequestShape, RequestSources, ShapeSource, Typed } from './types.js';
|
|
49
5
|
export declare const schema: <T>(value: JSONSchemaType<T>) => EntrypointSchema<T>;
|
|
50
|
-
/** A schema or an explicit type-only source for one request/response value. */
|
|
51
|
-
export type ShapeSource<T> = EntrypointSchema<T> | JSONSchemaType<T> | Typed<T>;
|
|
52
|
-
type AnyShapeSource = AnySchemaObject | TypeToken;
|
|
53
6
|
/**
|
|
54
7
|
* Supplies type information where a response has no runtime schema, or attaches a type to an
|
|
55
8
|
* otherwise untyped schema literal at the declaration boundary.
|
|
56
9
|
*/
|
|
57
10
|
export declare function typed<T>(): Typed<T>;
|
|
58
11
|
export declare function typed<T>(schema: JSONSchemaType<T>): Typed<T>;
|
|
59
|
-
export interface RequestSources {
|
|
60
|
-
body?: AnyShapeSource;
|
|
61
|
-
params?: AnyShapeSource;
|
|
62
|
-
query?: AnyShapeSource;
|
|
63
|
-
headers?: AnyShapeSource;
|
|
64
|
-
}
|
|
65
|
-
export interface RuntimeRequestSchemas {
|
|
66
|
-
body?: AnySchemaObject;
|
|
67
|
-
params?: AnySchemaObject;
|
|
68
|
-
query?: AnySchemaObject;
|
|
69
|
-
headers?: AnySchemaObject;
|
|
70
|
-
}
|
|
71
|
-
export interface RuntimeResponseSchemas {
|
|
72
|
-
default?: AnySchemaObject;
|
|
73
|
-
byStatus?: Readonly<Record<number, AnySchemaObject>>;
|
|
74
|
-
}
|
|
75
|
-
/** The runtime schemas and compile-time request/response pair attached to one protocol. */
|
|
76
|
-
export interface EntrypointContract<Request extends RequestShape, Response> {
|
|
77
|
-
readonly kind: 'entrypoint-contract';
|
|
78
|
-
readonly requestSchemas: RuntimeRequestSchemas;
|
|
79
|
-
readonly responseSchemas?: RuntimeResponseSchemas;
|
|
80
|
-
readonly requestType?: Request;
|
|
81
|
-
readonly responseType?: Response;
|
|
82
|
-
}
|
|
83
|
-
/** Runtime fields common to every protocol, regardless of its compile-time request/reply pair. */
|
|
84
|
-
export interface EntrypointProtocolDeclaration {
|
|
85
|
-
readonly kind: 'entrypoint-protocol';
|
|
86
|
-
readonly alias: string;
|
|
87
|
-
readonly route: RouteModel;
|
|
88
|
-
readonly contract?: Pick<EntrypointContract<RequestShape, OpenValue>, 'kind' | 'requestSchemas' | 'responseSchemas'>;
|
|
89
|
-
readonly sticky: boolean;
|
|
90
|
-
readonly guards: readonly string[];
|
|
91
|
-
readonly gate?: {
|
|
92
|
-
readonly alias: string;
|
|
93
|
-
readonly params: readonly string[];
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
/** An access gate declared by a protocol, including inherited parent declarations. */
|
|
97
|
-
export interface EntrypointGate {
|
|
98
|
-
readonly alias: string;
|
|
99
|
-
readonly params: readonly string[];
|
|
100
|
-
}
|
|
101
|
-
type SourceValue<Source> = Source extends Typed<infer Value> ? Value : Source extends EntrypointSchema<infer Value> ? Value : Source extends JSONSchemaType<infer Value> ? Value extends OpenValue ? Value : OpenValue : OpenValue;
|
|
102
|
-
type RequestFromSources<Sources extends RequestSources> = (Sources extends {
|
|
103
|
-
body: infer Source;
|
|
104
|
-
} ? {
|
|
105
|
-
body: SourceValue<Source>;
|
|
106
|
-
} : {}) & (Sources extends {
|
|
107
|
-
params: infer Source;
|
|
108
|
-
} ? {
|
|
109
|
-
params: SourceValue<Source>;
|
|
110
|
-
} : {}) & (Sources extends {
|
|
111
|
-
query: infer Source;
|
|
112
|
-
} ? {
|
|
113
|
-
query: SourceValue<Source>;
|
|
114
|
-
} : {}) & (Sources extends {
|
|
115
|
-
headers: infer Source;
|
|
116
|
-
} ? {
|
|
117
|
-
headers: SourceValue<Source>;
|
|
118
|
-
} : {});
|
|
119
12
|
/**
|
|
120
13
|
* Declare an exact request and response. The primary overload means a body request; use
|
|
121
14
|
* `contract.request` for independently-shaped request sections.
|
|
@@ -128,91 +21,12 @@ export declare function contract<Body extends OpenValue, Response>(body: ShapeSo
|
|
|
128
21
|
export declare namespace contract {
|
|
129
22
|
function request<Sources extends RequestSources, Response>(request: Sources, response: ShapeSource<Response>): EntrypointContract<RequestFromSources<Sources>, Response>;
|
|
130
23
|
}
|
|
131
|
-
export interface EntrypointOptions {
|
|
132
|
-
sticky?: boolean;
|
|
133
|
-
guards?: string | readonly string[];
|
|
134
|
-
gate?: {
|
|
135
|
-
alias: string;
|
|
136
|
-
params?: string | readonly string[];
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
export interface EntrypointResult<Response> {
|
|
140
|
-
value: Response;
|
|
141
|
-
outcome: EntrypointOutcome;
|
|
142
|
-
}
|
|
143
|
-
export type CallArguments<Request extends RequestShape> = {} extends Request ? [request?: Request & CallOptions] : [request: Request & CallOptions];
|
|
144
|
-
type UrlRequest<Request extends RequestShape> = (Request extends {
|
|
145
|
-
params: infer Params;
|
|
146
|
-
} ? {
|
|
147
|
-
params: Params;
|
|
148
|
-
} : Request extends {
|
|
149
|
-
params?: infer Params;
|
|
150
|
-
} ? {
|
|
151
|
-
params?: Params;
|
|
152
|
-
} : {}) & (Request extends {
|
|
153
|
-
query: infer Query;
|
|
154
|
-
} ? {
|
|
155
|
-
query: Query;
|
|
156
|
-
} : Request extends {
|
|
157
|
-
query?: infer Query;
|
|
158
|
-
} ? {
|
|
159
|
-
query?: Query;
|
|
160
|
-
} : {});
|
|
161
|
-
export type UrlArguments<Request extends RequestShape> = {} extends UrlRequest<Request> ? [request?: UrlRequest<Request> & CallOptions] : [request: UrlRequest<Request> & CallOptions];
|
|
162
|
-
export interface EntrypointRequestMeta {
|
|
163
|
-
alias: string;
|
|
164
|
-
auth?: Auth;
|
|
165
|
-
entity?: ResolvedEntity;
|
|
166
|
-
path: string;
|
|
167
|
-
canceled?: boolean;
|
|
168
|
-
cancel?: () => void;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* A protocol request at an implementation boundary.
|
|
172
|
-
*
|
|
173
|
-
* Transport metadata and empty request sections remain available to handlers; a declared section
|
|
174
|
-
* then refines that base shape to its protocol contract.
|
|
175
|
-
*/
|
|
176
|
-
export type HandlerRequest<Request extends RequestShape> = AbstractRequest & Request & EntrypointRequestMeta;
|
|
177
|
-
/** The context-bound counterpart of an immutable protocol declaration. */
|
|
178
|
-
export interface RegisteredEntrypoint<Request extends RequestShape, Response> extends BasicEntrypoint {
|
|
179
|
-
readonly protocol: EntrypointProtocol<Request, Response>;
|
|
180
|
-
call: (...args: CallArguments<Request>) => Promise<Response>;
|
|
181
|
-
invoke: (...args: CallArguments<Request>) => Promise<EntrypointResult<Response>>;
|
|
182
|
-
url: (...args: UrlArguments<Request>) => Promise<string>;
|
|
183
|
-
validate: (...args: CallArguments<Request>) => Promise<boolean>;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* An immutable shared declaration. Its inherited reference type is what gives a context lookup
|
|
187
|
-
* the exact registered entrypoint type without a consumer-supplied generic.
|
|
188
|
-
*/
|
|
189
|
-
export interface EntrypointProtocol<Request extends RequestShape = RequestShape, Response = OpenValue> extends EntrypointProtocolDeclaration, EntrypointReference<RegisteredEntrypoint<Request, Response>> {
|
|
190
|
-
readonly contract?: EntrypointContract<Request, Response>;
|
|
191
|
-
}
|
|
192
|
-
export type RequestOf<Protocol extends EntrypointProtocolDeclaration> = Protocol extends EntrypointProtocol<infer Request, infer _Response> ? Request : OpenRequest;
|
|
193
|
-
export type ResponseOf<Protocol extends EntrypointProtocolDeclaration> = Protocol extends EntrypointProtocol<infer _Request, infer Response> ? Response : OpenValue;
|
|
194
|
-
export type BodyOf<Protocol extends EntrypointProtocolDeclaration> = RequestOf<Protocol> extends {
|
|
195
|
-
body: infer Body;
|
|
196
|
-
} ? Body : OpenValue;
|
|
197
|
-
export type ParamsOf<Protocol extends EntrypointProtocolDeclaration> = RequestOf<Protocol> extends {
|
|
198
|
-
params: infer Params;
|
|
199
|
-
} ? Params : object;
|
|
200
|
-
export type QueryOf<Protocol extends EntrypointProtocolDeclaration> = RequestOf<Protocol> extends {
|
|
201
|
-
query: infer Query;
|
|
202
|
-
} ? Query : object;
|
|
203
|
-
export type HeadersOf<Protocol extends EntrypointProtocolDeclaration> = RequestOf<Protocol> extends {
|
|
204
|
-
headers: infer Headers;
|
|
205
|
-
} ? Headers : object;
|
|
206
|
-
export type CallRequestOf<Protocol extends EntrypointProtocolDeclaration> = RequestOf<Protocol> & CallOptions;
|
|
207
24
|
/** Create an immutable protocol declaration from a route and its contract. */
|
|
208
25
|
export declare const protocol: <Request extends RequestShape, Response>(route: RouteModel, entrypointContract: EntrypointContract<Request, Response>, options?: EntrypointOptions) => EntrypointProtocol<Request, Response>;
|
|
209
26
|
export declare const openProtocol: (route: RouteModel, options?: EntrypointOptions) => EntrypointProtocol<OpenRequest, OpenValue>;
|
|
210
27
|
export declare const entrypointRef: <Request extends RequestShape = OpenRequest, Response = OpenValue>(alias: string) => EntrypointReference<RegisteredEntrypoint<Request, Response>>;
|
|
211
28
|
export declare const aliasOf: (reference: EntrypointReference | string) => string;
|
|
212
29
|
export declare const isEntrypointProtocol: (value: object) => value is EntrypointProtocolDeclaration;
|
|
213
|
-
export interface EntrypointTree {
|
|
214
|
-
readonly [key: string]: EntrypointProtocolDeclaration | EntrypointTree;
|
|
215
|
-
}
|
|
216
30
|
/** Flatten an exported protocol tree for a layer-specific materializer. */
|
|
217
31
|
export declare const protocols: (tree: EntrypointTree) => EntrypointProtocolDeclaration[];
|
|
218
32
|
/**
|
|
@@ -227,5 +41,4 @@ export declare const mapProtocols: <Tree extends EntrypointTree>(tree: Tree, map
|
|
|
227
41
|
export declare const gatesOf: (protocol: EntrypointProtocolDeclaration, tree: EntrypointTree) => readonly EntrypointGate[];
|
|
228
42
|
/** Clone an immutable protocol while preserving its request/response pair. */
|
|
229
43
|
export declare const decorateEntrypoint: <Protocol extends EntrypointProtocolDeclaration>(protocol: Protocol, options: EntrypointOptions) => Protocol;
|
|
230
|
-
export {};
|
|
231
44
|
//# sourceMappingURL=protocol.d.ts.map
|
package/build/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/build/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|