@atproto/common 0.4.0 → 0.4.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/CHANGELOG.md +12 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/ipld.d.ts.map +1 -1
- package/dist/ipld.js.map +1 -1
- package/dist/obfuscate.d.ts +9 -0
- package/dist/obfuscate.d.ts.map +1 -0
- package/dist/obfuscate.js +96 -0
- package/dist/obfuscate.js.map +1 -0
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +4 -6
- package/dist/streams.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +2 -1
- package/src/ipld.ts +4 -1
- package/src/obfuscate.ts +85 -0
- package/src/streams.ts +9 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atproto/common
|
|
2
2
|
|
|
3
|
+
## 0.4.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#2464](https://github.com/bluesky-social/atproto/pull/2464) [`98711a147`](https://github.com/bluesky-social/atproto/commit/98711a147a8674337f605c6368f39fc10c2fae93) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Minor optimization
|
|
8
|
+
|
|
9
|
+
## 0.4.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#2633](https://github.com/bluesky-social/atproto/pull/2633) [`acc9093d2`](https://github.com/bluesky-social/atproto/commit/acc9093d2845eba02b68fb2f9db33e4f1b59bb10) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add obfuscation utilities
|
|
14
|
+
|
|
3
15
|
## 0.4.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export * from '@atproto/common-web';
|
|
2
|
+
export * from './buffers';
|
|
2
3
|
export * from './dates';
|
|
3
4
|
export * from './env';
|
|
4
5
|
export * from './fs';
|
|
5
6
|
export * from './ipld';
|
|
6
7
|
export * from './ipld-multi';
|
|
7
8
|
export * from './logger';
|
|
9
|
+
export * from './obfuscate';
|
|
8
10
|
export * from './streams';
|
|
9
|
-
export * from './buffers';
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,MAAM,CAAA;AACpB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,MAAM,CAAA;AACpB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -15,12 +15,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("@atproto/common-web"), exports);
|
|
18
|
+
__exportStar(require("./buffers"), exports);
|
|
18
19
|
__exportStar(require("./dates"), exports);
|
|
19
20
|
__exportStar(require("./env"), exports);
|
|
20
21
|
__exportStar(require("./fs"), exports);
|
|
21
22
|
__exportStar(require("./ipld"), exports);
|
|
22
23
|
__exportStar(require("./ipld-multi"), exports);
|
|
23
24
|
__exportStar(require("./logger"), exports);
|
|
25
|
+
__exportStar(require("./obfuscate"), exports);
|
|
24
26
|
__exportStar(require("./streams"), exports);
|
|
25
|
-
__exportStar(require("./buffers"), exports);
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,0CAAuB;AACvB,wCAAqB;AACrB,uCAAoB;AACpB,yCAAsB;AACtB,+CAA4B;AAC5B,2CAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,4CAAyB;AACzB,0CAAuB;AACvB,wCAAqB;AACrB,uCAAoB;AACpB,yCAAsB;AACtB,+CAA4B;AAC5B,2CAAwB;AACxB,8CAA2B;AAC3B,4CAAyB"}
|
package/dist/ipld.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipld.d.ts","sourceRoot":"","sources":["../src/ipld.ts"],"names":[],"mappings":";;;AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAI3C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,eAAO,MAAM,UAAU,yBAAmB,CAAA;AAC1C,eAAO,MAAM,UAAU,yBAAmB,CAAA;AAE1C,eAAO,MAAM,eAAe,SAAgB,OAAO,kCAMlD,CAAA;AAED,eAAO,MAAM,UAAU,SAAgB,OAAO,KAAG,QAAQ,GAAG,CAG3D,CAAA;AAED,eAAO,MAAM,UAAU,WAAkB,MAAM,KAAG,QAAQ,OAAO,CAOhE,CAAA;AAED,eAAO,MAAM,iBAAiB,UACrB,UAAU,KAChB,OAAO,MAAM,EAAE,OAAO,CAMxB,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAe,GAAG,SAAS,UAAU,kBAQlE,CAAA;AAED,eAAO,MAAM,WAAW,SAAU,UAAU,SAAS,MAAM,KAAG,GAG7D,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,UAAU,KAAG,GAEjD,CAAA;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAE5B,GAAG,EAAE,GAAG;IAD3B,MAAM,cAA8B;gBACjB,GAAG,EAAE,GAAG;IAI3B,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB;IAKzE,MAAM,CAAC,EAAE,EAAE,iBAAiB;CAgB7B;AAED,qBAAa,cAAe,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"ipld.d.ts","sourceRoot":"","sources":["../src/ipld.ts"],"names":[],"mappings":";;;AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAI3C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,eAAO,MAAM,UAAU,yBAAmB,CAAA;AAC1C,eAAO,MAAM,UAAU,yBAAmB,CAAA;AAE1C,eAAO,MAAM,eAAe,SAAgB,OAAO,kCAMlD,CAAA;AAED,eAAO,MAAM,UAAU,SAAgB,OAAO,KAAG,QAAQ,GAAG,CAG3D,CAAA;AAED,eAAO,MAAM,UAAU,WAAkB,MAAM,KAAG,QAAQ,OAAO,CAOhE,CAAA;AAED,eAAO,MAAM,iBAAiB,UACrB,UAAU,KAChB,OAAO,MAAM,EAAE,OAAO,CAMxB,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAe,GAAG,SAAS,UAAU,kBAQlE,CAAA;AAED,eAAO,MAAM,WAAW,SAAU,UAAU,SAAS,MAAM,KAAG,GAG7D,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,UAAU,KAAG,GAEjD,CAAA;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAE5B,GAAG,EAAE,GAAG;IAD3B,MAAM,cAA8B;gBACjB,GAAG,EAAE,GAAG;IAI3B,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB;IAKzE,MAAM,CAAC,EAAE,EAAE,iBAAiB;CAgB7B;AAED,qBAAa,cAAe,SAAQ,KAAK;IAE9B,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;gBADX,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,GAAG;CAIrB"}
|
package/dist/ipld.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipld.js","sourceRoot":"","sources":["../src/ipld.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ipld.js","sourceRoot":"","sources":["../src/ipld.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function obfuscateEmail(email: string): string;
|
|
2
|
+
export declare function obfuscateWord(word: string): string;
|
|
3
|
+
export declare function obfuscateHeaders(headers: Record<string, string>): Record<string, string>;
|
|
4
|
+
export declare function obfuscateAuthHeader(authHeader: string): string;
|
|
5
|
+
export declare function obfuscateBasic(token: string): null | string;
|
|
6
|
+
export declare function obfuscateBearer(token: string): string;
|
|
7
|
+
export declare function obfuscateToken(token: string): string;
|
|
8
|
+
export declare function obfuscateJwt(token: string): null | string;
|
|
9
|
+
//# sourceMappingURL=obfuscate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obfuscate.d.ts","sourceRoot":"","sources":["../src/obfuscate.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,UAG3C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,UAEzC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,0BAY/D;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAgB9D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAS3D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAuBzD"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.obfuscateJwt = exports.obfuscateToken = exports.obfuscateBearer = exports.obfuscateBasic = exports.obfuscateAuthHeader = exports.obfuscateHeaders = exports.obfuscateWord = exports.obfuscateEmail = void 0;
|
|
4
|
+
function obfuscateEmail(email) {
|
|
5
|
+
const [local, domain] = email.split('@');
|
|
6
|
+
return `${obfuscateWord(local)}@${obfuscateWord(domain)}`;
|
|
7
|
+
}
|
|
8
|
+
exports.obfuscateEmail = obfuscateEmail;
|
|
9
|
+
function obfuscateWord(word) {
|
|
10
|
+
return `${word.charAt(0)}***${word.charAt(word.length - 1)}`;
|
|
11
|
+
}
|
|
12
|
+
exports.obfuscateWord = obfuscateWord;
|
|
13
|
+
function obfuscateHeaders(headers) {
|
|
14
|
+
const obfuscatedHeaders = {};
|
|
15
|
+
for (const key in headers) {
|
|
16
|
+
if (key.toLowerCase() === 'authorization') {
|
|
17
|
+
obfuscatedHeaders[key] = obfuscateAuthHeader(headers[key]);
|
|
18
|
+
}
|
|
19
|
+
else if (key.toLowerCase() === 'dpop') {
|
|
20
|
+
obfuscatedHeaders[key] = obfuscateJwt(headers[key]) || 'Invalid';
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
obfuscatedHeaders[key] = headers[key];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return obfuscatedHeaders;
|
|
27
|
+
}
|
|
28
|
+
exports.obfuscateHeaders = obfuscateHeaders;
|
|
29
|
+
function obfuscateAuthHeader(authHeader) {
|
|
30
|
+
// This is a hot path (runs on every request). Avoid using split() or regex.
|
|
31
|
+
const spaceIdx = authHeader.indexOf(' ');
|
|
32
|
+
if (spaceIdx === -1)
|
|
33
|
+
return 'Invalid';
|
|
34
|
+
const type = authHeader.slice(0, spaceIdx);
|
|
35
|
+
switch (type.toLowerCase()) {
|
|
36
|
+
case 'bearer':
|
|
37
|
+
case 'dpop':
|
|
38
|
+
return `${type} ${obfuscateBearer(authHeader.slice(spaceIdx + 1))}`;
|
|
39
|
+
case 'basic':
|
|
40
|
+
return `${type} ${obfuscateBasic(authHeader.slice(spaceIdx + 1)) || 'Invalid'}`;
|
|
41
|
+
default:
|
|
42
|
+
return `Invalid`;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.obfuscateAuthHeader = obfuscateAuthHeader;
|
|
46
|
+
function obfuscateBasic(token) {
|
|
47
|
+
if (!token)
|
|
48
|
+
return null;
|
|
49
|
+
const buffer = Buffer.from(token, 'base64');
|
|
50
|
+
if (!buffer.length)
|
|
51
|
+
return null; // Buffer.from will silently ignore invalid base64 chars
|
|
52
|
+
const authHeader = buffer.toString('utf8');
|
|
53
|
+
const colIdx = authHeader.indexOf(':');
|
|
54
|
+
if (colIdx === -1)
|
|
55
|
+
return null;
|
|
56
|
+
const username = authHeader.slice(0, colIdx);
|
|
57
|
+
return `${username}:***`;
|
|
58
|
+
}
|
|
59
|
+
exports.obfuscateBasic = obfuscateBasic;
|
|
60
|
+
function obfuscateBearer(token) {
|
|
61
|
+
return obfuscateJwt(token) || obfuscateToken(token);
|
|
62
|
+
}
|
|
63
|
+
exports.obfuscateBearer = obfuscateBearer;
|
|
64
|
+
function obfuscateToken(token) {
|
|
65
|
+
if (token.length >= 12)
|
|
66
|
+
return obfuscateWord(token);
|
|
67
|
+
return token ? '***' : '';
|
|
68
|
+
}
|
|
69
|
+
exports.obfuscateToken = obfuscateToken;
|
|
70
|
+
function obfuscateJwt(token) {
|
|
71
|
+
const firstDot = token.indexOf('.');
|
|
72
|
+
if (firstDot === -1)
|
|
73
|
+
return null;
|
|
74
|
+
const secondDot = token.indexOf('.', firstDot + 1);
|
|
75
|
+
if (secondDot === -1)
|
|
76
|
+
return null;
|
|
77
|
+
// Expected to be missing
|
|
78
|
+
const thirdDot = token.indexOf('.', secondDot + 1);
|
|
79
|
+
if (thirdDot !== -1)
|
|
80
|
+
return null;
|
|
81
|
+
try {
|
|
82
|
+
const payloadEnc = token.slice(firstDot + 1, secondDot);
|
|
83
|
+
const payloadJson = Buffer.from(payloadEnc, 'base64').toString('utf8');
|
|
84
|
+
const payload = JSON.parse(payloadJson);
|
|
85
|
+
if (typeof payload.sub === 'string')
|
|
86
|
+
return payload.sub;
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Invalid JWT
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
// Strip the signature
|
|
93
|
+
return token.slice(0, secondDot) + '.obfuscated';
|
|
94
|
+
}
|
|
95
|
+
exports.obfuscateJwt = obfuscateJwt;
|
|
96
|
+
//# sourceMappingURL=obfuscate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obfuscate.js","sourceRoot":"","sources":["../src/obfuscate.ts"],"names":[],"mappings":"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"}
|
package/dist/streams.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,MAAM,EACN,QAAQ,EAER,SAAS,EACT,iBAAiB,EAClB,MAAM,QAAQ,CAAA;AAEf,eAAO,MAAM,mBAAmB,eAAgB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,MAAM,EACN,QAAQ,EAER,SAAS,EACT,iBAAiB,EAClB,MAAM,QAAQ,CAAA;AAEf,eAAO,MAAM,mBAAmB,eAAgB,MAAM,EAAE,SAOvD,CAAA;AAED,eAAO,MAAM,WAAW,WAAY,QAAQ,KAAG,QAI9C,CAAA;AAED,eAAO,MAAM,UAAU,WAAkB,QAAQ,KAAG,QAAQ,MAAM,CAMjE,CAAA;AAED,eAAO,MAAM,aAAa,WAAkB,QAAQ,KAAG,QAAQ,UAAU,CAMxE,CAAA;AAED,eAAO,MAAM,oBAAoB,SACzB,cAAc,UAAU,CAAC,KAC9B,QAEF,CAAA;AAED,eAAO,MAAM,aAAa,UAAW,UAAU,KAAG,QAKjD,CAAA;AAED,qBAAa,cAAe,SAAQ,SAAS;IAGlC,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,MAAM,KAAK;IAHjC,SAAS,SAAI;gBAEJ,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,KAAK;IAIjC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB;CAQ1E"}
|
package/dist/streams.js
CHANGED
|
@@ -3,12 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MaxSizeChecker = exports.bytesToStream = exports.byteIterableToStream = exports.streamToBytes = exports.streamSize = exports.cloneStream = exports.forwardStreamErrors = void 0;
|
|
4
4
|
const stream_1 = require("stream");
|
|
5
5
|
const forwardStreamErrors = (...streams) => {
|
|
6
|
-
for (let i =
|
|
7
|
-
const
|
|
8
|
-
const next = streams[i
|
|
9
|
-
|
|
10
|
-
stream.once('error', (err) => next.emit('error', err));
|
|
11
|
-
}
|
|
6
|
+
for (let i = 1; i < streams.length; ++i) {
|
|
7
|
+
const prev = streams[i - 1];
|
|
8
|
+
const next = streams[i];
|
|
9
|
+
prev.once('error', (err) => next.emit('error', err));
|
|
12
10
|
}
|
|
13
11
|
};
|
|
14
12
|
exports.forwardStreamErrors = forwardStreamErrors;
|
package/dist/streams.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":";;;AAAA,mCAMe;AAER,MAAM,mBAAmB,GAAG,CAAC,GAAG,OAAiB,EAAE,EAAE;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACxC,MAAM,
|
|
1
|
+
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":";;;AAAA,mCAMe;AAER,MAAM,mBAAmB,GAAG,CAAC,GAAG,OAAiB,EAAE,EAAE;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAEvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;IACtD,CAAC;AACH,CAAC,CAAA;AAPY,QAAA,mBAAmB,uBAO/B;AAEM,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAY,EAAE;IACxD,MAAM,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAA;IACrC,IAAA,2BAAmB,EAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACjC,CAAC,CAAA;AAJY,QAAA,WAAW,eAIvB;AAEM,MAAM,UAAU,GAAG,KAAK,EAAE,MAAgB,EAAmB,EAAE;IACpE,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAA;IACtB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AANY,QAAA,UAAU,cAMtB;AAEM,MAAM,aAAa,GAAG,KAAK,EAAE,MAAgB,EAAuB,EAAE;IAC3E,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AAC5C,CAAC,CAAA;AANY,QAAA,aAAa,iBAMzB;AAEM,MAAM,oBAAoB,GAAG,CAClC,IAA+B,EACrB,EAAE;IACZ,OAAO,iBAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;AACnD,CAAC,CAAA;AAJY,QAAA,oBAAoB,wBAIhC;AAEM,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAY,EAAE;IAC3D,MAAM,MAAM,GAAG,IAAI,iBAAQ,EAAE,CAAA;IAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjB,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AALY,QAAA,aAAa,iBAKzB;AAED,MAAa,cAAe,SAAQ,kBAAS;IAE3C,YACS,OAAe,EACf,WAAwB;QAE/B,KAAK,EAAE,CAAA;QAHP;;;;mBAAO,OAAO;WAAQ;QACtB;;;;mBAAO,WAAW;WAAa;QAHjC;;;;mBAAY,CAAC;WAAA;IAMb,CAAC;IACD,UAAU,CAAC,KAAiB,EAAE,IAAoB,EAAE,EAAqB;QACvE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAA;QAC9B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;CACF;AAhBD,wCAgBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/common",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Shared web-platform-friendly code for atproto libraries",
|
|
6
6
|
"keywords": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"cbor-x": "^1.5.1",
|
|
20
20
|
"iso-datestring-validator": "^2.2.2",
|
|
21
21
|
"multiformats": "^9.9.0",
|
|
22
|
-
"pino": "^8.
|
|
22
|
+
"pino": "^8.21.0",
|
|
23
23
|
"@atproto/common-web": "^0.3.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export * from '@atproto/common-web'
|
|
2
|
+
export * from './buffers'
|
|
2
3
|
export * from './dates'
|
|
3
4
|
export * from './env'
|
|
4
5
|
export * from './fs'
|
|
5
6
|
export * from './ipld'
|
|
6
7
|
export * from './ipld-multi'
|
|
7
8
|
export * from './logger'
|
|
9
|
+
export * from './obfuscate'
|
|
8
10
|
export * from './streams'
|
|
9
|
-
export * from './buffers'
|
package/src/ipld.ts
CHANGED
|
@@ -92,7 +92,10 @@ export class VerifyCidTransform extends Transform {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
export class VerifyCidError extends Error {
|
|
95
|
-
constructor(
|
|
95
|
+
constructor(
|
|
96
|
+
public expected: CID,
|
|
97
|
+
public actual: CID,
|
|
98
|
+
) {
|
|
96
99
|
super('Bad cid check')
|
|
97
100
|
}
|
|
98
101
|
}
|
package/src/obfuscate.ts
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export function obfuscateEmail(email: string) {
|
|
2
|
+
const [local, domain] = email.split('@')
|
|
3
|
+
return `${obfuscateWord(local)}@${obfuscateWord(domain)}`
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export function obfuscateWord(word: string) {
|
|
7
|
+
return `${word.charAt(0)}***${word.charAt(word.length - 1)}`
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function obfuscateHeaders(headers: Record<string, string>) {
|
|
11
|
+
const obfuscatedHeaders: Record<string, string> = {}
|
|
12
|
+
for (const key in headers) {
|
|
13
|
+
if (key.toLowerCase() === 'authorization') {
|
|
14
|
+
obfuscatedHeaders[key] = obfuscateAuthHeader(headers[key])
|
|
15
|
+
} else if (key.toLowerCase() === 'dpop') {
|
|
16
|
+
obfuscatedHeaders[key] = obfuscateJwt(headers[key]) || 'Invalid'
|
|
17
|
+
} else {
|
|
18
|
+
obfuscatedHeaders[key] = headers[key]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return obfuscatedHeaders
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function obfuscateAuthHeader(authHeader: string): string {
|
|
25
|
+
// This is a hot path (runs on every request). Avoid using split() or regex.
|
|
26
|
+
|
|
27
|
+
const spaceIdx = authHeader.indexOf(' ')
|
|
28
|
+
if (spaceIdx === -1) return 'Invalid'
|
|
29
|
+
|
|
30
|
+
const type = authHeader.slice(0, spaceIdx)
|
|
31
|
+
switch (type.toLowerCase()) {
|
|
32
|
+
case 'bearer':
|
|
33
|
+
case 'dpop':
|
|
34
|
+
return `${type} ${obfuscateBearer(authHeader.slice(spaceIdx + 1))}`
|
|
35
|
+
case 'basic':
|
|
36
|
+
return `${type} ${obfuscateBasic(authHeader.slice(spaceIdx + 1)) || 'Invalid'}`
|
|
37
|
+
default:
|
|
38
|
+
return `Invalid`
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function obfuscateBasic(token: string): null | string {
|
|
43
|
+
if (!token) return null
|
|
44
|
+
const buffer = Buffer.from(token, 'base64')
|
|
45
|
+
if (!buffer.length) return null // Buffer.from will silently ignore invalid base64 chars
|
|
46
|
+
const authHeader = buffer.toString('utf8')
|
|
47
|
+
const colIdx = authHeader.indexOf(':')
|
|
48
|
+
if (colIdx === -1) return null
|
|
49
|
+
const username = authHeader.slice(0, colIdx)
|
|
50
|
+
return `${username}:***`
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function obfuscateBearer(token: string): string {
|
|
54
|
+
return obfuscateJwt(token) || obfuscateToken(token)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function obfuscateToken(token: string): string {
|
|
58
|
+
if (token.length >= 12) return obfuscateWord(token)
|
|
59
|
+
return token ? '***' : ''
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function obfuscateJwt(token: string): null | string {
|
|
63
|
+
const firstDot = token.indexOf('.')
|
|
64
|
+
if (firstDot === -1) return null
|
|
65
|
+
|
|
66
|
+
const secondDot = token.indexOf('.', firstDot + 1)
|
|
67
|
+
if (secondDot === -1) return null
|
|
68
|
+
|
|
69
|
+
// Expected to be missing
|
|
70
|
+
const thirdDot = token.indexOf('.', secondDot + 1)
|
|
71
|
+
if (thirdDot !== -1) return null
|
|
72
|
+
|
|
73
|
+
try {
|
|
74
|
+
const payloadEnc = token.slice(firstDot + 1, secondDot)
|
|
75
|
+
const payloadJson = Buffer.from(payloadEnc, 'base64').toString('utf8')
|
|
76
|
+
const payload = JSON.parse(payloadJson)
|
|
77
|
+
if (typeof payload.sub === 'string') return payload.sub
|
|
78
|
+
} catch {
|
|
79
|
+
// Invalid JWT
|
|
80
|
+
return null
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Strip the signature
|
|
84
|
+
return token.slice(0, secondDot) + '.obfuscated'
|
|
85
|
+
}
|
package/src/streams.ts
CHANGED
|
@@ -7,12 +7,11 @@ import {
|
|
|
7
7
|
} from 'stream'
|
|
8
8
|
|
|
9
9
|
export const forwardStreamErrors = (...streams: Stream[]) => {
|
|
10
|
-
for (let i =
|
|
11
|
-
const
|
|
12
|
-
const next = streams[i
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
10
|
+
for (let i = 1; i < streams.length; ++i) {
|
|
11
|
+
const prev = streams[i - 1]
|
|
12
|
+
const next = streams[i]
|
|
13
|
+
|
|
14
|
+
prev.once('error', (err) => next.emit('error', err))
|
|
16
15
|
}
|
|
17
16
|
}
|
|
18
17
|
|
|
@@ -53,7 +52,10 @@ export const bytesToStream = (bytes: Uint8Array): Readable => {
|
|
|
53
52
|
|
|
54
53
|
export class MaxSizeChecker extends Transform {
|
|
55
54
|
totalSize = 0
|
|
56
|
-
constructor(
|
|
55
|
+
constructor(
|
|
56
|
+
public maxSize: number,
|
|
57
|
+
public createError: () => Error,
|
|
58
|
+
) {
|
|
57
59
|
super()
|
|
58
60
|
}
|
|
59
61
|
_transform(chunk: Uint8Array, _enc: BufferEncoding, cb: TransformCallback) {
|