@atproto/common 0.4.3 → 0.4.5

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atproto/common
2
2
 
3
+ ## 0.4.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#3178](https://github.com/bluesky-social/atproto/pull/3178) [`588baae12`](https://github.com/bluesky-social/atproto/commit/588baae1212a3cba3bf0d95d2f268e80513fd9c4) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Minor adaptation of VerifyCidTransform
8
+
9
+ ## 0.4.4
10
+
11
+ ### Patch Changes
12
+
13
+ - [#2834](https://github.com/bluesky-social/atproto/pull/2834) [`4098d9890`](https://github.com/bluesky-social/atproto/commit/4098d9890173f4d6c6512f2d8994eebbf12b5e13) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Allow contentEncoding to be an array for consistency with typing of headers
14
+
3
15
  ## 0.4.3
4
16
 
5
17
  ### Patch Changes
package/dist/buffers.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  export declare function ui8ToBuffer(bytes: Uint8Array): Buffer;
3
2
  export declare function ui8ToArrayBuffer(bytes: Uint8Array): ArrayBuffer;
4
3
  //# sourceMappingURL=buffers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffers.d.ts","sourceRoot":"","sources":["../src/buffers.ts"],"names":[],"mappings":";AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAErD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAK/D"}
1
+ {"version":3,"file":"buffers.d.ts","sourceRoot":"","sources":["../src/buffers.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAErD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAK/D"}
package/dist/buffers.js CHANGED
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ui8ToArrayBuffer = exports.ui8ToBuffer = void 0;
3
+ exports.ui8ToBuffer = ui8ToBuffer;
4
+ exports.ui8ToArrayBuffer = ui8ToArrayBuffer;
4
5
  function ui8ToBuffer(bytes) {
5
6
  return Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
6
7
  }
7
- exports.ui8ToBuffer = ui8ToBuffer;
8
8
  function ui8ToArrayBuffer(bytes) {
9
9
  return bytes.buffer.slice(bytes.byteOffset, bytes.byteLength + bytes.byteOffset);
10
10
  }
11
- exports.ui8ToArrayBuffer = ui8ToArrayBuffer;
12
11
  //# sourceMappingURL=buffers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffers.js","sourceRoot":"","sources":["../src/buffers.ts"],"names":[],"mappings":";;;AAAA,SAAgB,WAAW,CAAC,KAAiB;IAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;AACtE,CAAC;AAFD,kCAEC;AAED,SAAgB,gBAAgB,CAAC,KAAiB;IAChD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CACvB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CACpC,CAAA;AACH,CAAC;AALD,4CAKC"}
1
+ {"version":3,"file":"buffers.js","sourceRoot":"","sources":["../src/buffers.ts"],"names":[],"mappings":";;AAAA,kCAEC;AAED,4CAKC;AATD,SAAgB,WAAW,CAAC,KAAiB;IAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;AACtE,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAiB;IAChD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CACvB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CACpC,CAAA;AACH,CAAC"}
package/dist/dates.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toSimplifiedISOSafe = void 0;
3
+ exports.toSimplifiedISOSafe = toSimplifiedISOSafe;
4
4
  const iso_datestring_validator_1 = require("iso-datestring-validator");
5
5
  // Normalize date strings to simplified ISO so that the lexical sort preserves temporal sort.
6
6
  // Rather than failing on an invalid date format, returns valid unix epoch.
@@ -16,5 +16,4 @@ function toSimplifiedISOSafe(dateStr) {
16
16
  }
17
17
  return iso; // YYYY-MM-DDTHH:mm:ss.sssZ
18
18
  }
19
- exports.toSimplifiedISOSafe = toSimplifiedISOSafe;
20
19
  //# sourceMappingURL=dates.js.map
package/dist/dates.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dates.js","sourceRoot":"","sources":["../src/dates.ts"],"names":[],"mappings":";;;AAAA,uEAA+D;AAE/D,6FAA6F;AAC7F,2EAA2E;AAC3E,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAClC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;IAC9B,IAAI,CAAC,IAAA,+CAAoB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,2GAA2G;QAC3G,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAClC,CAAC;IACD,OAAO,GAAG,CAAA,CAAC,2BAA2B;AACxC,CAAC;AAXD,kDAWC"}
1
+ {"version":3,"file":"dates.js","sourceRoot":"","sources":["../src/dates.ts"],"names":[],"mappings":";;AAIA,kDAWC;AAfD,uEAA+D;AAE/D,6FAA6F;AAC7F,2EAA2E;AAC3E,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAClC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;IAC9B,IAAI,CAAC,IAAA,+CAAoB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,2GAA2G;QAC3G,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAClC,CAAC;IACD,OAAO,GAAG,CAAA,CAAC,2BAA2B;AACxC,CAAC"}
package/dist/fs.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,aAAoB,MAAM,KAAG,QAAQ,OAAO,CAUlE,CAAA;AAED,eAAO,MAAM,YAAY,aACb,MAAM,KACf,QAAQ,UAAU,GAAG,SAAS,CAShC,CAAA;AAED,eAAO,MAAM,UAAU,aACX,MAAM,0BAEf,QAAQ,IAAI,CASd,CAAA"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,aAAoB,MAAM,KAAG,OAAO,CAAC,OAAO,CAUlE,CAAA;AAED,eAAO,MAAM,YAAY,aACb,MAAM,KACf,OAAO,CAAC,UAAU,GAAG,SAAS,CAShC,CAAA;AAED,eAAO,MAAM,UAAU,aACX,MAAM,0BAEf,OAAO,CAAC,IAAI,CASd,CAAA"}
package/dist/ipld.d.ts CHANGED
@@ -1,8 +1,4 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
- import crypto from 'crypto';
5
- import { Transform, TransformCallback } from 'stream';
1
+ import { Transform } from 'node:stream';
6
2
  import { CID } from 'multiformats/cid';
7
3
  import * as Block from 'multiformats/block';
8
4
  import * as cborCodec from '@ipld/dag-cbor';
@@ -17,10 +13,7 @@ export declare const sha256ToCid: (hash: Uint8Array, codec: number) => CID;
17
13
  export declare const sha256RawToCid: (hash: Uint8Array) => CID;
18
14
  export declare class VerifyCidTransform extends Transform {
19
15
  cid: CID;
20
- hasher: crypto.Hash;
21
16
  constructor(cid: CID);
22
- _transform(chunk: Uint8Array, _enc: BufferEncoding, cb: TransformCallback): void;
23
- _flush(cb: TransformCallback): void;
24
17
  }
25
18
  export declare class VerifyCidError extends Error {
26
19
  expected: CID;
@@ -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;IAE9B,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;gBADX,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,GAAG;CAIrB"}
1
+ {"version":3,"file":"ipld.d.ts","sourceRoot":"","sources":["../src/ipld.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,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,OAAO,CAAC,GAAG,CAG3D,CAAA;AAED,eAAO,MAAM,UAAU,WAAkB,MAAM,KAAG,OAAO,CAAC,OAAO,CAOhE,CAAA;AAED,eAAO,MAAM,iBAAiB,UACrB,UAAU,KAChB,MAAM,CAAC,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;IAC5B,GAAG,EAAE,GAAG;gBAAR,GAAG,EAAE,GAAG;CAqB5B;AAKD,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 CHANGED
@@ -22,13 +22,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
25
  Object.defineProperty(exports, "__esModule", { value: true });
29
26
  exports.VerifyCidError = exports.VerifyCidTransform = exports.sha256RawToCid = exports.sha256ToCid = exports.verifyCidForBytes = exports.cborBytesToRecord = exports.isValidCid = exports.cidForCbor = exports.dataToCborBlock = exports.cborDecode = exports.cborEncode = void 0;
30
- const crypto_1 = __importDefault(require("crypto"));
31
- const stream_1 = require("stream");
27
+ const node_crypto_1 = require("node:crypto");
28
+ const node_stream_1 = require("node:stream");
32
29
  const common_web_1 = require("@atproto/common-web");
33
30
  const cid_1 = require("multiformats/cid");
34
31
  const Block = __importStar(require("multiformats/block"));
@@ -86,45 +83,39 @@ const sha256RawToCid = (hash) => {
86
83
  return (0, exports.sha256ToCid)(hash, rawCodec.code);
87
84
  };
88
85
  exports.sha256RawToCid = sha256RawToCid;
89
- class VerifyCidTransform extends stream_1.Transform {
86
+ class VerifyCidTransform extends node_stream_1.Transform {
90
87
  constructor(cid) {
91
- super();
88
+ const hasher = (0, node_crypto_1.createHash)('sha256');
89
+ super({
90
+ transform(chunk, encoding, callback) {
91
+ hasher.update(chunk);
92
+ callback(null, chunk);
93
+ },
94
+ flush(callback) {
95
+ try {
96
+ const actual = (0, exports.sha256RawToCid)(hasher.digest());
97
+ if (actual.equals(cid)) {
98
+ return callback();
99
+ }
100
+ else {
101
+ return callback(new VerifyCidError(cid, actual));
102
+ }
103
+ }
104
+ catch (err) {
105
+ return callback(asError(err));
106
+ }
107
+ },
108
+ });
92
109
  Object.defineProperty(this, "cid", {
93
110
  enumerable: true,
94
111
  configurable: true,
95
112
  writable: true,
96
113
  value: cid
97
114
  });
98
- Object.defineProperty(this, "hasher", {
99
- enumerable: true,
100
- configurable: true,
101
- writable: true,
102
- value: crypto_1.default.createHash('sha256')
103
- });
104
- }
105
- _transform(chunk, _enc, cb) {
106
- this.hasher.update(chunk);
107
- cb(null, chunk);
108
- }
109
- _flush(cb) {
110
- try {
111
- const cid = (0, exports.sha256RawToCid)(this.hasher.digest());
112
- if (this.cid.equals(cid)) {
113
- return cb();
114
- }
115
- else {
116
- return cb(new VerifyCidError(this.cid, cid));
117
- }
118
- }
119
- catch (_err) {
120
- const err = _err instanceof Error
121
- ? _err
122
- : new Error('Unexpected error', { cause: _err });
123
- return cb(err);
124
- }
125
115
  }
126
116
  }
127
117
  exports.VerifyCidTransform = VerifyCidTransform;
118
+ const asError = (err) => err instanceof Error ? err : new Error('Unexpected error', { cause: err });
128
119
  class VerifyCidError extends Error {
129
120
  constructor(expected, actual) {
130
121
  super('Bad cid check');
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,6CAAuC;AACvC,oDAAmD;AACnD,0CAAsC;AACtC,0DAA2C;AAC3C,kEAAmD;AACnD,mDAAiD;AACjD,iDAAkC;AAClC,0DAA2C;AAE9B,QAAA,UAAU,GAAG,SAAS,CAAC,MAAM,CAAA;AAC7B,QAAA,UAAU,GAAG,SAAS,CAAC,MAAM,CAAA;AAEnC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC;QAClB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,aAAM;KACf,CAAC,CAAA;AACJ,CAAC,CAAA;AANY,QAAA,eAAe,mBAM3B;AAEM,MAAM,UAAU,GAAG,KAAK,EAAE,IAAa,EAAgB,EAAE;IAC9D,MAAM,KAAK,GAAG,MAAM,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;IACzC,OAAO,KAAK,CAAC,GAAG,CAAA;AAClB,CAAC,CAAA;AAHY,QAAA,UAAU,cAGtB;AAEM,MAAM,UAAU,GAAG,KAAK,EAAE,MAAc,EAAoB,EAAE;IACnE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAChC,OAAO,MAAM,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAA;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAPY,QAAA,UAAU,cAOtB;AAEM,MAAM,iBAAiB,GAAG,CAC/B,KAAiB,EACQ,EAAE;IAC3B,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAA;IAC7B,IAAI,CAAC,kBAAK,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AARY,QAAA,iBAAiB,qBAQ7B;AAEM,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAQ,EAAE,KAAiB,EAAE,EAAE;IACrE,MAAM,MAAM,GAAG,MAAM,aAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,SAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,wCAAwC,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,CAAC,QAAQ,EAAE,EAAE,CACrF,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AARY,QAAA,iBAAiB,qBAQ7B;AAEM,MAAM,WAAW,GAAG,CAAC,IAAgB,EAAE,KAAa,EAAO,EAAE;IAClE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,aAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAClD,OAAO,SAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AACpC,CAAC,CAAA;AAHY,QAAA,WAAW,eAGvB;AAEM,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAO,EAAE;IACtD,OAAO,IAAA,mBAAW,EAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;AACzC,CAAC,CAAA;AAFY,QAAA,cAAc,kBAE1B;AAED,MAAa,kBAAmB,SAAQ,uBAAS;IAC/C,YAAmB,GAAQ;QACzB,MAAM,MAAM,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAA;QACnC,KAAK,CAAC;YACJ,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ;gBACjC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACpB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACvB,CAAC;YACD,KAAK,CAAC,QAAQ;gBACZ,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAA,sBAAc,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;oBAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvB,OAAO,QAAQ,EAAE,CAAA;oBACnB,CAAC;yBAAM,CAAC;wBACN,OAAO,QAAQ,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;oBAClD,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QAnBQ;;;;mBAAO,GAAG;WAAK;IAoB3B,CAAC;CACF;AAtBD,gDAsBC;AAED,MAAM,OAAO,GAAG,CAAC,GAAY,EAAS,EAAE,CACtC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;AAE5E,MAAa,cAAe,SAAQ,KAAK;IACvC,YACS,QAAa,EACb,MAAW;QAElB,KAAK,CAAC,eAAe,CAAC,CAAA;QAHtB;;;;mBAAO,QAAQ;WAAK;QACpB;;;;mBAAO,MAAM;WAAK;IAGpB,CAAC;CACF;AAPD,wCAOC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAwBvB,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,KAAK,MAWnD,CAAA"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAwBvB,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,IAAI,CAAC,MAWnD,CAAA"}
package/dist/obfuscate.js CHANGED
@@ -1,15 +1,20 @@
1
1
  "use strict";
2
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;
3
+ exports.obfuscateEmail = obfuscateEmail;
4
+ exports.obfuscateWord = obfuscateWord;
5
+ exports.obfuscateHeaders = obfuscateHeaders;
6
+ exports.obfuscateAuthHeader = obfuscateAuthHeader;
7
+ exports.obfuscateBasic = obfuscateBasic;
8
+ exports.obfuscateBearer = obfuscateBearer;
9
+ exports.obfuscateToken = obfuscateToken;
10
+ exports.obfuscateJwt = obfuscateJwt;
4
11
  function obfuscateEmail(email) {
5
12
  const [local, domain] = email.split('@');
6
13
  return `${obfuscateWord(local)}@${obfuscateWord(domain)}`;
7
14
  }
8
- exports.obfuscateEmail = obfuscateEmail;
9
15
  function obfuscateWord(word) {
10
16
  return `${word.charAt(0)}***${word.charAt(word.length - 1)}`;
11
17
  }
12
- exports.obfuscateWord = obfuscateWord;
13
18
  function obfuscateHeaders(headers) {
14
19
  const obfuscatedHeaders = {};
15
20
  for (const key in headers) {
@@ -25,7 +30,6 @@ function obfuscateHeaders(headers) {
25
30
  }
26
31
  return obfuscatedHeaders;
27
32
  }
28
- exports.obfuscateHeaders = obfuscateHeaders;
29
33
  function obfuscateAuthHeader(authHeader) {
30
34
  // This is a hot path (runs on every request). Avoid using split() or regex.
31
35
  const spaceIdx = authHeader.indexOf(' ');
@@ -42,7 +46,6 @@ function obfuscateAuthHeader(authHeader) {
42
46
  return `Invalid`;
43
47
  }
44
48
  }
45
- exports.obfuscateAuthHeader = obfuscateAuthHeader;
46
49
  function obfuscateBasic(token) {
47
50
  if (!token)
48
51
  return null;
@@ -56,17 +59,14 @@ function obfuscateBasic(token) {
56
59
  const username = authHeader.slice(0, colIdx);
57
60
  return `${username}:***`;
58
61
  }
59
- exports.obfuscateBasic = obfuscateBasic;
60
62
  function obfuscateBearer(token) {
61
63
  return obfuscateJwt(token) || obfuscateToken(token);
62
64
  }
63
- exports.obfuscateBearer = obfuscateBearer;
64
65
  function obfuscateToken(token) {
65
66
  if (token.length >= 12)
66
67
  return obfuscateWord(token);
67
68
  return token ? '***' : '';
68
69
  }
69
- exports.obfuscateToken = obfuscateToken;
70
70
  function obfuscateJwt(token) {
71
71
  const firstDot = token.indexOf('.');
72
72
  if (firstDot === -1)
@@ -92,5 +92,4 @@ function obfuscateJwt(token) {
92
92
  // Strip the signature
93
93
  return token.slice(0, secondDot) + '.obfuscated';
94
94
  }
95
- exports.obfuscateJwt = obfuscateJwt;
96
95
  //# sourceMappingURL=obfuscate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"obfuscate.js","sourceRoot":"","sources":["../src/obfuscate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obfuscate.js","sourceRoot":"","sources":["../src/obfuscate.ts"],"names":[],"mappings":"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"}
package/dist/streams.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { Duplex, Readable, Stream, Transform, TransformCallback } from 'node:stream';
4
2
  export declare const forwardStreamErrors: (...streams: Stream[]) => void;
5
3
  export declare const cloneStream: (stream: Readable) => Readable;
@@ -15,11 +13,13 @@ export declare class MaxSizeChecker extends Transform {
15
13
  constructor(maxSize: number, createError: () => Error);
16
14
  _transform(chunk: Uint8Array, _enc: BufferEncoding, cb: TransformCallback): void;
17
15
  }
18
- export declare function decodeStream(stream: Readable, contentEncoding?: string): Readable;
19
- export declare function decodeStream(stream: AsyncIterable<Uint8Array>, contentEncoding?: string): AsyncIterable<Uint8Array> | Readable;
16
+ export declare function decodeStream(stream: Readable, contentEncoding?: string | string[]): Readable;
17
+ export declare function decodeStream(stream: AsyncIterable<Uint8Array>, contentEncoding?: string | string[]): AsyncIterable<Uint8Array> | Readable;
20
18
  /**
21
19
  * Create a series of decoding streams based on the content-encoding header. The
22
20
  * resulting streams should be piped together to decode the content.
21
+ *
22
+ * @see {@link https://datatracker.ietf.org/doc/html/rfc9110#section-8.4.1}
23
23
  */
24
- export declare function createDecoders(contentEncoding?: string): Duplex[];
24
+ export declare function createDecoders(contentEncoding?: string | string[]): Duplex[];
25
25
  //# sourceMappingURL=streams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,MAAM,EAGN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,iBAAiB,EAClB,MAAM,aAAa,CAAA;AAGpB,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,cAAc,UAAU,CAAC,wBAInB,CAAA;AAGlD,eAAO,MAAM,kBAAkB,WACrB,SAAS,UAAU,CAAC,GAAG,cAAc,UAAU,CAAC,KACvD,QAAQ,MAAM,CAYhB,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;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,QAAQ,EAChB,eAAe,CAAC,EAAE,MAAM,GACvB,QAAQ,CAAA;AACX,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,EACjC,eAAe,CAAC,EAAE,MAAM,GACvB,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;AAUvC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAcjE"}
1
+ {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAGN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,iBAAiB,EAClB,MAAM,aAAa,CAAA;AAGpB,eAAO,MAAM,mBAAmB,eAAgB,MAAM,EAAE,SAOvD,CAAA;AAED,eAAO,MAAM,WAAW,WAAY,QAAQ,KAAG,QAI9C,CAAA;AAED,eAAO,MAAM,UAAU,WAAkB,QAAQ,KAAG,OAAO,CAAC,MAAM,CAMjE,CAAA;AAED,eAAO,MAAM,aAAa,WAAkB,aAAa,CAAC,UAAU,CAAC,wBAInB,CAAA;AAGlD,eAAO,MAAM,kBAAkB,WACrB,QAAQ,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,KACvD,OAAO,CAAC,MAAM,CAYhB,CAAA;AAED,eAAO,MAAM,oBAAoB,SACzB,aAAa,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;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,QAAQ,EAChB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAClC,QAAQ,CAAA;AACX,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,EACjC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAClC,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;AAUvC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAqB5E"}
package/dist/streams.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDecoders = exports.decodeStream = exports.MaxSizeChecker = exports.bytesToStream = exports.byteIterableToStream = exports.streamToNodeBuffer = exports.streamToBytes = exports.streamSize = exports.cloneStream = exports.forwardStreamErrors = void 0;
3
+ exports.MaxSizeChecker = exports.bytesToStream = exports.byteIterableToStream = exports.streamToNodeBuffer = exports.streamToBytes = exports.streamSize = exports.cloneStream = exports.forwardStreamErrors = void 0;
4
+ exports.decodeStream = decodeStream;
5
+ exports.createDecoders = createDecoders;
4
6
  const node_stream_1 = require("node:stream");
5
7
  const node_zlib_1 = require("node:zlib");
6
8
  const forwardStreamErrors = (...streams) => {
@@ -97,17 +99,24 @@ function decodeStream(stream, contentEncoding) {
97
99
  return stream;
98
100
  return (0, node_stream_1.pipeline)([stream, ...decoders], () => { });
99
101
  }
100
- exports.decodeStream = decodeStream;
101
102
  /**
102
103
  * Create a series of decoding streams based on the content-encoding header. The
103
104
  * resulting streams should be piped together to decode the content.
105
+ *
106
+ * @see {@link https://datatracker.ietf.org/doc/html/rfc9110#section-8.4.1}
104
107
  */
105
108
  function createDecoders(contentEncoding) {
106
109
  const decoders = [];
107
- if (contentEncoding) {
108
- const encodings = contentEncoding.split(',');
110
+ if (contentEncoding?.length) {
111
+ const encodings = Array.isArray(contentEncoding)
112
+ ? contentEncoding.flatMap(commaSplit)
113
+ : contentEncoding.split(',');
109
114
  for (const encoding of encodings) {
110
115
  const normalizedEncoding = normalizeEncoding(encoding);
116
+ // @NOTE
117
+ // > The default (identity) encoding [...] is used only in the
118
+ // > Accept-Encoding header, and SHOULD NOT be used in the
119
+ // > Content-Encoding header.
111
120
  if (normalizedEncoding === 'identity')
112
121
  continue;
113
122
  decoders.push(createDecoder(normalizedEncoding));
@@ -115,7 +124,9 @@ function createDecoders(contentEncoding) {
115
124
  }
116
125
  return decoders.reverse();
117
126
  }
118
- exports.createDecoders = createDecoders;
127
+ function commaSplit(header) {
128
+ return header.split(',');
129
+ }
119
130
  function normalizeEncoding(encoding) {
120
131
  // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1
121
132
  // > All content-coding values are case-insensitive...
@@ -1 +1 @@
1
- {"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streams.js","sourceRoot":"","sources":["../src/streams.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/common",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "license": "MIT",
5
5
  "description": "Shared web-platform-friendly code for atproto libraries",
6
6
  "keywords": [
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "devDependencies": {
26
26
  "jest": "^28.1.2",
27
- "typescript": "^5.3.3",
27
+ "typescript": "^5.6.3",
28
28
  "uint8arrays": "3.0.0"
29
29
  },
30
30
  "scripts": {
package/src/ipld.ts CHANGED
@@ -1,5 +1,5 @@
1
- import crypto from 'crypto'
2
- import { Transform, TransformCallback } from 'stream'
1
+ import { createHash } from 'node:crypto'
2
+ import { Transform } from 'node:stream'
3
3
  import { check, schema } from '@atproto/common-web'
4
4
  import { CID } from 'multiformats/cid'
5
5
  import * as Block from 'multiformats/block'
@@ -63,34 +63,32 @@ export const sha256RawToCid = (hash: Uint8Array): CID => {
63
63
  }
64
64
 
65
65
  export class VerifyCidTransform extends Transform {
66
- hasher = crypto.createHash('sha256')
67
66
  constructor(public cid: CID) {
68
- super()
69
- }
70
-
71
- _transform(chunk: Uint8Array, _enc: BufferEncoding, cb: TransformCallback) {
72
- this.hasher.update(chunk)
73
- cb(null, chunk)
74
- }
75
-
76
- _flush(cb: TransformCallback) {
77
- try {
78
- const cid = sha256RawToCid(this.hasher.digest())
79
- if (this.cid.equals(cid)) {
80
- return cb()
81
- } else {
82
- return cb(new VerifyCidError(this.cid, cid))
83
- }
84
- } catch (_err) {
85
- const err =
86
- _err instanceof Error
87
- ? _err
88
- : new Error('Unexpected error', { cause: _err })
89
- return cb(err)
90
- }
67
+ const hasher = createHash('sha256')
68
+ super({
69
+ transform(chunk, encoding, callback) {
70
+ hasher.update(chunk)
71
+ callback(null, chunk)
72
+ },
73
+ flush(callback) {
74
+ try {
75
+ const actual = sha256RawToCid(hasher.digest())
76
+ if (actual.equals(cid)) {
77
+ return callback()
78
+ } else {
79
+ return callback(new VerifyCidError(cid, actual))
80
+ }
81
+ } catch (err) {
82
+ return callback(asError(err))
83
+ }
84
+ },
85
+ })
91
86
  }
92
87
  }
93
88
 
89
+ const asError = (err: unknown): Error =>
90
+ err instanceof Error ? err : new Error('Unexpected error', { cause: err })
91
+
94
92
  export class VerifyCidError extends Error {
95
93
  constructor(
96
94
  public expected: CID,
package/src/streams.ts CHANGED
@@ -88,15 +88,15 @@ export class MaxSizeChecker extends Transform {
88
88
 
89
89
  export function decodeStream(
90
90
  stream: Readable,
91
- contentEncoding?: string,
91
+ contentEncoding?: string | string[],
92
92
  ): Readable
93
93
  export function decodeStream(
94
94
  stream: AsyncIterable<Uint8Array>,
95
- contentEncoding?: string,
95
+ contentEncoding?: string | string[],
96
96
  ): AsyncIterable<Uint8Array> | Readable
97
97
  export function decodeStream(
98
98
  stream: Readable | AsyncIterable<Uint8Array>,
99
- contentEncoding?: string,
99
+ contentEncoding?: string | string[],
100
100
  ): Readable | AsyncIterable<Uint8Array> {
101
101
  const decoders = createDecoders(contentEncoding)
102
102
  if (decoders.length === 0) return stream
@@ -106,14 +106,23 @@ export function decodeStream(
106
106
  /**
107
107
  * Create a series of decoding streams based on the content-encoding header. The
108
108
  * resulting streams should be piped together to decode the content.
109
+ *
110
+ * @see {@link https://datatracker.ietf.org/doc/html/rfc9110#section-8.4.1}
109
111
  */
110
- export function createDecoders(contentEncoding?: string): Duplex[] {
112
+ export function createDecoders(contentEncoding?: string | string[]): Duplex[] {
111
113
  const decoders: Duplex[] = []
112
114
 
113
- if (contentEncoding) {
114
- const encodings = contentEncoding.split(',')
115
+ if (contentEncoding?.length) {
116
+ const encodings: string[] = Array.isArray(contentEncoding)
117
+ ? contentEncoding.flatMap(commaSplit)
118
+ : contentEncoding.split(',')
115
119
  for (const encoding of encodings) {
116
120
  const normalizedEncoding = normalizeEncoding(encoding)
121
+
122
+ // @NOTE
123
+ // > The default (identity) encoding [...] is used only in the
124
+ // > Accept-Encoding header, and SHOULD NOT be used in the
125
+ // > Content-Encoding header.
117
126
  if (normalizedEncoding === 'identity') continue
118
127
 
119
128
  decoders.push(createDecoder(normalizedEncoding))
@@ -123,6 +132,10 @@ export function createDecoders(contentEncoding?: string): Duplex[] {
123
132
  return decoders.reverse()
124
133
  }
125
134
 
135
+ function commaSplit(header: string): string[] {
136
+ return header.split(',')
137
+ }
138
+
126
139
  function normalizeEncoding(encoding: string) {
127
140
  // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1
128
141
  // > All content-coding values are case-insensitive...
@@ -0,0 +1 @@
1
+ {"root":["./src/buffers.ts","./src/dates.ts","./src/env.ts","./src/fs.ts","./src/index.ts","./src/ipld-multi.ts","./src/ipld.ts","./src/logger.ts","./src/obfuscate.ts","./src/streams.ts"],"version":"5.6.3"}
@@ -0,0 +1 @@
1
+ {"root":["./tests/ipld-multi.test.ts","./tests/ipld-vectors.ts","./tests/ipld.test.ts","./tests/streams.test.ts"],"version":"5.6.3"}