@enbox/api 0.0.8 → 0.1.1

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.
Files changed (48) hide show
  1. package/dist/browser.mjs +46 -53
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/define-protocol.js +37 -0
  4. package/dist/esm/define-protocol.js.map +1 -0
  5. package/dist/esm/dwn-api.js +54 -26
  6. package/dist/esm/dwn-api.js.map +1 -1
  7. package/dist/esm/index.js +4 -0
  8. package/dist/esm/index.js.map +1 -1
  9. package/dist/esm/live-query.js +153 -0
  10. package/dist/esm/live-query.js.map +1 -0
  11. package/dist/esm/protocol-types.js +8 -0
  12. package/dist/esm/protocol-types.js.map +1 -0
  13. package/dist/esm/record.js.map +1 -1
  14. package/dist/esm/typed-dwn-api.js +182 -0
  15. package/dist/esm/typed-dwn-api.js.map +1 -0
  16. package/dist/esm/web5.js +3 -2
  17. package/dist/esm/web5.js.map +1 -1
  18. package/dist/types/define-protocol.d.ts +37 -0
  19. package/dist/types/define-protocol.d.ts.map +1 -0
  20. package/dist/types/dwn-api.d.ts +32 -17
  21. package/dist/types/dwn-api.d.ts.map +1 -1
  22. package/dist/types/index.d.ts +4 -0
  23. package/dist/types/index.d.ts.map +1 -1
  24. package/dist/types/live-query.d.ts +136 -0
  25. package/dist/types/live-query.d.ts.map +1 -0
  26. package/dist/types/protocol-types.d.ts +95 -0
  27. package/dist/types/protocol-types.d.ts.map +1 -0
  28. package/dist/types/record.d.ts +1 -1
  29. package/dist/types/record.d.ts.map +1 -1
  30. package/dist/types/typed-dwn-api.d.ts +193 -0
  31. package/dist/types/typed-dwn-api.d.ts.map +1 -0
  32. package/dist/types/web5.d.ts.map +1 -1
  33. package/package.json +14 -17
  34. package/src/define-protocol.ts +48 -0
  35. package/src/dwn-api.ts +87 -49
  36. package/src/index.ts +4 -0
  37. package/src/live-query.ts +245 -0
  38. package/src/protocol-types.ts +171 -0
  39. package/src/record.ts +3 -3
  40. package/src/typed-dwn-api.ts +370 -0
  41. package/src/web5.ts +3 -2
  42. package/dist/browser.js +0 -2224
  43. package/dist/browser.js.map +0 -7
  44. package/dist/esm/subscription-util.js +0 -35
  45. package/dist/esm/subscription-util.js.map +0 -1
  46. package/dist/types/subscription-util.d.ts +0 -19
  47. package/dist/types/subscription-util.d.ts.map +0 -1
  48. package/src/subscription-util.ts +0 -44
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Type-level utilities for extracting typed paths, type names, schemas,
3
+ * data formats, and tag shapes from a {@link ProtocolDefinition}.
4
+ *
5
+ * These types are purely compile-time — they produce no runtime code.
6
+ */
7
+ import type { ProtocolDefinition, ProtocolRuleSet, ProtocolTagsDefinition, ProtocolType } from '@enbox/dwn-sdk-js';
8
+ /**
9
+ * Recursively extracts all valid protocol path strings from a `ProtocolRuleSet`.
10
+ *
11
+ * Given a structure like `{ foo: { bar: { ... } } }`, this produces
12
+ * `'foo' | 'foo/bar'`. Directive keys (starting with `$`) are excluded.
13
+ */
14
+ export type RuleSetPaths<R, Prefix extends string = ''> = {
15
+ [K in Extract<keyof R, string>]: K extends `$${string}` ? never : R[K] extends ProtocolRuleSet ? `${Prefix}${K}` | RuleSetPaths<R[K], `${Prefix}${K}/`> : never;
16
+ }[Extract<keyof R, string>];
17
+ /**
18
+ * All valid protocol path strings for a given `ProtocolDefinition`.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * type Paths = ProtocolPaths<typeof myDef>;
23
+ * // 'friend' | 'friend/message' | 'group' | 'group/member'
24
+ * ```
25
+ */
26
+ export type ProtocolPaths<D extends ProtocolDefinition> = RuleSetPaths<D['structure']>;
27
+ /**
28
+ * Extracts the last segment (type name) from a protocol path string.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * type T = TypeNameAtPath<'group/member'>; // 'member'
33
+ * ```
34
+ */
35
+ export type TypeNameAtPath<Path extends string> = Path extends `${string}/${infer Rest}` ? TypeNameAtPath<Rest> : Path;
36
+ /**
37
+ * The type names declared in the `types` map of a `ProtocolDefinition`.
38
+ */
39
+ export type TypeNames<D extends ProtocolDefinition> = Extract<keyof D['types'], string>;
40
+ /**
41
+ * Looks up the `schema` URI for a given type name in the protocol definition.
42
+ * Returns `undefined` if the type does not declare a schema.
43
+ */
44
+ export type SchemaForType<D extends ProtocolDefinition, TypeName extends string> = TypeName extends keyof D['types'] ? D['types'][TypeName] extends ProtocolType ? D['types'][TypeName]['schema'] : undefined : undefined;
45
+ /**
46
+ * Looks up the `dataFormats` array for a given type name in the protocol definition.
47
+ * Returns `undefined` if the type does not declare dataFormats.
48
+ */
49
+ export type DataFormatsForType<D extends ProtocolDefinition, TypeName extends string> = TypeName extends keyof D['types'] ? D['types'][TypeName] extends ProtocolType ? D['types'][TypeName]['dataFormats'] : undefined : undefined;
50
+ /**
51
+ * Navigates a `ProtocolRuleSet` tree to the node at the given slash-delimited path.
52
+ */
53
+ type RuleSetAtPath<R, Path extends string> = Path extends `${infer Head}/${infer Tail}` ? Head extends keyof R ? R[Head] extends ProtocolRuleSet ? RuleSetAtPath<R[Head], Tail> : never : never : Path extends keyof R ? R[Path] extends ProtocolRuleSet ? R[Path] : never : never;
54
+ /**
55
+ * Extracts the `$tags` definition for a given protocol path.
56
+ * Returns `never` if the path does not declare `$tags`.
57
+ */
58
+ export type TagsAtPath<D extends ProtocolDefinition, Path extends string> = RuleSetAtPath<D['structure'], Path> extends infer RS ? RS extends ProtocolRuleSet ? RS['$tags'] extends ProtocolTagsDefinition ? RS['$tags'] : never : never : never;
59
+ /**
60
+ * Extracts the user-defined tag keys (excluding `$`-prefixed meta-keys)
61
+ * from a `ProtocolTagsDefinition`.
62
+ */
63
+ export type TagKeys<Tags extends ProtocolTagsDefinition> = Exclude<Extract<keyof Tags, string>, `$${string}`>;
64
+ /**
65
+ * A mapping from protocol type names to their TypeScript data shapes.
66
+ *
67
+ * Used as a type parameter to `defineProtocol()` and `TypedDwnApi` so that
68
+ * the protocol definition JSON stays JSON-compatible while TypeScript types
69
+ * are tracked separately.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * type MySchemaMap = {
74
+ * profile : { displayName: string; bio?: string };
75
+ * avatar : Blob;
76
+ * };
77
+ * ```
78
+ */
79
+ export type SchemaMap = Record<string, unknown>;
80
+ /**
81
+ * The return type of `defineProtocol()`. Bundles the raw protocol definition
82
+ * with its inferred path strings and schema type map for downstream use
83
+ * by `TypedDwnApi`.
84
+ */
85
+ export type TypedProtocol<D extends ProtocolDefinition = ProtocolDefinition, M extends SchemaMap = SchemaMap> = {
86
+ /** The raw DWN protocol definition (JSON-compatible). */
87
+ readonly definition: D;
88
+ /**
89
+ * Phantom property carrying the schema map type. Not present at runtime;
90
+ * used only by TypeScript to thread the generic through.
91
+ */
92
+ readonly _schemaMap?: M;
93
+ };
94
+ export {};
95
+ //# sourceMappingURL=protocol-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-types.d.ts","sourceRoot":"","sources":["../../src/protocol-types.ts"],"names":[],"mappings":"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"}
@@ -265,7 +265,7 @@ export declare class Record implements RecordModel {
265
265
  get data(): {
266
266
  blob: () => Promise<Blob>;
267
267
  bytes: () => Promise<Uint8Array>;
268
- json: () => Promise<any>;
268
+ json: <T = unknown>() => Promise<T>;
269
269
  text: () => Promise<string>;
270
270
  stream: () => Promise<ReadableStream>;
271
271
  then: (onFulfilled?: (value: ReadableStream) => ReadableStream | PromiseLike<ReadableStream>, onRejected?: (reason: any) => PromiseLike<never>) => Promise<ReadableStream>;
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * A type-safe wrapper around {@link DwnApi} scoped to a single protocol.
3
+ *
4
+ * `TypedDwnApi` is created via `dwn.using(typedProtocol)` and provides
5
+ * autocompletion for protocol paths, typed data payloads, and tag shapes.
6
+ *
7
+ * Every method delegates to the corresponding `dwn.records.*` method,
8
+ * injecting the protocol URI, protocolPath, and schema automatically.
9
+ */
10
+ import type { DwnApi } from './dwn-api.js';
11
+ import type { LiveQuery } from './live-query.js';
12
+ import type { Protocol } from './protocol.js';
13
+ import type { Record } from './record.js';
14
+ import type { DateSort, ProtocolDefinition, ProtocolType, RecordsFilter } from '@enbox/dwn-sdk-js';
15
+ import type { DwnPaginationCursor, DwnResponseStatus } from '@enbox/agent';
16
+ import type { ProtocolPaths, SchemaMap, TypedProtocol, TypeNameAtPath } from './protocol-types.js';
17
+ /**
18
+ * Resolves the TypeScript data type for a given protocol path.
19
+ *
20
+ * If the schema map contains a mapping for the type name at the given path,
21
+ * that type is returned. Otherwise falls back to `unknown`.
22
+ */
23
+ type DataForPath<_D extends ProtocolDefinition, M extends SchemaMap, Path extends string> = TypeNameAtPath<Path> extends keyof M ? M[TypeNameAtPath<Path>] : unknown;
24
+ /**
25
+ * Resolves the `ProtocolType` entry for a given protocol path.
26
+ */
27
+ type ProtocolTypeForPath<D extends ProtocolDefinition, Path extends string> = TypeNameAtPath<Path> extends keyof D['types'] ? D['types'][TypeNameAtPath<Path>] extends ProtocolType ? D['types'][TypeNameAtPath<Path>] : undefined : undefined;
28
+ /**
29
+ * Resolves a `dataFormat` string literal union for a path, or `string` if none.
30
+ */
31
+ type DataFormatForPath<D extends ProtocolDefinition, Path extends string> = ProtocolTypeForPath<D, Path> extends {
32
+ dataFormats: infer F;
33
+ } ? F extends readonly string[] ? F[number] : string : string;
34
+ /** Options for `TypedDwnApi.write()`. */
35
+ export type TypedWriteRequest<D extends ProtocolDefinition, M extends SchemaMap, Path extends string> = {
36
+ /** The data payload. Type-checked against the schema map. */
37
+ data: DataForPath<D, M, Path>;
38
+ /** Additional message parameters (protocolPath and protocol are injected). */
39
+ message?: {
40
+ parentContextId?: string;
41
+ published?: boolean;
42
+ datePublished?: string;
43
+ recipient?: string;
44
+ protocolRole?: string;
45
+ dataFormat?: DataFormatForPath<D, Path>;
46
+ tags?: globalThis.Record<string, string | number | boolean | string[] | number[]>;
47
+ };
48
+ /** Whether to persist immediately (defaults to `true`). */
49
+ store?: boolean;
50
+ /** Whether to auto-encrypt (follows protocol definition if omitted). */
51
+ encryption?: boolean;
52
+ };
53
+ /** Response from `TypedDwnApi.write()`. */
54
+ export type TypedWriteResponse = DwnResponseStatus & {
55
+ record?: Record;
56
+ };
57
+ /** Filter options for `TypedDwnApi.query()`. */
58
+ export type TypedQueryFilter = Omit<RecordsFilter, 'protocol' | 'protocolPath' | 'schema'> & {
59
+ tags?: globalThis.Record<string, string | number | boolean | (string | number)[]>;
60
+ };
61
+ /** Options for `TypedDwnApi.query()`. */
62
+ export type TypedQueryRequest = {
63
+ /** Optional remote DWN DID to query from. */
64
+ from?: string;
65
+ /** Query filter (protocol, protocolPath, schema are injected). */
66
+ filter?: TypedQueryFilter;
67
+ dateSort?: DateSort;
68
+ pagination?: {
69
+ limit?: number;
70
+ cursor?: DwnPaginationCursor;
71
+ };
72
+ protocolRole?: string;
73
+ /** When true, automatically decrypts encrypted records. */
74
+ encryption?: boolean;
75
+ };
76
+ /** Response from `TypedDwnApi.query()`. */
77
+ export type TypedQueryResponse = DwnResponseStatus & {
78
+ records?: Record[];
79
+ cursor?: DwnPaginationCursor;
80
+ };
81
+ /** Options for `TypedDwnApi.read()`. */
82
+ export type TypedReadRequest = {
83
+ /** Optional remote DWN DID to read from. */
84
+ from?: string;
85
+ /** Filter to identify the record (protocol and protocolPath are injected). */
86
+ filter: Omit<RecordsFilter, 'protocol' | 'protocolPath' | 'schema'>;
87
+ /** When true, automatically decrypts the record. */
88
+ encryption?: boolean;
89
+ };
90
+ /** Response from `TypedDwnApi.read()`. */
91
+ export type TypedReadResponse = DwnResponseStatus & {
92
+ record: Record;
93
+ };
94
+ /** Options for `TypedDwnApi.delete()`. */
95
+ export type TypedDeleteRequest = {
96
+ /** Optional remote DWN DID to delete from. */
97
+ from?: string;
98
+ /** The `recordId` of the record to delete. */
99
+ recordId: string;
100
+ };
101
+ /** Options for `TypedDwnApi.subscribe()`. */
102
+ export type TypedSubscribeRequest = {
103
+ /** Optional remote DWN DID to subscribe to. */
104
+ from?: string;
105
+ /** Subscription filter (protocol, protocolPath, schema are injected). */
106
+ filter?: TypedQueryFilter;
107
+ protocolRole?: string;
108
+ };
109
+ /** Response from `TypedDwnApi.subscribe()`. */
110
+ export type TypedSubscribeResponse = DwnResponseStatus & {
111
+ /** The live query instance, or `undefined` if the request failed. */
112
+ liveQuery?: LiveQuery;
113
+ };
114
+ /**
115
+ * A protocol-scoped wrapper around `DwnApi` that automatically injects
116
+ * the `protocol` URI, `protocolPath`, and `schema` into every DWN operation.
117
+ *
118
+ * Obtain an instance via `dwn.using(typedProtocol)`.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * const social = dwn.using(SocialGraphProtocol);
123
+ *
124
+ * // Write — path and data type are checked at compile time
125
+ * const { record } = await social.write('friend', {
126
+ * data: { did: 'did:example:alice', alias: 'Alice' },
127
+ * });
128
+ *
129
+ * // Query — protocol and protocolPath are auto-injected
130
+ * const { records } = await social.query('friend', {
131
+ * filter: { tags: { did: 'did:example:alice' } },
132
+ * });
133
+ * ```
134
+ */
135
+ export declare class TypedDwnApi<D extends ProtocolDefinition = ProtocolDefinition, M extends SchemaMap = SchemaMap> {
136
+ private _dwn;
137
+ private _definition;
138
+ constructor(dwn: DwnApi, protocol: TypedProtocol<D, M>);
139
+ /** The protocol URI. */
140
+ get protocol(): string;
141
+ /** The raw protocol definition. */
142
+ get definition(): D;
143
+ /**
144
+ * Configures (installs) this protocol on the local DWN.
145
+ *
146
+ * @param options - Optional overrides like `encryption`.
147
+ */
148
+ configure(options?: {
149
+ encryption?: boolean;
150
+ }): Promise<DwnResponseStatus & {
151
+ protocol?: Protocol;
152
+ }>;
153
+ /**
154
+ * Write a record at the given protocol path.
155
+ *
156
+ * @param path - The protocol path (e.g. `'friend'`, `'group/member'`).
157
+ * @param request - Write options including typed `data`.
158
+ */
159
+ write<Path extends ProtocolPaths<D> & string>(path: Path, request: TypedWriteRequest<D, M, Path>): Promise<TypedWriteResponse>;
160
+ /**
161
+ * Query records at the given protocol path.
162
+ *
163
+ * @param path - The protocol path to query.
164
+ * @param request - Query options including optional filter, sort, and pagination.
165
+ */
166
+ query<Path extends ProtocolPaths<D> & string>(path: Path, request?: TypedQueryRequest): Promise<TypedQueryResponse>;
167
+ /**
168
+ * Read a single record at the given protocol path.
169
+ *
170
+ * @param path - The protocol path to read from.
171
+ * @param request - Read options including a filter to identify the record.
172
+ */
173
+ read<Path extends ProtocolPaths<D> & string>(path: Path, request: TypedReadRequest): Promise<TypedReadResponse>;
174
+ /**
175
+ * Delete a record at the given protocol path.
176
+ *
177
+ * @param path - The protocol path (used for permission scoping).
178
+ * @param request - Delete options including the `recordId`.
179
+ */
180
+ delete<Path extends ProtocolPaths<D> & string>(_path: Path, request: TypedDeleteRequest): Promise<DwnResponseStatus>;
181
+ /**
182
+ * Subscribe to records at the given protocol path.
183
+ *
184
+ * Returns a {@link LiveQuery} that atomically provides an initial snapshot
185
+ * and a real-time stream of deduplicated change events.
186
+ *
187
+ * @param path - The protocol path to subscribe to.
188
+ * @param request - Subscribe options including optional filter and role.
189
+ */
190
+ subscribe<Path extends ProtocolPaths<D> & string>(path: Path, request?: TypedSubscribeRequest): Promise<TypedSubscribeResponse>;
191
+ }
192
+ export {};
193
+ //# sourceMappingURL=typed-dwn-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-dwn-api.d.ts","sourceRoot":"","sources":["../../src/typed-dwn-api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"web5.d.ts","sourceRoot":"","sources":["../../src/web5.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web5.d.ts","sourceRoot":"","sources":["../../src/web5.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enbox/api",
3
- "version": "0.0.8",
3
+ "version": "0.1.1",
4
4
  "description": "SDK for accessing the features and capabilities of Web5",
5
5
  "type": "module",
6
6
  "main": "./dist/esm/index.js",
@@ -9,14 +9,14 @@
9
9
  "scripts": {
10
10
  "clean": "rimraf dist",
11
11
  "build:esm": "rimraf dist/esm dist/types && bun tsc -p tsconfig.json",
12
- "build:browser": "rimraf dist/browser.mjs dist/browser.js && bun build/bundles.js",
13
- "build:tests:browser": "rimraf tests/compiled && bun build/esbuild-tests.cjs",
12
+ "build:browser": "rimraf dist/browser.mjs && bun ../../build/browser-bundle.js --node-shims --metafile",
14
13
  "build": "bun run clean && bun run build:esm && bun run build:browser",
15
14
  "lint": "eslint . --max-warnings 0",
16
15
  "lint:fix": "eslint . --fix",
17
16
  "test:node": "bun test --timeout 10000 .spec.ts",
18
17
  "test:node:coverage": "bun test --timeout 10000 --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage .spec.ts",
19
- "test:browser": "bun run build:tests:browser && bunx web-test-runner"
18
+ "test:browser": "bunx --bun vitest --config vitest.browser.config.ts --run",
19
+ "test:browser:coverage": "bunx --bun vitest --config vitest.browser.config.ts --run --coverage --coverage.provider=istanbul --coverage.reportsDirectory=./coverage-browser"
20
20
  },
21
21
  "homepage": "https://github.com/enboxorg/enbox/tree/main/packages/api#readme",
22
22
  "bugs": "https://github.com/enboxorg/enbox/issues",
@@ -77,28 +77,25 @@
77
77
  "bun": ">=1.0.0"
78
78
  },
79
79
  "dependencies": {
80
- "@enbox/agent": "0.1.3",
81
- "@enbox/common": "0.0.3"
80
+ "@enbox/agent": "0.1.5",
81
+ "@enbox/common": "0.0.3",
82
+ "@enbox/dwn-clients": "0.0.3"
82
83
  },
83
84
  "devDependencies": {
84
- "@playwright/test": "1.45.3",
85
- "@enbox/crypto": "0.0.3",
86
- "@enbox/dids": "0.0.3",
87
- "@enbox/dwn-sdk-js": "0.0.4",
85
+ "@enbox/crypto": "0.0.4",
86
+ "@enbox/dids": "0.0.4",
87
+ "@enbox/dwn-sdk-js": "0.0.6",
88
88
  "@types/node": "20.14.8",
89
89
  "@types/sinon": "17.0.3",
90
90
  "@typescript-eslint/eslint-plugin": "8.32.1",
91
91
  "@typescript-eslint/parser": "8.32.1",
92
- "@web/test-runner": "0.18.2",
93
- "@web/test-runner-playwright": "0.11.0",
92
+ "@vitest/browser-playwright": "4.0.18",
93
+ "@vitest/coverage-istanbul": "4.0.18",
94
94
  "bun-types": "latest",
95
- "esbuild": "0.19.8",
96
95
  "eslint": "9.7.0",
97
- "node-stdlib-browser": "1.2.0",
98
- "playwright": "1.45.3",
99
96
  "rimraf": "4.4.0",
100
97
  "sinon": "18.0.0",
101
- "source-map-loader": "4.0.2",
102
- "typescript": "5.5.4"
98
+ "typescript": "5.5.4",
99
+ "vitest": "4.0.18"
103
100
  }
104
101
  }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Factory function for creating typed protocol definitions.
3
+ *
4
+ * `defineProtocol()` wraps a standard {@link ProtocolDefinition} with
5
+ * compile-time type metadata so that {@link TypedDwnApi} can provide
6
+ * path autocompletion, data-shape inference, and tag type safety.
7
+ */
8
+
9
+ import type { ProtocolDefinition } from '@enbox/dwn-sdk-js';
10
+
11
+ import type { SchemaMap, TypedProtocol } from './protocol-types.js';
12
+
13
+ /**
14
+ * Creates a {@link TypedProtocol} from a plain DWN protocol definition and
15
+ * an optional schema map that associates TypeScript types with protocol type
16
+ * names.
17
+ *
18
+ * The `definition` argument is returned as-is (no cloning). The schema map
19
+ * is a phantom type parameter — it exists only at compile time to thread
20
+ * type information through to `TypedDwnApi`.
21
+ *
22
+ * @param definition - A standard `ProtocolDefinition` object.
23
+ * @param _schemaMap - A phantom value (e.g. `{} as MySchemaMap`) that carries
24
+ * the TypeScript type mapping. The runtime value is ignored.
25
+ * @returns A `TypedProtocol` containing the definition and inferred types.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const socialGraph = defineProtocol(SocialGraphDefinition, {} as {
30
+ * friend : { did: string; alias?: string };
31
+ * block : { did: string; reason?: string };
32
+ * });
33
+ *
34
+ * // socialGraph.definition is the raw ProtocolDefinition
35
+ * // TypedDwnApi infers paths like 'friend' | 'friend/message' and
36
+ * // data types from the schema map.
37
+ * ```
38
+ */
39
+ export function defineProtocol<
40
+ D extends ProtocolDefinition,
41
+ M extends SchemaMap = SchemaMap,
42
+ >(
43
+ definition : D,
44
+
45
+ _schemaMap?: M,
46
+ ): TypedProtocol<D, M> {
47
+ return { definition } as TypedProtocol<D, M>;
48
+ }