@atproto/did 0.1.0 → 0.1.1-rc.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.
@@ -0,0 +1,11 @@
1
+ import { Did } from './did.js';
2
+ export type AtprotoIdentityDidMethods = 'plc' | 'web';
3
+ export type AtprotoDid = Did<AtprotoIdentityDidMethods>;
4
+ export declare function isAtprotoDid(input: unknown): input is AtprotoDid;
5
+ export declare function asAtprotoDid(input: unknown): AtprotoDid;
6
+ export declare function checkAtprotoDid(input: unknown): asserts input is AtprotoDid;
7
+ /**
8
+ * @see {@link https://atproto.com/specs/did#blessed-did-methods}
9
+ */
10
+ export declare function isAtprotoDidWeb(input: unknown): input is Did<'web'>;
11
+ //# sourceMappingURL=atproto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atproto.d.ts","sourceRoot":"","sources":["../src/atproto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAY9B,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,KAAK,CAAA;AACrD,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAA;AAEvD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAahE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAGvD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAa3E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAoBnE"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAtprotoDidWeb = exports.checkAtprotoDid = exports.asAtprotoDid = exports.isAtprotoDid = void 0;
4
+ const did_error_js_1 = require("./did-error.js");
5
+ const methods_js_1 = require("./methods.js");
6
+ function isAtprotoDid(input) {
7
+ // Optimized equivalent of:
8
+ // return isDidPlc(input) || isAtprotoDidWeb(input)
9
+ if (typeof input !== 'string') {
10
+ return false;
11
+ }
12
+ else if (input.startsWith(methods_js_1.DID_PLC_PREFIX)) {
13
+ return (0, methods_js_1.isDidPlc)(input);
14
+ }
15
+ else if (input.startsWith(methods_js_1.DID_WEB_PREFIX)) {
16
+ return isAtprotoDidWeb(input);
17
+ }
18
+ else {
19
+ return false;
20
+ }
21
+ }
22
+ exports.isAtprotoDid = isAtprotoDid;
23
+ function asAtprotoDid(input) {
24
+ checkAtprotoDid(input);
25
+ return input;
26
+ }
27
+ exports.asAtprotoDid = asAtprotoDid;
28
+ function checkAtprotoDid(input) {
29
+ if (typeof input !== 'string') {
30
+ throw new did_error_js_1.InvalidDidError(typeof input, `DID must be a string`);
31
+ }
32
+ else if (input.startsWith(methods_js_1.DID_PLC_PREFIX)) {
33
+ (0, methods_js_1.checkDidPlc)(input);
34
+ }
35
+ else if (input.startsWith(methods_js_1.DID_WEB_PREFIX)) {
36
+ (0, methods_js_1.checkDidWeb)(input);
37
+ }
38
+ else {
39
+ throw new did_error_js_1.InvalidDidError(input, `Atproto only allows "plc" and "web" DID methods`);
40
+ }
41
+ }
42
+ exports.checkAtprotoDid = checkAtprotoDid;
43
+ /**
44
+ * @see {@link https://atproto.com/specs/did#blessed-did-methods}
45
+ */
46
+ function isAtprotoDidWeb(input) {
47
+ // Optimization: make cheap checks first
48
+ if (typeof input !== 'string') {
49
+ return false;
50
+ }
51
+ // Path are not allowed
52
+ if (input.includes(':', methods_js_1.DID_WEB_PREFIX.length)) {
53
+ return false;
54
+ }
55
+ // Port numbers are not allowed, except for localhost
56
+ if (input.includes('%3A', methods_js_1.DID_WEB_PREFIX.length) &&
57
+ !input.startsWith('did:web:localhost%3A')) {
58
+ return false;
59
+ }
60
+ return (0, methods_js_1.isDidWeb)(input);
61
+ }
62
+ exports.isAtprotoDidWeb = isAtprotoDidWeb;
63
+ //# sourceMappingURL=atproto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atproto.js","sourceRoot":"","sources":["../src/atproto.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAEhD,6CAOqB;AAOrB,SAAgB,YAAY,CAAC,KAAc;IACzC,2BAA2B;IAC3B,mDAAmD;IAEnD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,UAAU,CAAC,2BAAc,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAA,qBAAQ,EAAC,KAAK,CAAC,CAAA;IACxB,CAAC;SAAM,IAAI,KAAK,CAAC,UAAU,CAAC,2BAAc,CAAC,EAAE,CAAC;QAC5C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAbD,oCAaC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,eAAe,CAAC,KAAK,CAAC,CAAA;IACtB,OAAO,KAAK,CAAA;AACd,CAAC;AAHD,oCAGC;AAED,SAAgB,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,8BAAe,CAAC,OAAO,KAAK,EAAE,sBAAsB,CAAC,CAAA;IACjE,CAAC;SAAM,IAAI,KAAK,CAAC,UAAU,CAAC,2BAAc,CAAC,EAAE,CAAC;QAC5C,IAAA,wBAAW,EAAC,KAAK,CAAC,CAAA;IACpB,CAAC;SAAM,IAAI,KAAK,CAAC,UAAU,CAAC,2BAAc,CAAC,EAAE,CAAC;QAC5C,IAAA,wBAAW,EAAC,KAAK,CAAC,CAAA;IACpB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,8BAAe,CACvB,KAAK,EACL,iDAAiD,CAClD,CAAA;IACH,CAAC;AACH,CAAC;AAbD,0CAaC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,wCAAwC;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,uBAAuB;IACvB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,2BAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,qDAAqD;IACrD,IACE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,2BAAc,CAAC,MAAM,CAAC;QAC5C,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,EACzC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAA,qBAAQ,EAAC,KAAK,CAAC,CAAA;AACxB,CAAC;AApBD,0CAoBC"}
package/dist/did.d.ts CHANGED
@@ -52,5 +52,6 @@ export declare function extractDidMethod<D extends Did>(did: D): D extends `did:
52
52
  export declare function checkDidMsid(input: string, start?: number, end?: number): void;
53
53
  export declare function checkDid(input: unknown): asserts input is Did;
54
54
  export declare function isDid(input: unknown): input is Did;
55
+ export declare function asDid(input: unknown): Did;
55
56
  export declare const didSchema: z.ZodEffects<z.ZodString, `did:${string}:${string}`, string>;
56
57
  //# sourceMappingURL=did.d.ts.map
package/dist/did.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../src/did.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,QAAA,MAAM,UAAU,SAAS,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAA;AAE9E;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,MAAM,SAAS,CAAC,GACzC,MAAM,GACN,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAE9B,KAAK,gBAAgB,GAAG,SAAS,GAAG,cAAc,CAAA;AAClD,KAAK,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAC1E,KAAK,cAAc,GACf,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAA;AAEP,KAAK,mBAAmB,CACtB,CAAC,EACD,GAAG,SAAS,MAAM,IAChB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAChC,CAAC,SAAS,gBAAgB,GACxB,mBAAmB,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GACpC,KAAK,GACP,GAAG,SAAS,EAAE,GACZ,KAAK,GACL,GAAG,CAAA;AAET;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,EACT,GAAG,SAAe,GACjB,IAAI,CA0BN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC,iFAIrD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,EACT,GAAG,SAAe,GACjB,IAAI,CAuEN;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAqB7D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAUlD;AAED,eAAO,MAAM,SAAS,8DAalB,CAAA"}
1
+ {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../src/did.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,QAAA,MAAM,UAAU,SAAS,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAA;AAE9E;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,MAAM,SAAS,CAAC,GACzC,MAAM,GACN,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAE9B,KAAK,gBAAgB,GAAG,SAAS,GAAG,cAAc,CAAA;AAClD,KAAK,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAC1E,KAAK,cAAc,GACf,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAA;AAEP,KAAK,mBAAmB,CACtB,CAAC,EACD,GAAG,SAAS,MAAM,IAChB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAChC,CAAC,SAAS,gBAAgB,GACxB,mBAAmB,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GACpC,KAAK,GACP,GAAG,SAAS,EAAE,GACZ,KAAK,GACL,GAAG,CAAA;AAET;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,EACT,GAAG,SAAe,GACjB,IAAI,CA0BN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC,iFAIrD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,KAAK,SAAI,EACT,GAAG,SAAe,GACjB,IAAI,CAuEN;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAqB7D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAYlD;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAGzC;AAED,eAAO,MAAM,SAAS,8DAalB,CAAA"}
package/dist/did.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.didSchema = exports.isDid = exports.checkDid = exports.checkDidMsid = exports.extractDidMethod = exports.checkDidMethod = exports.DID_PREFIX = void 0;
3
+ exports.didSchema = exports.asDid = exports.isDid = exports.checkDid = exports.checkDidMsid = exports.extractDidMethod = exports.checkDidMethod = exports.DID_PREFIX = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const did_error_js_1 = require("./did-error.js");
6
6
  const DID_PREFIX = 'did:';
@@ -126,10 +126,16 @@ function isDid(input) {
126
126
  if (err instanceof did_error_js_1.DidError) {
127
127
  return false;
128
128
  }
129
+ // Unexpected TypeError (should never happen)
129
130
  throw err;
130
131
  }
131
132
  }
132
133
  exports.isDid = isDid;
134
+ function asDid(input) {
135
+ checkDid(input);
136
+ return input;
137
+ }
138
+ exports.asDid = asDid;
133
139
  exports.didSchema = zod_1.z
134
140
  .string()
135
141
  .superRefine((value, ctx) => {
package/dist/did.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"did.js","sourceRoot":"","sources":["../src/did.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"did.js","sourceRoot":"","sources":["../src/did.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './atproto.js';
1
2
  export * from './did-document.js';
2
3
  export * from './did-error.js';
3
4
  export * from './did.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA"}
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./atproto.js"), exports);
17
18
  __exportStar(require("./did-document.js"), exports);
18
19
  __exportStar(require("./did-error.js"), exports);
19
20
  __exportStar(require("./did.js"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,iDAA8B;AAC9B,2CAAwB;AACxB,+CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,oDAAiC;AACjC,iDAA8B;AAC9B,2CAAwB;AACxB,+CAA4B"}
@@ -2,5 +2,6 @@ import { Did } from '../did.js';
2
2
  declare const DID_PLC_PREFIX = "did:plc:";
3
3
  export { DID_PLC_PREFIX };
4
4
  export declare function isDidPlc(input: unknown): input is Did<'plc'>;
5
- export declare function checkDidPlc(input: string): asserts input is Did<'plc'>;
5
+ export declare function asDidPlc(input: unknown): Did<'plc'>;
6
+ export declare function checkDidPlc(input: unknown): asserts input is Did<'plc'>;
6
7
  //# sourceMappingURL=plc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plc.d.ts","sourceRoot":"","sources":["../../src/methods/plc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAE/B,QAAA,MAAM,cAAc,aAAa,CAAA;AAIjC,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAQ5D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAoBtE"}
1
+ {"version":3,"file":"plc.d.ts","sourceRoot":"","sources":["../../src/methods/plc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAE/B,QAAA,MAAM,cAAc,aAAa,CAAA;AAIjC,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAU5D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAGnD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAwBvE"}
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkDidPlc = exports.isDidPlc = exports.DID_PLC_PREFIX = void 0;
3
+ exports.checkDidPlc = exports.asDidPlc = exports.isDidPlc = exports.DID_PLC_PREFIX = void 0;
4
4
  const did_error_js_1 = require("../did-error.js");
5
5
  const DID_PLC_PREFIX = `did:plc:`;
6
6
  exports.DID_PLC_PREFIX = DID_PLC_PREFIX;
7
7
  const DID_PLC_PREFIX_LENGTH = DID_PLC_PREFIX.length;
8
8
  const DID_PLC_LENGTH = 32;
9
9
  function isDidPlc(input) {
10
+ // Optimization: make cheap checks first
10
11
  if (typeof input !== 'string')
11
12
  return false;
12
13
  try {
@@ -18,7 +19,15 @@ function isDidPlc(input) {
18
19
  }
19
20
  }
20
21
  exports.isDidPlc = isDidPlc;
22
+ function asDidPlc(input) {
23
+ checkDidPlc(input);
24
+ return input;
25
+ }
26
+ exports.asDidPlc = asDidPlc;
21
27
  function checkDidPlc(input) {
28
+ if (typeof input !== 'string') {
29
+ throw new did_error_js_1.InvalidDidError(typeof input, `DID must be a string`);
30
+ }
22
31
  if (input.length !== DID_PLC_LENGTH) {
23
32
  throw new did_error_js_1.InvalidDidError(input, `did:plc must be ${DID_PLC_LENGTH} characters long`);
24
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plc.js","sourceRoot":"","sources":["../../src/methods/plc.ts"],"names":[],"mappings":";;;AAAA,kDAAiD;AAGjD,MAAM,cAAc,GAAG,UAAU,CAAA;AAIxB,wCAAc;AAHvB,MAAM,qBAAqB,GAAG,cAAc,CAAC,MAAM,CAAA;AACnD,MAAM,cAAc,GAAG,EAAE,CAAA;AAIzB,SAAgB,QAAQ,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,CAAC;QACH,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AARD,4BAQC;AAED,SAAgB,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACpC,MAAM,IAAI,8BAAe,CACvB,KAAK,EACL,mBAAmB,cAAc,kBAAkB,CACpD,CAAA;IACH,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,8BAAe,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,CAAS,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,qBAAqB,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5D,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACvB,6BAA6B;QAC7B,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,8BAAe,CAAC,KAAK,EAAE,iCAAiC,CAAC,EAAE,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;AACH,CAAC;AApBD,kCAoBC"}
1
+ {"version":3,"file":"plc.js","sourceRoot":"","sources":["../../src/methods/plc.ts"],"names":[],"mappings":";;;AAAA,kDAAiD;AAGjD,MAAM,cAAc,GAAG,UAAU,CAAA;AAIxB,wCAAc;AAHvB,MAAM,qBAAqB,GAAG,cAAc,CAAC,MAAM,CAAA;AACnD,MAAM,cAAc,GAAG,EAAE,CAAA;AAIzB,SAAgB,QAAQ,CAAC,KAAc;IACrC,wCAAwC;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,IAAI,CAAC;QACH,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAVD,4BAUC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,WAAW,CAAC,KAAK,CAAC,CAAA;IAClB,OAAO,KAAK,CAAA;AACd,CAAC;AAHD,4BAGC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,8BAAe,CAAC,OAAO,KAAK,EAAE,sBAAsB,CAAC,CAAA;IACjE,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QACpC,MAAM,IAAI,8BAAe,CACvB,KAAK,EACL,mBAAmB,cAAc,kBAAkB,CACpD,CAAA;IACH,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,8BAAe,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,CAAS,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,qBAAqB,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5D,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACvB,6BAA6B;QAC7B,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,8BAAe,CAAC,KAAK,EAAE,iCAAiC,CAAC,EAAE,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;AACH,CAAC;AAxBD,kCAwBC"}
@@ -2,15 +2,10 @@ import { Did } from '../did.js';
2
2
  export declare const DID_WEB_PREFIX = "did:web:";
3
3
  /**
4
4
  * This function checks if the input is a valid Web DID, as per DID spec.
5
- * ATPROTO adds additional constraints to allowed DID values for the `did:web`
6
- * method. Use {@link isAtprotoDidWeb} if that's what you need.
7
5
  */
8
6
  export declare function isDidWeb(input: unknown): input is Did<'web'>;
9
- /**
10
- * @see {@link https://atproto.com/specs/did#blessed-did-methods}
11
- */
12
- export declare function isAtprotoDidWeb(input: unknown): input is Did<'web'>;
13
- export declare function checkDidWeb(input: string): asserts input is Did<'web'>;
7
+ export declare function asDidWeb(input: unknown): Did<'web'>;
8
+ export declare function checkDidWeb(input: unknown): asserts input is Did<'web'>;
14
9
  export declare function didWebToUrl(did: string): URL;
15
10
  export declare function urlToDidWeb(url: URL): Did<'web'>;
16
11
  //# sourceMappingURL=web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/methods/web.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAgB,MAAM,WAAW,CAAA;AAE7C,eAAO,MAAM,cAAc,aAAa,CAAA;AAExC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAQ5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAoBnE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAEtE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAmB5C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAOhD"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/methods/web.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAgB,MAAM,WAAW,CAAA;AAE7C,eAAO,MAAM,cAAc,aAAkC,CAAA;AAE7D;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAU5D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAGnD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAMvE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAmB5C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAOhD"}
@@ -1,19 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.urlToDidWeb = exports.didWebToUrl = exports.checkDidWeb = exports.isAtprotoDidWeb = exports.isDidWeb = exports.DID_WEB_PREFIX = void 0;
3
+ exports.urlToDidWeb = exports.didWebToUrl = exports.checkDidWeb = exports.asDidWeb = exports.isDidWeb = exports.DID_WEB_PREFIX = void 0;
4
4
  const did_error_js_1 = require("../did-error.js");
5
5
  const did_js_1 = require("../did.js");
6
6
  exports.DID_WEB_PREFIX = `did:web:`;
7
7
  /**
8
8
  * This function checks if the input is a valid Web DID, as per DID spec.
9
- * ATPROTO adds additional constraints to allowed DID values for the `did:web`
10
- * method. Use {@link isAtprotoDidWeb} if that's what you need.
11
9
  */
12
10
  function isDidWeb(input) {
11
+ // Optimization: make cheap checks first
13
12
  if (typeof input !== 'string')
14
13
  return false;
15
14
  try {
16
- didWebToUrl(input);
15
+ checkDidWeb(input);
17
16
  return true;
18
17
  }
19
18
  catch {
@@ -21,28 +20,16 @@ function isDidWeb(input) {
21
20
  }
22
21
  }
23
22
  exports.isDidWeb = isDidWeb;
24
- /**
25
- * @see {@link https://atproto.com/specs/did#blessed-did-methods}
26
- */
27
- function isAtprotoDidWeb(input) {
28
- // Optimization: make cheap checks first
29
- if (typeof input !== 'string') {
30
- return false;
31
- }
32
- // Path are not allowed
33
- if (input.includes(':', exports.DID_WEB_PREFIX.length)) {
34
- return false;
35
- }
36
- // Port numbers are not allowed, except for localhost
37
- if (input.includes('%3A', exports.DID_WEB_PREFIX.length) &&
38
- !input.startsWith('did:web:localhost%3A')) {
39
- return false;
40
- }
41
- return isDidWeb(input);
23
+ function asDidWeb(input) {
24
+ checkDidWeb(input);
25
+ return input;
42
26
  }
43
- exports.isAtprotoDidWeb = isAtprotoDidWeb;
27
+ exports.asDidWeb = asDidWeb;
44
28
  function checkDidWeb(input) {
45
- didWebToUrl(input);
29
+ if (typeof input !== 'string') {
30
+ throw new did_error_js_1.InvalidDidError(typeof input, `DID must be a string`);
31
+ }
32
+ void didWebToUrl(input);
46
33
  }
47
34
  exports.checkDidWeb = checkDidWeb;
48
35
  function didWebToUrl(did) {
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/methods/web.ts"],"names":[],"mappings":";;;AAAA,kDAAiD;AACjD,sCAA6C;AAEhC,QAAA,cAAc,GAAG,UAAU,CAAA;AAExC;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,CAAC;QACH,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AARD,4BAQC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,wCAAwC;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,uBAAuB;IACvB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,sBAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,qDAAqD;IACrD,IACE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,sBAAc,CAAC,MAAM,CAAC;QAC5C,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,EACzC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC;AApBD,0CAoBC;AAED,SAAgB,WAAW,CAAC,KAAa;IACvC,WAAW,CAAC,KAAK,CAAC,CAAA;AACpB,CAAC;AAFD,kCAEC;AAED,SAAgB,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,sBAAc,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,8BAAe,CAAC,GAAG,EAAE,2BAA2B,sBAAc,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,CAAC,sBAAc,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAC9C,MAAM,IAAI,8BAAe,CAAC,GAAG,EAAE,0CAA0C,CAAC,CAAA;IAC5E,CAAC;IAED,+CAA+C;IAC/C,IAAA,qBAAY,EAAC,GAAG,EAAE,sBAAc,CAAC,MAAM,CAAC,CAAA;IAExC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAc,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACrD,OAAO,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,8BAAe,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC;AAnBD,kCAmBC;AAED,SAAgB,WAAW,CAAC,GAAQ;IAClC,MAAM,IAAI,GACR,GAAG,CAAC,QAAQ,KAAK,GAAG;QAClB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAExE,OAAO,WAAW,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AAC3E,CAAC;AAPD,kCAOC"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/methods/web.ts"],"names":[],"mappings":";;;AAAA,kDAAiD;AACjD,sCAA6C;AAEhC,QAAA,cAAc,GAAG,UAA+B,CAAA;AAE7D;;GAEG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,wCAAwC;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,IAAI,CAAC;QACH,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAVD,4BAUC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,WAAW,CAAC,KAAK,CAAC,CAAA;IAClB,OAAO,KAAK,CAAA;AACd,CAAC;AAHD,4BAGC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,8BAAe,CAAC,OAAO,KAAK,EAAE,sBAAsB,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,WAAW,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC;AAND,kCAMC;AAED,SAAgB,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,sBAAc,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,8BAAe,CAAC,GAAG,EAAE,2BAA2B,sBAAc,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,CAAC,sBAAc,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAC9C,MAAM,IAAI,8BAAe,CAAC,GAAG,EAAE,0CAA0C,CAAC,CAAA;IAC5E,CAAC;IAED,+CAA+C;IAC/C,IAAA,qBAAY,EAAC,GAAG,EAAE,sBAAc,CAAC,MAAM,CAAC,CAAA;IAExC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAc,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACrD,OAAO,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,8BAAe,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC;AAnBD,kCAmBC;AAED,SAAgB,WAAW,CAAC,GAAQ;IAClC,MAAM,IAAI,GACR,GAAG,CAAC,QAAQ,KAAK,GAAG;QAClB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAExE,OAAO,WAAW,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AAC3E,CAAC;AAPD,kCAOC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/did",
3
- "version": "0.1.0",
3
+ "version": "0.1.1-rc.1",
4
4
  "license": "MIT",
5
5
  "description": "DID resolution and verification library",
6
6
  "keywords": [
package/src/atproto.ts ADDED
@@ -0,0 +1,75 @@
1
+ import { InvalidDidError } from './did-error.js'
2
+ import { Did } from './did.js'
3
+ import {
4
+ checkDidPlc,
5
+ checkDidWeb,
6
+ DID_PLC_PREFIX,
7
+ DID_WEB_PREFIX,
8
+ isDidPlc,
9
+ isDidWeb,
10
+ } from './methods.js'
11
+
12
+ // This file contains atproto-specific DID validation utilities.
13
+
14
+ export type AtprotoIdentityDidMethods = 'plc' | 'web'
15
+ export type AtprotoDid = Did<AtprotoIdentityDidMethods>
16
+
17
+ export function isAtprotoDid(input: unknown): input is AtprotoDid {
18
+ // Optimized equivalent of:
19
+ // return isDidPlc(input) || isAtprotoDidWeb(input)
20
+
21
+ if (typeof input !== 'string') {
22
+ return false
23
+ } else if (input.startsWith(DID_PLC_PREFIX)) {
24
+ return isDidPlc(input)
25
+ } else if (input.startsWith(DID_WEB_PREFIX)) {
26
+ return isAtprotoDidWeb(input)
27
+ } else {
28
+ return false
29
+ }
30
+ }
31
+
32
+ export function asAtprotoDid(input: unknown): AtprotoDid {
33
+ checkAtprotoDid(input)
34
+ return input
35
+ }
36
+
37
+ export function checkAtprotoDid(input: unknown): asserts input is AtprotoDid {
38
+ if (typeof input !== 'string') {
39
+ throw new InvalidDidError(typeof input, `DID must be a string`)
40
+ } else if (input.startsWith(DID_PLC_PREFIX)) {
41
+ checkDidPlc(input)
42
+ } else if (input.startsWith(DID_WEB_PREFIX)) {
43
+ checkDidWeb(input)
44
+ } else {
45
+ throw new InvalidDidError(
46
+ input,
47
+ `Atproto only allows "plc" and "web" DID methods`,
48
+ )
49
+ }
50
+ }
51
+
52
+ /**
53
+ * @see {@link https://atproto.com/specs/did#blessed-did-methods}
54
+ */
55
+ export function isAtprotoDidWeb(input: unknown): input is Did<'web'> {
56
+ // Optimization: make cheap checks first
57
+ if (typeof input !== 'string') {
58
+ return false
59
+ }
60
+
61
+ // Path are not allowed
62
+ if (input.includes(':', DID_WEB_PREFIX.length)) {
63
+ return false
64
+ }
65
+
66
+ // Port numbers are not allowed, except for localhost
67
+ if (
68
+ input.includes('%3A', DID_WEB_PREFIX.length) &&
69
+ !input.startsWith('did:web:localhost%3A')
70
+ ) {
71
+ return false
72
+ }
73
+
74
+ return isDidWeb(input)
75
+ }
package/src/did.ts CHANGED
@@ -238,10 +238,17 @@ export function isDid(input: unknown): input is Did {
238
238
  if (err instanceof DidError) {
239
239
  return false
240
240
  }
241
+
242
+ // Unexpected TypeError (should never happen)
241
243
  throw err
242
244
  }
243
245
  }
244
246
 
247
+ export function asDid(input: unknown): Did {
248
+ checkDid(input)
249
+ return input
250
+ }
251
+
245
252
  export const didSchema = z
246
253
  .string()
247
254
  .superRefine((value: string, ctx: z.RefinementCtx): value is Did => {
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './atproto.js'
1
2
  export * from './did-document.js'
2
3
  export * from './did-error.js'
3
4
  export * from './did.js'
@@ -8,7 +8,9 @@ const DID_PLC_LENGTH = 32
8
8
  export { DID_PLC_PREFIX }
9
9
 
10
10
  export function isDidPlc(input: unknown): input is Did<'plc'> {
11
+ // Optimization: make cheap checks first
11
12
  if (typeof input !== 'string') return false
13
+
12
14
  try {
13
15
  checkDidPlc(input)
14
16
  return true
@@ -17,7 +19,16 @@ export function isDidPlc(input: unknown): input is Did<'plc'> {
17
19
  }
18
20
  }
19
21
 
20
- export function checkDidPlc(input: string): asserts input is Did<'plc'> {
22
+ export function asDidPlc(input: unknown): Did<'plc'> {
23
+ checkDidPlc(input)
24
+ return input
25
+ }
26
+
27
+ export function checkDidPlc(input: unknown): asserts input is Did<'plc'> {
28
+ if (typeof input !== 'string') {
29
+ throw new InvalidDidError(typeof input, `DID must be a string`)
30
+ }
31
+
21
32
  if (input.length !== DID_PLC_LENGTH) {
22
33
  throw new InvalidDidError(
23
34
  input,
@@ -1,50 +1,34 @@
1
1
  import { InvalidDidError } from '../did-error.js'
2
2
  import { Did, checkDidMsid } from '../did.js'
3
3
 
4
- export const DID_WEB_PREFIX = `did:web:`
4
+ export const DID_WEB_PREFIX = `did:web:` satisfies Did<'web'>
5
5
 
6
6
  /**
7
7
  * This function checks if the input is a valid Web DID, as per DID spec.
8
- * ATPROTO adds additional constraints to allowed DID values for the `did:web`
9
- * method. Use {@link isAtprotoDidWeb} if that's what you need.
10
8
  */
11
9
  export function isDidWeb(input: unknown): input is Did<'web'> {
10
+ // Optimization: make cheap checks first
12
11
  if (typeof input !== 'string') return false
12
+
13
13
  try {
14
- didWebToUrl(input)
14
+ checkDidWeb(input)
15
15
  return true
16
16
  } catch {
17
17
  return false
18
18
  }
19
19
  }
20
20
 
21
- /**
22
- * @see {@link https://atproto.com/specs/did#blessed-did-methods}
23
- */
24
- export function isAtprotoDidWeb(input: unknown): input is Did<'web'> {
25
- // Optimization: make cheap checks first
26
- if (typeof input !== 'string') {
27
- return false
28
- }
29
-
30
- // Path are not allowed
31
- if (input.includes(':', DID_WEB_PREFIX.length)) {
32
- return false
33
- }
21
+ export function asDidWeb(input: unknown): Did<'web'> {
22
+ checkDidWeb(input)
23
+ return input
24
+ }
34
25
 
35
- // Port numbers are not allowed, except for localhost
36
- if (
37
- input.includes('%3A', DID_WEB_PREFIX.length) &&
38
- !input.startsWith('did:web:localhost%3A')
39
- ) {
40
- return false
26
+ export function checkDidWeb(input: unknown): asserts input is Did<'web'> {
27
+ if (typeof input !== 'string') {
28
+ throw new InvalidDidError(typeof input, `DID must be a string`)
41
29
  }
42
30
 
43
- return isDidWeb(input)
44
- }
45
-
46
- export function checkDidWeb(input: string): asserts input is Did<'web'> {
47
- didWebToUrl(input)
31
+ void didWebToUrl(input)
48
32
  }
49
33
 
50
34
  export function didWebToUrl(did: string): URL {