@atcute/identity 1.0.3 → 1.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.
package/dist/did.d.ts CHANGED
@@ -7,3 +7,4 @@ export declare const isAtprotoDid: (input: string) => input is AtprotoDid;
7
7
  * returns the DID's method
8
8
  */
9
9
  export declare const extractDidMethod: <M extends string>(did: Did<M>) => M;
10
+ //# sourceMappingURL=did.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../lib/did.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAK/D;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,UAErD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAG,CAIhE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,3 +5,4 @@ export * from './did.js';
5
5
  export * from './methods/key.js';
6
6
  export * from './methods/plc.js';
7
7
  export * from './methods/web.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,cAAc,YAAY,CAAC;AAE3B,cAAc,YAAY,CAAC;AAE3B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
@@ -3,3 +3,4 @@ import type { Did } from '@atcute/lexicons';
3
3
  * checks if input is a did:key identifier
4
4
  */
5
5
  export declare const isKeyDid: (input: string) => input is Did<"key">;
6
+ //# sourceMappingURL=key.d.ts.map
@@ -0,0 +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"}
@@ -5,3 +5,4 @@ export declare const PLC_DID_RE: RegExp;
5
5
  * checks if input is a did:plc identifier
6
6
  */
7
7
  export declare const isPlcDid: (input: string) => input is Did<"plc">;
8
+ //# sourceMappingURL=plc.d.ts.map
@@ -0,0 +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"}
@@ -21,3 +21,4 @@ export declare const normalizeWebDid: (did: Did<"web">) => Did<"web">;
21
21
  * converts did:web identifier into the DID document's URL
22
22
  */
23
23
  export declare const webDidToDocumentUrl: (did: Did<"web">) => URL;
24
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +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"}
@@ -11,3 +11,4 @@ export declare const didString: v.Type<`did:${string}:${string}`>;
11
11
  export declare const verificationMethod: v.Type<t.VerificationMethod>;
12
12
  export declare const service: v.Type<t.Service>;
13
13
  export declare const didDocument: v.Type<t.DidDocument>;
14
+ //# sourceMappingURL=typedefs.d.ts.map
@@ -0,0 +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"}
package/dist/types.d.ts CHANGED
@@ -20,3 +20,4 @@ export interface DidDocument {
20
20
  authentication?: (string | VerificationMethod)[];
21
21
  service?: Service[];
22
22
  }
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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"}
package/dist/utils.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Handle } from '@atcute/lexicons';
1
2
  import * as t from './types.js';
2
3
  export interface VerificationMaterial {
3
4
  type: string;
@@ -7,6 +8,7 @@ export declare const isAtprotoServiceEndpoint: (input: string) => boolean;
7
8
  export declare const getVerificationMaterial: (doc: t.DidDocument, id: `#${string}`) => VerificationMaterial | undefined;
8
9
  export declare const getAtprotoVerificationMaterial: (doc: t.DidDocument) => VerificationMaterial | undefined;
9
10
  export declare const getAtprotoLabelerVerificationMaterial: (doc: t.DidDocument) => VerificationMaterial | undefined;
11
+ export declare const getAtprotoHandle: (doc: t.DidDocument) => Handle | null | undefined;
10
12
  export declare const getAtprotoServiceEndpoint: (doc: t.DidDocument, predicate: {
11
13
  id: `#${string}`;
12
14
  type?: string;
@@ -16,3 +18,4 @@ export declare const getLabelerEndpoint: (doc: t.DidDocument) => string | undefi
16
18
  export declare const getBlueskyChatEndpoint: (doc: t.DidDocument) => string | undefined;
17
19
  export declare const getBlueskyFeedgenEndpoint: (doc: t.DidDocument) => string | undefined;
18
20
  export declare const getBlueskyNotificationEndpoint: (doc: t.DidDocument) => string | undefined;
21
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +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"}
package/dist/utils.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { isHandle } from '@atcute/lexicons/syntax';
1
2
  import * as t from './types.js';
2
3
  const isUrlParseSupported = 'parse' in URL;
3
4
  export const isAtprotoServiceEndpoint = (input) => {
@@ -40,6 +41,25 @@ export const getAtprotoVerificationMaterial = (doc) => {
40
41
  export const getAtprotoLabelerVerificationMaterial = (doc) => {
41
42
  return getVerificationMaterial(doc, '#atproto_label');
42
43
  };
44
+ export const getAtprotoHandle = (doc) => {
45
+ const alsoKnownAs = doc.alsoKnownAs;
46
+ if (!alsoKnownAs) {
47
+ return null;
48
+ }
49
+ const PREFIX = 'at://';
50
+ for (let idx = 0, len = alsoKnownAs.length; idx < len; idx++) {
51
+ const aka = alsoKnownAs[idx];
52
+ if (!aka.startsWith(PREFIX)) {
53
+ continue;
54
+ }
55
+ const raw = aka.slice(PREFIX.length);
56
+ if (!isHandle(raw)) {
57
+ return undefined;
58
+ }
59
+ return raw;
60
+ }
61
+ return null;
62
+ };
43
63
  export const getAtprotoServiceEndpoint = (doc, predicate) => {
44
64
  const services = doc.service;
45
65
  if (!services) {
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"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"}
package/lib/utils.ts CHANGED
@@ -1,3 +1,6 @@
1
+ import type { Handle } from '@atcute/lexicons';
2
+ import { isHandle } from '@atcute/lexicons/syntax';
3
+
1
4
  import * as t from './types.js';
2
5
 
3
6
  export interface VerificationMaterial {
@@ -62,6 +65,33 @@ export const getAtprotoLabelerVerificationMaterial = (
62
65
  return getVerificationMaterial(doc, '#atproto_label');
63
66
  };
64
67
 
68
+ export const getAtprotoHandle = (doc: t.DidDocument): Handle | null | undefined => {
69
+ const alsoKnownAs = doc.alsoKnownAs;
70
+ if (!alsoKnownAs) {
71
+ return null;
72
+ }
73
+
74
+ const PREFIX = 'at://';
75
+
76
+ for (let idx = 0, len = alsoKnownAs.length; idx < len; idx++) {
77
+ const aka = alsoKnownAs[idx];
78
+
79
+ if (!aka.startsWith(PREFIX)) {
80
+ continue;
81
+ }
82
+
83
+ const raw = aka.slice(PREFIX.length);
84
+
85
+ if (!isHandle(raw)) {
86
+ return undefined;
87
+ }
88
+
89
+ return raw;
90
+ }
91
+
92
+ return null;
93
+ };
94
+
65
95
  export const getAtprotoServiceEndpoint = (
66
96
  doc: t.DidDocument,
67
97
  predicate: { id: `#${string}`; type?: string },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@atcute/identity",
4
- "version": "1.0.3",
4
+ "version": "1.1.1",
5
5
  "description": "syntax, type definitions and schemas for atproto handles, DIDs and DID documents",
6
6
  "keywords": [
7
7
  "atproto",
@@ -23,11 +23,11 @@
23
23
  },
24
24
  "sideEffects": false,
25
25
  "devDependencies": {
26
- "@types/bun": "^1.2.15"
26
+ "@types/bun": "^1.2.21"
27
27
  },
28
28
  "dependencies": {
29
- "@badrap/valita": "^0.4.5",
30
- "@atcute/lexicons": "^1.0.4"
29
+ "@badrap/valita": "^0.4.6",
30
+ "@atcute/lexicons": "^1.2.2"
31
31
  },
32
32
  "scripts": {
33
33
  "build": "tsc --project tsconfig.build.json",