@owlmeans/entrypoint 0.1.18-rc.27 → 0.1.18-rc.29
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 +15 -25
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/entrypoint/SKILL.md +4 -4
- package/build/types.d.ts +3 -3
- package/build/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/types.ts +3 -3
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Entrypoint protocol system — the typed route contract shared between server and client in OwlMeans
|
|
4
4
|
apps. An application uses it in its shared (`common`) package to declare every addressable unit —
|
|
5
|
-
an HTTP API route, a socket
|
|
5
|
+
an HTTP API route, a socket or a screen — once, as an immutable protocol with typed
|
|
6
6
|
request sections, a response type, AJV schemas and access rules. Runtime behaviour is not added
|
|
7
7
|
here: the server attaches handlers with `@owlmeans/server-entrypoint` / `@owlmeans/server-api`, the
|
|
8
8
|
client binds calls and screens with `@owlmeans/client-entrypoint`, and route shapes themselves come
|
|
@@ -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.29
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Concepts
|
|
@@ -37,7 +37,7 @@ bun add @owlmeans/entrypoint@^0.1.18-rc.27
|
|
|
37
37
|
- **Binding / materialization** — a side-specific package turns a declaration into a context-bound
|
|
38
38
|
`CommonEntrypoint` (`materializeEntrypoint`) and adds a handler, a call or a screen. The declaration
|
|
39
39
|
itself is never mutated.
|
|
40
|
-
- **Transport** — the route's protocol
|
|
40
|
+
- **Transport** — the route's protocol picks a built-in or package-owned carrier through a service
|
|
41
41
|
registered under `transportAlias(protocol)`; callers write `call()` and never branch on it.
|
|
42
42
|
|
|
43
43
|
## Usage
|
|
@@ -139,18 +139,18 @@ const link = await context.entrypoint(storyProtocols.get).url({ params: { id: va
|
|
|
139
139
|
address. `CallOptions` (`auth`, `host`, `base`, `unsecure`, `timeout`, `signal`) ride alongside the
|
|
140
140
|
request sections and are never part of the payload contract.
|
|
141
141
|
|
|
142
|
-
### 4. Gates, socket
|
|
142
|
+
### 4. Gates, socket carriers, derived types
|
|
143
143
|
|
|
144
144
|
```ts
|
|
145
145
|
import { contract, openProtocol, protocol, typed } from '@owlmeans/entrypoint'
|
|
146
146
|
import type { HandlerRequest, RequestOf, ResponseOf } from '@owlmeans/entrypoint'
|
|
147
|
-
import { backend,
|
|
148
|
-
import { DEFAULT_GUARD
|
|
149
|
-
import { PROJECT_GATE
|
|
147
|
+
import { backend, route, socket } from '@owlmeans/route'
|
|
148
|
+
import { DEFAULT_GUARD } from '@owlmeans/auth-common'
|
|
149
|
+
import { PROJECT_GATE } from './consts.js'
|
|
150
150
|
|
|
151
151
|
const aliases = {
|
|
152
152
|
base: 'my-app:project:base', update: 'my-app:project:update',
|
|
153
|
-
watch: 'my-app:project:watch',
|
|
153
|
+
watch: 'my-app:project:watch',
|
|
154
154
|
} as const
|
|
155
155
|
|
|
156
156
|
const base = protocol(route(aliases.base, '/projects', backend()), contract(), {
|
|
@@ -167,18 +167,8 @@ export const projectProtocols = {
|
|
|
167
167
|
route(aliases.watch, '/project/:id', socket({ parent: updates })),
|
|
168
168
|
contract.request({ params: typed<{ id: string }>() }, typed<void>()),
|
|
169
169
|
),
|
|
170
|
-
// Carried as a queued job for a worker service; callers still write `call()`.
|
|
171
|
-
build: protocol(
|
|
172
|
-
route(aliases.build, '/:id/build', job({
|
|
173
|
-
parent: base, method: RouteMethod.POST, service: WORKER, queue: WORK_QUEUE,
|
|
174
|
-
})),
|
|
175
|
-
contract.request({ params: typed<{ id: string }>() }, typed<{ jobId: string }>()),
|
|
176
|
-
{ guards: GUARD_ED25519 },
|
|
177
|
-
),
|
|
178
170
|
} as const
|
|
179
171
|
|
|
180
|
-
type BuildRequest = RequestOf<typeof projectProtocols.build> // { params: { id: string } }
|
|
181
|
-
type BuildReply = ResponseOf<typeof projectProtocols.build> // { jobId: string }
|
|
182
172
|
type WatchRequest = HandlerRequest<RequestOf<typeof projectProtocols.watch>>
|
|
183
173
|
```
|
|
184
174
|
|
|
@@ -218,7 +208,7 @@ tree and its protocols are left untouched.
|
|
|
218
208
|
| `gatesOf(protocol, tree)` | function | Gates a protocol inherits through its route parents, without materializing |
|
|
219
209
|
| `isEntrypointProtocol(value)` | function | Type guard for a protocol declaration |
|
|
220
210
|
| `entrypointRef<Request, Response>(alias)` | function | Typed reference for a dynamic remote address whose declaration cannot be imported |
|
|
221
|
-
| `aliasOf(reference)` | function | Alias of a reference or string, for registry/
|
|
211
|
+
| `aliasOf(reference)` | function | Alias of a reference or string, for registry/transport adapters |
|
|
222
212
|
| `materializeEntrypoint(protocol)` | function | Make a context-bindable `CommonEntrypoint` from a declaration (used by binding packages) |
|
|
223
213
|
| `provideResponse<T>(original?)` | function | Create an `AbstractResponse<T>` for invoking a handler or guard outside a transport |
|
|
224
214
|
| `transportAlias(protocol = 'http')` | function | Service alias `transport:<protocol>` a transport registers under |
|
|
@@ -270,13 +260,14 @@ tree and its protocols are left untouched.
|
|
|
270
260
|
### Transport
|
|
271
261
|
|
|
272
262
|
Register a service under `transportAlias(protocol)` implementing `EntrypointTransport` and every
|
|
273
|
-
call to an entrypoint on that route protocol goes through it
|
|
274
|
-
|
|
263
|
+
call to an entrypoint on that route protocol goes through it. The package defining a custom
|
|
264
|
+
protocol owns its transport and option validation. Without a registered transport the call goes
|
|
265
|
+
over HTTP.
|
|
275
266
|
|
|
276
267
|
## Common pitfalls
|
|
277
268
|
|
|
278
269
|
- Do not export or import alias strings as an API. Keep them private to the declaration module and
|
|
279
|
-
pass protocol objects; raw aliases belong only in dynamic registry or
|
|
270
|
+
pass protocol objects; raw aliases belong only in dynamic registry or transport adapters.
|
|
280
271
|
- Do not use `openProtocol` just to skip declaring input or output types — it is for intentionally
|
|
281
272
|
untyped boundaries.
|
|
282
273
|
- Use `typed<Model>(schema)` or `schema<Model>(...)` rather than a bare `JSONSchemaType<Model>`; a bare
|
|
@@ -296,13 +287,12 @@ call to an entrypoint on that route protocol goes through it — `@owlmeans/queu
|
|
|
296
287
|
|
|
297
288
|
## Related packages
|
|
298
289
|
|
|
299
|
-
- [`@owlmeans/route`](../route) — `route()`, `backend()`, `socket()`, `
|
|
290
|
+
- [`@owlmeans/route`](../route) — `route()`, `backend()`, `socket()`, `frontend()` used in `protocol(route(...), ...)`
|
|
300
291
|
- [`@owlmeans/context`](../context) — `BasicEntrypoint`, `EntrypointReference` and `context.entrypoint(...)`
|
|
301
292
|
- [`@owlmeans/server-entrypoint`](../server-entrypoint) — server-side `bind()` / `bindAll()` to attach handlers
|
|
302
293
|
- [`@owlmeans/server-api`](../server-api) — `handlers<Context>()` with protocol-inferred `body` / `params` / `request`
|
|
303
294
|
- [`@owlmeans/server-socket`](../server-socket) — `connection(protocol, handler)` for socket protocols
|
|
304
295
|
- [`@owlmeans/client-entrypoint`](../client-entrypoint) — client `bind()`, `bindAll()`, `bindScreen()` with typed calls
|
|
305
|
-
- [`@owlmeans/queue`](../queue) — the QUEUE transport for `job()` routes
|
|
306
296
|
- [`@owlmeans/auth-common`](../auth-common) — guard aliases and entity helpers used in access options and handlers
|
|
307
297
|
- [`@owlmeans/server-app`](../server-app) — re-exports `contract`, `protocol`, `typed`, `EntrypointOutcome` and the request/response types
|
|
308
298
|
|
|
@@ -314,7 +304,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
|
|
|
314
304
|
your project's skill store (`.agents/skills/`):
|
|
315
305
|
|
|
316
306
|
```sh
|
|
317
|
-
npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
307
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.30
|
|
318
308
|
```
|
|
319
309
|
|
|
320
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-09-
|
|
4
|
+
"version": "0.1.18-rc.29",
|
|
5
|
+
"generatedAt": "2026-09-19T13:42:56.277Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: entrypoint
|
|
3
|
-
description: How to declare immutable, typed @owlmeans/entrypoint protocols with protocol(), contract(), typed(), protocol trees, guards, gates, and route transports. Load before defining a shared API, socket,
|
|
3
|
+
description: How to declare immutable, typed @owlmeans/entrypoint protocols with protocol(), contract(), typed(), protocol trees, guards, gates, and route transports. Load before defining a shared API, socket, or screen contract.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
<!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
|
|
7
7
|
|
|
8
8
|
# @owlmeans/entrypoint
|
|
9
9
|
|
|
10
|
-
**Install:** `bun add @owlmeans/entrypoint@^0.1.18-rc.
|
|
10
|
+
**Install:** `bun add @owlmeans/entrypoint@^0.1.18-rc.29`
|
|
11
11
|
|
|
12
12
|
**Layer:** Core
|
|
13
13
|
|
|
@@ -48,7 +48,7 @@ export const projectProtocols = {
|
|
|
48
48
|
|
|
49
49
|
Keep aliases private to this module. A child should use its parent protocol object
|
|
50
50
|
(`backend({ parent: projectBase })`); route creation stores its alias. Normal application code
|
|
51
|
-
imports protocol objects, while raw aliases are limited to dynamic registry or
|
|
51
|
+
imports protocol objects, while raw aliases are limited to dynamic registry or transport adapters.
|
|
52
52
|
|
|
53
53
|
## Contract sources
|
|
54
54
|
|
|
@@ -82,7 +82,7 @@ protocol(route(...), contract(...), {
|
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
Guards and gates are inherited through the parent route by the bound runtime entrypoint. A route's
|
|
85
|
-
protocol chooses the
|
|
85
|
+
protocol chooses the built-in or package-owned carrier; callers only use `call`, `invoke`, or `url`
|
|
86
86
|
on the client-bound protocol and do not branch on a transport.
|
|
87
87
|
|
|
88
88
|
## Bind, never replace
|
package/build/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ResolvedServiceRoute, RouteAddress, RouteModel,
|
|
1
|
+
import type { ResolvedServiceRoute, RouteAddress, RouteModel, RouteProtocol } from '@owlmeans/route';
|
|
2
2
|
import type { InitializedService, LazyService, BasicEntrypoint } from '@owlmeans/context';
|
|
3
3
|
import type { AnySchemaObject } from 'ajv';
|
|
4
4
|
import type { EntrypointOutcome } from './consts.js';
|
|
@@ -123,11 +123,11 @@ export interface Filter {
|
|
|
123
123
|
* How a call to an entrypoint is actually carried.
|
|
124
124
|
*
|
|
125
125
|
* The transport is chosen by the route's protocol, so a consumer always writes `ep.call(...)` and
|
|
126
|
-
* never learns
|
|
126
|
+
* never learns which built-in or package-owned carrier handled it. An
|
|
127
127
|
* application binds a protocol by registering a transport service under `transportAlias(protocol)`.
|
|
128
128
|
*/
|
|
129
129
|
export interface EntrypointTransport extends InitializedService {
|
|
130
|
-
readonly protocol:
|
|
130
|
+
readonly protocol: RouteProtocol;
|
|
131
131
|
handle: EntrypointHandler;
|
|
132
132
|
}
|
|
133
133
|
//# 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,
|
|
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.29",
|
|
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.28",
|
|
32
|
+
"@owlmeans/context": "^0.1.18-rc.26",
|
|
33
|
+
"@owlmeans/route": "^0.1.18-rc.27",
|
|
34
34
|
"ajv": "^8.17.1"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ResolvedServiceRoute, RouteAddress, RouteModel,
|
|
1
|
+
import type { ResolvedServiceRoute, RouteAddress, RouteModel, RouteProtocol } from '@owlmeans/route'
|
|
2
2
|
import type { InitializedService, LazyService, BasicEntrypoint } from '@owlmeans/context'
|
|
3
3
|
import type { AnySchemaObject } from 'ajv'
|
|
4
4
|
import type { EntrypointOutcome } from './consts.js'
|
|
@@ -144,10 +144,10 @@ export interface Filter {
|
|
|
144
144
|
* How a call to an entrypoint is actually carried.
|
|
145
145
|
*
|
|
146
146
|
* The transport is chosen by the route's protocol, so a consumer always writes `ep.call(...)` and
|
|
147
|
-
* never learns
|
|
147
|
+
* never learns which built-in or package-owned carrier handled it. An
|
|
148
148
|
* application binds a protocol by registering a transport service under `transportAlias(protocol)`.
|
|
149
149
|
*/
|
|
150
150
|
export interface EntrypointTransport extends InitializedService {
|
|
151
|
-
readonly protocol:
|
|
151
|
+
readonly protocol: RouteProtocol
|
|
152
152
|
handle: EntrypointHandler
|
|
153
153
|
}
|