@atcute/identity 1.1.0 → 1.1.2

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
@@ -1,9 +1,11 @@
1
- import type { AtprotoDid, Did } from '@atcute/lexicons/syntax';
1
+ import type { AtprotoAudience, AtprotoDid, Did } from '@atcute/lexicons/syntax';
2
2
  /**
3
3
  * checks if it's a DID identifier that is supported by atproto
4
4
  */
5
5
  export declare const isAtprotoDid: (input: string) => input is AtprotoDid;
6
+ export declare const isAtprotoAudience: (input: string) => input is AtprotoAudience;
6
7
  /**
7
8
  * returns the DID's method
8
9
  */
9
10
  export declare const extractDidMethod: <M extends string>(did: Did<M>) => M;
11
+ //# 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,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"}
package/dist/did.js CHANGED
@@ -1,11 +1,23 @@
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
4
  /**
4
5
  * checks if it's a DID identifier that is supported by atproto
5
6
  */
6
7
  export const isAtprotoDid = (input) => {
7
8
  return isPlcDid(input) || isAtprotoWebDid(input);
8
9
  };
10
+ export const isAtprotoAudience = (input) => {
11
+ // 'did:web:a.co#f'
12
+ if (input.length < 14) {
13
+ return false;
14
+ }
15
+ const isep = input.indexOf('#', 12);
16
+ if (isep === -1) {
17
+ return false;
18
+ }
19
+ return FRAGMENT_RE.test(input.slice(isep + 1)) && isAtprotoAudience(input.slice(0, isep));
20
+ };
9
21
  /**
10
22
  * returns the DID's method
11
23
  */
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;;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;;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,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,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3F,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
@@ -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
@@ -18,3 +18,4 @@ export declare const getLabelerEndpoint: (doc: t.DidDocument) => string | undefi
18
18
  export declare const getBlueskyChatEndpoint: (doc: t.DidDocument) => string | undefined;
19
19
  export declare const getBlueskyFeedgenEndpoint: (doc: t.DidDocument) => string | undefined;
20
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/lib/did.ts CHANGED
@@ -1,8 +1,10 @@
1
- import type { AtprotoDid, Did } from '@atcute/lexicons/syntax';
1
+ import type { AtprotoAudience, AtprotoDid, Did } from '@atcute/lexicons/syntax';
2
2
 
3
3
  import { isPlcDid } from './methods/plc.js';
4
4
  import { isAtprotoWebDid } from './methods/web.js';
5
5
 
6
+ const FRAGMENT_RE = /^(?:[A-Za-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9A-Fa-f]{2})*$/;
7
+
6
8
  /**
7
9
  * checks if it's a DID identifier that is supported by atproto
8
10
  */
@@ -10,6 +12,20 @@ export const isAtprotoDid = (input: string): input is AtprotoDid => {
10
12
  return isPlcDid(input) || isAtprotoWebDid(input);
11
13
  };
12
14
 
15
+ export const isAtprotoAudience = (input: string): input is AtprotoAudience => {
16
+ // 'did:web:a.co#f'
17
+ if (input.length < 14) {
18
+ return false;
19
+ }
20
+
21
+ const isep = input.indexOf('#', 12);
22
+ if (isep === -1) {
23
+ return false;
24
+ }
25
+
26
+ return FRAGMENT_RE.test(input.slice(isep + 1)) && isAtprotoAudience(input.slice(0, isep));
27
+ };
28
+
13
29
  /**
14
30
  * returns the DID's method
15
31
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@atcute/identity",
4
- "version": "1.1.0",
4
+ "version": "1.1.2",
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.18"
26
+ "@types/bun": "^1.3.1"
27
27
  },
28
28
  "dependencies": {
29
- "@badrap/valita": "^0.4.5",
30
- "@atcute/lexicons": "^1.1.1"
29
+ "@badrap/valita": "^0.4.6",
30
+ "@atcute/lexicons": "^1.2.3"
31
31
  },
32
32
  "scripts": {
33
33
  "build": "tsc --project tsconfig.build.json",