@atcute/identity 1.1.3 → 1.1.5

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 CHANGED
@@ -1,3 +1,186 @@
1
1
  # @atcute/identity
2
2
 
3
- syntax, type definitions and schemas for atproto handles, DIDs and DID documents.
3
+ types, schemas, and utilities for working with AT Protocol identities.
4
+
5
+ ```sh
6
+ npm install @atcute/identity
7
+ ```
8
+
9
+ in AT Protocol, users are identified by [DIDs](https://www.w3.org/TR/did-core/) (decentralized
10
+ identifiers). this package provides tools for working with DIDs and DID documents - the documents
11
+ that describe a user's identity, including their handle, PDS location, and cryptographic keys.
12
+
13
+ for resolving handles and DIDs (fetching their documents), see `@atcute/identity-resolver`.
14
+
15
+ ## usage
16
+
17
+ ### checking DID types
18
+
19
+ AT Protocol supports two DID methods: `did:plc` and `did:web`. use the type guards to check which
20
+ method a DID uses:
21
+
22
+ ```ts
23
+ import { isPlcDid, isWebDid, isAtprotoDid } from '@atcute/identity';
24
+
25
+ const did = 'did:plc:z72i7hdynmk6r22z27h6tvur';
26
+
27
+ if (isPlcDid(did)) {
28
+ // did:plc identifier
29
+ console.log('PLC DID');
30
+ }
31
+
32
+ if (isWebDid(did)) {
33
+ // did:web identifier (general, includes custom paths)
34
+ console.log('Web DID');
35
+ }
36
+
37
+ if (isAtprotoDid(did)) {
38
+ // either did:plc or atproto-compatible did:web
39
+ console.log('AT Protocol DID');
40
+ }
41
+ ```
42
+
43
+ `isAtprotoDid` checks for DIDs that are valid in AT Protocol - this excludes did:web identifiers
44
+ with custom paths, which atproto doesn't support.
45
+
46
+ ### extracting the DID method
47
+
48
+ ```ts
49
+ import { extractDidMethod } from '@atcute/identity';
50
+
51
+ const method = extractDidMethod('did:plc:z72i7hdynmk6r22z27h6tvur');
52
+ // -> "plc"
53
+ ```
54
+
55
+ ### working with did:web
56
+
57
+ convert a did:web identifier to its DID document URL:
58
+
59
+ ```ts
60
+ import { webDidToDocumentUrl, normalizeWebDid } from '@atcute/identity';
61
+
62
+ // simple domain
63
+ const url = webDidToDocumentUrl('did:web:example.com');
64
+ // -> URL { href: "https://example.com/.well-known/did.json" }
65
+
66
+ // with path
67
+ const url2 = webDidToDocumentUrl('did:web:example.com:users:alice');
68
+ // -> URL { href: "https://example.com/users/alice/did.json" }
69
+
70
+ // normalize for comparison
71
+ const normalized = normalizeWebDid('did:web:EXAMPLE.COM');
72
+ // -> "did:web:example.com"
73
+ ```
74
+
75
+ ### reading DID documents
76
+
77
+ once you have a DID document (from a resolver or API), extract information using the utility
78
+ functions:
79
+
80
+ ```ts
81
+ import {
82
+ getPdsEndpoint,
83
+ getAtprotoHandle,
84
+ getAtprotoVerificationMaterial,
85
+ getLabelerEndpoint,
86
+ } from '@atcute/identity';
87
+ import type { DidDocument } from '@atcute/identity';
88
+
89
+ const doc: DidDocument = {
90
+ '@context': ['https://www.w3.org/ns/did/v1'],
91
+ id: 'did:plc:z72i7hdynmk6r22z27h6tvur',
92
+ alsoKnownAs: ['at://bsky.app'],
93
+ verificationMethod: [
94
+ {
95
+ id: 'did:plc:z72i7hdynmk6r22z27h6tvur#atproto',
96
+ type: 'Multikey',
97
+ controller: 'did:plc:z72i7hdynmk6r22z27h6tvur',
98
+ publicKeyMultibase: 'zDnaek...',
99
+ },
100
+ ],
101
+ service: [
102
+ {
103
+ id: '#atproto_pds',
104
+ type: 'AtprotoPersonalDataServer',
105
+ serviceEndpoint: 'https://morel.us-east.host.bsky.network',
106
+ },
107
+ ],
108
+ };
109
+
110
+ // get the user's PDS URL
111
+ const pds = getPdsEndpoint(doc);
112
+ // -> "https://morel.us-east.host.bsky.network"
113
+
114
+ // get the user's handle
115
+ const handle = getAtprotoHandle(doc);
116
+ // -> "bsky.app"
117
+
118
+ // get the signing key material
119
+ const key = getAtprotoVerificationMaterial(doc);
120
+ // -> { type: "Multikey", publicKeyMultibase: "zDnaek..." }
121
+ ```
122
+
123
+ ### service endpoint helpers
124
+
125
+ extract specific service endpoints from DID documents:
126
+
127
+ ```ts
128
+ import {
129
+ getPdsEndpoint,
130
+ getLabelerEndpoint,
131
+ getBlueskyChatEndpoint,
132
+ getBlueskyFeedgenEndpoint,
133
+ getBlueskyNotificationEndpoint,
134
+ getAtprotoServiceEndpoint,
135
+ } from '@atcute/identity';
136
+
137
+ // standard helpers for common services
138
+ const pds = getPdsEndpoint(doc); // #atproto_pds
139
+ const labeler = getLabelerEndpoint(doc); // #atproto_labeler
140
+ const chat = getBlueskyChatEndpoint(doc); // #bsky_chat
141
+ const feedgen = getBlueskyFeedgenEndpoint(doc); // #bsky_fg
142
+ const notif = getBlueskyNotificationEndpoint(doc); // #bsky_notif
143
+
144
+ // or use the generic helper for custom services
145
+ const custom = getAtprotoServiceEndpoint(doc, {
146
+ id: '#my_service',
147
+ type: 'MyServiceType', // optional type filter
148
+ });
149
+ ```
150
+
151
+ ### validating DID documents
152
+
153
+ use the validation schemas to check if a DID document is well-formed:
154
+
155
+ ```ts
156
+ import { defs } from '@atcute/identity';
157
+
158
+ const result = defs.didDocument.try(unknownData);
159
+ if (result.ok) {
160
+ // result.value is a validated DidDocument
161
+ console.log(result.value.id);
162
+ } else {
163
+ // validation failed
164
+ console.error('invalid DID document');
165
+ }
166
+ ```
167
+
168
+ the schema validates:
169
+
170
+ - required fields (`@context`, `id`)
171
+ - DID string format
172
+ - verification method structure and key formats
173
+ - service endpoint URLs
174
+ - no duplicate entries in arrays
175
+
176
+ ### type definitions
177
+
178
+ the package exports TypeScript types for DID document structures:
179
+
180
+ ```ts
181
+ import type { DidDocument, VerificationMethod, Service } from '@atcute/identity';
182
+
183
+ // DidDocument - the full DID document
184
+ // VerificationMethod - a verification method entry
185
+ // Service - a service endpoint entry
186
+ ```
package/dist/did.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../lib/did.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAOhF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,UAErD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,eAY1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAG,CAIhE,CAAC"}
1
+ {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../lib/did.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAOhF;;GAEG;AACH,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,KAAK,IAAI,UAErD,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,MAAM,KAAG,KAAK,IAAI,eAY1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,KAAG,CAIhE,CAAC"}
package/dist/did.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { isPlcDid } from './methods/plc.js';
2
2
  import { isAtprotoWebDid } from './methods/web.js';
3
- const FRAGMENT_RE = /^(?:[A-Za-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9A-Fa-f]{2})*$/;
3
+ const FRAGMENT_RE = /^(?:[A-Za-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})*$/;
4
4
  /**
5
5
  * checks if it's a DID identifier that is supported by atproto
6
6
  */
package/dist/did.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"did.js","sourceRoot":"","sources":["../lib/did.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,GAAG,yDAAyD,CAAC;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAuB,EAAE;IAClE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAA4B,EAAE;IAC5E,mBAAmB;IACnB,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACtF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAmB,GAAW,EAAK,EAAE;IACpE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,MAAW,CAAC;AACpB,CAAC,CAAC"}
1
+ {"version":3,"file":"did.js","sourceRoot":"","sources":["../lib/did.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,GAAG,wDAAwD,CAAC;AAE7E;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAuB,EAAE;IAClE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAA4B,EAAE;IAC5E,mBAAmB;IACnB,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACtF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAmB,GAAW,EAAK,EAAE;IACpE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,MAAW,CAAC;AACpB,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export * as defs from './typedefs.js';
2
- export * from './types.js';
3
- export * from './utils.js';
4
- export * from './did.js';
5
- export * from './methods/key.js';
6
- export * from './methods/plc.js';
7
- export * from './methods/web.js';
1
+ export * as defs from './typedefs.ts';
2
+ export * from './types.ts';
3
+ export * from './utils.ts';
4
+ export * from './did.ts';
5
+ export * from './methods/key.ts';
6
+ export * from './methods/plc.ts';
7
+ export * from './methods/web.ts';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -2,5 +2,5 @@ import type { Did } from '@atcute/lexicons';
2
2
  /**
3
3
  * checks if input is a did:key identifier
4
4
  */
5
- export declare const isKeyDid: (input: string) => input is Did<"key">;
5
+ export declare const isKeyDid: (input: string) => input is Did<'key'>;
6
6
  //# sourceMappingURL=key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../lib/methods/key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAI5C;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAE1D,CAAC"}
1
+ {"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../lib/methods/key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAI5C;;GAEG;AACH,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAE1D,CAAC"}
@@ -4,5 +4,5 @@ export declare const PLC_DID_RE: RegExp;
4
4
  /**
5
5
  * checks if input is a did:plc identifier
6
6
  */
7
- export declare const isPlcDid: (input: string) => input is Did<"plc">;
7
+ export declare const isPlcDid: (input: string) => input is Did<'plc'>;
8
8
  //# sourceMappingURL=plc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plc.d.ts","sourceRoot":"","sources":["../../lib/methods/plc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAEnD,yCAAyC;AACzC,eAAO,MAAM,UAAU,QAA6B,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAE1D,CAAC"}
1
+ {"version":3,"file":"plc.d.ts","sourceRoot":"","sources":["../../lib/methods/plc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAEnD,yCAAyC;AACzC,eAAO,MAAM,UAAU,QAA6B,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAE1D,CAAC"}
@@ -5,20 +5,20 @@ export declare const WEB_DID_RE: RegExp;
5
5
  export declare const ATPROTO_WEB_DID_RE: RegExp;
6
6
  /**
7
7
  * checks if input is a did:web identifier, note that you should probably use
8
- * `isAtprotoDidWeb` for atproto-related cases as atproto only supports a subset
8
+ * `isAtprotoWebDid` for atproto-related cases as atproto only supports a subset
9
9
  * of the did:web specification (namely, no custom paths)
10
10
  */
11
- export declare const isWebDid: (input: string) => input is Did<"web">;
11
+ export declare const isWebDid: (input: string) => input is Did<'web'>;
12
12
  /**
13
13
  * checks if input is a did:web identifier that is supported by atproto
14
14
  */
15
- export declare const isAtprotoWebDid: (input: string) => input is Did<"web">;
15
+ export declare const isAtprotoWebDid: (input: string) => input is Did<'web'>;
16
16
  /**
17
17
  * normalize a did:web identifier
18
18
  */
19
- export declare const normalizeWebDid: (did: Did<"web">) => Did<"web">;
19
+ export declare const normalizeWebDid: (did: Did<'web'>) => Did<'web'>;
20
20
  /**
21
21
  * converts did:web identifier into the DID document's URL
22
22
  */
23
- export declare const webDidToDocumentUrl: (did: Did<"web">) => URL;
23
+ export declare const webDidToDocumentUrl: (did: Did<'web'>) => URL;
24
24
  //# sourceMappingURL=web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../lib/methods/web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAEnD,yCAAyC;AACzC,eAAO,MAAM,UAAU,QAC8E,CAAC;AAEtG,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,QAC6D,CAAC;AAE7F;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAE1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAEjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,GAAG,CAAC,KAAK,CAAC,KAAG,GAAG,CAAC,KAAK,CAS1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,GAAG,CAAC,KAAK,CAAC,KAAG,GAgBrD,CAAC"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../lib/methods/web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAEnD,yCAAyC;AACzC,eAAO,MAAM,UAAU,QAC4E,CAAC;AAEpG,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,QAC2D,CAAC;AAE3F;;;;GAIG;AACH,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAE1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAEjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,QAAS,GAAG,CAAC,KAAK,CAAC,KAAG,GAAG,CAAC,KAAK,CAS1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAS,GAAG,CAAC,KAAK,CAAC,KAAG,GAgBrD,CAAC"}
@@ -1,10 +1,10 @@
1
1
  /** @deprecated use `isWebDid` instead */
2
- export const WEB_DID_RE = /^did:web:([a-zA-Z0-9%\-]+(?:(?:\.[a-zA-Z0-9%\-]+)*(?:\.[a-zA-Z]{2,}))?)?((?::[a-zA-Z0-9\-%.]+)+)?$/;
2
+ export const WEB_DID_RE = /^did:web:([a-zA-Z0-9%-]+(?:(?:\.[a-zA-Z0-9%-]+)*(?:\.[a-zA-Z]{2,}))?)?((?::[a-zA-Z0-9\-%.]+)+)?$/;
3
3
  /** @deprecated use `isAtprotoWebDid` instead */
4
- export const ATPROTO_WEB_DID_RE = /^did:web:([a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*(?:\.[a-zA-Z]{2,})|localhost(?:%3[aA]\d+)?)$/;
4
+ export const ATPROTO_WEB_DID_RE = /^did:web:([a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*(?:\.[a-zA-Z]{2,})|localhost(?:%3[aA]\d+)?)$/;
5
5
  /**
6
6
  * checks if input is a did:web identifier, note that you should probably use
7
- * `isAtprotoDidWeb` for atproto-related cases as atproto only supports a subset
7
+ * `isAtprotoWebDid` for atproto-related cases as atproto only supports a subset
8
8
  * of the did:web specification (namely, no custom paths)
9
9
  */
10
10
  export const isWebDid = (input) => {
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../lib/methods/web.ts"],"names":[],"mappings":"AAEA,yCAAyC;AACzC,MAAM,CAAC,MAAM,UAAU,GACtB,oGAAoG,CAAC;AAEtG,gDAAgD;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAC9B,2FAA2F,CAAC;AAE7F;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAuB,EAAE;IAC9D,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAuB,EAAE;IACrE,OAAO,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAe,EAAc,EAAE;IAC9D,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAEzE,IAAI,UAAU,GAAG,WAAW,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;IACrE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,UAAwB,CAAC;AACjC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAe,EAAO,EAAE;IAC3D,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAEzE,IAAI,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QACtB,QAAQ,GAAG,uBAAuB,CAAC;IACpC,CAAC;SAAM,CAAC;QACP,QAAQ,IAAI,WAAW,CAAC;IACzB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;IAClD,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAClC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../lib/methods/web.ts"],"names":[],"mappings":"AAEA,yCAAyC;AACzC,MAAM,CAAC,MAAM,UAAU,GACtB,kGAAkG,CAAC;AAEpG,gDAAgD;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAC9B,yFAAyF,CAAC;AAE3F;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAuB,EAAE;IAC9D,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAuB,EAAE;IACrE,OAAO,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAe,EAAc,EAAE;IAC9D,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAEzE,IAAI,UAAU,GAAG,WAAW,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;IACrE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,UAAU,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,UAAwB,CAAC;AACjC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAe,EAAO,EAAE;IAC3D,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAEzE,IAAI,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QACtB,QAAQ,GAAG,uBAAuB,CAAC;IACpC,CAAC;SAAM,CAAC;QACP,QAAQ,IAAI,WAAW,CAAC;IACzB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;IAClD,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAClC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import * as v from '@badrap/valita';
2
- import * as t from './types.js';
2
+ import * as t from './types.ts';
3
3
  /** @deprecated */
4
4
  export declare const FRAGMENT_RE: RegExp;
5
5
  /** @deprecated */
@@ -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,CAAC,MAAM,YAAY,CAAC;AAEhC,kBAAkB;AAClB,eAAO,MAAM,WAAW,QAAa,CAAC;AACtC,kBAAkB;AAClB,eAAO,MAAM,YAAY,QAA6B,CAAC;AAEvD,eAAO,MAAM,gBAAgB,gBAEV,CAAC;AAEpB,eAAO,MAAM,cAAc,gBAEK,CAAC;AAEjC,eAAO,MAAM,eAAe,gBAEI,CAAC;AAEjC,eAAO,MAAM,SAAS,mCAA4C,CAAC;AAEnE,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CA4BzD,CAAC;AAEJ,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CASpC,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAmF3C,CAAC"}
1
+ {"version":3,"file":"typedefs.d.ts","sourceRoot":"","sources":["../lib/typedefs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,kBAAkB;AAClB,eAAO,MAAM,WAAW,QAAa,CAAC;AACtC,kBAAkB;AAClB,eAAO,MAAM,YAAY,QAA6B,CAAC;AAEvD,eAAO,MAAM,gBAAgB,gBAEV,CAAC;AAEpB,eAAO,MAAM,cAAc,gBAEK,CAAC;AAEjC,eAAO,MAAM,eAAe,gBAEI,CAAC;AAEjC,eAAO,MAAM,SAAS,mCAA4C,CAAC;AAEnE,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CA4BzD,CAAC;AAEJ,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CASpC,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAqF3C,CAAC"}
package/dist/typedefs.js CHANGED
@@ -1,5 +1,5 @@
1
- import * as v from '@badrap/valita';
2
1
  import { isDid } from '@atcute/lexicons/syntax';
2
+ import * as v from '@badrap/valita';
3
3
  import * as t from './types.js';
4
4
  /** @deprecated */
5
5
  export const FRAGMENT_RE = /^#[^#]+$/;
@@ -49,7 +49,7 @@ export const service = v.object({
49
49
  });
50
50
  export const didDocument = v
51
51
  .object({
52
- '@context': v.array(rfc3968UriSchema),
52
+ '@context': v.array(rfc3968UriSchema).optional(),
53
53
  id: didString,
54
54
  alsoKnownAs: v
55
55
  .array(rfc3968UriSchema)
@@ -94,6 +94,7 @@ export const didDocument = v
94
94
  const { id: did, service: services } = input;
95
95
  if (services?.length) {
96
96
  const len = services.length;
97
+ // oxlint-disable-next-line no-new-array
97
98
  const identifiers = new Array(len);
98
99
  for (let i = 0; i < len; i++) {
99
100
  const service = services[i];
@@ -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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"}
package/dist/types.d.ts CHANGED
@@ -12,7 +12,7 @@ export interface Service {
12
12
  serviceEndpoint: string | Record<string, string> | (string | Record<string, string>)[];
13
13
  }
14
14
  export interface DidDocument {
15
- '@context': string[];
15
+ '@context'?: string[];
16
16
  id: Did;
17
17
  controller?: Did | Did[];
18
18
  alsoKnownAs?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;CACvF;AAED,MAAM,WAAW,WAAW;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,GAAG,CAAC;IACR,UAAU,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IACjD,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;CACvF;AAED,MAAM,WAAW,WAAW;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,EAAE,EAAE,GAAG,CAAC;IACR,UAAU,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IACjD,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB"}
package/dist/utils.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Handle } from '@atcute/lexicons';
2
- import * as t from './types.js';
2
+ import * as t from './types.ts';
3
3
  export interface VerificationMaterial {
4
4
  type: string;
5
5
  publicKeyMultibase: string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;CAC3B;AAID,eAAO,MAAM,wBAAwB,GAAI,OAAO,MAAM,KAAG,OAiBxD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GACnC,KAAK,CAAC,CAAC,WAAW,EAClB,IAAI,IAAI,MAAM,EAAE,KACd,oBAAoB,GAAG,SAqBzB,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,KAAK,CAAC,CAAC,WAAW,KAAG,oBAAoB,GAAG,SAE1F,CAAC;AAEF,eAAO,MAAM,qCAAqC,GACjD,KAAK,CAAC,CAAC,WAAW,KAChB,oBAAoB,GAAG,SAEzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,IAAI,GAAG,SAyBrE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACrC,KAAK,CAAC,CAAC,WAAW,EAClB,WAAW;IAAE,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAC5C,MAAM,GAAG,SA+BX,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,KAAK,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,SAK5D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,KAAK,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,SAKhE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,KAAK,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,SAKpE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,KAAK,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,SAKvE,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,KAAK,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,SAK5E,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;CAC3B;AAID,eAAO,MAAM,wBAAwB,UAAW,MAAM,KAAG,OAiBxD,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAC9B,CAAC,CAAC,WAAW,MACd,IAAI,MAAM,EAAE,KACd,oBAAoB,GAAG,SAqBzB,CAAC;AAEF,eAAO,MAAM,8BAA8B,QAAS,CAAC,CAAC,WAAW,KAAG,oBAAoB,GAAG,SAE1F,CAAC;AAEF,eAAO,MAAM,qCAAqC,QAC5C,CAAC,CAAC,WAAW,KAChB,oBAAoB,GAAG,SAEzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,IAAI,GAAG,SAyBrE,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAChC,CAAC,CAAC,WAAW,aACP;IAAE,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAC5C,MAAM,GAAG,SA+BX,CAAC;AAEF,eAAO,MAAM,cAAc,QAAS,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,SAK5D,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,SAKhE,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAS,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,SAKpE,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAS,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,SAKvE,CAAC;AAEF,eAAO,MAAM,8BAA8B,QAAS,CAAC,CAAC,WAAW,KAAG,MAAM,GAAG,SAK5E,CAAC"}
package/lib/did.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import type { AtprotoAudience, AtprotoDid, Did } from '@atcute/lexicons/syntax';
2
2
 
3
- import { isPlcDid } from './methods/plc.js';
4
- import { isAtprotoWebDid } from './methods/web.js';
3
+ import { isPlcDid } from './methods/plc.ts';
4
+ import { isAtprotoWebDid } from './methods/web.ts';
5
5
 
6
- const FRAGMENT_RE = /^(?:[A-Za-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9A-Fa-f]{2})*$/;
6
+ const FRAGMENT_RE = /^(?:[A-Za-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})*$/;
7
7
 
8
8
  /**
9
9
  * checks if it's a DID identifier that is supported by atproto
package/lib/index.ts CHANGED
@@ -1,9 +1,9 @@
1
- export * as defs from './typedefs.js';
2
- export * from './types.js';
1
+ export * as defs from './typedefs.ts';
2
+ export * from './types.ts';
3
3
 
4
- export * from './utils.js';
4
+ export * from './utils.ts';
5
5
 
6
- export * from './did.js';
7
- export * from './methods/key.js';
8
- export * from './methods/plc.js';
9
- export * from './methods/web.js';
6
+ export * from './did.ts';
7
+ export * from './methods/key.ts';
8
+ export * from './methods/plc.ts';
9
+ export * from './methods/web.ts';
@@ -2,15 +2,15 @@ import type { Did } from '@atcute/lexicons/syntax';
2
2
 
3
3
  /** @deprecated use `isWebDid` instead */
4
4
  export const WEB_DID_RE =
5
- /^did:web:([a-zA-Z0-9%\-]+(?:(?:\.[a-zA-Z0-9%\-]+)*(?:\.[a-zA-Z]{2,}))?)?((?::[a-zA-Z0-9\-%.]+)+)?$/;
5
+ /^did:web:([a-zA-Z0-9%-]+(?:(?:\.[a-zA-Z0-9%-]+)*(?:\.[a-zA-Z]{2,}))?)?((?::[a-zA-Z0-9\-%.]+)+)?$/;
6
6
 
7
7
  /** @deprecated use `isAtprotoWebDid` instead */
8
8
  export const ATPROTO_WEB_DID_RE =
9
- /^did:web:([a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*(?:\.[a-zA-Z]{2,})|localhost(?:%3[aA]\d+)?)$/;
9
+ /^did:web:([a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*(?:\.[a-zA-Z]{2,})|localhost(?:%3[aA]\d+)?)$/;
10
10
 
11
11
  /**
12
12
  * checks if input is a did:web identifier, note that you should probably use
13
- * `isAtprotoDidWeb` for atproto-related cases as atproto only supports a subset
13
+ * `isAtprotoWebDid` for atproto-related cases as atproto only supports a subset
14
14
  * of the did:web specification (namely, no custom paths)
15
15
  */
16
16
  export const isWebDid = (input: string): input is Did<'web'> => {
package/lib/typedefs.ts CHANGED
@@ -1,8 +1,8 @@
1
- import * as v from '@badrap/valita';
2
-
3
1
  import { isDid } from '@atcute/lexicons/syntax';
4
2
 
5
- import * as t from './types.js';
3
+ import * as v from '@badrap/valita';
4
+
5
+ import * as t from './types.ts';
6
6
 
7
7
  /** @deprecated */
8
8
  export const FRAGMENT_RE = /^#[^#]+$/;
@@ -66,7 +66,7 @@ export const service: v.Type<t.Service> = v.object({
66
66
 
67
67
  export const didDocument: v.Type<t.DidDocument> = v
68
68
  .object({
69
- '@context': v.array(rfc3968UriSchema),
69
+ '@context': v.array(rfc3968UriSchema).optional(),
70
70
 
71
71
  id: didString,
72
72
 
@@ -119,6 +119,8 @@ export const didDocument: v.Type<t.DidDocument> = v
119
119
 
120
120
  if (services?.length) {
121
121
  const len = services.length;
122
+
123
+ // oxlint-disable-next-line no-new-array
122
124
  const identifiers = new Array(len);
123
125
 
124
126
  for (let i = 0; i < len; i++) {
package/lib/types.ts CHANGED
@@ -15,7 +15,7 @@ export interface Service {
15
15
  }
16
16
 
17
17
  export interface DidDocument {
18
- '@context': string[];
18
+ '@context'?: string[];
19
19
  id: Did;
20
20
  controller?: Did | Did[];
21
21
  alsoKnownAs?: string[];
package/lib/utils.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { Handle } from '@atcute/lexicons';
2
2
  import { isHandle } from '@atcute/lexicons/syntax';
3
3
 
4
- import * as t from './types.js';
4
+ import * as t from './types.ts';
5
5
 
6
6
  export interface VerificationMaterial {
7
7
  type: string;
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
- "type": "module",
3
2
  "name": "@atcute/identity",
4
- "version": "1.1.3",
3
+ "version": "1.1.5",
5
4
  "description": "syntax, type definitions and schemas for atproto handles, DIDs and DID documents",
6
5
  "keywords": [
7
6
  "atproto",
@@ -16,22 +15,31 @@
16
15
  "dist/",
17
16
  "lib/",
18
17
  "!lib/**/*.bench.ts",
19
- "!lib/**/*.test.ts"
18
+ "!lib/**/*.test.ts",
19
+ "!dist/**/*.{test,bench}.*"
20
20
  ],
21
+ "type": "module",
22
+ "sideEffects": false,
21
23
  "exports": {
22
24
  ".": "./dist/index.js"
23
25
  },
24
- "sideEffects": false,
25
- "devDependencies": {
26
- "@types/bun": "^1.3.1"
26
+ "publishConfig": {
27
+ "access": "public"
27
28
  },
28
29
  "dependencies": {
29
30
  "@badrap/valita": "^0.4.6",
30
- "@atcute/lexicons": "^1.2.4"
31
+ "@atcute/lexicons": "^1.3.1"
32
+ },
33
+ "devDependencies": {
34
+ "@vitest/coverage-v8": "^4.1.5",
35
+ "vitest": "^4.1.5"
36
+ },
37
+ "peerDependencies": {
38
+ "@atcute/lexicons": "^1.0.0"
31
39
  },
32
40
  "scripts": {
33
- "build": "tsc --project tsconfig.build.json",
34
- "test": "bun test --coverage",
41
+ "build": "tsgo",
42
+ "test": "vitest",
35
43
  "prepublish": "rm -rf dist; pnpm run build"
36
44
  }
37
45
  }