@atcute/tap 0.1.1 → 1.0.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dev-index.js","sourceRoot":"","sources":["../lib/dev-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAE5D,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC;IAClC,gBAAgB,GAAG;QAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAAA,CACvB;IACD,iBAAiB,GAAG;QACnB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAAA,CACxB;IACD,iBAAiB,CAAC,EAAE,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAAA,CAC5B;IACD,OAAO,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAAA,CAC7C;CACD,CAAC,CAAC;AAEH,IAAI,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,YAAY,EAAE,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnB,MAAM,GAAG,EAAE,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"dev-index.js","sourceRoot":"","sources":["../lib/dev-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAE5D,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC;IAClC,gBAAgB;QACf,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IACD,iBAAiB;QAChB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IACD,iBAAiB,CAAC,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,GAAG;QACV,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;CACD,CAAC,CAAC;AAEH,IAAI,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,YAAY,EAAE,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnB,MAAM,GAAG,EAAE,CAAC;AACb,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { TapClient } from './tap-client.js';
2
- export { TapSubscription } from './tap-subscription.js';
3
- export * as defs from './typedefs.js';
4
- export type * from './types.js';
1
+ export { TapClient } from './tap-client.ts';
2
+ export { TapSubscription } from './tap-subscription.ts';
3
+ export * as defs from './typedefs.ts';
4
+ export type * from './typedefs.ts';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,mBAAmB,eAAe,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type DidDocument } from '@atcute/identity';
2
2
  import type { Did } from '@atcute/lexicons';
3
- import { TapSubscription } from './tap-subscription.js';
4
- import type { RepoInfo, TapClientOptions, TapSubscribeOptions } from './types.js';
3
+ import { TapSubscription } from './tap-subscription.ts';
4
+ import { type RepoInfo, type TapClientOptions, type TapSubscribeOptions } from './typedefs.ts';
5
5
  export declare class TapClient {
6
6
  #private;
7
7
  constructor(options: TapClientOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"tap-client.d.ts","sourceRoot":"","sources":["../lib/tap-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGlF,qBAAa,SAAS;;IAMrB,YAAY,OAAO,EAAE,gBAAgB,EAcpC;IAED,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe,CAUxD;IAEK,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWzC;IAEK,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5C;IAEK,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAiBtD;IAEK,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAY7C;CAaD"}
1
+ {"version":3,"file":"tap-client.d.ts","sourceRoot":"","sources":["../lib/tap-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAEN,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,MAAM,eAAe,CAAC;AAGvB,qBAAa,SAAS;;IAMrB,YAAY,OAAO,EAAE,gBAAgB,EAcpC;IAED,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe,CAUxD;IAEK,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWzC;IAEK,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5C;IAEK,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAiBtD;IAEK,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAY7C;CAaD"}
@@ -1,6 +1,7 @@
1
1
  import { defs as identityDefs } from '@atcute/identity';
2
+ import * as v from 'valibot';
2
3
  import { TapSubscription } from './tap-subscription.js';
3
- import { repoInfoSchema } from './typedefs.js';
4
+ import { repoInfoSchema, } from './typedefs.js';
4
5
  import { formatAdminAuthHeader } from './utils.js';
5
6
  export class TapClient {
6
7
  #url;
@@ -64,7 +65,7 @@ export class TapClient {
64
65
  await response.body?.cancel();
65
66
  throw new Error(`failed to resolve did: ${response.status} ${response.statusText}`);
66
67
  }
67
- return identityDefs.didDocument.parse(await response.json());
68
+ return v.parse(identityDefs.didDocument, await response.json());
68
69
  }
69
70
  async getRepoInfo(did) {
70
71
  const response = await this.#fetch(new URL(`/info/${did}`, this.#url), {
@@ -75,7 +76,7 @@ export class TapClient {
75
76
  await response.body?.cancel();
76
77
  throw new Error(`failed to get repo info: ${response.status} ${response.statusText}`);
77
78
  }
78
- return repoInfoSchema.parse(await response.json());
79
+ return v.parse(repoInfoSchema, await response.json());
79
80
  }
80
81
  #getHeaders() {
81
82
  const headers = {
@@ -1 +1 @@
1
- {"version":3,"file":"tap-client.js","sourceRoot":"","sources":["../lib/tap-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tap-client.js","sourceRoot":"","sources":["../lib/tap-client.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { EventIterator } from '@mary-ext/event-iterator';
2
2
  import type { ReadonlyDeep } from 'type-fest';
3
- import type { TapSubscribeOptions, TapSubscriptionMessage } from './types.js';
3
+ import { type TapSubscribeOptions, type TapSubscriptionMessage } from './typedefs.ts';
4
4
  export interface TapSubscriptionOptions extends TapSubscribeOptions {
5
5
  url: string;
6
6
  adminPassword?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tap-subscription.d.ts","sourceRoot":"","sources":["../lib/tap-subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAK9C,OAAO,KAAK,EAAY,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGxF,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAWD,qBAAa,eAAe;;IAU3B,YAAY,OAAO,EAAE,sBAAsB,EAE1C;IA8JD,CAAC,MAAM,CAAC,aAAa,CAAC,0CAmBrB;IAED,UAAU,IAAI,YAAY,CAAC,sBAAsB,CAAC,CAEjD;IAED,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAQ5D;CACD"}
1
+ {"version":3,"file":"tap-subscription.d.ts","sourceRoot":"","sources":["../lib/tap-subscription.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAIN,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AASD,qBAAa,eAAe;;IAU3B,YAAY,OAAO,EAAE,sBAAsB,EAE1C;IA8JD,CAAC,MAAM,CAAC,aAAa,CAAC,0CAmBrB;IAED,UAAU,IAAI,YAAY,CAAC,sBAAsB,CAAC,CAEjD;IAED,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAQ5D;CACD"}
@@ -1,10 +1,10 @@
1
+ import { decodeUtf8From } from '@atcute/uint8array';
1
2
  import { EventIterator } from '@mary-ext/event-iterator';
2
3
  import { SimpleEventEmitter } from '@mary-ext/simple-event-emitter';
3
4
  import { WebSocket as ReconnectingWebSocket } from 'partysocket';
4
- import { decodeUtf8From } from '@atcute/uint8array';
5
- import { flattenTapEvent, tapEventWireSchema } from './typedefs.js';
5
+ import * as v from 'valibot';
6
+ import { flattenTapEvent, tapEventWireSchema, } from './typedefs.js';
6
7
  import { formatAdminAuthHeader } from './utils.js';
7
- const PARSE_OPTIONS = { mode: 'passthrough' };
8
8
  export class TapSubscription {
9
9
  #listening = 0;
10
10
  #ws;
@@ -95,12 +95,12 @@ export class TapSubscription {
95
95
  }
96
96
  let evt;
97
97
  if (validateEvents) {
98
- const result = tapEventWireSchema.try(raw, PARSE_OPTIONS);
99
- if (!result.ok) {
100
- onError?.(result);
98
+ const result = v.safeParse(tapEventWireSchema, raw);
99
+ if (!result.success) {
100
+ onError?.(new v.ValiError(result.issues));
101
101
  return;
102
102
  }
103
- evt = flattenTapEvent(result.value);
103
+ evt = flattenTapEvent(result.output);
104
104
  }
105
105
  else {
106
106
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"tap-subscription.js","sourceRoot":"","sources":["../lib/tap-subscription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tap-subscription.js","sourceRoot":"","sources":["../lib/tap-subscription.ts"],"names":[],"mappings":"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"}
@@ -1,122 +1,155 @@
1
- import * as v from '@badrap/valita';
2
- import type * as t from './types.js';
3
- export declare const tapRecordEventWireSchema: v.ObjectType<{
4
- id: v.Type<number>;
5
- type: v.Type<"record">;
6
- record: v.UnionType<[v.ObjectType<{
7
- did: v.Type<`did:${string}:${string}`>;
8
- rev: v.Type<string>;
9
- collection: v.Type<`${string}.${string}.${string}`>;
10
- rkey: v.Type<string>;
11
- action: v.Type<"create">;
12
- cid: v.Type<string>;
13
- record: v.Optional<Record<string, unknown>>;
14
- live: v.Type<boolean>;
15
- }, undefined>, v.ObjectType<{
16
- did: v.Type<`did:${string}:${string}`>;
17
- rev: v.Type<string>;
18
- collection: v.Type<`${string}.${string}.${string}`>;
19
- rkey: v.Type<string>;
20
- action: v.Type<"update">;
21
- cid: v.Type<string>;
22
- record: v.Optional<Record<string, unknown>>;
23
- live: v.Type<boolean>;
24
- }, undefined>, v.ObjectType<{
25
- did: v.Type<`did:${string}:${string}`>;
26
- rev: v.Type<string>;
27
- collection: v.Type<`${string}.${string}.${string}`>;
28
- rkey: v.Type<string>;
29
- action: v.Type<"delete">;
30
- live: v.Type<boolean>;
31
- }, undefined>]>;
1
+ import { type Did, type Handle, type Nsid, type RecordKey, type Tid } from '@atcute/lexicons/syntax';
2
+ import type { CloseEvent, ErrorEvent, Options } from 'partysocket/ws';
3
+ import * as v from 'valibot';
4
+ export declare const tapRecordEventWireSchema: v.LooseObjectSchema<{
5
+ readonly id: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.SafeIntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
6
+ readonly type: v.LiteralSchema<"record", undefined>;
7
+ readonly record: v.VariantSchema<"action", [v.LooseObjectSchema<{
8
+ readonly did: v.CustomSchema<`did:${string}:${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
9
+ readonly rev: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
10
+ readonly collection: v.CustomSchema<`${string}.${string}.${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
11
+ readonly rkey: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
12
+ readonly live: v.BooleanSchema<undefined>;
13
+ readonly action: v.LiteralSchema<"create", undefined>;
14
+ readonly cid: v.StringSchema<undefined>;
15
+ readonly record: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
16
+ }, undefined>, v.LooseObjectSchema<{
17
+ readonly did: v.CustomSchema<`did:${string}:${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
18
+ readonly rev: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
19
+ readonly collection: v.CustomSchema<`${string}.${string}.${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
20
+ readonly rkey: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
21
+ readonly live: v.BooleanSchema<undefined>;
22
+ readonly action: v.LiteralSchema<"update", undefined>;
23
+ readonly cid: v.StringSchema<undefined>;
24
+ readonly record: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
25
+ }, undefined>, v.LooseObjectSchema<{
26
+ readonly did: v.CustomSchema<`did:${string}:${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
27
+ readonly rev: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
28
+ readonly collection: v.CustomSchema<`${string}.${string}.${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
29
+ readonly rkey: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
30
+ readonly live: v.BooleanSchema<undefined>;
31
+ readonly action: v.LiteralSchema<"delete", undefined>;
32
+ }, undefined>], undefined>;
32
33
  }, undefined>;
33
- export declare const tapIdentityEventWireSchema: v.ObjectType<{
34
- id: v.Type<number>;
35
- type: v.Type<"identity">;
36
- identity: v.ObjectType<{
37
- did: v.Type<`did:${string}:${string}`>;
38
- handle: v.Type<`${string}.${string}`>;
39
- is_active: v.Type<boolean>;
40
- status: v.UnionType<[v.Type<"active">, v.Type<"takendown">, v.Type<"suspended">, v.Type<"deactivated">, v.Type<"deleted">]>;
34
+ export declare const tapIdentityEventWireSchema: v.LooseObjectSchema<{
35
+ readonly id: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.SafeIntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
36
+ readonly type: v.LiteralSchema<"identity", undefined>;
37
+ readonly identity: v.LooseObjectSchema<{
38
+ readonly did: v.CustomSchema<`did:${string}:${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
39
+ readonly handle: v.CustomSchema<`${string}.${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
40
+ readonly is_active: v.BooleanSchema<undefined>;
41
+ readonly status: v.PicklistSchema<["active", "takendown", "suspended", "deactivated", "deleted"], undefined>;
41
42
  }, undefined>;
42
43
  }, undefined>;
43
- export declare const tapEventWireSchema: v.UnionType<[v.ObjectType<{
44
- id: v.Type<number>;
45
- type: v.Type<"record">;
46
- record: v.UnionType<[v.ObjectType<{
47
- did: v.Type<`did:${string}:${string}`>;
48
- rev: v.Type<string>;
49
- collection: v.Type<`${string}.${string}.${string}`>;
50
- rkey: v.Type<string>;
51
- action: v.Type<"create">;
52
- cid: v.Type<string>;
53
- record: v.Optional<Record<string, unknown>>;
54
- live: v.Type<boolean>;
55
- }, undefined>, v.ObjectType<{
56
- did: v.Type<`did:${string}:${string}`>;
57
- rev: v.Type<string>;
58
- collection: v.Type<`${string}.${string}.${string}`>;
59
- rkey: v.Type<string>;
60
- action: v.Type<"update">;
61
- cid: v.Type<string>;
62
- record: v.Optional<Record<string, unknown>>;
63
- live: v.Type<boolean>;
64
- }, undefined>, v.ObjectType<{
65
- did: v.Type<`did:${string}:${string}`>;
66
- rev: v.Type<string>;
67
- collection: v.Type<`${string}.${string}.${string}`>;
68
- rkey: v.Type<string>;
69
- action: v.Type<"delete">;
70
- live: v.Type<boolean>;
71
- }, undefined>]>;
72
- }, undefined>, v.ObjectType<{
73
- id: v.Type<number>;
74
- type: v.Type<"identity">;
75
- identity: v.ObjectType<{
76
- did: v.Type<`did:${string}:${string}`>;
77
- handle: v.Type<`${string}.${string}`>;
78
- is_active: v.Type<boolean>;
79
- status: v.UnionType<[v.Type<"active">, v.Type<"takendown">, v.Type<"suspended">, v.Type<"deactivated">, v.Type<"deleted">]>;
44
+ export declare const tapEventWireSchema: v.VariantSchema<"type", [v.LooseObjectSchema<{
45
+ readonly id: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.SafeIntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
46
+ readonly type: v.LiteralSchema<"record", undefined>;
47
+ readonly record: v.VariantSchema<"action", [v.LooseObjectSchema<{
48
+ readonly did: v.CustomSchema<`did:${string}:${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
49
+ readonly rev: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
50
+ readonly collection: v.CustomSchema<`${string}.${string}.${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
51
+ readonly rkey: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
52
+ readonly live: v.BooleanSchema<undefined>;
53
+ readonly action: v.LiteralSchema<"create", undefined>;
54
+ readonly cid: v.StringSchema<undefined>;
55
+ readonly record: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
56
+ }, undefined>, v.LooseObjectSchema<{
57
+ readonly did: v.CustomSchema<`did:${string}:${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
58
+ readonly rev: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
59
+ readonly collection: v.CustomSchema<`${string}.${string}.${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
60
+ readonly rkey: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
61
+ readonly live: v.BooleanSchema<undefined>;
62
+ readonly action: v.LiteralSchema<"update", undefined>;
63
+ readonly cid: v.StringSchema<undefined>;
64
+ readonly record: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
65
+ }, undefined>, v.LooseObjectSchema<{
66
+ readonly did: v.CustomSchema<`did:${string}:${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
67
+ readonly rev: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
68
+ readonly collection: v.CustomSchema<`${string}.${string}.${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
69
+ readonly rkey: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
70
+ readonly live: v.BooleanSchema<undefined>;
71
+ readonly action: v.LiteralSchema<"delete", undefined>;
72
+ }, undefined>], undefined>;
73
+ }, undefined>, v.LooseObjectSchema<{
74
+ readonly id: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.SafeIntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
75
+ readonly type: v.LiteralSchema<"identity", undefined>;
76
+ readonly identity: v.LooseObjectSchema<{
77
+ readonly did: v.CustomSchema<`did:${string}:${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
78
+ readonly handle: v.CustomSchema<`${string}.${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
79
+ readonly is_active: v.BooleanSchema<undefined>;
80
+ readonly status: v.PicklistSchema<["active", "takendown", "suspended", "deactivated", "deleted"], undefined>;
80
81
  }, undefined>;
81
- }, undefined>]>;
82
- export declare const repoInfoSchema: v.Type<t.RepoInfo>;
83
- export declare const flattenTapEvent: (wire: {
82
+ }, undefined>], undefined>;
83
+ export declare const repoInfoSchema: v.LooseObjectSchema<{
84
+ readonly did: v.CustomSchema<`did:${string}:${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
85
+ readonly handle: v.CustomSchema<`${string}.${string}`, v.ErrorMessage<v.CustomIssue> | undefined>;
86
+ readonly state: v.StringSchema<undefined>;
87
+ readonly rev: v.CustomSchema<string, v.ErrorMessage<v.CustomIssue> | undefined>;
88
+ readonly records: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.SafeIntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
89
+ readonly error: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
90
+ readonly retries: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.SafeIntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
91
+ }, undefined>;
92
+ export type RepoInfo = v.InferOutput<typeof repoInfoSchema>;
93
+ export type TapRecordAction = 'create' | 'update' | 'delete';
94
+ export type TapRepoStatus = 'active' | 'takendown' | 'suspended' | 'deactivated' | 'deleted';
95
+ export interface TapRecordBaseEvent {
84
96
  id: number;
85
- type: "record";
86
- record: {
87
- did: `did:${string}:${string}`;
88
- rev: string;
89
- collection: `${string}.${string}.${string}`;
90
- rkey: string;
91
- action: "create";
92
- cid: string;
93
- record?: Record<string, unknown> | undefined;
94
- live: boolean;
95
- } | {
96
- did: `did:${string}:${string}`;
97
- rev: string;
98
- collection: `${string}.${string}.${string}`;
99
- rkey: string;
100
- action: "update";
101
- cid: string;
102
- record?: Record<string, unknown> | undefined;
103
- live: boolean;
104
- } | {
105
- did: `did:${string}:${string}`;
106
- rev: string;
107
- collection: `${string}.${string}.${string}`;
108
- rkey: string;
109
- action: "delete";
110
- live: boolean;
111
- };
112
- } | {
97
+ type: 'record';
98
+ live: boolean;
99
+ did: Did;
100
+ rev: Tid;
101
+ collection: Nsid;
102
+ rkey: RecordKey;
103
+ }
104
+ export interface TapRecordCreateEvent extends TapRecordBaseEvent {
105
+ action: 'create';
106
+ cid: string;
107
+ /**
108
+ * record may be omitted if tap fails to decode the record body but still has a cid.
109
+ */
110
+ record?: Record<string, unknown>;
111
+ }
112
+ export interface TapRecordUpdateEvent extends TapRecordBaseEvent {
113
+ action: 'update';
114
+ cid: string;
115
+ /**
116
+ * record may be omitted if tap fails to decode the record body but still has a cid.
117
+ */
118
+ record?: Record<string, unknown>;
119
+ }
120
+ export interface TapRecordDeleteEvent extends TapRecordBaseEvent {
121
+ action: 'delete';
122
+ }
123
+ export type TapRecordEvent = TapRecordCreateEvent | TapRecordUpdateEvent | TapRecordDeleteEvent;
124
+ export interface TapIdentityEvent {
113
125
  id: number;
114
- type: "identity";
115
- identity: {
116
- did: `did:${string}:${string}`;
117
- handle: `${string}.${string}`;
118
- is_active: boolean;
119
- status: "active" | "deactivated" | "deleted" | "suspended" | "takendown";
120
- };
121
- }) => t.TapEvent;
126
+ type: 'identity';
127
+ did: Did;
128
+ handle: Handle;
129
+ isActive: boolean;
130
+ status: TapRepoStatus;
131
+ }
132
+ export type TapEvent = TapRecordEvent | TapIdentityEvent;
133
+ export interface TapClientOptions {
134
+ url: string | URL;
135
+ adminPassword?: string;
136
+ fetch?: typeof globalThis.fetch;
137
+ }
138
+ export interface TapSubscribeOptions {
139
+ /**
140
+ * whether to validate incoming events.
141
+ * @default true
142
+ */
143
+ validateEvents?: boolean;
144
+ onConnectionOpen?: (event: Event) => void;
145
+ onConnectionClose?: (event: CloseEvent) => void;
146
+ onConnectionError?: (event: ErrorEvent) => void;
147
+ onError?: (error: unknown) => void;
148
+ ws?: Options;
149
+ }
150
+ export interface TapSubscriptionMessage {
151
+ event: TapEvent;
152
+ ack: () => Promise<void>;
153
+ }
154
+ export declare const flattenTapEvent: (wire: v.InferOutput<typeof tapEventWireSchema>) => TapEvent;
122
155
  //# sourceMappingURL=typedefs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typedefs.d.ts","sourceRoot":"","sources":["../lib/typedefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAIpC,OAAO,KAAK,KAAK,CAAC,MAAM,YAAY,CAAC;AA8DrC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAInC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;aAIrC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAAgE,CAAC;AAEhG,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAQ5C,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAiE3B,CAAC"}
1
+ {"version":3,"file":"typedefs.d.ts","sourceRoot":"","sources":["../lib/typedefs.ts"],"names":[],"mappings":"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"}
package/dist/typedefs.js CHANGED
@@ -1,67 +1,64 @@
1
- import * as v from '@badrap/valita';
2
- import { isDid, isHandle, isNsid, isRecordKey, isTid } from '@atcute/lexicons/syntax';
3
- const didString = v.string().assert(isDid, `must be a did`);
4
- const handleString = v.string().assert(isHandle, `must be a handle`);
5
- const nsidString = v.string().assert(isNsid, `must be an nsid`);
6
- const rkeyString = v.string().assert(isRecordKey, `must be a record key`);
7
- const tidString = v.string().assert(isTid, `must be a tid`);
8
- const integer = v
9
- .number()
10
- .assert((input) => input >= 0 && Number.isSafeInteger(input), `must be a nonnegative integer`);
11
- const recordEventCreateDataSchema = v.object({
1
+ import { isDid, isHandle, isNsid, isRecordKey, isTid, } from '@atcute/lexicons/syntax';
2
+ import * as v from 'valibot';
3
+ const didString = v.custom(isDid, `must be a did`);
4
+ const handleString = v.custom(isHandle, `must be a handle`);
5
+ const nsidString = v.custom(isNsid, `must be an nsid`);
6
+ const rkeyString = v.custom(isRecordKey, `must be a record key`);
7
+ const tidString = v.custom(isTid, `must be a tid`);
8
+ const integer = v.pipe(v.number(), v.safeInteger(), v.minValue(0));
9
+ const baseRecordEventEntries = {
12
10
  did: didString,
13
11
  rev: tidString,
14
12
  collection: nsidString,
15
13
  rkey: rkeyString,
14
+ live: v.boolean(),
15
+ };
16
+ const recordEventCreateDataSchema = v.looseObject({
17
+ ...baseRecordEventEntries,
16
18
  action: v.literal('create'),
17
19
  cid: v.string(),
18
- record: v.record(v.unknown()).optional(),
19
- live: v.boolean(),
20
+ record: v.optional(v.record(v.string(), v.unknown())),
20
21
  });
21
- const recordEventUpdateDataSchema = v.object({
22
- did: didString,
23
- rev: tidString,
24
- collection: nsidString,
25
- rkey: rkeyString,
22
+ const recordEventUpdateDataSchema = v.looseObject({
23
+ ...baseRecordEventEntries,
26
24
  action: v.literal('update'),
27
25
  cid: v.string(),
28
- record: v.record(v.unknown()).optional(),
29
- live: v.boolean(),
26
+ record: v.optional(v.record(v.string(), v.unknown())),
30
27
  });
31
- const recordEventDeleteDataSchema = v.object({
32
- did: didString,
33
- rev: tidString,
34
- collection: nsidString,
35
- rkey: rkeyString,
28
+ const recordEventDeleteDataSchema = v.looseObject({
29
+ ...baseRecordEventEntries,
36
30
  action: v.literal('delete'),
37
- live: v.boolean(),
38
31
  });
39
- const recordEventDataSchema = v.union(recordEventCreateDataSchema, recordEventUpdateDataSchema, recordEventDeleteDataSchema);
40
- const identityEventDataSchema = v.object({
32
+ const recordEventDataSchema = v.variant('action', [
33
+ recordEventCreateDataSchema,
34
+ recordEventUpdateDataSchema,
35
+ recordEventDeleteDataSchema,
36
+ ]);
37
+ const identityEventDataSchema = v.looseObject({
41
38
  did: didString,
42
39
  handle: handleString,
43
40
  is_active: v.boolean(),
44
- status: v.union(v.literal('active'), v.literal('takendown'), v.literal('suspended'), v.literal('deactivated'), v.literal('deleted')),
41
+ status: v.picklist(['active', 'takendown', 'suspended', 'deactivated', 'deleted']),
45
42
  });
46
- export const tapRecordEventWireSchema = v.object({
43
+ export const tapRecordEventWireSchema = v.looseObject({
47
44
  id: integer,
48
45
  type: v.literal('record'),
49
46
  record: recordEventDataSchema,
50
47
  });
51
- export const tapIdentityEventWireSchema = v.object({
48
+ export const tapIdentityEventWireSchema = v.looseObject({
52
49
  id: integer,
53
50
  type: v.literal('identity'),
54
51
  identity: identityEventDataSchema,
55
52
  });
56
- export const tapEventWireSchema = v.union(tapRecordEventWireSchema, tapIdentityEventWireSchema);
57
- export const repoInfoSchema = v.object({
53
+ export const tapEventWireSchema = v.variant('type', [tapRecordEventWireSchema, tapIdentityEventWireSchema]);
54
+ export const repoInfoSchema = v.looseObject({
58
55
  did: didString,
59
56
  handle: handleString,
60
57
  state: v.string(),
61
58
  rev: tidString,
62
59
  records: integer,
63
- error: v.string().optional(),
64
- retries: integer.optional(),
60
+ error: v.optional(v.string()),
61
+ retries: v.optional(integer),
65
62
  });
66
63
  export const flattenTapEvent = (wire) => {
67
64
  switch (wire.type) {
@@ -1 +1 @@
1
- {"version":3,"file":"typedefs.js","sourceRoot":"","sources":["../lib/typedefs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typedefs.js","sourceRoot":"","sources":["../lib/typedefs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,8BAEjC,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,aAAc,MAAM,KAAG,MAExD,CAAC"}
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC;IAClE,OAAO,SAAS,WAAW,CAAC,UAAU,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;AAAA,CAC/D,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACjE,OAAO,SAAS,WAAW,CAAC,UAAU,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC,CAAC"}
package/lib/dev-index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { TapClient } from './tap-client.js';
1
+ import { TapClient } from './tap-client.ts';
2
2
 
3
3
  const tap = new TapClient({ url: 'http://localhost:2480' });
4
4
 
package/lib/index.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { TapClient } from './tap-client.js';
2
- export { TapSubscription } from './tap-subscription.js';
1
+ export { TapClient } from './tap-client.ts';
2
+ export { TapSubscription } from './tap-subscription.ts';
3
3
 
4
- export * as defs from './typedefs.js';
5
- export type * from './types.js';
4
+ export * as defs from './typedefs.ts';
5
+ export type * from './typedefs.ts';
package/lib/tap-client.ts CHANGED
@@ -1,11 +1,16 @@
1
1
  import { defs as identityDefs, type DidDocument } from '@atcute/identity';
2
-
3
2
  import type { Did } from '@atcute/lexicons';
4
3
 
5
- import { TapSubscription } from './tap-subscription.js';
6
- import { repoInfoSchema } from './typedefs.js';
7
- import type { RepoInfo, TapClientOptions, TapSubscribeOptions } from './types.js';
8
- import { formatAdminAuthHeader } from './utils.js';
4
+ import * as v from 'valibot';
5
+
6
+ import { TapSubscription } from './tap-subscription.ts';
7
+ import {
8
+ repoInfoSchema,
9
+ type RepoInfo,
10
+ type TapClientOptions,
11
+ type TapSubscribeOptions,
12
+ } from './typedefs.ts';
13
+ import { formatAdminAuthHeader } from './utils.ts';
9
14
 
10
15
  export class TapClient {
11
16
  #url: URL;
@@ -83,7 +88,7 @@ export class TapClient {
83
88
  throw new Error(`failed to resolve did: ${response.status} ${response.statusText}`);
84
89
  }
85
90
 
86
- return identityDefs.didDocument.parse(await response.json());
91
+ return v.parse(identityDefs.didDocument, await response.json());
87
92
  }
88
93
 
89
94
  async getRepoInfo(did: Did): Promise<RepoInfo> {
@@ -97,7 +102,7 @@ export class TapClient {
97
102
  throw new Error(`failed to get repo info: ${response.status} ${response.statusText}`);
98
103
  }
99
104
 
100
- return repoInfoSchema.parse(await response.json());
105
+ return v.parse(repoInfoSchema, await response.json());
101
106
  }
102
107
 
103
108
  #getHeaders(): Record<string, string> {
@@ -1,14 +1,19 @@
1
+ import { decodeUtf8From } from '@atcute/uint8array';
2
+
1
3
  import { EventIterator } from '@mary-ext/event-iterator';
2
4
  import { SimpleEventEmitter } from '@mary-ext/simple-event-emitter';
3
5
  import { WebSocket as ReconnectingWebSocket } from 'partysocket';
4
-
5
6
  import type { ReadonlyDeep } from 'type-fest';
7
+ import * as v from 'valibot';
6
8
 
7
- import { decodeUtf8From } from '@atcute/uint8array';
8
-
9
- import { flattenTapEvent, tapEventWireSchema } from './typedefs.js';
10
- import type { TapEvent, TapSubscribeOptions, TapSubscriptionMessage } from './types.js';
11
- import { formatAdminAuthHeader } from './utils.js';
9
+ import {
10
+ flattenTapEvent,
11
+ tapEventWireSchema,
12
+ type TapEvent,
13
+ type TapSubscribeOptions,
14
+ type TapSubscriptionMessage,
15
+ } from './typedefs.ts';
16
+ import { formatAdminAuthHeader } from './utils.ts';
12
17
 
13
18
  export interface TapSubscriptionOptions extends TapSubscribeOptions {
14
19
  url: string;
@@ -22,8 +27,6 @@ type BufferedAck = {
22
27
  reject: (reason?: unknown) => void;
23
28
  };
24
29
 
25
- const PARSE_OPTIONS = { mode: 'passthrough' } as const;
26
-
27
30
  export class TapSubscription {
28
31
  #listening = 0;
29
32
  #ws?: ReconnectingWebSocket;
@@ -144,13 +147,13 @@ export class TapSubscription {
144
147
 
145
148
  let evt: TapEvent;
146
149
  if (validateEvents) {
147
- const result = tapEventWireSchema.try(raw, PARSE_OPTIONS);
148
- if (!result.ok) {
149
- onError?.(result);
150
+ const result = v.safeParse(tapEventWireSchema, raw);
151
+ if (!result.success) {
152
+ onError?.(new v.ValiError(result.issues));
150
153
  return;
151
154
  }
152
155
 
153
- evt = flattenTapEvent(result.value);
156
+ evt = flattenTapEvent(result.output);
154
157
  } else {
155
158
  try {
156
159
  evt = flattenTapEvent(raw as any);
package/lib/typedefs.ts CHANGED
@@ -1,94 +1,173 @@
1
- import * as v from '@badrap/valita';
2
-
3
- import { isDid, isHandle, isNsid, isRecordKey, isTid } from '@atcute/lexicons/syntax';
4
-
5
- import type * as t from './types.js';
6
-
7
- const didString = v.string().assert(isDid, `must be a did`);
8
- const handleString = v.string().assert(isHandle, `must be a handle`);
9
- const nsidString = v.string().assert(isNsid, `must be an nsid`);
10
- const rkeyString = v.string().assert(isRecordKey, `must be a record key`);
11
- const tidString = v.string().assert(isTid, `must be a tid`);
12
-
13
- const integer = v
14
- .number()
15
- .assert((input) => input >= 0 && Number.isSafeInteger(input), `must be a nonnegative integer`);
16
-
17
- const recordEventCreateDataSchema = v.object({
1
+ import {
2
+ isDid,
3
+ isHandle,
4
+ isNsid,
5
+ isRecordKey,
6
+ isTid,
7
+ type Did,
8
+ type Handle,
9
+ type Nsid,
10
+ type RecordKey,
11
+ type Tid,
12
+ } from '@atcute/lexicons/syntax';
13
+
14
+ import type { CloseEvent, ErrorEvent, Options } from 'partysocket/ws';
15
+ import * as v from 'valibot';
16
+
17
+ const didString = v.custom<Did>(isDid, `must be a did`);
18
+ const handleString = v.custom<Handle>(isHandle, `must be a handle`);
19
+ const nsidString = v.custom<Nsid>(isNsid, `must be an nsid`);
20
+ const rkeyString = v.custom<RecordKey>(isRecordKey, `must be a record key`);
21
+ const tidString = v.custom<Tid>(isTid, `must be a tid`);
22
+
23
+ const integer = v.pipe(v.number(), v.safeInteger(), v.minValue(0));
24
+
25
+ const baseRecordEventEntries = {
18
26
  did: didString,
19
27
  rev: tidString,
20
28
  collection: nsidString,
21
29
  rkey: rkeyString,
30
+ live: v.boolean(),
31
+ };
32
+
33
+ const recordEventCreateDataSchema = v.looseObject({
34
+ ...baseRecordEventEntries,
22
35
  action: v.literal('create'),
23
36
  cid: v.string(),
24
- record: v.record(v.unknown()).optional(),
25
- live: v.boolean(),
37
+ record: v.optional(v.record(v.string(), v.unknown())),
26
38
  });
27
39
 
28
- const recordEventUpdateDataSchema = v.object({
29
- did: didString,
30
- rev: tidString,
31
- collection: nsidString,
32
- rkey: rkeyString,
40
+ const recordEventUpdateDataSchema = v.looseObject({
41
+ ...baseRecordEventEntries,
33
42
  action: v.literal('update'),
34
43
  cid: v.string(),
35
- record: v.record(v.unknown()).optional(),
36
- live: v.boolean(),
44
+ record: v.optional(v.record(v.string(), v.unknown())),
37
45
  });
38
46
 
39
- const recordEventDeleteDataSchema = v.object({
40
- did: didString,
41
- rev: tidString,
42
- collection: nsidString,
43
- rkey: rkeyString,
47
+ const recordEventDeleteDataSchema = v.looseObject({
48
+ ...baseRecordEventEntries,
44
49
  action: v.literal('delete'),
45
- live: v.boolean(),
46
50
  });
47
51
 
48
- const recordEventDataSchema = v.union(
52
+ const recordEventDataSchema = v.variant('action', [
49
53
  recordEventCreateDataSchema,
50
54
  recordEventUpdateDataSchema,
51
55
  recordEventDeleteDataSchema,
52
- );
56
+ ]);
53
57
 
54
- const identityEventDataSchema = v.object({
58
+ const identityEventDataSchema = v.looseObject({
55
59
  did: didString,
56
60
  handle: handleString,
57
61
  is_active: v.boolean(),
58
- status: v.union(
59
- v.literal('active'),
60
- v.literal('takendown'),
61
- v.literal('suspended'),
62
- v.literal('deactivated'),
63
- v.literal('deleted'),
64
- ),
62
+ status: v.picklist(['active', 'takendown', 'suspended', 'deactivated', 'deleted']),
65
63
  });
66
64
 
67
- export const tapRecordEventWireSchema = v.object({
65
+ export const tapRecordEventWireSchema = v.looseObject({
68
66
  id: integer,
69
67
  type: v.literal('record'),
70
68
  record: recordEventDataSchema,
71
69
  });
72
70
 
73
- export const tapIdentityEventWireSchema = v.object({
71
+ export const tapIdentityEventWireSchema = v.looseObject({
74
72
  id: integer,
75
73
  type: v.literal('identity'),
76
74
  identity: identityEventDataSchema,
77
75
  });
78
76
 
79
- export const tapEventWireSchema = v.union(tapRecordEventWireSchema, tapIdentityEventWireSchema);
77
+ export const tapEventWireSchema = v.variant('type', [tapRecordEventWireSchema, tapIdentityEventWireSchema]);
80
78
 
81
- export const repoInfoSchema: v.Type<t.RepoInfo> = v.object({
79
+ export const repoInfoSchema = v.looseObject({
82
80
  did: didString,
83
81
  handle: handleString,
84
82
  state: v.string(),
85
83
  rev: tidString,
86
84
  records: integer,
87
- error: v.string().optional(),
88
- retries: integer.optional(),
85
+ error: v.optional(v.string()),
86
+ retries: v.optional(integer),
89
87
  });
90
88
 
91
- export const flattenTapEvent = (wire: v.Infer<typeof tapEventWireSchema>): t.TapEvent => {
89
+ export type RepoInfo = v.InferOutput<typeof repoInfoSchema>;
90
+
91
+ export type TapRecordAction = 'create' | 'update' | 'delete';
92
+
93
+ export type TapRepoStatus = 'active' | 'takendown' | 'suspended' | 'deactivated' | 'deleted';
94
+
95
+ export interface TapRecordBaseEvent {
96
+ id: number;
97
+ type: 'record';
98
+
99
+ live: boolean;
100
+ did: Did;
101
+ rev: Tid;
102
+ collection: Nsid;
103
+ rkey: RecordKey;
104
+ }
105
+
106
+ export interface TapRecordCreateEvent extends TapRecordBaseEvent {
107
+ action: 'create';
108
+ cid: string;
109
+
110
+ /**
111
+ * record may be omitted if tap fails to decode the record body but still has a cid.
112
+ */
113
+ record?: Record<string, unknown>;
114
+ }
115
+
116
+ export interface TapRecordUpdateEvent extends TapRecordBaseEvent {
117
+ action: 'update';
118
+ cid: string;
119
+
120
+ /**
121
+ * record may be omitted if tap fails to decode the record body but still has a cid.
122
+ */
123
+ record?: Record<string, unknown>;
124
+ }
125
+
126
+ export interface TapRecordDeleteEvent extends TapRecordBaseEvent {
127
+ action: 'delete';
128
+ }
129
+
130
+ export type TapRecordEvent = TapRecordCreateEvent | TapRecordUpdateEvent | TapRecordDeleteEvent;
131
+
132
+ export interface TapIdentityEvent {
133
+ id: number;
134
+ type: 'identity';
135
+
136
+ did: Did;
137
+ handle: Handle;
138
+ isActive: boolean;
139
+ status: TapRepoStatus;
140
+ }
141
+
142
+ export type TapEvent = TapRecordEvent | TapIdentityEvent;
143
+
144
+ export interface TapClientOptions {
145
+ url: string | URL;
146
+ adminPassword?: string;
147
+ fetch?: typeof globalThis.fetch;
148
+ }
149
+
150
+ export interface TapSubscribeOptions {
151
+ /**
152
+ * whether to validate incoming events.
153
+ * @default true
154
+ */
155
+ validateEvents?: boolean;
156
+
157
+ onConnectionOpen?: (event: Event) => void;
158
+ onConnectionClose?: (event: CloseEvent) => void;
159
+ onConnectionError?: (event: ErrorEvent) => void;
160
+ onError?: (error: unknown) => void;
161
+
162
+ ws?: Options;
163
+ }
164
+
165
+ export interface TapSubscriptionMessage {
166
+ event: TapEvent;
167
+ ack: () => Promise<void>;
168
+ }
169
+
170
+ export const flattenTapEvent = (wire: v.InferOutput<typeof tapEventWireSchema>): TapEvent => {
92
171
  switch (wire.type) {
93
172
  case 'identity': {
94
173
  return {
package/package.json CHANGED
@@ -1,43 +1,48 @@
1
1
  {
2
- "type": "module",
3
2
  "name": "@atcute/tap",
4
- "version": "0.1.1",
3
+ "version": "1.0.0",
5
4
  "description": "an atproto Tap client",
6
5
  "license": "0BSD",
7
6
  "repository": {
8
7
  "url": "https://github.com/mary-ext/atcute",
9
8
  "directory": "packages/clients/tap"
10
9
  },
11
- "publishConfig": {
12
- "access": "public"
13
- },
14
10
  "files": [
15
11
  "dist/",
16
12
  "lib/",
17
13
  "!lib/**/*.bench.ts",
18
- "!lib/**/*.test.ts"
14
+ "!lib/**/*.test.ts",
15
+ "!dist/**/*.{test,bench}.*"
19
16
  ],
17
+ "type": "module",
20
18
  "exports": {
21
19
  ".": "./dist/index.js"
22
20
  },
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
23
24
  "dependencies": {
24
- "@badrap/valita": "^0.4.6",
25
25
  "@mary-ext/event-iterator": "^1.0.0",
26
- "@mary-ext/simple-event-emitter": "^1.0.0",
27
- "partysocket": "^1.1.6",
26
+ "@mary-ext/simple-event-emitter": "^1.0.1",
27
+ "partysocket": "^1.1.18",
28
28
  "type-fest": "^4.41.0",
29
- "@atcute/multibase": "^1.1.6",
30
- "@atcute/uint8array": "^1.0.6",
31
- "@atcute/identity": "^1.1.3",
32
- "@atcute/lexicons": "^1.2.5"
29
+ "valibot": "^1.4.0",
30
+ "@atcute/identity": "^2.0.0",
31
+ "@atcute/lexicons": "^2.0.0",
32
+ "@atcute/uint8array": "^1.1.1",
33
+ "@atcute/multibase": "^1.2.0"
33
34
  },
34
35
  "devDependencies": {
35
36
  "@types/ws": "^8.18.1",
36
- "vitest": "^4.0.14",
37
- "ws": "^8.18.3"
37
+ "vitest": "^4.1.5",
38
+ "ws": "^8.20.0"
39
+ },
40
+ "peerDependencies": {
41
+ "@atcute/identity": "^2.0.0",
42
+ "@atcute/lexicons": "^2.0.0"
38
43
  },
39
44
  "scripts": {
40
- "build": "tsgo --project tsconfig.build.json",
45
+ "build": "tsgo",
41
46
  "test": "vitest run",
42
47
  "prepublish": "rm -rf dist; pnpm run build"
43
48
  }
package/dist/types.d.ts DELETED
@@ -1,73 +0,0 @@
1
- import type { Did, Handle, Nsid, RecordKey, Tid } from '@atcute/lexicons/syntax';
2
- import type { CloseEvent, ErrorEvent, Options } from 'partysocket/ws';
3
- export type TapRecordAction = 'create' | 'update' | 'delete';
4
- export type TapRepoStatus = 'active' | 'takendown' | 'suspended' | 'deactivated' | 'deleted';
5
- export interface TapRecordBaseEvent {
6
- id: number;
7
- type: 'record';
8
- live: boolean;
9
- did: Did;
10
- rev: Tid;
11
- collection: Nsid;
12
- rkey: RecordKey;
13
- }
14
- export interface TapRecordCreateEvent extends TapRecordBaseEvent {
15
- action: 'create';
16
- cid: string;
17
- /**
18
- * record may be omitted if tap fails to decode the record body but still has a cid.
19
- */
20
- record?: Record<string, unknown>;
21
- }
22
- export interface TapRecordUpdateEvent extends TapRecordBaseEvent {
23
- action: 'update';
24
- cid: string;
25
- /**
26
- * record may be omitted if tap fails to decode the record body but still has a cid.
27
- */
28
- record?: Record<string, unknown>;
29
- }
30
- export interface TapRecordDeleteEvent extends TapRecordBaseEvent {
31
- action: 'delete';
32
- }
33
- export type TapRecordEvent = TapRecordCreateEvent | TapRecordUpdateEvent | TapRecordDeleteEvent;
34
- export interface TapIdentityEvent {
35
- id: number;
36
- type: 'identity';
37
- did: Did;
38
- handle: Handle;
39
- isActive: boolean;
40
- status: TapRepoStatus;
41
- }
42
- export type TapEvent = TapRecordEvent | TapIdentityEvent;
43
- export interface RepoInfo {
44
- did: Did;
45
- handle: Handle;
46
- state: string;
47
- rev: Tid;
48
- records: number;
49
- error?: string;
50
- retries?: number;
51
- }
52
- export interface TapClientOptions {
53
- url: string | URL;
54
- adminPassword?: string;
55
- fetch?: typeof globalThis.fetch;
56
- }
57
- export interface TapSubscribeOptions {
58
- /**
59
- * whether to validate incoming events.
60
- * @default true
61
- */
62
- validateEvents?: boolean;
63
- onConnectionOpen?: (event: Event) => void;
64
- onConnectionClose?: (event: CloseEvent) => void;
65
- onConnectionError?: (event: ErrorEvent) => void;
66
- onError?: (error: unknown) => void;
67
- ws?: Options;
68
- }
69
- export interface TapSubscriptionMessage {
70
- event: TapEvent;
71
- ack: () => Promise<void>;
72
- }
73
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAE7F,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IAEf,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;CAChB;AAED,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC/D,MAAM,EAAE,QAAQ,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC/D,MAAM,EAAE,QAAQ,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC/D,MAAM,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;AAEhG,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IAEjB,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEzD,MAAM,WAAW,QAAQ;IACxB,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IACnC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnC,EAAE,CAAC,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,sBAAsB;IACtC,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":""}
package/lib/types.ts DELETED
@@ -1,91 +0,0 @@
1
- import type { Did, Handle, Nsid, RecordKey, Tid } from '@atcute/lexicons/syntax';
2
- import type { CloseEvent, ErrorEvent, Options } from 'partysocket/ws';
3
-
4
- export type TapRecordAction = 'create' | 'update' | 'delete';
5
-
6
- export type TapRepoStatus = 'active' | 'takendown' | 'suspended' | 'deactivated' | 'deleted';
7
-
8
- export interface TapRecordBaseEvent {
9
- id: number;
10
- type: 'record';
11
-
12
- live: boolean;
13
- did: Did;
14
- rev: Tid;
15
- collection: Nsid;
16
- rkey: RecordKey;
17
- }
18
-
19
- export interface TapRecordCreateEvent extends TapRecordBaseEvent {
20
- action: 'create';
21
- cid: string;
22
-
23
- /**
24
- * record may be omitted if tap fails to decode the record body but still has a cid.
25
- */
26
- record?: Record<string, unknown>;
27
- }
28
-
29
- export interface TapRecordUpdateEvent extends TapRecordBaseEvent {
30
- action: 'update';
31
- cid: string;
32
-
33
- /**
34
- * record may be omitted if tap fails to decode the record body but still has a cid.
35
- */
36
- record?: Record<string, unknown>;
37
- }
38
-
39
- export interface TapRecordDeleteEvent extends TapRecordBaseEvent {
40
- action: 'delete';
41
- }
42
-
43
- export type TapRecordEvent = TapRecordCreateEvent | TapRecordUpdateEvent | TapRecordDeleteEvent;
44
-
45
- export interface TapIdentityEvent {
46
- id: number;
47
- type: 'identity';
48
-
49
- did: Did;
50
- handle: Handle;
51
- isActive: boolean;
52
- status: TapRepoStatus;
53
- }
54
-
55
- export type TapEvent = TapRecordEvent | TapIdentityEvent;
56
-
57
- export interface RepoInfo {
58
- did: Did;
59
- handle: Handle;
60
- state: string;
61
- rev: Tid;
62
- records: number;
63
- error?: string;
64
- retries?: number;
65
- }
66
-
67
- export interface TapClientOptions {
68
- url: string | URL;
69
- adminPassword?: string;
70
- fetch?: typeof globalThis.fetch;
71
- }
72
-
73
- export interface TapSubscribeOptions {
74
- /**
75
- * whether to validate incoming events.
76
- * @default true
77
- */
78
- validateEvents?: boolean;
79
-
80
- onConnectionOpen?: (event: Event) => void;
81
- onConnectionClose?: (event: CloseEvent) => void;
82
- onConnectionError?: (event: ErrorEvent) => void;
83
- onError?: (error: unknown) => void;
84
-
85
- ws?: Options;
86
- }
87
-
88
- export interface TapSubscriptionMessage {
89
- event: TapEvent;
90
- ack: () => Promise<void>;
91
- }