@atproto/identity 0.4.2 → 0.4.4
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/CHANGELOG.md +17 -0
- package/dist/did/atproto-data.d.ts.map +1 -1
- package/dist/did/base-resolver.d.ts.map +1 -1
- package/dist/did/plc-resolver.d.ts +1 -1
- package/dist/did/plc-resolver.d.ts.map +1 -1
- package/dist/did/plc-resolver.js +14 -34
- package/dist/did/plc-resolver.js.map +1 -1
- package/dist/did/util.d.ts +2 -0
- package/dist/did/util.d.ts.map +1 -0
- package/dist/did/util.js +16 -0
- package/dist/did/util.js.map +1 -0
- package/dist/did/web-resolver.d.ts +1 -1
- package/dist/did/web-resolver.d.ts.map +1 -1
- package/dist/did/web-resolver.js +12 -37
- package/dist/did/web-resolver.js.map +1 -1
- package/jest.config.js +1 -1
- package/package.json +5 -5
- package/src/did/plc-resolver.ts +17 -11
- package/src/did/util.ts +15 -0
- package/src/did/web-resolver.ts +14 -14
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.tests.tsbuildinfo +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @atproto/identity
|
|
2
2
|
|
|
3
|
+
## 0.4.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#3177](https://github.com/bluesky-social/atproto/pull/3177) [`72eba67af`](https://github.com/bluesky-social/atproto/commit/72eba67af1af8320b5400bcb9319d5c3c8407d99) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Remove dependency on Axios
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`72eba67af`](https://github.com/bluesky-social/atproto/commit/72eba67af1af8320b5400bcb9319d5c3c8407d99), [`72eba67af`](https://github.com/bluesky-social/atproto/commit/72eba67af1af8320b5400bcb9319d5c3c8407d99)]:
|
|
10
|
+
- @atproto/common-web@0.3.2
|
|
11
|
+
- @atproto/crypto@0.4.2
|
|
12
|
+
|
|
13
|
+
## 0.4.3
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [[`1982693e3`](https://github.com/bluesky-social/atproto/commit/1982693e3ea1fef4db76ac9aca3db8dc5ebf3fe0)]:
|
|
18
|
+
- @atproto/crypto@0.4.2
|
|
19
|
+
|
|
3
20
|
## 0.4.2
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atproto-data.d.ts","sourceRoot":"","sources":["../../src/did/atproto-data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EACL,MAAM,EACN,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,MAAM,EACN,SAAS,EACT,cAAc,IAAI,MAAM,EACxB,kBAAkB,IAAI,UAAU,EAChC,gBAAgB,IAAI,QAAQ,GAC7B,CAAA;AAED,eAAO,MAAM,MAAM,QAAS,WAAW,KAAG,MAAM,GAAG,SAIlD,CAAA;AAED,eAAO,MAAM,sBAAsB,QAAS;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,kBAAkB,EAAE,MAAM,CAAA;CAC3B,KAAG,MAAM,GAAG,SAYZ,CAAA;AAED,eAAO,MAAM,sBAAsB,QAC5B,WAAW,KACf,
|
|
1
|
+
{"version":3,"file":"atproto-data.d.ts","sourceRoot":"","sources":["../../src/did/atproto-data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EACL,MAAM,EACN,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,MAAM,EACN,SAAS,EACT,cAAc,IAAI,MAAM,EACxB,kBAAkB,IAAI,UAAU,EAChC,gBAAgB,IAAI,QAAQ,GAC7B,CAAA;AAED,eAAO,MAAM,MAAM,QAAS,WAAW,KAAG,MAAM,GAAG,SAIlD,CAAA;AAED,eAAO,MAAM,sBAAsB,QAAS;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,kBAAkB,EAAE,MAAM,CAAA;CAC3B,KAAG,MAAM,GAAG,SAYZ,CAAA;AAED,eAAO,MAAM,sBAAsB,QAC5B,WAAW,KACf,OAAO,CAAC,WAAW,CAQrB,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAS,WAAW,KAAG,WAepD,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAS,WAAW,KAAG,MAMnD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-resolver.d.ts","sourceRoot":"","sources":["../../src/did/base-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EAEX,WAAW,EACZ,MAAM,UAAU,CAAA;AAIjB,8BAAsB,YAAY;IACb,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"base-resolver.d.ts","sourceRoot":"","sources":["../../src/did/base-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EAEX,WAAW,EACZ,MAAM,UAAU,CAAA;AAIjB,8BAAsB,YAAY;IACb,KAAK,CAAC,EAAE,QAAQ;gBAAhB,KAAK,CAAC,EAAE,QAAQ,YAAA;IAEnC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAE7D,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,WAAW;IAUhD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAMxD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE,OAAO,CACX,GAAG,EAAE,MAAM,EACX,YAAY,UAAQ,GACnB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAqBxB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IAQtE,kBAAkB,CACtB,GAAG,EAAE,MAAM,EACX,YAAY,UAAQ,GACnB,OAAO,CAAC,WAAW,CAAC;IAKjB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IASrE,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,UAAU,EACf,YAAY,UAAQ,GACnB,OAAO,CAAC,OAAO,CAAC;CAIpB;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plc-resolver.d.ts","sourceRoot":"","sources":["../../src/did/plc-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plc-resolver.d.ts","sourceRoot":"","sources":["../../src/did/plc-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAG1C,qBAAa,cAAe,SAAQ,YAAY;IAErC,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,KAAK,CAAC,EAAE,QAAQ;gBAFhB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,QAAQ,YAAA;IAKnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAmBpD"}
|
package/dist/did/plc-resolver.js
CHANGED
|
@@ -1,34 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
6
|
exports.DidPlcResolver = void 0;
|
|
30
|
-
const axios_1 = __importStar(require("axios"));
|
|
31
7
|
const base_resolver_1 = __importDefault(require("./base-resolver"));
|
|
8
|
+
const util_1 = require("./util");
|
|
32
9
|
class DidPlcResolver extends base_resolver_1.default {
|
|
33
10
|
constructor(plcUrl, timeout, cache) {
|
|
34
11
|
super(cache);
|
|
@@ -52,18 +29,21 @@ class DidPlcResolver extends base_resolver_1.default {
|
|
|
52
29
|
});
|
|
53
30
|
}
|
|
54
31
|
async resolveNoCheck(did) {
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
|
|
32
|
+
return (0, util_1.timed)(this.timeout, async (signal) => {
|
|
33
|
+
const url = new URL(`/${encodeURIComponent(did)}`, this.plcUrl);
|
|
34
|
+
const res = await fetch(url, {
|
|
35
|
+
redirect: 'error',
|
|
36
|
+
headers: { accept: 'application/did+ld+json,application/json' },
|
|
37
|
+
signal,
|
|
58
38
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (
|
|
63
|
-
|
|
39
|
+
// Positively not found, versus due to e.g. network error
|
|
40
|
+
if (res.status === 404)
|
|
41
|
+
return null;
|
|
42
|
+
if (!res.ok) {
|
|
43
|
+
throw Object.assign(new Error(res.statusText), { status: res.status });
|
|
64
44
|
}
|
|
65
|
-
|
|
66
|
-
}
|
|
45
|
+
return res.json();
|
|
46
|
+
});
|
|
67
47
|
}
|
|
68
48
|
}
|
|
69
49
|
exports.DidPlcResolver = DidPlcResolver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plc-resolver.js","sourceRoot":"","sources":["../../src/did/plc-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plc-resolver.js","sourceRoot":"","sources":["../../src/did/plc-resolver.ts"],"names":[],"mappings":";;;;;;AACA,oEAA0C;AAC1C,iCAA8B;AAE9B,MAAa,cAAe,SAAQ,uBAAY;IAC9C,YACS,MAAc,EACd,OAAe,EACf,KAAgB;QAEvB,KAAK,CAAC,KAAK,CAAC,CAAA;QAJZ;;;;mBAAO,MAAM;WAAQ;QACrB;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,KAAK;WAAW;IAGzB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,OAAO,IAAA,YAAK,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC/D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,EAAE,MAAM,EAAE,0CAA0C,EAAE;gBAC/D,MAAM;aACP,CAAC,CAAA;YAEF,yDAAyD;YACzD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAA;YAEnC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;YACxE,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AA5BD,wCA4BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/did/util.ts"],"names":[],"mappings":"AAAA,wBAAsB,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,EACpE,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,CAAC,GACJ,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAWjC"}
|
package/dist/did/util.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.timed = timed;
|
|
4
|
+
async function timed(ms, fn) {
|
|
5
|
+
const abortController = new AbortController();
|
|
6
|
+
const timer = setTimeout(() => abortController.abort(), ms);
|
|
7
|
+
const signal = abortController.signal;
|
|
8
|
+
try {
|
|
9
|
+
return (await fn(signal));
|
|
10
|
+
}
|
|
11
|
+
finally {
|
|
12
|
+
clearTimeout(timer);
|
|
13
|
+
abortController.abort();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/did/util.ts"],"names":[],"mappings":";;AAAA,sBAcC;AAdM,KAAK,UAAU,KAAK,CACzB,EAAU,EACV,EAAK;IAEL,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAA;IAErC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAA2B,CAAA;IACrD,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,eAAe,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-resolver.d.ts","sourceRoot":"","sources":["../../src/did/web-resolver.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"web-resolver.d.ts","sourceRoot":"","sources":["../../src/did/web-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAG1C,eAAO,MAAM,QAAQ,0BAA0B,CAAA;AAE/C,qBAAa,cAAe,SAAQ,YAAY;IAErC,OAAO,EAAE,MAAM;IACf,KAAK,CAAC,EAAE,QAAQ;gBADhB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,QAAQ,YAAA;IAKnB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAgCpD"}
|
package/dist/did/web-resolver.js
CHANGED
|
@@ -1,35 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
6
|
exports.DidWebResolver = exports.DOC_PATH = void 0;
|
|
30
|
-
const axios_1 = __importStar(require("axios"));
|
|
31
|
-
const base_resolver_1 = __importDefault(require("./base-resolver"));
|
|
32
7
|
const errors_1 = require("../errors");
|
|
8
|
+
const base_resolver_1 = __importDefault(require("./base-resolver"));
|
|
9
|
+
const util_1 = require("./util");
|
|
33
10
|
exports.DOC_PATH = '/.well-known/did.json';
|
|
34
11
|
class DidWebResolver extends base_resolver_1.default {
|
|
35
12
|
constructor(timeout, cache) {
|
|
@@ -66,19 +43,17 @@ class DidWebResolver extends base_resolver_1.default {
|
|
|
66
43
|
if (url.hostname === 'localhost') {
|
|
67
44
|
url.protocol = 'http';
|
|
68
45
|
}
|
|
69
|
-
|
|
70
|
-
const res = await
|
|
71
|
-
|
|
72
|
-
|
|
46
|
+
return (0, util_1.timed)(this.timeout, async (signal) => {
|
|
47
|
+
const res = await fetch(url, {
|
|
48
|
+
signal,
|
|
49
|
+
redirect: 'error',
|
|
50
|
+
headers: { accept: 'application/did+ld+json,application/json' },
|
|
73
51
|
});
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
throw err;
|
|
81
|
-
}
|
|
52
|
+
// Positively not found, versus due to e.g. network error
|
|
53
|
+
if (!res.ok)
|
|
54
|
+
return null;
|
|
55
|
+
return res.json();
|
|
56
|
+
});
|
|
82
57
|
}
|
|
83
58
|
}
|
|
84
59
|
exports.DidWebResolver = DidWebResolver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-resolver.js","sourceRoot":"","sources":["../../src/did/web-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web-resolver.js","sourceRoot":"","sources":["../../src/did/web-resolver.ts"],"names":[],"mappings":";;;;;;AAAA,sCAA+E;AAE/E,oEAA0C;AAC1C,iCAA8B;AAEjB,QAAA,QAAQ,GAAG,uBAAuB,CAAA;AAE/C,MAAa,cAAe,SAAQ,uBAAY;IAC9C,YACS,OAAe,EACf,KAAgB;QAEvB,KAAK,CAAC,KAAK,CAAC,CAAA;QAHZ;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,KAAK;WAAW;IAGzB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACzD,IAAI,IAAY,CAAA;QAChB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,gCAAuB,CAAC,GAAG,CAAC,CAAA;QACxC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAQ,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,sCAAsC;YACtC,MAAM,IAAI,mCAA0B,CAAC,GAAG,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;QACtC,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACjC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAA;QACvB,CAAC;QAED,OAAO,IAAA,YAAK,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM;gBACN,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,EAAE,MAAM,EAAE,0CAA0C,EAAE;aAChE,CAAC,CAAA;YAEF,yDAAyD;YACzD,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAA;YAExB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAxCD,wCAwCC"}
|
package/jest.config.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
module.exports = {
|
|
3
3
|
displayName: 'Identity',
|
|
4
4
|
transform: { '^.+\\.(t|j)s$': '@swc/jest' },
|
|
5
|
-
transformIgnorePatterns: [
|
|
5
|
+
transformIgnorePatterns: ['/node_modules/.pnpm/(?!(get-port)@)'],
|
|
6
6
|
setupFiles: ['<rootDir>/../../jest.setup.ts'],
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/identity",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Library for decentralized identities in atproto using DIDs and handles",
|
|
6
6
|
"keywords": [
|
|
@@ -17,9 +17,8 @@
|
|
|
17
17
|
"main": "dist/index.js",
|
|
18
18
|
"types": "dist/index.d.ts",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"
|
|
21
|
-
"@atproto/
|
|
22
|
-
"@atproto/crypto": "^0.4.1"
|
|
20
|
+
"@atproto/common-web": "^0.3.2",
|
|
21
|
+
"@atproto/crypto": "^0.4.2"
|
|
23
22
|
},
|
|
24
23
|
"devDependencies": {
|
|
25
24
|
"@did-plc/lib": "^0.0.1",
|
|
@@ -27,7 +26,8 @@
|
|
|
27
26
|
"cors": "^2.8.5",
|
|
28
27
|
"express": "^4.18.2",
|
|
29
28
|
"get-port": "^6.1.2",
|
|
30
|
-
"jest": "^28.1.2"
|
|
29
|
+
"jest": "^28.1.2",
|
|
30
|
+
"typescript": "^5.6.3"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
33
|
"test": "jest",
|
package/src/did/plc-resolver.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import axios, { AxiosError } from 'axios'
|
|
2
|
-
import BaseResolver from './base-resolver'
|
|
3
1
|
import { DidCache } from '../types'
|
|
2
|
+
import BaseResolver from './base-resolver'
|
|
3
|
+
import { timed } from './util'
|
|
4
4
|
|
|
5
5
|
export class DidPlcResolver extends BaseResolver {
|
|
6
6
|
constructor(
|
|
@@ -12,16 +12,22 @@ export class DidPlcResolver extends BaseResolver {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
async resolveNoCheck(did: string): Promise<unknown> {
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
15
|
+
return timed(this.timeout, async (signal) => {
|
|
16
|
+
const url = new URL(`/${encodeURIComponent(did)}`, this.plcUrl)
|
|
17
|
+
const res = await fetch(url, {
|
|
18
|
+
redirect: 'error',
|
|
19
|
+
headers: { accept: 'application/did+ld+json,application/json' },
|
|
20
|
+
signal,
|
|
18
21
|
})
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (
|
|
22
|
-
|
|
22
|
+
|
|
23
|
+
// Positively not found, versus due to e.g. network error
|
|
24
|
+
if (res.status === 404) return null
|
|
25
|
+
|
|
26
|
+
if (!res.ok) {
|
|
27
|
+
throw Object.assign(new Error(res.statusText), { status: res.status })
|
|
23
28
|
}
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
|
|
30
|
+
return res.json()
|
|
31
|
+
})
|
|
26
32
|
}
|
|
27
33
|
}
|
package/src/did/util.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export async function timed<F extends (signal: AbortSignal) => unknown>(
|
|
2
|
+
ms: number,
|
|
3
|
+
fn: F,
|
|
4
|
+
): Promise<Awaited<ReturnType<F>>> {
|
|
5
|
+
const abortController = new AbortController()
|
|
6
|
+
const timer = setTimeout(() => abortController.abort(), ms)
|
|
7
|
+
const signal = abortController.signal
|
|
8
|
+
|
|
9
|
+
try {
|
|
10
|
+
return (await fn(signal)) as Awaited<ReturnType<F>>
|
|
11
|
+
} finally {
|
|
12
|
+
clearTimeout(timer)
|
|
13
|
+
abortController.abort()
|
|
14
|
+
}
|
|
15
|
+
}
|
package/src/did/web-resolver.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import axios, { AxiosError } from 'axios'
|
|
2
|
-
import BaseResolver from './base-resolver'
|
|
3
|
-
import { DidCache } from '../types'
|
|
4
1
|
import { PoorlyFormattedDidError, UnsupportedDidWebPathError } from '../errors'
|
|
2
|
+
import { DidCache } from '../types'
|
|
3
|
+
import BaseResolver from './base-resolver'
|
|
4
|
+
import { timed } from './util'
|
|
5
5
|
|
|
6
6
|
export const DOC_PATH = '/.well-known/did.json'
|
|
7
7
|
|
|
@@ -32,17 +32,17 @@ export class DidWebResolver extends BaseResolver {
|
|
|
32
32
|
url.protocol = 'http'
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
const res = await
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
return timed(this.timeout, async (signal) => {
|
|
36
|
+
const res = await fetch(url, {
|
|
37
|
+
signal,
|
|
38
|
+
redirect: 'error',
|
|
39
|
+
headers: { accept: 'application/did+ld+json,application/json' },
|
|
39
40
|
})
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
41
|
+
|
|
42
|
+
// Positively not found, versus due to e.g. network error
|
|
43
|
+
if (!res.ok) return null
|
|
44
|
+
|
|
45
|
+
return res.json()
|
|
46
|
+
})
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./src/errors.ts","./src/id-resolver.ts","./src/index.ts","./src/types.ts","./src/did/atproto-data.ts","./src/did/base-resolver.ts","./src/did/did-resolver.ts","./src/did/index.ts","./src/did/memory-cache.ts","./src/did/plc-resolver.ts","./src/did/util.ts","./src/did/web-resolver.ts","./src/handle/index.ts"],"version":"5.6.3"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./tests/did-cache.test.ts","./tests/did-document.test.ts","./tests/did-resolver.test.ts","./tests/handle-resolver.test.ts","./tests/web/db.ts","./tests/web/server.ts"],"version":"5.6.3"}
|