@enbox/browser 0.3.6 → 0.3.8
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/esm/drl-url-parser.js +31 -0
- package/dist/esm/drl-url-parser.js.map +1 -0
- package/dist/esm/dweb-connect-client.js +33 -36
- package/dist/esm/dweb-connect-client.js.map +1 -1
- package/dist/esm/dweb-connect-crypto.js +1 -1
- package/dist/esm/dweb-connect-crypto.js.map +1 -1
- package/dist/esm/web-features.js +18 -18
- package/dist/esm/web-features.js.map +1 -1
- package/dist/types/drl-url-parser.d.ts +10 -0
- package/dist/types/drl-url-parser.d.ts.map +1 -0
- package/dist/types/dweb-connect-client.d.ts.map +1 -1
- package/dist/types/web-features.d.ts +1 -0
- package/dist/types/web-features.d.ts.map +1 -1
- package/package.json +6 -4
- package/src/drl-url-parser.ts +20 -0
- package/src/dweb-connect-client.ts +35 -45
- package/src/dweb-connect-crypto.ts +1 -1
- package/src/web-features.ts +18 -15
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses a DRL URL (http(s)://dweb/{did}/{path}) without regex quantifiers.
|
|
3
|
+
* Returns `[did, path]` or `null` if the URL does not match the DRL scheme.
|
|
4
|
+
*
|
|
5
|
+
* Extracted to a standalone module so it can be tested under Node.js (bun:test)
|
|
6
|
+
* in addition to the browser-based vitest suite, ensuring SonarCloud's
|
|
7
|
+
* merged coverage report includes these lines.
|
|
8
|
+
*/
|
|
9
|
+
export function parseDrlUrl(url) {
|
|
10
|
+
const idx = url.indexOf('://dweb/');
|
|
11
|
+
if (idx === -1) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const prefix = url.slice(0, idx);
|
|
15
|
+
if (prefix !== 'http' && prefix !== 'https') {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const rest = url.slice(idx + 8); // '://dweb/'.length === 8
|
|
19
|
+
if (rest.length === 0) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const slashIdx = rest.indexOf('/');
|
|
23
|
+
if (slashIdx === -1) {
|
|
24
|
+
return [rest, ''];
|
|
25
|
+
}
|
|
26
|
+
if (slashIdx === 0) {
|
|
27
|
+
return null;
|
|
28
|
+
} // DID segment must be non-empty
|
|
29
|
+
return [rest.slice(0, slashIdx), rest.slice(slashIdx + 1)];
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=drl-url-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drl-url-parser.js","sourceRoot":"","sources":["../../src/drl-url-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAChC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC,CAAC,gCAAgC;IACrE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -47,6 +47,8 @@ function initClient(options) {
|
|
|
47
47
|
// Generate an ephemeral ECDH keypair for this connect session.
|
|
48
48
|
// The public key is sent to the wallet so it can encrypt the response
|
|
49
49
|
// containing delegate private keys and decryption material.
|
|
50
|
+
// Encryption is mandatory — if key generation fails (e.g. non-secure
|
|
51
|
+
// context where crypto.subtle is unavailable), the connect flow aborts.
|
|
50
52
|
let dappKeyPair;
|
|
51
53
|
let dappPublicKeyBase64url;
|
|
52
54
|
try {
|
|
@@ -55,7 +57,9 @@ function initClient(options) {
|
|
|
55
57
|
dappPublicKeyBase64url = ephemeral.publicKeyBase64url;
|
|
56
58
|
}
|
|
57
59
|
catch (_a) {
|
|
58
|
-
|
|
60
|
+
popup.close();
|
|
61
|
+
throw new Error('[@enbox/browser] DWeb Connect requires a secure context (HTTPS) for encrypted key exchange. '
|
|
62
|
+
+ 'crypto.subtle is not available in this environment.');
|
|
59
63
|
}
|
|
60
64
|
return new Promise((resolve, reject) => {
|
|
61
65
|
let settled = false;
|
|
@@ -84,7 +88,7 @@ function initClient(options) {
|
|
|
84
88
|
}
|
|
85
89
|
}, 500);
|
|
86
90
|
const onMessage = (event) => {
|
|
87
|
-
var _a
|
|
91
|
+
var _a;
|
|
88
92
|
// Validate origin matches the wallet URL.
|
|
89
93
|
const walletOrigin = new URL(walletUrl).origin;
|
|
90
94
|
if (event.origin !== walletOrigin) {
|
|
@@ -108,45 +112,38 @@ function initClient(options) {
|
|
|
108
112
|
if (type === 'dweb-connect-authorization-response') {
|
|
109
113
|
clearInterval(pollClosed);
|
|
110
114
|
cleanup();
|
|
111
|
-
//
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
decryptPostMessagePayload(encrypted, dappKeyPair).then((payload) => {
|
|
115
|
-
var _a, _b, _c, _d, _e, _f;
|
|
116
|
-
const p = payload;
|
|
117
|
-
if (!p.delegateDid || !p.grants) {
|
|
118
|
-
resolve(undefined);
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
resolve({
|
|
122
|
-
delegatePortableDid: p.delegateDid,
|
|
123
|
-
delegateGrants: p.grants,
|
|
124
|
-
connectedDid: (_b = (_a = p.connectedDid) !== null && _a !== void 0 ? _a : did) !== null && _b !== void 0 ? _b : p.delegateDid.uri,
|
|
125
|
-
delegateDecryptionKeys: (_c = p.delegateDecryptionKeys) !== null && _c !== void 0 ? _c : undefined,
|
|
126
|
-
delegateContextKeys: (_d = p.delegateContextKeys) !== null && _d !== void 0 ? _d : undefined,
|
|
127
|
-
delegateMultiPartyProtocols: (_e = p.delegateMultiPartyProtocols) !== null && _e !== void 0 ? _e : undefined,
|
|
128
|
-
sessionRevocations: (_f = p.sessionRevocations) !== null && _f !== void 0 ? _f : undefined,
|
|
129
|
-
});
|
|
130
|
-
}).catch(() => {
|
|
131
|
-
// Decryption failed — treat as denied.
|
|
132
|
-
resolve(undefined);
|
|
133
|
-
});
|
|
115
|
+
// If the wallet sent an explicit error, treat as denied.
|
|
116
|
+
if (event.data.error) {
|
|
117
|
+
resolve(undefined);
|
|
134
118
|
return;
|
|
135
119
|
}
|
|
136
|
-
//
|
|
137
|
-
|
|
138
|
-
|
|
120
|
+
// Require an encrypted response. The dapp always sends an
|
|
121
|
+
// ephemeralPublicKey, so a plaintext response means either the
|
|
122
|
+
// wallet is outdated or something intercepted the flow.
|
|
123
|
+
const encrypted = event.data.encryptedPayload;
|
|
124
|
+
if (!encrypted) {
|
|
139
125
|
resolve(undefined);
|
|
140
126
|
return;
|
|
141
127
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
128
|
+
decryptPostMessagePayload(encrypted, dappKeyPair).then((payload) => {
|
|
129
|
+
var _a, _b, _c, _d, _e, _f;
|
|
130
|
+
const p = payload;
|
|
131
|
+
if (!p.delegateDid || !p.grants) {
|
|
132
|
+
resolve(undefined);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
resolve({
|
|
136
|
+
delegatePortableDid: p.delegateDid,
|
|
137
|
+
delegateGrants: p.grants,
|
|
138
|
+
connectedDid: (_b = (_a = p.connectedDid) !== null && _a !== void 0 ? _a : did) !== null && _b !== void 0 ? _b : p.delegateDid.uri,
|
|
139
|
+
delegateDecryptionKeys: (_c = p.delegateDecryptionKeys) !== null && _c !== void 0 ? _c : undefined,
|
|
140
|
+
delegateContextKeys: (_d = p.delegateContextKeys) !== null && _d !== void 0 ? _d : undefined,
|
|
141
|
+
delegateMultiPartyProtocols: (_e = p.delegateMultiPartyProtocols) !== null && _e !== void 0 ? _e : undefined,
|
|
142
|
+
sessionRevocations: (_f = p.sessionRevocations) !== null && _f !== void 0 ? _f : undefined,
|
|
143
|
+
});
|
|
144
|
+
}).catch(() => {
|
|
145
|
+
// Decryption failed — treat as denied.
|
|
146
|
+
resolve(undefined);
|
|
150
147
|
});
|
|
151
148
|
}
|
|
152
149
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dweb-connect-client.js","sourceRoot":"","sources":["../../src/dweb-connect-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;;;;;;;;;AAOH,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AA6C/F;;;;;;;;;;;;;;GAcG;AACH,SAAe,UAAU,CAAC,OAAiC;;QACzD,MAAM,EACJ,SAAS,EACT,GAAG,EACH,kBAAkB,EAClB,OAAO,GAAG,MAAO,EACjB,OAAO,EACP,OAAO,EACP,gBAAgB,GACjB,GAAG,OAAO,CAAC;QAEZ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,kDAAkD;QAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,QAAQ,EACR,oBAAoB,EACpB,kEAAkE,CACnE,CAAC;QAEF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,sEAAsE;QACtE,4DAA4D;QAC5D,IAAI,
|
|
1
|
+
{"version":3,"file":"dweb-connect-client.js","sourceRoot":"","sources":["../../src/dweb-connect-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;;;;;;;;;AAOH,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AA6C/F;;;;;;;;;;;;;;GAcG;AACH,SAAe,UAAU,CAAC,OAAiC;;QACzD,MAAM,EACJ,SAAS,EACT,GAAG,EACH,kBAAkB,EAClB,OAAO,GAAG,MAAO,EACjB,OAAO,EACP,OAAO,EACP,gBAAgB,GACjB,GAAG,OAAO,CAAC;QAEZ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,kDAAkD;QAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,QAAQ,EACR,oBAAoB,EACpB,kEAAkE,CACnE,CAAC;QAEF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,sEAAsE;QACtE,4DAA4D;QAC5D,qEAAqE;QACrE,wEAAwE;QACxE,IAAI,WAA0B,CAAC;QAC/B,IAAI,sBAA8B,CAAC;QAEnC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,wBAAwB,EAAE,CAAC;YACnD,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;YAChC,sBAAsB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QACxD,CAAC;QAAC,WAAM,CAAC;YACP,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,8FAA8F;kBAC5F,qDAAqD,CACxD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,OAAO,CAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChE,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,MAAM,OAAO,GAAG,GAAS,EAAE;gBACzB,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC,CAAC;YAEF,kBAAkB;YAClB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC;oBACV,IAAI,CAAC;wBAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAAC,CAAC;oBAAC,QAAQ,iBAAiB,IAAnB,CAAC,CAAC,iBAAiB,CAAC,CAAC;oBAClD,MAAM,CAAC,IAAI,KAAK,CACd,sEAAsE,CACvE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,kEAAkE;YAClE,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;gBAClC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC7B,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC1B,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;YAER,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAQ,EAAE;;gBAC9C,0CAA0C;gBAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;gBAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBAAA,OAAO;gBAAA,CAAC;gBAE5C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;gBAElC,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBACnC,wDAAwD;oBACxD,kDAAkD;oBAClD,KAAK,CAAC,WAAW,CAAC;wBAChB,IAAI,EAAiB,oCAAoC;wBACzD,GAAG;wBACH,WAAW,EAAU,kBAAkB;wBACvC,kBAAkB,EAAG,sBAAsB;wBAC3C,OAAO;wBACP,OAAO;wBACP,gBAAgB;qBACjB,EAAE,YAAY,CAAC,CAAC;oBACjB,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,KAAK,qCAAqC,EAAE,CAAC;oBACnD,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC1B,OAAO,EAAE,CAAC;oBAEV,yDAAyD;oBACzD,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;wBACrB,OAAO,CAAC,SAAS,CAAC,CAAC;wBACnB,OAAO;oBACT,CAAC;oBAED,0DAA0D;oBAC1D,+DAA+D;oBAC/D,wDAAwD;oBACxD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,gBAA2D,CAAC;oBACzF,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,SAAS,CAAC,CAAC;wBACnB,OAAO;oBACT,CAAC;oBAED,yBAAyB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,OAAgC,EAAE,EAAE;;wBAC1F,MAAM,CAAC,GAAG,OAAc,CAAC;wBACzB,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;4BAChC,OAAO,CAAC,SAAS,CAAC,CAAC;4BACnB,OAAO;wBACT,CAAC;wBACD,OAAO,CAAC;4BACN,mBAAmB,EAAW,CAAC,CAAC,WAA0B;4BAC1D,cAAc,EAAgB,CAAC,CAAC,MAA6C;4BAC7E,YAAY,EAAkB,MAAA,MAAA,CAAC,CAAC,YAAY,mCAAI,GAAG,mCAAK,CAAC,CAAC,WAA2B,CAAC,GAAG;4BACzF,sBAAsB,EAAQ,MAAA,CAAC,CAAC,sBAAsB,mCAAI,SAAS;4BACnE,mBAAmB,EAAW,MAAA,CAAC,CAAC,mBAAmB,mCAAI,SAAS;4BAChE,2BAA2B,EAAG,MAAA,CAAC,CAAC,2BAA2B,mCAAI,SAAS;4BACxE,kBAAkB,EAAY,MAAA,CAAC,CAAC,kBAAkB,mCAAI,SAAS;yBAChE,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBACZ,uCAAuC;wBACvC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACrB,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;CAAA;AAED;;;;;;;;;;;GAWG;AACH,SAAe,kBAAkB;yDAC/B,SAAiB,EACjB,GAAW,EACX,OAAO,GAAG,IAAK;QAEf,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAAA,OAAO,KAAK,CAAC;QAAA,CAAC;QAElD,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAC9B,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;YAEvB,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,MAAM,OAAO,GAAG,GAAS,EAAE;gBACzB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACjD,IAAI,CAAC;oBAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAAC,QAAQ,iBAAiB,IAAnB,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACxE,CAAC,CAAC;YAEF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAQ,EAAE;;gBAC9C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;gBAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAE9C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;gBAC7C,IAAI,IAAI,KAAK,+BAA+B,EAAE,CAAC;oBAC7C,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAE9C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;;gBACnC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;gBAC/C,MAAA,MAAM,CAAC,aAAa,0CAAE,WAAW,CAAC;oBAChC,IAAI,EAAE,8BAA8B;oBACpC,GAAG;iBACJ,EAAE,YAAY,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -32,7 +32,7 @@ const HKDF_INFO = new TextEncoder().encode('dweb-connect-v1');
|
|
|
32
32
|
*/
|
|
33
33
|
export function generateEphemeralKeyPair() {
|
|
34
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
const keyPair = yield crypto.subtle.generateKey(ECDH_PARAMS, false, ['
|
|
35
|
+
const keyPair = yield crypto.subtle.generateKey(ECDH_PARAMS, false, ['deriveBits']);
|
|
36
36
|
const rawPub = yield crypto.subtle.exportKey('raw', keyPair.publicKey);
|
|
37
37
|
return { keyPair, publicKeyBase64url: toBase64url(new Uint8Array(rawPub)) };
|
|
38
38
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dweb-connect-crypto.js","sourceRoot":"","sources":["../../src/dweb-connect-crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;AAeH,MAAM,WAAW,GAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC1E,MAAM,cAAc,GAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC7E,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAgB,wBAAwB;;QAI5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"dweb-connect-crypto.js","sourceRoot":"","sources":["../../src/dweb-connect-crypto.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/web-features.js
CHANGED
|
@@ -14,7 +14,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
14
14
|
};
|
|
15
15
|
import { DidDht, DidWeb, UniversalResolver } from '@enbox/dids';
|
|
16
16
|
let didResolver = new UniversalResolver({ didResolvers: [DidDht, DidWeb] });
|
|
17
|
-
|
|
17
|
+
import { parseDrlUrl } from './drl-url-parser.js';
|
|
18
|
+
export { parseDrlUrl } from './drl-url-parser.js';
|
|
18
19
|
const httpToHttpsRegex = /^http:/;
|
|
19
20
|
const trailingSlashRegex = /\/$/;
|
|
20
21
|
const DRL_CACHE_NAME = 'drl';
|
|
@@ -62,7 +63,10 @@ export function handleEvent(event, did, path, options) {
|
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
try {
|
|
65
|
-
if (
|
|
66
|
+
if (path) {
|
|
67
|
+
return yield fetchResource(event, did, drl, path, responseCache, options);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
66
70
|
const response = yield didResolver.resolve(did);
|
|
67
71
|
return new Response(JSON.stringify(response), {
|
|
68
72
|
status: 200,
|
|
@@ -71,9 +75,6 @@ export function handleEvent(event, did, path, options) {
|
|
|
71
75
|
},
|
|
72
76
|
});
|
|
73
77
|
}
|
|
74
|
-
else {
|
|
75
|
-
return yield fetchResource(event, did, drl, path, responseCache, options);
|
|
76
|
-
}
|
|
77
78
|
}
|
|
78
79
|
catch (error) {
|
|
79
80
|
if (error instanceof Response) {
|
|
@@ -151,9 +152,9 @@ function installWorker() {
|
|
|
151
152
|
event.waitUntil(workerSelf.clients.claim());
|
|
152
153
|
});
|
|
153
154
|
workerSelf.addEventListener('fetch', (event) => {
|
|
154
|
-
const
|
|
155
|
-
if (
|
|
156
|
-
event.respondWith(handleEvent(event,
|
|
155
|
+
const parsed = parseDrlUrl(event.request.url);
|
|
156
|
+
if (parsed) {
|
|
157
|
+
event.respondWith(handleEvent(event, parsed[0], parsed[1], options));
|
|
157
158
|
}
|
|
158
159
|
});
|
|
159
160
|
}
|
|
@@ -382,10 +383,10 @@ function addLinkFeatures() {
|
|
|
382
383
|
const anchor = (_a = event.target) === null || _a === void 0 ? void 0 : _a.closest('a');
|
|
383
384
|
if (anchor) {
|
|
384
385
|
const href = anchor.href;
|
|
385
|
-
const
|
|
386
|
-
if (
|
|
387
|
-
const did =
|
|
388
|
-
const path =
|
|
386
|
+
const parsed = parseDrlUrl(href);
|
|
387
|
+
if (parsed) {
|
|
388
|
+
const did = parsed[0];
|
|
389
|
+
const path = parsed[1];
|
|
389
390
|
const openAsTab = anchor.target === '_blank';
|
|
390
391
|
event.preventDefault();
|
|
391
392
|
try {
|
|
@@ -425,12 +426,11 @@ function addLinkFeatures() {
|
|
|
425
426
|
}
|
|
426
427
|
});
|
|
427
428
|
pointerdownHandler = (event) => __awaiter(this, void 0, void 0, function* () {
|
|
428
|
-
var _a;
|
|
429
429
|
const target = event.composedPath()[0];
|
|
430
430
|
if ((event.pointerType === 'mouse' && event.button === 2) ||
|
|
431
431
|
(event.pointerType === 'touch' && event.isPrimary)) {
|
|
432
432
|
resetContextMenuTarget();
|
|
433
|
-
if ((
|
|
433
|
+
if ((target === null || target === void 0 ? void 0 : target.src) && parseDrlUrl(target.src)) {
|
|
434
434
|
contextMenuTarget = target;
|
|
435
435
|
target.__src__ = target.src;
|
|
436
436
|
const drl = target.src
|
|
@@ -521,14 +521,14 @@ export function activatePolyfills(options = {}) {
|
|
|
521
521
|
}
|
|
522
522
|
if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {
|
|
523
523
|
if (options.injectStyles !== false) {
|
|
524
|
-
if (document.readyState
|
|
525
|
-
injectElements();
|
|
526
|
-
}
|
|
527
|
-
else {
|
|
524
|
+
if (document.readyState === 'loading') {
|
|
528
525
|
document.addEventListener('DOMContentLoaded', injectElements, {
|
|
529
526
|
once: true,
|
|
530
527
|
});
|
|
531
528
|
}
|
|
529
|
+
else {
|
|
530
|
+
injectElements();
|
|
531
|
+
}
|
|
532
532
|
}
|
|
533
533
|
if (options.links !== false) {
|
|
534
534
|
addLinkFeatures();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-features.js","sourceRoot":"","sources":["../../src/web-features.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web-features.js","sourceRoot":"","sources":["../../src/web-features.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses a DRL URL (http(s)://dweb/{did}/{path}) without regex quantifiers.
|
|
3
|
+
* Returns `[did, path]` or `null` if the URL does not match the DRL scheme.
|
|
4
|
+
*
|
|
5
|
+
* Extracted to a standalone module so it can be tested under Node.js (bun:test)
|
|
6
|
+
* in addition to the browser-based vitest suite, ensuring SonarCloud's
|
|
7
|
+
* merged coverage report includes these lines.
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseDrlUrl(url: string): [string, string] | null;
|
|
10
|
+
//# sourceMappingURL=drl-url-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drl-url-parser.d.ts","sourceRoot":"","sources":["../../src/drl-url-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAWhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dweb-connect-client.d.ts","sourceRoot":"","sources":["../../src/dweb-connect-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,wBAAwB,EAAqC,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKnE,4DAA4D;AAC5D,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAElB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;IAE/C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAe,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"dweb-connect-client.d.ts","sourceRoot":"","sources":["../../src/dweb-connect-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,wBAAwB,EAAqC,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKnE,4DAA4D;AAC5D,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAElB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;IAE/C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAe,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAiJ/F;AAED;;;;;;;;;;;GAWG;AACH,iBAAe,kBAAkB,CAC/B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ,GACd,OAAO,CAAC,OAAO,CAAC,CA+ClB;AAED,eAAO,MAAM,WAAW;;;CAAqC,CAAC"}
|
|
@@ -38,6 +38,7 @@ export type ActivatePolyfillsOptions = {
|
|
|
38
38
|
*/
|
|
39
39
|
didResolvers?: DidMethodResolver[];
|
|
40
40
|
};
|
|
41
|
+
export { parseDrlUrl } from './drl-url-parser.js';
|
|
41
42
|
/** @internal Exported for testing. Resolves DWN service endpoints from a DID. */
|
|
42
43
|
export declare function getDwnEndpoints(did: string): Promise<string[]>;
|
|
43
44
|
/** @internal Exported for testing. Handles a DRL fetch event. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-features.d.ts","sourceRoot":"","sources":["../../src/web-features.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,UAAU,GAAG,KAAK,EACzB,GAAG,EAAE,MAAM,KACR,gBAAgB,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+FAA+F;IAC/F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACpC,CAAC;
|
|
1
|
+
{"version":3,"file":"web-features.d.ts","sourceRoot":"","sources":["../../src/web-features.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,UAAU,GAAG,KAAK,EACzB,GAAG,EAAE,MAAM,KACR,gBAAgB,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+FAA+F;IAC/F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACpC,CAAC;AAcF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMlD,iFAAiF;AACjF,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASpE;AAQD,iEAAiE;AACjE,wBAAsB,WAAW,CAC/B,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAC/E,OAAO,CAAC,QAAQ,CAAC,CAsCnB;AAED,6EAA6E;AAC7E,wBAAsB,aAAa,CACjC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EACzD,aAAa,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,wBAAwB,GACnE,OAAO,CAAC,QAAQ,CAAC,CAgCnB;AAED,mFAAmF;AACnF,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAW7G;AA8WD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,IAAI,CAiB9E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAGtD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enbox/browser",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.8",
|
|
4
4
|
"description": "Enbox tools and features to use in the browser",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/esm/index.js",
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
"build": "bun run clean && bun run build:esm",
|
|
14
14
|
"lint": "eslint . --max-warnings 0",
|
|
15
15
|
"lint:fix": "eslint . --fix",
|
|
16
|
+
"test:node": "bun test tests/drl-url-parser.spec.ts",
|
|
17
|
+
"test:node:coverage": "bun test --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage tests/drl-url-parser.spec.ts",
|
|
16
18
|
"test:browser": "bunx --bun vitest --config vitest.browser.config.ts --run",
|
|
17
19
|
"test:browser:coverage": "bunx --bun vitest --config vitest.browser.config.ts --run --coverage --coverage.provider=istanbul"
|
|
18
20
|
},
|
|
@@ -55,9 +57,9 @@
|
|
|
55
57
|
"access": "public"
|
|
56
58
|
},
|
|
57
59
|
"dependencies": {
|
|
58
|
-
"@enbox/agent": "0.6.
|
|
59
|
-
"@enbox/api": "0.6.
|
|
60
|
-
"@enbox/auth": "0.6.
|
|
60
|
+
"@enbox/agent": "0.6.7",
|
|
61
|
+
"@enbox/api": "0.6.22",
|
|
62
|
+
"@enbox/auth": "0.6.30",
|
|
61
63
|
"@enbox/dids": "0.1.0"
|
|
62
64
|
},
|
|
63
65
|
"devDependencies": {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses a DRL URL (http(s)://dweb/{did}/{path}) without regex quantifiers.
|
|
3
|
+
* Returns `[did, path]` or `null` if the URL does not match the DRL scheme.
|
|
4
|
+
*
|
|
5
|
+
* Extracted to a standalone module so it can be tested under Node.js (bun:test)
|
|
6
|
+
* in addition to the browser-based vitest suite, ensuring SonarCloud's
|
|
7
|
+
* merged coverage report includes these lines.
|
|
8
|
+
*/
|
|
9
|
+
export function parseDrlUrl(url: string): [string, string] | null {
|
|
10
|
+
const idx = url.indexOf('://dweb/');
|
|
11
|
+
if (idx === -1) { return null; }
|
|
12
|
+
const prefix = url.slice(0, idx);
|
|
13
|
+
if (prefix !== 'http' && prefix !== 'https') { return null; }
|
|
14
|
+
const rest = url.slice(idx + 8); // '://dweb/'.length === 8
|
|
15
|
+
if (rest.length === 0) { return null; }
|
|
16
|
+
const slashIdx = rest.indexOf('/');
|
|
17
|
+
if (slashIdx === -1) { return [rest, '']; }
|
|
18
|
+
if (slashIdx === 0) { return null; } // DID segment must be non-empty
|
|
19
|
+
return [rest.slice(0, slashIdx), rest.slice(slashIdx + 1)];
|
|
20
|
+
}
|
|
@@ -107,15 +107,21 @@ async function initClient(options: DWebConnectClientOptions): Promise<ConnectRes
|
|
|
107
107
|
// Generate an ephemeral ECDH keypair for this connect session.
|
|
108
108
|
// The public key is sent to the wallet so it can encrypt the response
|
|
109
109
|
// containing delegate private keys and decryption material.
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
// Encryption is mandatory — if key generation fails (e.g. non-secure
|
|
111
|
+
// context where crypto.subtle is unavailable), the connect flow aborts.
|
|
112
|
+
let dappKeyPair: CryptoKeyPair;
|
|
113
|
+
let dappPublicKeyBase64url: string;
|
|
112
114
|
|
|
113
115
|
try {
|
|
114
116
|
const ephemeral = await generateEphemeralKeyPair();
|
|
115
117
|
dappKeyPair = ephemeral.keyPair;
|
|
116
118
|
dappPublicKeyBase64url = ephemeral.publicKeyBase64url;
|
|
117
119
|
} catch {
|
|
118
|
-
|
|
120
|
+
popup.close();
|
|
121
|
+
throw new Error(
|
|
122
|
+
'[@enbox/browser] DWeb Connect requires a secure context (HTTPS) for encrypted key exchange. '
|
|
123
|
+
+ 'crypto.subtle is not available in this environment.'
|
|
124
|
+
);
|
|
119
125
|
}
|
|
120
126
|
|
|
121
127
|
return new Promise<ConnectResult | undefined>((resolve, reject) => {
|
|
@@ -173,55 +179,39 @@ async function initClient(options: DWebConnectClientOptions): Promise<ConnectRes
|
|
|
173
179
|
clearInterval(pollClosed);
|
|
174
180
|
cleanup();
|
|
175
181
|
|
|
176
|
-
//
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
decryptPostMessagePayload(encrypted, dappKeyPair).then((payload: Record<string, unknown>) => {
|
|
180
|
-
const p = payload as any;
|
|
181
|
-
if (!p.delegateDid || !p.grants) {
|
|
182
|
-
resolve(undefined);
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
resolve({
|
|
186
|
-
delegatePortableDid : p.delegateDid as PortableDid,
|
|
187
|
-
delegateGrants : p.grants as DwnDataEncodedRecordsWriteMessage[],
|
|
188
|
-
connectedDid : p.connectedDid ?? did ?? (p.delegateDid as PortableDid).uri,
|
|
189
|
-
delegateDecryptionKeys : p.delegateDecryptionKeys ?? undefined,
|
|
190
|
-
delegateContextKeys : p.delegateContextKeys ?? undefined,
|
|
191
|
-
delegateMultiPartyProtocols : p.delegateMultiPartyProtocols ?? undefined,
|
|
192
|
-
sessionRevocations : p.sessionRevocations ?? undefined,
|
|
193
|
-
});
|
|
194
|
-
}).catch(() => {
|
|
195
|
-
// Decryption failed — treat as denied.
|
|
196
|
-
resolve(undefined);
|
|
197
|
-
});
|
|
182
|
+
// If the wallet sent an explicit error, treat as denied.
|
|
183
|
+
if (event.data.error) {
|
|
184
|
+
resolve(undefined);
|
|
198
185
|
return;
|
|
199
186
|
}
|
|
200
187
|
|
|
201
|
-
//
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
delegateDecryptionKeys,
|
|
207
|
-
delegateContextKeys,
|
|
208
|
-
delegateMultiPartyProtocols,
|
|
209
|
-
sessionRevocations,
|
|
210
|
-
} = event.data;
|
|
211
|
-
|
|
212
|
-
if (!delegateDid || !grants) {
|
|
188
|
+
// Require an encrypted response. The dapp always sends an
|
|
189
|
+
// ephemeralPublicKey, so a plaintext response means either the
|
|
190
|
+
// wallet is outdated or something intercepted the flow.
|
|
191
|
+
const encrypted = event.data.encryptedPayload as EncryptedPostMessagePayload | undefined;
|
|
192
|
+
if (!encrypted) {
|
|
213
193
|
resolve(undefined);
|
|
214
194
|
return;
|
|
215
195
|
}
|
|
216
196
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
197
|
+
decryptPostMessagePayload(encrypted, dappKeyPair).then((payload: Record<string, unknown>) => {
|
|
198
|
+
const p = payload as any;
|
|
199
|
+
if (!p.delegateDid || !p.grants) {
|
|
200
|
+
resolve(undefined);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
resolve({
|
|
204
|
+
delegatePortableDid : p.delegateDid as PortableDid,
|
|
205
|
+
delegateGrants : p.grants as DwnDataEncodedRecordsWriteMessage[],
|
|
206
|
+
connectedDid : p.connectedDid ?? did ?? (p.delegateDid as PortableDid).uri,
|
|
207
|
+
delegateDecryptionKeys : p.delegateDecryptionKeys ?? undefined,
|
|
208
|
+
delegateContextKeys : p.delegateContextKeys ?? undefined,
|
|
209
|
+
delegateMultiPartyProtocols : p.delegateMultiPartyProtocols ?? undefined,
|
|
210
|
+
sessionRevocations : p.sessionRevocations ?? undefined,
|
|
211
|
+
});
|
|
212
|
+
}).catch(() => {
|
|
213
|
+
// Decryption failed — treat as denied.
|
|
214
|
+
resolve(undefined);
|
|
225
215
|
});
|
|
226
216
|
}
|
|
227
217
|
};
|
|
@@ -40,7 +40,7 @@ export async function generateEphemeralKeyPair(): Promise<{
|
|
|
40
40
|
keyPair: CryptoKeyPair;
|
|
41
41
|
publicKeyBase64url: ExportedPublicKey;
|
|
42
42
|
}> {
|
|
43
|
-
const keyPair = await crypto.subtle.generateKey(ECDH_PARAMS, false, ['
|
|
43
|
+
const keyPair = await crypto.subtle.generateKey(ECDH_PARAMS, false, ['deriveBits']);
|
|
44
44
|
const rawPub = await crypto.subtle.exportKey('raw', keyPair.publicKey);
|
|
45
45
|
return { keyPair, publicKeyBase64url: toBase64url(new Uint8Array(rawPub)) };
|
|
46
46
|
}
|
package/src/web-features.ts
CHANGED
|
@@ -63,7 +63,10 @@ interface DrlMediaElement extends HTMLElement {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
let didResolver = new UniversalResolver({ didResolvers: [DidDht, DidWeb] });
|
|
66
|
-
|
|
66
|
+
|
|
67
|
+
import { parseDrlUrl } from './drl-url-parser.js';
|
|
68
|
+
export { parseDrlUrl } from './drl-url-parser.js';
|
|
69
|
+
|
|
67
70
|
const httpToHttpsRegex = /^http:/;
|
|
68
71
|
const trailingSlashRegex = /\/$/;
|
|
69
72
|
const DRL_CACHE_NAME = 'drl';
|
|
@@ -109,7 +112,9 @@ export async function handleEvent(
|
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
114
|
try {
|
|
112
|
-
if (
|
|
115
|
+
if (path) {
|
|
116
|
+
return await fetchResource(event, did, drl, path, responseCache, options);
|
|
117
|
+
} else {
|
|
113
118
|
const response = await didResolver.resolve(did);
|
|
114
119
|
return new Response(JSON.stringify(response), {
|
|
115
120
|
status : 200,
|
|
@@ -117,8 +122,7 @@ export async function handleEvent(
|
|
|
117
122
|
'Content-Type': 'application/json',
|
|
118
123
|
},
|
|
119
124
|
});
|
|
120
|
-
}
|
|
121
|
-
{return await fetchResource(event, did, drl, path, responseCache, options);}
|
|
125
|
+
}
|
|
122
126
|
} catch (error) {
|
|
123
127
|
if (error instanceof Response) {
|
|
124
128
|
return error;
|
|
@@ -197,9 +201,9 @@ async function installWorker(options: ActivatePolyfillsOptions = {}): Promise<vo
|
|
|
197
201
|
event.waitUntil(workerSelf.clients.claim());
|
|
198
202
|
});
|
|
199
203
|
workerSelf.addEventListener('fetch', (event: FetchEvent) => {
|
|
200
|
-
const
|
|
201
|
-
if (
|
|
202
|
-
event.respondWith(handleEvent(event,
|
|
204
|
+
const parsed = parseDrlUrl(event.request.url);
|
|
205
|
+
if (parsed) {
|
|
206
|
+
event.respondWith(handleEvent(event, parsed[0], parsed[1], options));
|
|
203
207
|
}
|
|
204
208
|
});
|
|
205
209
|
}
|
|
@@ -435,10 +439,10 @@ function addLinkFeatures(): void {
|
|
|
435
439
|
const anchor = (event.target as Element)?.closest('a');
|
|
436
440
|
if (anchor) {
|
|
437
441
|
const href = anchor.href;
|
|
438
|
-
const
|
|
439
|
-
if (
|
|
440
|
-
const did =
|
|
441
|
-
const path =
|
|
442
|
+
const parsed = parseDrlUrl(href);
|
|
443
|
+
if (parsed) {
|
|
444
|
+
const did = parsed[0];
|
|
445
|
+
const path = parsed[1];
|
|
442
446
|
const openAsTab = anchor.target === '_blank';
|
|
443
447
|
event.preventDefault();
|
|
444
448
|
try {
|
|
@@ -487,7 +491,7 @@ function addLinkFeatures(): void {
|
|
|
487
491
|
(event.pointerType === 'touch' && event.isPrimary)
|
|
488
492
|
) {
|
|
489
493
|
resetContextMenuTarget();
|
|
490
|
-
if (target?.src
|
|
494
|
+
if (target?.src && parseDrlUrl(target.src)) {
|
|
491
495
|
contextMenuTarget = target;
|
|
492
496
|
target.__src__ = target.src;
|
|
493
497
|
const drl = target.src
|
|
@@ -576,12 +580,11 @@ export function activatePolyfills(options: ActivatePolyfillsOptions = {}): void
|
|
|
576
580
|
}
|
|
577
581
|
if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {
|
|
578
582
|
if (options.injectStyles !== false) {
|
|
579
|
-
if (document.readyState
|
|
580
|
-
else {
|
|
583
|
+
if (document.readyState === 'loading') {
|
|
581
584
|
document.addEventListener('DOMContentLoaded', injectElements, {
|
|
582
585
|
once: true,
|
|
583
586
|
});
|
|
584
|
-
}
|
|
587
|
+
} else {injectElements();}
|
|
585
588
|
}
|
|
586
589
|
if (options.links !== false) {addLinkFeatures();}
|
|
587
590
|
}
|