@atcute/cbor 2.2.7 → 2.3.0

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/README.md CHANGED
@@ -1,25 +1,19 @@
1
1
  # @atcute/cbor
2
2
 
3
- lightweight [DASL dCBOR42 (deterministic CBOR with tag 42)][dasl-dcbor42] codec library for AT
4
- Protocol.
5
-
6
- the specific profile being implemented is [IPLD DAG-CBOR][ipld-dag-cbor], with some additional notes
7
- to keep in mind:
8
-
9
- - `undefined` types are still forbidden, except for when they are in a `map` type, where fields will
10
- be omitted instead, which makes it easier to construct objects to then pass to the encoder.
11
- - `byte` and `link` types are represented by atproto's [lex-json][atproto-data-model] interfaces,
12
- but because these involve string codec and parsing, they are done lazily by `BytesWrapper` and
13
- `CidLinkWrapper` instances.
14
- - use `fromBytes` and `fromCidLink` to convert them to Uint8Array or CID interface respectively,
15
- without hitting the string conversion path.
16
- - use `toBytes` and `toCidLink` for the other direction.
17
- - integers can't exceed JavaScript's safe integer range, no bigint conversions will occur as they
18
- will be thrown instead if encountered.
3
+ deterministic CBOR codec for AT Protocol.
19
4
 
20
- [atproto-data-model]: https://atproto.com/specs/data-model
21
- [dasl-dcbor42]: https://dasl.ing/dcbor42.html
22
- [ipld-dag-cbor]: https://ipld.io/specs/codecs/dag-cbor/spec
5
+ ```sh
6
+ npm install @atcute/cbor
7
+ ```
8
+
9
+ this library implements DASL's [DRISL][dasl-drisl] format used by AT Protocol for encoding records
10
+ and repository data.
11
+
12
+ [dasl-drisl]: https://dasl.ing/drisl.html
13
+
14
+ ## usage
15
+
16
+ ### encoding
23
17
 
24
18
  ```ts
25
19
  import { encode } from '@atcute/cbor';
@@ -32,7 +26,29 @@ const record = {
32
26
  };
33
27
 
34
28
  const cbor = encode(record);
35
- // ^? Uint8Array(90) [ ... ]
29
+ // -> Uint8Array(90)
30
+ ```
31
+
32
+ ### decoding
33
+
34
+ ```ts
35
+ import { decode, decodeFirst } from '@atcute/cbor';
36
+
37
+ const record = decode(cborBytes);
38
+ // -> { $type: 'app.bsky.feed.post', ... }
39
+
40
+ // decode from a buffer containing multiple values
41
+ const [value, remainder] = decodeFirst(cborBytes);
36
42
  ```
37
43
 
38
- Implementation based on the excellent [`microcbor` library](https://github.com/joeltg/microcbor).
44
+ ## notes
45
+
46
+ - `undefined` values are omitted from maps (making it easier to construct objects)
47
+ - bytes and CID links use lazy wrappers (`BytesWrapper`, `CidLinkWrapper`) compatible with atproto's
48
+ [lex-json][atproto-data-model] format
49
+ - use `toBytes`/`fromBytes` and `toCidLink`/`fromCidLink` to convert between lex-json and raw types
50
+ - integers must be within JavaScript's safe integer range (no bigint support)
51
+
52
+ [atproto-data-model]: https://atproto.com/specs/data-model
53
+
54
+ based on [`microcbor`](https://github.com/joeltg/microcbor).
package/dist/bytes.d.ts CHANGED
@@ -8,6 +8,6 @@ export declare class BytesWrapper implements Bytes {
8
8
  toJSON(): Bytes;
9
9
  }
10
10
  export declare const isBytes: (value: unknown) => value is Bytes;
11
- export declare const toBytes: (buf: Uint8Array) => Bytes;
12
- export declare const fromBytes: (bytes: Bytes) => Uint8Array;
11
+ export declare const toBytes: (buf: Uint8Array<ArrayBufferLike>) => Bytes;
12
+ export declare const fromBytes: (bytes: Bytes) => Uint8Array<ArrayBufferLike>;
13
13
  //# sourceMappingURL=bytes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../lib/bytes.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,KAAK;IACrB,MAAM,EAAE,MAAM,CAAC;CACf;AAID,qBAAa,YAAa,YAAW,KAAK;IAItB,GAAG,EAAE,UAAU;gBAAf,GAAG,EAAE,UAAU;IAElC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,MAAM,IAAI,KAAK;CAGf;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,KAMjD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,UAAU,KAAG,KAEzC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,UAMxC,CAAC"}
1
+ {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../lib/bytes.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,KAAK;IACrB,MAAM,EAAE,MAAM,CAAC;CACf;AAID,qBAAa,YAAa,YAAW,KAAK;IAItB,GAAG,EAAE,UAAU;IAAlC,YAAmB,GAAG,EAAE,UAAU,EAAI;IAEtC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,MAAM,IAAI,KAAK,CAEd;CACD;AAED,eAAO,MAAM,OAAO,oCAMnB,CAAC;AAEF,eAAO,MAAM,OAAO,6CAEnB,CAAC;AAEF,eAAO,MAAM,SAAS,+CAMrB,CAAC"}
package/dist/bytes.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../lib/bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMzD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAEzD,MAAM,OAAO,YAAY;IAIL;IAHnB,gBAAgB;IACP,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAE/B,YAAmB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IAAG,CAAC;IAEtC,IAAI,MAAM;QACT,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM;QACL,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;CACD;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAkB,EAAE;IACzD,MAAM,GAAG,GAAG,KAAY,CAAC;IAEzB,OAAO,CACN,GAAG,YAAY,YAAY,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAC1G,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAe,EAAS,EAAE;IACjD,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAY,EAAc,EAAE;IACrD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../lib/bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMzD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAEzD,MAAM,OAAO,YAAY;IAIL,GAAG;IAHtB,gBAAgB;IACP,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAE/B,YAAmB,GAAe,EAAE;mBAAjB,GAAG;IAAe,CAAC;IAEtC,IAAI,MAAM,GAAW;QACpB,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAA,CAC1B;IAED,MAAM,GAAU;QACf,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAAA,CAC/B;CACD;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAkB,EAAE,CAAC;IAC1D,MAAM,GAAG,GAAG,KAAY,CAAC;IAEzB,OAAO,CACN,GAAG,YAAY,YAAY,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAC1G,CAAC;AAAA,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAe,EAAS,EAAE,CAAC;IAClD,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;AAAA,CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAY,EAAc,EAAE,CAAC;IACtD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAAA,CAChC,CAAC"}
package/dist/decode.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const decodeFirst: (buf: Uint8Array) => [value: any, remainder: Uint8Array];
2
- export declare const decode: (buf: Uint8Array) => any;
1
+ export declare const decodeFirst: (buf: Uint8Array<ArrayBufferLike>) => [value: any, remainder: Uint8Array<ArrayBufferLike>];
2
+ export declare const decode: (buf: Uint8Array<ArrayBufferLike>) => any;
3
3
  //# sourceMappingURL=decode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../lib/decode.ts"],"names":[],"mappings":"AAqKA,eAAO,MAAM,WAAW,GAAI,KAAK,UAAU,KAAG,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,CAqK/E,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,UAAU,KAAG,GAOxC,CAAC"}
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../lib/decode.ts"],"names":[],"mappings":"AA8JA,eAAO,MAAM,WAAW,4FA2JvB,CAAC;AAEF,eAAO,MAAM,MAAM,2CAOlB,CAAC"}
package/dist/decode.js CHANGED
@@ -65,16 +65,12 @@ const readUint32 = (state) => {
65
65
  return value;
66
66
  };
67
67
  const readUint53 = (state) => {
68
- let pos = state.p;
69
- const buf = state.b;
70
- const hi = ((buf[pos++] << 24) | (buf[pos++] << 16) | (buf[pos++] << 8) | buf[pos++]) >>> 0;
68
+ const hi = readUint32(state);
69
+ const lo = readUint32(state);
71
70
  if (hi > 0x1fffff) {
72
71
  throw new RangeError(`can't decode integers beyond safe integer range`);
73
72
  }
74
- const lo = ((buf[pos++] << 24) | (buf[pos++] << 16) | (buf[pos++] << 8) | buf[pos++]) >>> 0;
75
- const value = hi * 2 ** 32 + lo;
76
- state.p = pos;
77
- return value;
73
+ return hi * 2 ** 32 + lo;
78
74
  };
79
75
  const readString = (state, length) => {
80
76
  const string = decodeUtf8From(state.b, state.p, length);
@@ -87,7 +83,7 @@ const readBytes = (state, length) => {
87
83
  };
88
84
  const readCid = (state, length) => {
89
85
  const cid = fromBinary(state.b.subarray(state.p, (state.p += length)));
90
- return new CidLinkWrapper(cid.bytes, undefined);
86
+ return new CidLinkWrapper(cid.bytes);
91
87
  };
92
88
  const compareKeys = (a, b) => {
93
89
  return a.length - b.length || (a < b ? -1 : a > b ? 1 : 0);
@@ -115,47 +111,44 @@ export const decodeFirst = (buf) => {
115
111
  const prelude = readUint8(state);
116
112
  const type = prelude >> 5;
117
113
  const info = prelude & 0x1f;
114
+ const arg = type === 7 ? 0 : readArgument(state, info);
118
115
  switch (type) {
119
116
  case 0: {
120
- value = readArgument(state, info);
117
+ value = arg;
121
118
  break;
122
119
  }
123
120
  case 1: {
124
- value = -1 - readArgument(state, info);
121
+ value = -1 - arg;
125
122
  break;
126
123
  }
127
124
  case 2: {
128
- value = readBytes(state, readArgument(state, info));
125
+ value = readBytes(state, arg);
129
126
  break;
130
127
  }
131
128
  case 3: {
132
- value = readString(state, readArgument(state, info));
129
+ value = readString(state, arg);
133
130
  break;
134
131
  }
135
132
  case 4: {
136
- const len = readArgument(state, info);
137
- const arr = new Array(len);
138
- value = arr;
139
- if (len > 0) {
140
- stack = { t: 1, c: arr, k: null, r: len, n: stack };
133
+ if (arg > 0) {
134
+ // oxlint-disable-next-line no-new-array
135
+ stack = { t: 1, c: (value = new Array(arg)), k: null, r: arg, n: stack };
141
136
  continue jump;
142
137
  }
138
+ value = [];
143
139
  break;
144
140
  }
145
141
  case 5: {
146
- const len = readArgument(state, info);
147
- const obj = {};
148
- value = obj;
149
- if (len > 0) {
142
+ value = {};
143
+ if (arg > 0) {
150
144
  // We'll read the key of the first item here.
151
145
  const first = decodeStringKey(state);
152
- stack = { t: 0, c: obj, k: first, r: len, n: stack };
146
+ stack = { t: 0, c: value, k: first, r: arg, n: stack };
153
147
  continue jump;
154
148
  }
155
149
  break;
156
150
  }
157
151
  case 6: {
158
- const arg = readArgument(state, info);
159
152
  switch (arg) {
160
153
  case 42: {
161
154
  const prelude = readUint8(state);
@@ -218,16 +211,15 @@ export const decodeFirst = (buf) => {
218
211
  break;
219
212
  }
220
213
  }
221
- if (--stack.r !== 0) {
214
+ if (--stack.r) {
222
215
  // We still have more values to decode, continue
223
- if (stack.t === 0) {
216
+ if (!stack.t) {
224
217
  // Read the key of the next map item
225
218
  const prevKey = stack.k;
226
- const nextKey = decodeStringKey(state);
227
- if (compareKeys(nextKey, prevKey) <= 0) {
219
+ stack.k = decodeStringKey(state);
220
+ if (compareKeys(stack.k, prevKey) <= 0) {
228
221
  throw new TypeError(`map keys are not in canonical order or contain duplicates`);
229
222
  }
230
- stack.k = nextKey;
231
223
  }
232
224
  continue jump;
233
225
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decode.js","sourceRoot":"","sources":["../lib/decode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decode.js","sourceRoot":"","sources":["../lib/decode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../lib/encode.ts"],"names":[],"mappings":"AAuSA,eAAO,MAAM,MAAM,GAAI,OAAO,GAAG,KAAG,UAAU,CAAC,WAAW,CAOzD,CAAC"}
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../lib/encode.ts"],"names":[],"mappings":"AAuTA,eAAO,MAAM,MAAM,yCAUlB,CAAC"}
package/dist/encode.js CHANGED
@@ -5,7 +5,7 @@ const MAX_TYPE_ARG_LEN = 9;
5
5
  const CHUNK_SIZE = 1024;
6
6
  const _max = Math.max;
7
7
  const _isInteger = Number.isInteger;
8
- const _isNaN = Number.isNaN;
8
+ const _isFinite = Number.isFinite;
9
9
  const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
10
10
  const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER;
11
11
  const resizeIfNeeded = (state, needed) => {
@@ -99,8 +99,8 @@ const writeFloat = (state, val) => {
99
99
  writeFloat64(state, val);
100
100
  };
101
101
  const writeNumber = (state, val) => {
102
- if (_isNaN(val)) {
103
- throw new RangeError(`NaN values not supported`);
102
+ if (!_isFinite(val)) {
103
+ throw new RangeError(`NaN and Infinity values not supported`);
104
104
  }
105
105
  if (val > MAX_SAFE_INTEGER || val < MIN_SAFE_INTEGER) {
106
106
  throw new RangeError(`can't encode numbers beyond safe integer range`);
@@ -114,20 +114,34 @@ const writeNumber = (state, val) => {
114
114
  }
115
115
  };
116
116
  const writeString = (state, val) => {
117
+ const strLength = val.length;
117
118
  // JS strings are UTF-16 (ECMA spec)
118
119
  // Therefore, worst case length of UTF-8 is length * 3. (plus 9 bytes of CBOR header)
119
120
  // Greatly overshoots in practice, but doesn't matter. (alloc is O(1)+ anyway)
120
- const strLength = val.length;
121
121
  resizeIfNeeded(state, strLength * 3 + MAX_TYPE_ARG_LEN);
122
+ // Optimistic fast encode
123
+ ascii: {
124
+ const ptr = state.p + getTypeInfoLength(strLength);
125
+ for (let i = 0; i < strLength; i++) {
126
+ let code = val.charCodeAt(i);
127
+ if (code > 0x7f)
128
+ break ascii;
129
+ state.b[ptr + i] = code;
130
+ }
131
+ // String was ASCII-only, we're done
132
+ writeTypeAndArgument(state, 3, strLength);
133
+ state.p += strLength;
134
+ return;
135
+ }
122
136
  // Credit: method used by cbor-x
123
137
  // Rather than allocate a buffer and then copy it back to the destination buffer:
124
138
  // - Estimate the length of the header based on the UTF-16 size of the string.
125
- // Should be accurate most of the time, see last point for when it isn't.
139
+ // Should be accurate enough, see last point for when it isn't.
126
140
  // - Directly write the string at the estimated location, retrieving with it the actual length.
127
141
  // - Write the header now that the length is available.
128
142
  // - If the estimation happened to be wrong, correct the placement of the string.
129
143
  // While it's costly, it's actually roughly the same cost as if we encoded it separately + copy.
130
- const estimatedHeaderSize = getTypeInfoLength(strLength);
144
+ const estimatedHeaderSize = getTypeInfoLength(strLength * 2);
131
145
  const estimatedPosition = state.p + estimatedHeaderSize;
132
146
  const len = encodeUtf8Into(state.b, val, estimatedPosition);
133
147
  const headerSize = getTypeInfoLength(len);
@@ -230,7 +244,10 @@ const createState = () => {
230
244
  export const encode = (value) => {
231
245
  const state = createState();
232
246
  writeValue(state, value);
233
- state.c.push(state.b.subarray(0, state.p));
247
+ const final = state.b.subarray(0, state.p);
248
+ if (!state.c.length)
249
+ return final;
250
+ state.c.push(final);
234
251
  return concat(state.c, state.l + state.p);
235
252
  };
236
253
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"","sources":["../lib/encode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../lib/encode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ // implements github:darobin/dasl.ing@cc66c35 (2025-10-20)
1
2
  export { CidLinkWrapper, fromCidLink, isCidLink, toCidLink } from '@atcute/cid';
2
3
  export { BytesWrapper, fromBytes, isBytes, toBytes } from './bytes.js';
3
4
  export { decode, decodeFirst } from './decode.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AAEnF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAE1D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AAEnF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
package/lib/decode.ts CHANGED
@@ -84,21 +84,14 @@ const readUint32 = (state: State): number => {
84
84
  };
85
85
 
86
86
  const readUint53 = (state: State): number => {
87
- let pos = state.p;
88
-
89
- const buf = state.b;
90
-
91
- const hi = ((buf[pos++] << 24) | (buf[pos++] << 16) | (buf[pos++] << 8) | buf[pos++]) >>> 0;
87
+ const hi = readUint32(state);
88
+ const lo = readUint32(state);
92
89
 
93
90
  if (hi > 0x1fffff) {
94
91
  throw new RangeError(`can't decode integers beyond safe integer range`);
95
92
  }
96
93
 
97
- const lo = ((buf[pos++] << 24) | (buf[pos++] << 16) | (buf[pos++] << 8) | buf[pos++]) >>> 0;
98
- const value = hi * 2 ** 32 + lo;
99
-
100
- state.p = pos;
101
- return value;
94
+ return hi * 2 ** 32 + lo;
102
95
  };
103
96
 
104
97
  const readString = (state: State, length: number): string => {
@@ -117,7 +110,7 @@ const readBytes = (state: State, length: number): Bytes => {
117
110
  const readCid = (state: State, length: number): CidLink => {
118
111
  const cid = fromBinary(state.b.subarray(state.p, (state.p += length)));
119
112
 
120
- return new CidLinkWrapper(cid.bytes, undefined);
113
+ return new CidLinkWrapper(cid.bytes);
121
114
  };
122
115
 
123
116
  const compareKeys = (a: string, b: string): number => {
@@ -180,54 +173,47 @@ export const decodeFirst = (buf: Uint8Array): [value: any, remainder: Uint8Array
180
173
 
181
174
  const type = prelude >> 5;
182
175
  const info = prelude & 0x1f;
176
+ const arg = type === 7 ? 0 : readArgument(state, info);
183
177
 
184
178
  switch (type) {
185
179
  case 0: {
186
- value = readArgument(state, info);
180
+ value = arg;
187
181
  break;
188
182
  }
189
183
  case 1: {
190
- value = -1 - readArgument(state, info);
184
+ value = -1 - arg;
191
185
  break;
192
186
  }
193
187
  case 2: {
194
- value = readBytes(state, readArgument(state, info));
188
+ value = readBytes(state, arg);
195
189
  break;
196
190
  }
197
191
  case 3: {
198
- value = readString(state, readArgument(state, info));
192
+ value = readString(state, arg);
199
193
  break;
200
194
  }
201
195
  case 4: {
202
- const len = readArgument(state, info);
203
- const arr = new Array(len);
204
- value = arr;
205
-
206
- if (len > 0) {
207
- stack = { t: 1, c: arr, k: null, r: len, n: stack };
196
+ if (arg > 0) {
197
+ // oxlint-disable-next-line no-new-array
198
+ stack = { t: 1, c: (value = new Array(arg)), k: null, r: arg, n: stack };
208
199
  continue jump;
209
200
  }
210
201
 
202
+ value = [];
211
203
  break;
212
204
  }
213
205
  case 5: {
214
- const len = readArgument(state, info);
215
- const obj: Record<string, unknown> = {};
216
- value = obj;
217
-
218
- if (len > 0) {
206
+ value = {};
207
+ if (arg > 0) {
219
208
  // We'll read the key of the first item here.
220
209
  const first = decodeStringKey(state);
221
210
 
222
- stack = { t: 0, c: obj, k: first, r: len, n: stack };
211
+ stack = { t: 0, c: value, k: first, r: arg, n: stack };
223
212
  continue jump;
224
213
  }
225
-
226
214
  break;
227
215
  }
228
216
  case 6: {
229
- const arg = readArgument(state, info);
230
-
231
217
  switch (arg) {
232
218
  case 42: {
233
219
  const prelude = readUint8(state);
@@ -289,7 +275,6 @@ export const decodeFirst = (buf: Uint8Array): [value: any, remainder: Uint8Array
289
275
  }
290
276
 
291
277
  obj[key] = value;
292
-
293
278
  break;
294
279
  }
295
280
  case 1: {
@@ -301,19 +286,17 @@ export const decodeFirst = (buf: Uint8Array): [value: any, remainder: Uint8Array
301
286
  }
302
287
  }
303
288
 
304
- if (--stack.r !== 0) {
289
+ if (--stack.r) {
305
290
  // We still have more values to decode, continue
306
291
 
307
- if (stack.t === 0) {
292
+ if (!stack.t) {
308
293
  // Read the key of the next map item
309
294
  const prevKey = stack.k;
310
- const nextKey = decodeStringKey(state);
295
+ stack.k = decodeStringKey(state);
311
296
 
312
- if (compareKeys(nextKey, prevKey) <= 0) {
297
+ if (compareKeys(stack.k, prevKey) <= 0) {
313
298
  throw new TypeError(`map keys are not in canonical order or contain duplicates`);
314
299
  }
315
-
316
- stack.k = nextKey;
317
300
  }
318
301
 
319
302
  continue jump;
package/lib/encode.ts CHANGED
@@ -1,14 +1,14 @@
1
- import { CidLinkWrapper, fromString, type CidLink } from '@atcute/cid';
1
+ import { type CidLink, CidLinkWrapper, fromString } from '@atcute/cid';
2
2
  import { allocUnsafe, concat, encodeUtf8Into } from '@atcute/uint8array';
3
3
 
4
- import { BytesWrapper, fromBytes, type Bytes } from './bytes.js';
4
+ import { type Bytes, BytesWrapper, fromBytes } from './bytes.js';
5
5
 
6
6
  const MAX_TYPE_ARG_LEN = 9;
7
7
  const CHUNK_SIZE = 1024;
8
8
 
9
9
  interface State {
10
- c: Uint8Array[];
11
- b: Uint8Array;
10
+ c: Uint8Array<ArrayBuffer>[];
11
+ b: Uint8Array<ArrayBuffer>;
12
12
  v: DataView | null;
13
13
  p: number;
14
14
  l: number;
@@ -17,7 +17,7 @@ interface State {
17
17
  const _max = Math.max;
18
18
 
19
19
  const _isInteger = Number.isInteger;
20
- const _isNaN = Number.isNaN;
20
+ const _isFinite = Number.isFinite;
21
21
 
22
22
  const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
23
23
  const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER;
@@ -135,8 +135,8 @@ const writeFloat = (state: State, val: number): void => {
135
135
  };
136
136
 
137
137
  const writeNumber = (state: State, val: number): void => {
138
- if (_isNaN(val)) {
139
- throw new RangeError(`NaN values not supported`);
138
+ if (!_isFinite(val)) {
139
+ throw new RangeError(`NaN and Infinity values not supported`);
140
140
  }
141
141
 
142
142
  if (val > MAX_SAFE_INTEGER || val < MIN_SAFE_INTEGER) {
@@ -152,21 +152,37 @@ const writeNumber = (state: State, val: number): void => {
152
152
  };
153
153
 
154
154
  const writeString = (state: State, val: string): void => {
155
+ const strLength = val.length;
156
+
155
157
  // JS strings are UTF-16 (ECMA spec)
156
158
  // Therefore, worst case length of UTF-8 is length * 3. (plus 9 bytes of CBOR header)
157
159
  // Greatly overshoots in practice, but doesn't matter. (alloc is O(1)+ anyway)
158
- const strLength = val.length;
159
160
  resizeIfNeeded(state, strLength * 3 + MAX_TYPE_ARG_LEN);
160
161
 
162
+ // Optimistic fast encode
163
+ ascii: {
164
+ const ptr = state.p + getTypeInfoLength(strLength);
165
+ for (let i = 0; i < strLength; i++) {
166
+ let code = val.charCodeAt(i);
167
+ if (code > 0x7f) break ascii;
168
+ state.b[ptr + i] = code;
169
+ }
170
+
171
+ // String was ASCII-only, we're done
172
+ writeTypeAndArgument(state, 3, strLength);
173
+ state.p += strLength;
174
+ return;
175
+ }
176
+
161
177
  // Credit: method used by cbor-x
162
178
  // Rather than allocate a buffer and then copy it back to the destination buffer:
163
179
  // - Estimate the length of the header based on the UTF-16 size of the string.
164
- // Should be accurate most of the time, see last point for when it isn't.
180
+ // Should be accurate enough, see last point for when it isn't.
165
181
  // - Directly write the string at the estimated location, retrieving with it the actual length.
166
182
  // - Write the header now that the length is available.
167
183
  // - If the estimation happened to be wrong, correct the placement of the string.
168
184
  // While it's costly, it's actually roughly the same cost as if we encoded it separately + copy.
169
- const estimatedHeaderSize = getTypeInfoLength(strLength);
185
+ const estimatedHeaderSize = getTypeInfoLength(strLength * 2);
170
186
  const estimatedPosition = state.p + estimatedHeaderSize;
171
187
  const len = encodeUtf8Into(state.b, val, estimatedPosition);
172
188
 
@@ -298,7 +314,10 @@ export const encode = (value: any): Uint8Array<ArrayBuffer> => {
298
314
 
299
315
  writeValue(state, value);
300
316
 
301
- state.c.push(state.b.subarray(0, state.p));
317
+ const final = state.b.subarray(0, state.p);
318
+ if (!state.c.length) return final;
319
+
320
+ state.c.push(final);
302
321
  return concat(state.c, state.l + state.p);
303
322
  };
304
323
 
package/lib/index.ts CHANGED
@@ -1,3 +1,5 @@
1
+ // implements github:darobin/dasl.ing@cc66c35 (2025-10-20)
2
+
1
3
  export { CidLinkWrapper, fromCidLink, isCidLink, toCidLink, type CidLink } from '@atcute/cid';
2
4
 
3
5
  export { BytesWrapper, fromBytes, isBytes, toBytes, type Bytes } from './bytes.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@atcute/cbor",
4
- "version": "2.2.7",
4
+ "version": "2.3.0",
5
5
  "description": "lightweight DASL dCBOR42 codec library for AT Protocol",
6
6
  "keywords": [
7
7
  "atproto",
@@ -13,6 +13,9 @@
13
13
  "url": "https://github.com/mary-ext/atcute",
14
14
  "directory": "packages/utilities/cbor"
15
15
  },
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
16
19
  "files": [
17
20
  "dist/",
18
21
  "lib/",
@@ -25,18 +28,20 @@
25
28
  },
26
29
  "sideEffects": false,
27
30
  "devDependencies": {
28
- "@ipld/dag-cbor": "^9.2.4",
29
- "@types/bun": "^1.2.21",
30
- "cbor-x": "^1.6.0"
31
+ "@ipld/dag-cbor": "^9.2.5",
32
+ "@types/node": "^22.19.3",
33
+ "@vitest/coverage-v8": "^4.0.16",
34
+ "cbor-x": "^1.6.0",
35
+ "vitest": "^4.0.16"
31
36
  },
32
37
  "dependencies": {
33
- "@atcute/cid": "^2.2.5",
38
+ "@atcute/cid": "^2.4.0",
34
39
  "@atcute/multibase": "^1.1.6",
35
- "@atcute/uint8array": "^1.0.5"
40
+ "@atcute/uint8array": "^1.0.6"
36
41
  },
37
42
  "scripts": {
38
- "build": "tsc --project tsconfig.build.json",
39
- "test": "bun test --coverage",
43
+ "build": "tsgo --project tsconfig.build.json",
44
+ "test": "vitest",
40
45
  "prepublish": "rm -rf dist; pnpm run build"
41
46
  }
42
47
  }