@atcute/cbor 2.2.7 → 2.2.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/decode.d.ts.map +1 -1
- package/dist/decode.js +19 -28
- package/dist/decode.js.map +1 -1
- package/dist/encode.d.ts.map +1 -1
- package/dist/encode.js +21 -4
- package/dist/encode.js.map +1 -1
- package/lib/decode.ts +19 -37
- package/lib/encode.ts +27 -8
- package/package.json +5 -5
package/dist/decode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../lib/decode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../lib/decode.ts"],"names":[],"mappings":"AA8JA,eAAO,MAAM,WAAW,GAAI,KAAK,UAAU,KAAG,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,CA0J/E,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,UAAU,KAAG,GAOxC,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
|
-
|
|
69
|
-
const
|
|
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
|
-
|
|
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
|
|
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,43 @@ 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 =
|
|
117
|
+
value = arg;
|
|
121
118
|
break;
|
|
122
119
|
}
|
|
123
120
|
case 1: {
|
|
124
|
-
value = -1 -
|
|
121
|
+
value = -1 - arg;
|
|
125
122
|
break;
|
|
126
123
|
}
|
|
127
124
|
case 2: {
|
|
128
|
-
value = readBytes(state,
|
|
125
|
+
value = readBytes(state, arg);
|
|
129
126
|
break;
|
|
130
127
|
}
|
|
131
128
|
case 3: {
|
|
132
|
-
value = readString(state,
|
|
129
|
+
value = readString(state, arg);
|
|
133
130
|
break;
|
|
134
131
|
}
|
|
135
132
|
case 4: {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
value = arr;
|
|
139
|
-
if (len > 0) {
|
|
140
|
-
stack = { t: 1, c: arr, k: null, r: len, n: stack };
|
|
133
|
+
if (arg > 0) {
|
|
134
|
+
stack = { t: 1, c: (value = new Array(arg)), k: null, r: arg, n: stack };
|
|
141
135
|
continue jump;
|
|
142
136
|
}
|
|
137
|
+
value = [];
|
|
143
138
|
break;
|
|
144
139
|
}
|
|
145
140
|
case 5: {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
value = obj;
|
|
149
|
-
if (len > 0) {
|
|
141
|
+
value = {};
|
|
142
|
+
if (arg > 0) {
|
|
150
143
|
// We'll read the key of the first item here.
|
|
151
144
|
const first = decodeStringKey(state);
|
|
152
|
-
stack = { t: 0, c:
|
|
145
|
+
stack = { t: 0, c: value, k: first, r: arg, n: stack };
|
|
153
146
|
continue jump;
|
|
154
147
|
}
|
|
155
148
|
break;
|
|
156
149
|
}
|
|
157
150
|
case 6: {
|
|
158
|
-
const arg = readArgument(state, info);
|
|
159
151
|
switch (arg) {
|
|
160
152
|
case 42: {
|
|
161
153
|
const prelude = readUint8(state);
|
|
@@ -218,16 +210,15 @@ export const decodeFirst = (buf) => {
|
|
|
218
210
|
break;
|
|
219
211
|
}
|
|
220
212
|
}
|
|
221
|
-
if (--stack.r
|
|
213
|
+
if (--stack.r) {
|
|
222
214
|
// We still have more values to decode, continue
|
|
223
|
-
if (stack.t
|
|
215
|
+
if (!stack.t) {
|
|
224
216
|
// Read the key of the next map item
|
|
225
217
|
const prevKey = stack.k;
|
|
226
|
-
|
|
227
|
-
if (compareKeys(
|
|
218
|
+
stack.k = decodeStringKey(state);
|
|
219
|
+
if (compareKeys(stack.k, prevKey) <= 0) {
|
|
228
220
|
throw new TypeError(`map keys are not in canonical order or contain duplicates`);
|
|
229
221
|
}
|
|
230
|
-
stack.k = nextKey;
|
|
231
222
|
}
|
|
232
223
|
continue jump;
|
|
233
224
|
}
|
package/dist/decode.js.map
CHANGED
|
@@ -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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"}
|
package/dist/encode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../lib/encode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../lib/encode.ts"],"names":[],"mappings":"AAuTA,eAAO,MAAM,MAAM,GAAI,OAAO,GAAG,KAAG,UAAU,CAAC,WAAW,CAUzD,CAAC"}
|
package/dist/encode.js
CHANGED
|
@@ -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
|
|
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.
|
|
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 */
|
package/dist/encode.js.map
CHANGED
|
@@ -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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"}
|
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
|
-
|
|
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
|
-
|
|
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
|
|
113
|
+
return new CidLinkWrapper(cid.bytes);
|
|
121
114
|
};
|
|
122
115
|
|
|
123
116
|
const compareKeys = (a: string, b: string): number => {
|
|
@@ -180,54 +173,46 @@ 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 =
|
|
180
|
+
value = arg;
|
|
187
181
|
break;
|
|
188
182
|
}
|
|
189
183
|
case 1: {
|
|
190
|
-
value = -1 -
|
|
184
|
+
value = -1 - arg;
|
|
191
185
|
break;
|
|
192
186
|
}
|
|
193
187
|
case 2: {
|
|
194
|
-
value = readBytes(state,
|
|
188
|
+
value = readBytes(state, arg);
|
|
195
189
|
break;
|
|
196
190
|
}
|
|
197
191
|
case 3: {
|
|
198
|
-
value = readString(state,
|
|
192
|
+
value = readString(state, arg);
|
|
199
193
|
break;
|
|
200
194
|
}
|
|
201
195
|
case 4: {
|
|
202
|
-
|
|
203
|
-
|
|
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
|
+
stack = { t: 1, c: (value = new Array(arg)), k: null, r: arg, n: stack };
|
|
208
198
|
continue jump;
|
|
209
199
|
}
|
|
210
200
|
|
|
201
|
+
value = [];
|
|
211
202
|
break;
|
|
212
203
|
}
|
|
213
204
|
case 5: {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
value = obj;
|
|
217
|
-
|
|
218
|
-
if (len > 0) {
|
|
205
|
+
value = {};
|
|
206
|
+
if (arg > 0) {
|
|
219
207
|
// We'll read the key of the first item here.
|
|
220
208
|
const first = decodeStringKey(state);
|
|
221
209
|
|
|
222
|
-
stack = { t: 0, c:
|
|
210
|
+
stack = { t: 0, c: value, k: first, r: arg, n: stack };
|
|
223
211
|
continue jump;
|
|
224
212
|
}
|
|
225
|
-
|
|
226
213
|
break;
|
|
227
214
|
}
|
|
228
215
|
case 6: {
|
|
229
|
-
const arg = readArgument(state, info);
|
|
230
|
-
|
|
231
216
|
switch (arg) {
|
|
232
217
|
case 42: {
|
|
233
218
|
const prelude = readUint8(state);
|
|
@@ -289,7 +274,6 @@ export const decodeFirst = (buf: Uint8Array): [value: any, remainder: Uint8Array
|
|
|
289
274
|
}
|
|
290
275
|
|
|
291
276
|
obj[key] = value;
|
|
292
|
-
|
|
293
277
|
break;
|
|
294
278
|
}
|
|
295
279
|
case 1: {
|
|
@@ -301,19 +285,17 @@ export const decodeFirst = (buf: Uint8Array): [value: any, remainder: Uint8Array
|
|
|
301
285
|
}
|
|
302
286
|
}
|
|
303
287
|
|
|
304
|
-
if (--stack.r
|
|
288
|
+
if (--stack.r) {
|
|
305
289
|
// We still have more values to decode, continue
|
|
306
290
|
|
|
307
|
-
if (stack.t
|
|
291
|
+
if (!stack.t) {
|
|
308
292
|
// Read the key of the next map item
|
|
309
293
|
const prevKey = stack.k;
|
|
310
|
-
|
|
294
|
+
stack.k = decodeStringKey(state);
|
|
311
295
|
|
|
312
|
-
if (compareKeys(
|
|
296
|
+
if (compareKeys(stack.k, prevKey) <= 0) {
|
|
313
297
|
throw new TypeError(`map keys are not in canonical order or contain duplicates`);
|
|
314
298
|
}
|
|
315
|
-
|
|
316
|
-
stack.k = nextKey;
|
|
317
299
|
}
|
|
318
300
|
|
|
319
301
|
continue jump;
|
package/lib/encode.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { CidLinkWrapper, fromString
|
|
1
|
+
import { type CidLink, CidLinkWrapper, fromString } from '@atcute/cid';
|
|
2
2
|
import { allocUnsafe, concat, encodeUtf8Into } from '@atcute/uint8array';
|
|
3
3
|
|
|
4
|
-
import { BytesWrapper, fromBytes
|
|
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;
|
|
@@ -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
|
|
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.
|
|
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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@atcute/cbor",
|
|
4
|
-
"version": "2.2.
|
|
4
|
+
"version": "2.2.8",
|
|
5
5
|
"description": "lightweight DASL dCBOR42 codec library for AT Protocol",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"atproto",
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
},
|
|
26
26
|
"sideEffects": false,
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@ipld/dag-cbor": "^9.2.
|
|
29
|
-
"@types/bun": "^1.
|
|
28
|
+
"@ipld/dag-cbor": "^9.2.5",
|
|
29
|
+
"@types/bun": "^1.3.1",
|
|
30
30
|
"cbor-x": "^1.6.0"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@atcute/cid": "^2.2.5",
|
|
34
33
|
"@atcute/multibase": "^1.1.6",
|
|
35
|
-
"@atcute/uint8array": "^1.0.5"
|
|
34
|
+
"@atcute/uint8array": "^1.0.5",
|
|
35
|
+
"@atcute/cid": "^2.2.6"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "tsc --project tsconfig.build.json",
|