@owlmeans/entrypoint 0.1.18-rc.40 → 0.1.18-rc.42
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 +7 -7
- package/agent-meta/manifest.json +3 -3
- package/agent-meta/skills/entrypoint/SKILL.md +1 -1
- package/build/entrypoint.d.ts.map +1 -1
- package/build/entrypoint.js +6 -6
- package/build/entrypoint.js.map +1 -1
- package/build/filter/types.d.ts +16 -0
- package/build/filter/types.d.ts.map +1 -0
- package/build/filter/types.js +2 -0
- package/build/filter/types.js.map +1 -0
- package/build/filter.d.ts +3 -22
- package/build/filter.d.ts.map +1 -1
- package/build/filter.js +21 -19
- 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.map +1 -1
- package/build/types.d.ts +4 -6
- package/build/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/entrypoint.ts +6 -8
- package/src/filter/types.ts +16 -0
- package/src/filter.ts +22 -19
- package/src/index.ts +1 -0
- package/src/types.ts +5 -7
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.42
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Concepts
|
|
@@ -92,14 +92,14 @@ section independently. The children inherit `DEFAULT_GUARD` from `base`.
|
|
|
92
92
|
```ts
|
|
93
93
|
import { handlers } from '@owlmeans/server-api'
|
|
94
94
|
import { bind } from '@owlmeans/server-entrypoint'
|
|
95
|
-
import {
|
|
95
|
+
import { makeEntityScope } from '@owlmeans/auth-common'
|
|
96
96
|
import { storyProtocols } from 'my-app-common'
|
|
97
97
|
import type { Context } from 'my-app-backend'
|
|
98
98
|
|
|
99
99
|
const api = handlers<Context>()
|
|
100
100
|
|
|
101
101
|
const create = api.body(storyProtocols.create, async (body, context, request) =>
|
|
102
|
-
context.story().create(
|
|
102
|
+
context.story().create(makeEntityScope(request).requireEntityKey(), body))
|
|
103
103
|
|
|
104
104
|
const get = api.params(storyProtocols.get, async ({ id }, context) =>
|
|
105
105
|
context.story().get(id))
|
|
@@ -112,7 +112,7 @@ export const serverBindings = [
|
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
`body`, `params` and `id` are inferred from the protocol; no generic is named. The organization
|
|
115
|
-
record id comes from the request (`requireEntityKey`), never from the payload.
|
|
115
|
+
record id comes from the request (`makeEntityScope(request).requireEntityKey()`), never from the payload.
|
|
116
116
|
|
|
117
117
|
### 3. Call the protocol from a client or another service
|
|
118
118
|
|
|
@@ -281,8 +281,8 @@ over HTTP.
|
|
|
281
281
|
transport decide.
|
|
282
282
|
- Inherited gates are deduplicated by gate service: a child declaring a gate under the same service
|
|
283
283
|
replaces its ancestor's gate for that service rather than adding to it.
|
|
284
|
-
- `request.entity` is set only where authentication ran `attachEntity`; handlers key records by
|
|
285
|
-
`entity.id` (via `requireEntityKey` /
|
|
284
|
+
- `request.entity` is set only where authentication ran `makeEntityScope(request).attachEntity(context)`; handlers key records by
|
|
285
|
+
`entity.id` (via `makeEntityScope(request).requireEntityKey()` / `.requireEntity()` from `@owlmeans/auth-common`), never by the
|
|
286
286
|
token's `entitySlug`.
|
|
287
287
|
|
|
288
288
|
## Related packages
|
|
@@ -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.57
|
|
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
|
-
"schemaVersion":
|
|
2
|
+
"schemaVersion": 3,
|
|
3
3
|
"package": "@owlmeans/entrypoint",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-10-
|
|
4
|
+
"version": "0.1.18-rc.42",
|
|
5
|
+
"generatedAt": "2026-10-20T23:19:58.645Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGlD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAEjE,eAAO,MAAM,UAAU,EAAE,yBAAyB,CAAC,gBAAgB,CAkElE,CAAA"}
|
package/build/entrypoint.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { appendContextual } from '@owlmeans/context';
|
|
2
|
-
import {
|
|
2
|
+
import { routeAddressOf } from '@owlmeans/route/utils';
|
|
3
3
|
export const entrypoint = (route, opts) => {
|
|
4
4
|
const ep = appendContextual(route.route.alias, {
|
|
5
5
|
_entrypoint: true,
|
|
6
6
|
sticky: false,
|
|
7
7
|
route,
|
|
8
8
|
segment: () => ep.route.route.path,
|
|
9
|
-
path: () =>
|
|
10
|
-
mount: () =>
|
|
11
|
-
service: () =>
|
|
12
|
-
address: () =>
|
|
13
|
-
isLocal: () =>
|
|
9
|
+
path: () => routeAddressOf(ep.assertCtx()).resolvePath(ep.route.route),
|
|
10
|
+
mount: () => routeAddressOf(ep.assertCtx()).resolveMount(ep.route.route),
|
|
11
|
+
service: () => routeAddressOf(ep.assertCtx()).resolveService(ep.route.route),
|
|
12
|
+
address: () => routeAddressOf(ep.assertCtx()).resolveAddress(ep.route.route),
|
|
13
|
+
isLocal: () => routeAddressOf(ep.assertCtx()).isLocalRoute(ep.route.route),
|
|
14
14
|
parent: () => ep.route.route.parent == null ? null
|
|
15
15
|
: ep.assertCtx().entrypoint(ep.route.route.parent),
|
|
16
16
|
// Walked afresh on every call: a guard attached to an ancestor after this entrypoint was first
|
package/build/entrypoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { JSONSchemaType } from 'ajv';
|
|
2
|
+
import type { Filter } from '../types.js';
|
|
3
|
+
/** Builds the request/response schema filter of an entrypoint, one section at a time. */
|
|
4
|
+
export interface FilterHelper {
|
|
5
|
+
/** `filter` with its body schema set. */
|
|
6
|
+
body: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter;
|
|
7
|
+
/** `filter` with its query schema set. */
|
|
8
|
+
query: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter;
|
|
9
|
+
/** `filter` with its params schema set. */
|
|
10
|
+
params: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter;
|
|
11
|
+
/** `filter` with its response schema set — keyed by `code` when the filter already has responses. */
|
|
12
|
+
response: <T>(schema: JSONSchemaType<T>, code?: number, filter?: Filter) => Filter;
|
|
13
|
+
/** `filter` with its headers schema set. */
|
|
14
|
+
headers: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/filter/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/D,0CAA0C;IAC1C,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAChE,2CAA2C;IAC3C,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACjE,qGAAqG;IACrG,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClF,4CAA4C;IAC5C,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CACnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/filter/types.ts"],"names":[],"mappings":""}
|
package/build/filter.d.ts
CHANGED
|
@@ -1,23 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
declare const
|
|
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 {};
|
|
1
|
+
import type { FilterHelper } from './filter/types.js';
|
|
2
|
+
export declare const createFilterHelper: () => FilterHelper;
|
|
3
|
+
export declare const filterHelper: FilterHelper;
|
|
23
4
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,eAAO,MAAM,kBAAkB,QAAO,YA0BrC,CAAA;AAED,eAAO,MAAM,YAAY,cAAuB,CAAA"}
|
package/build/filter.js
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
1
|
+
export const createFilterHelper = () => {
|
|
2
|
+
const body = (schema, filter) => {
|
|
3
|
+
return { ...filter, body: schema };
|
|
4
|
+
};
|
|
5
|
+
const query = (schema, filter) => {
|
|
6
|
+
return { ...filter, query: schema };
|
|
7
|
+
};
|
|
8
|
+
const params = (schema, filter) => {
|
|
9
|
+
return { ...filter, params: schema };
|
|
10
|
+
};
|
|
11
|
+
const response = (schema, code, filter) => {
|
|
12
|
+
let _schema = schema;
|
|
13
|
+
if (filter?.response != null && code != null) {
|
|
14
|
+
_schema = { ...filter.response, [code]: schema };
|
|
15
|
+
}
|
|
16
|
+
return { ...filter, response: _schema };
|
|
17
|
+
};
|
|
18
|
+
const headers = (schema, filter) => {
|
|
19
|
+
return { ...filter, headers: schema };
|
|
20
|
+
};
|
|
21
|
+
return { body, query, params, response, headers };
|
|
3
22
|
};
|
|
4
|
-
const query = (schema, filter) => {
|
|
5
|
-
return { ...filter, query: schema };
|
|
6
|
-
};
|
|
7
|
-
const params = (schema, filter) => {
|
|
8
|
-
return { ...filter, params: schema };
|
|
9
|
-
};
|
|
10
|
-
const response = (schema, code, filter) => {
|
|
11
|
-
let _schema = schema;
|
|
12
|
-
if (filter?.response != null && code != null) {
|
|
13
|
-
_schema = { ...filter.response, [code]: schema };
|
|
14
|
-
}
|
|
15
|
-
return { ...filter, response: _schema };
|
|
16
|
-
};
|
|
17
|
-
const headers = (schema, filter) => {
|
|
18
|
-
return { ...filter, headers: schema };
|
|
19
|
-
};
|
|
20
|
-
export const createFilterHelper = () => ({ body, query, params, response, headers });
|
|
21
23
|
export const filterHelper = createFilterHelper();
|
|
22
24
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAiB,EAAE;IACnD,MAAM,IAAI,GAAG,CAAI,MAAyB,EAAE,MAAe,EAAU,EAAE;QACrE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAa,EAAE,CAAA;IAC3C,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,CAAI,MAAyB,EAAE,MAAe,EAAU,EAAE;QACtE,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAa,EAAE,CAAA;IAC5C,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAI,MAAyB,EAAE,MAAe,EAAU,EAAE;QACvE,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAa,EAAE,CAAA;IAC7C,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,CAAI,MAAyB,EAAE,IAAa,EAAE,MAAe,EAAU,EAAE;QACxF,IAAI,OAAO,GAAQ,MAAM,CAAA;QACzB,IAAI,MAAM,EAAE,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAC7C,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QAClD,CAAC;QACD,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACzC,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,CAAI,MAAyB,EAAE,MAAe,EAAU,EAAE;QACxE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAa,EAAE,CAAA;IAC9C,CAAC,CAAA;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AACnD,CAAC,CAAA;AAED,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,YAAY,CAAA;AAC1B,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,mBAAmB,mBAAmB,CAAA;AACtC,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.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,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
|
package/build/types.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import type { AnySchemaObject, JSONSchemaType } from 'ajv';
|
|
|
4
4
|
import type { EntrypointOutcome } from './consts.js';
|
|
5
5
|
import type { Auth } from '@owlmeans/auth';
|
|
6
6
|
import type { AnyShapeSource, entrypointSchemaType, SourceValue, TypeToken, UrlRequest } from './types.local.js';
|
|
7
|
-
import type { createFilterHelper } from './filter.js';
|
|
8
7
|
/**
|
|
9
8
|
* A URL unit: an immutable route declaration plus what guards, gates and schemas it answers under.
|
|
10
9
|
*
|
|
@@ -173,9 +172,9 @@ export interface EntrypointProtocolDeclaration {
|
|
|
173
172
|
};
|
|
174
173
|
}
|
|
175
174
|
/** A context-bound entrypoint made from an immutable protocol declaration. */
|
|
176
|
-
export
|
|
175
|
+
export interface MaterializedEntrypoint<Protocol extends EntrypointProtocolDeclaration> extends CommonEntrypoint {
|
|
177
176
|
readonly protocol: Protocol;
|
|
178
|
-
}
|
|
177
|
+
}
|
|
179
178
|
/** The request accepted by a declaration that intentionally supplies no contract. */
|
|
180
179
|
export interface OpenRequest {
|
|
181
180
|
body?: object;
|
|
@@ -193,9 +192,9 @@ export interface CallOptions {
|
|
|
193
192
|
signal?: AbortSignal;
|
|
194
193
|
}
|
|
195
194
|
/** A type-only contract source, optionally paired with an AJV schema. */
|
|
196
|
-
export
|
|
195
|
+
export interface Typed<T> extends TypeToken {
|
|
197
196
|
readonly value?: T;
|
|
198
|
-
}
|
|
197
|
+
}
|
|
199
198
|
/**
|
|
200
199
|
* A JSON schema carrying the model type it validates. Use `schema<Model>(...)` once beside the
|
|
201
200
|
* model; every protocol that consumes it then infers the model without another generic.
|
|
@@ -295,5 +294,4 @@ export type CallRequestOf<Protocol extends EntrypointProtocolDeclaration> = Requ
|
|
|
295
294
|
export interface EntrypointTree {
|
|
296
295
|
readonly [key: string]: EntrypointProtocolDeclaration | EntrypointTree;
|
|
297
296
|
}
|
|
298
|
-
export type FilterHelper = ReturnType<typeof createFilterHelper>;
|
|
299
297
|
//# 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,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC9G,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/entrypoint",
|
|
3
|
-
"version": "0.1.18-rc.
|
|
3
|
+
"version": "0.1.18-rc.42",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@owlmeans/auth": "^0.1.18-rc.
|
|
32
|
-
"@owlmeans/context": "^0.1.18-rc.
|
|
33
|
-
"@owlmeans/route": "^0.1.18-rc.
|
|
31
|
+
"@owlmeans/auth": "^0.1.18-rc.42",
|
|
32
|
+
"@owlmeans/context": "^0.1.18-rc.35",
|
|
33
|
+
"@owlmeans/route": "^0.1.18-rc.36",
|
|
34
34
|
"ajv": "^8.20.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
package/src/entrypoint.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { CommonEntrypoint } from './types.js'
|
|
2
2
|
import { appendContextual } from '@owlmeans/context'
|
|
3
|
-
import {
|
|
4
|
-
isLocalRoute, resolveAddress, resolveMount, resolvePath, resolveService
|
|
5
|
-
} from '@owlmeans/route/utils'
|
|
3
|
+
import { routeAddressOf } from '@owlmeans/route/utils'
|
|
6
4
|
import type { CreateEntrypointSignature } from './utils/types.js'
|
|
7
5
|
|
|
8
6
|
export const entrypoint: CreateEntrypointSignature<CommonEntrypoint> = (route, opts) => {
|
|
@@ -15,15 +13,15 @@ export const entrypoint: CreateEntrypointSignature<CommonEntrypoint> = (route, o
|
|
|
15
13
|
|
|
16
14
|
segment: () => ep.route.route.path,
|
|
17
15
|
|
|
18
|
-
path: () =>
|
|
16
|
+
path: () => routeAddressOf(ep.assertCtx()).resolvePath(ep.route.route),
|
|
19
17
|
|
|
20
|
-
mount: () =>
|
|
18
|
+
mount: () => routeAddressOf(ep.assertCtx()).resolveMount(ep.route.route),
|
|
21
19
|
|
|
22
|
-
service: () =>
|
|
20
|
+
service: () => routeAddressOf(ep.assertCtx()).resolveService(ep.route.route),
|
|
23
21
|
|
|
24
|
-
address: () =>
|
|
22
|
+
address: () => routeAddressOf(ep.assertCtx()).resolveAddress(ep.route.route),
|
|
25
23
|
|
|
26
|
-
isLocal: () =>
|
|
24
|
+
isLocal: () => routeAddressOf(ep.assertCtx()).isLocalRoute(ep.route.route),
|
|
27
25
|
|
|
28
26
|
parent: () => ep.route.route.parent == null ? null
|
|
29
27
|
: ep.assertCtx().entrypoint<CommonEntrypoint>(ep.route.route.parent),
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { JSONSchemaType } from 'ajv'
|
|
2
|
+
import type { Filter } from '../types.js'
|
|
3
|
+
|
|
4
|
+
/** Builds the request/response schema filter of an entrypoint, one section at a time. */
|
|
5
|
+
export interface FilterHelper {
|
|
6
|
+
/** `filter` with its body schema set. */
|
|
7
|
+
body: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter
|
|
8
|
+
/** `filter` with its query schema set. */
|
|
9
|
+
query: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter
|
|
10
|
+
/** `filter` with its params schema set. */
|
|
11
|
+
params: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter
|
|
12
|
+
/** `filter` with its response schema set — keyed by `code` when the filter already has responses. */
|
|
13
|
+
response: <T>(schema: JSONSchemaType<T>, code?: number, filter?: Filter) => Filter
|
|
14
|
+
/** `filter` with its headers schema set. */
|
|
15
|
+
headers: <T>(schema: JSONSchemaType<T>, filter?: Filter) => Filter
|
|
16
|
+
}
|
package/src/filter.ts
CHANGED
|
@@ -1,30 +1,33 @@
|
|
|
1
1
|
import type { JSONSchemaType } from 'ajv'
|
|
2
2
|
import type { Filter } from './types.js'
|
|
3
|
+
import type { FilterHelper } from './filter/types.js'
|
|
3
4
|
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
}
|
|
5
|
+
export const createFilterHelper = (): FilterHelper => {
|
|
6
|
+
const body = <T>(schema: JSONSchemaType<T>, filter?: Filter): Filter => {
|
|
7
|
+
return { ...filter, body: schema as any }
|
|
8
|
+
}
|
|
7
9
|
|
|
8
|
-
const query = <T>(schema: JSONSchemaType<T>, filter?: Filter): Filter => {
|
|
9
|
-
|
|
10
|
-
}
|
|
10
|
+
const query = <T>(schema: JSONSchemaType<T>, filter?: Filter): Filter => {
|
|
11
|
+
return { ...filter, query: schema as any }
|
|
12
|
+
}
|
|
11
13
|
|
|
12
|
-
const params = <T>(schema: JSONSchemaType<T>, filter?: Filter): Filter => {
|
|
13
|
-
|
|
14
|
-
}
|
|
14
|
+
const params = <T>(schema: JSONSchemaType<T>, filter?: Filter): Filter => {
|
|
15
|
+
return { ...filter, params: schema as any }
|
|
16
|
+
}
|
|
15
17
|
|
|
16
|
-
const response = <T>(schema: JSONSchemaType<T>, code?: number, filter?: Filter): Filter => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const response = <T>(schema: JSONSchemaType<T>, code?: number, filter?: Filter): Filter => {
|
|
19
|
+
let _schema: any = schema
|
|
20
|
+
if (filter?.response != null && code != null) {
|
|
21
|
+
_schema = { ...filter.response, [code]: schema }
|
|
22
|
+
}
|
|
23
|
+
return { ...filter, response: _schema }
|
|
20
24
|
}
|
|
21
|
-
return { ...filter, response: _schema }
|
|
22
|
-
}
|
|
23
25
|
|
|
24
|
-
const headers = <T>(schema: JSONSchemaType<T>, filter?: Filter): Filter => {
|
|
25
|
-
|
|
26
|
-
}
|
|
26
|
+
const headers = <T>(schema: JSONSchemaType<T>, filter?: Filter): Filter => {
|
|
27
|
+
return { ...filter, headers: schema as any }
|
|
28
|
+
}
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
return { body, query, params, response, headers }
|
|
31
|
+
}
|
|
29
32
|
|
|
30
33
|
export const filterHelper = createFilterHelper()
|
package/src/index.ts
CHANGED
package/src/types.ts
CHANGED
|
@@ -5,7 +5,6 @@ import type { EntrypointOutcome } from './consts.js'
|
|
|
5
5
|
import type { Auth } from '@owlmeans/auth'
|
|
6
6
|
|
|
7
7
|
import type { AnyShapeSource, entrypointSchemaType, SourceValue, TypeToken, UrlRequest } from './types.local.js'
|
|
8
|
-
import type { createFilterHelper } from './filter.js'
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* A URL unit: an immutable route declaration plus what guards, gates and schemas it answers under.
|
|
@@ -203,9 +202,7 @@ export interface EntrypointProtocolDeclaration {
|
|
|
203
202
|
}
|
|
204
203
|
|
|
205
204
|
/** A context-bound entrypoint made from an immutable protocol declaration. */
|
|
206
|
-
export
|
|
207
|
-
readonly protocol: Protocol
|
|
208
|
-
}
|
|
205
|
+
export interface MaterializedEntrypoint<Protocol extends EntrypointProtocolDeclaration> extends CommonEntrypoint { readonly protocol: Protocol }
|
|
209
206
|
|
|
210
207
|
/** The request accepted by a declaration that intentionally supplies no contract. */
|
|
211
208
|
export interface OpenRequest {
|
|
@@ -226,8 +223,9 @@ export interface CallOptions {
|
|
|
226
223
|
}
|
|
227
224
|
|
|
228
225
|
/** A type-only contract source, optionally paired with an AJV schema. */
|
|
229
|
-
export
|
|
226
|
+
export interface Typed<T> extends TypeToken { readonly value?: T }
|
|
230
227
|
|
|
228
|
+
// Kept as a type: `JSONSchemaType` is a conditional type; an interface cannot extend it.
|
|
231
229
|
/**
|
|
232
230
|
* A JSON schema carrying the model type it validates. Use `schema<Model>(...)` once beside the
|
|
233
231
|
* model; every protocol that consumes it then infers the model without another generic.
|
|
@@ -289,6 +287,7 @@ export interface EntrypointRequestMeta {
|
|
|
289
287
|
cancel?: () => void
|
|
290
288
|
}
|
|
291
289
|
|
|
290
|
+
// Kept as a type: it intersects the `Request` type parameter, which an interface cannot extend.
|
|
292
291
|
/**
|
|
293
292
|
* A protocol request at an implementation boundary.
|
|
294
293
|
*
|
|
@@ -341,10 +340,9 @@ export type HeadersOf<Protocol extends EntrypointProtocolDeclaration> = RequestO
|
|
|
341
340
|
? Headers
|
|
342
341
|
: object
|
|
343
342
|
|
|
343
|
+
// Kept as a type: `RequestOf` is a conditional type; an interface cannot extend it.
|
|
344
344
|
export type CallRequestOf<Protocol extends EntrypointProtocolDeclaration> = RequestOf<Protocol> & CallOptions
|
|
345
345
|
|
|
346
346
|
export interface EntrypointTree {
|
|
347
347
|
readonly [key: string]: EntrypointProtocolDeclaration | EntrypointTree
|
|
348
348
|
}
|
|
349
|
-
|
|
350
|
-
export type FilterHelper = ReturnType<typeof createFilterHelper>
|