bare-buffer 3.3.0 → 3.3.1

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/binding.c CHANGED
@@ -7,22 +7,26 @@
7
7
  #include <string.h>
8
8
  #include <utf.h>
9
9
 
10
+ static void
11
+ bare_buffer__on_finalize_string(js_env_t *env, void *data, void *finalize_hint) {
12
+ free(data);
13
+ }
14
+
10
15
  static inline int
11
- bare_buffer__memcmp(void *a, size_t a_len, void *b, size_t b_len) {
12
- int r = memcmp(a, b, a_len < b_len ? a_len : b_len);
16
+ bare_buffer__get_info(js_env_t *env, js_value_t *buffer, void **data, size_t *len) {
17
+ int err;
13
18
 
14
- if (r == 0) {
15
- if (a_len < b_len) return -1;
16
- if (a_len > b_len) return 1;
17
- return 0;
19
+ bool is_shared;
20
+ err = js_is_sharedarraybuffer(env, buffer, &is_shared);
21
+ if (err < 0) return err;
22
+
23
+ if (is_shared) {
24
+ err = js_get_sharedarraybuffer_info(env, buffer, data, len);
25
+ } else {
26
+ err = js_get_arraybuffer_info(env, buffer, data, len);
18
27
  }
19
28
 
20
- return r < 0 ? -1 : 1;
21
- }
22
-
23
- static void
24
- bare_buffer__on_finalize_string(js_env_t *env, void *data, void *finalize_hint) {
25
- free(data);
29
+ return err;
26
30
  }
27
31
 
28
32
  static js_value_t *
@@ -122,7 +126,7 @@ bare_buffer_to_string_utf8(js_env_t *env, js_callback_info_t *info) {
122
126
  assert(argc == 3);
123
127
 
124
128
  utf8_t *buf;
125
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
129
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
126
130
  assert(err == 0);
127
131
 
128
132
  int64_t offset;
@@ -156,7 +160,7 @@ bare_buffer_typed_write_utf8(
156
160
  assert(err == 0);
157
161
 
158
162
  utf8_t *buf;
159
- err = js_get_arraybuffer_info(env, handle, (void **) &buf, NULL);
163
+ err = bare_buffer__get_info(env, handle, (void **) &buf, NULL);
160
164
  assert(err == 0);
161
165
 
162
166
  size_t str_len;
@@ -179,7 +183,7 @@ bare_buffer_write_utf8(js_env_t *env, js_callback_info_t *info) {
179
183
  assert(argc == 4);
180
184
 
181
185
  utf8_t *buf;
182
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
186
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
183
187
  assert(err == 0);
184
188
 
185
189
  int64_t offset;
@@ -214,7 +218,7 @@ bare_buffer_to_string_utf16le(js_env_t *env, js_callback_info_t *info) {
214
218
  assert(argc == 3);
215
219
 
216
220
  utf16_t *buf;
217
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
221
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
218
222
  assert(err == 0);
219
223
 
220
224
  int64_t offset;
@@ -251,7 +255,7 @@ bare_buffer_typed_write_utf16le(
251
255
  assert(err == 0);
252
256
 
253
257
  utf16_t *buf;
254
- err = js_get_arraybuffer_info(env, handle, (void **) &buf, NULL);
258
+ err = bare_buffer__get_info(env, handle, (void **) &buf, NULL);
255
259
  assert(err == 0);
256
260
 
257
261
  offset /= sizeof(utf16_t);
@@ -279,7 +283,7 @@ bare_buffer_write_utf16le(js_env_t *env, js_callback_info_t *info) {
279
283
  assert(argc == 4);
280
284
 
281
285
  utf16_t *buf;
282
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
286
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
283
287
  assert(err == 0);
284
288
 
285
289
  int64_t offset;
@@ -319,7 +323,7 @@ bare_buffer_to_string_latin1(js_env_t *env, js_callback_info_t *info) {
319
323
  assert(argc == 3);
320
324
 
321
325
  latin1_t *buf;
322
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
326
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
323
327
  assert(err == 0);
324
328
 
325
329
  int64_t offset;
@@ -353,7 +357,7 @@ bare_buffer_typed_write_latin1(
353
357
  assert(err == 0);
354
358
 
355
359
  latin1_t *buf;
356
- err = js_get_arraybuffer_info(env, handle, (void **) &buf, NULL);
360
+ err = bare_buffer__get_info(env, handle, (void **) &buf, NULL);
357
361
  assert(err == 0);
358
362
 
359
363
  size_t str_len;
@@ -376,7 +380,7 @@ bare_buffer_write_latin1(js_env_t *env, js_callback_info_t *info) {
376
380
  assert(argc == 4);
377
381
 
378
382
  latin1_t *buf;
379
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
383
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
380
384
  assert(err == 0);
381
385
 
382
386
  int64_t offset;
@@ -411,7 +415,7 @@ bare_buffer_to_string_base64(js_env_t *env, js_callback_info_t *info) {
411
415
  assert(argc == 3);
412
416
 
413
417
  utf8_t *buf;
414
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
418
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
415
419
  assert(err == 0);
416
420
 
417
421
  int64_t offset;
@@ -450,7 +454,7 @@ bare_buffer_to_string_base64url(js_env_t *env, js_callback_info_t *info) {
450
454
  assert(argc == 3);
451
455
 
452
456
  utf8_t *buf;
453
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
457
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
454
458
  assert(err == 0);
455
459
 
456
460
  int64_t offset;
@@ -492,7 +496,7 @@ bare_buffer_typed_write_base64(
492
496
  assert(err == 0);
493
497
 
494
498
  utf8_t *buf;
495
- err = js_get_arraybuffer_info(env, handle, (void **) &buf, NULL);
499
+ err = bare_buffer__get_info(env, handle, (void **) &buf, NULL);
496
500
  assert(err == 0);
497
501
 
498
502
  js_string_encoding_t encoding;
@@ -540,7 +544,7 @@ bare_buffer_write_base64(js_env_t *env, js_callback_info_t *info) {
540
544
  assert(argc == 4);
541
545
 
542
546
  utf8_t *buf;
543
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
547
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
544
548
  assert(err == 0);
545
549
 
546
550
  int64_t offset;
@@ -600,7 +604,7 @@ bare_buffer_to_string_hex(js_env_t *env, js_callback_info_t *info) {
600
604
  assert(argc == 3);
601
605
 
602
606
  utf8_t *buf;
603
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
607
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
604
608
  assert(err == 0);
605
609
 
606
610
  int64_t offset;
@@ -642,7 +646,7 @@ bare_buffer_typed_write_hex(
642
646
  assert(err == 0);
643
647
 
644
648
  utf8_t *buf;
645
- err = js_get_arraybuffer_info(env, handle, (void **) &buf, NULL);
649
+ err = bare_buffer__get_info(env, handle, (void **) &buf, NULL);
646
650
  assert(err == 0);
647
651
 
648
652
  js_string_encoding_t encoding;
@@ -690,7 +694,7 @@ bare_buffer_write_hex(js_env_t *env, js_callback_info_t *info) {
690
694
  assert(argc == 4);
691
695
 
692
696
  utf8_t *buf;
693
- err = js_get_arraybuffer_info(env, argv[0], (void **) &buf, NULL);
697
+ err = bare_buffer__get_info(env, argv[0], (void **) &buf, NULL);
694
698
  assert(err == 0);
695
699
 
696
700
  int64_t offset;
@@ -737,6 +741,19 @@ bare_buffer_write_hex(js_env_t *env, js_callback_info_t *info) {
737
741
  return result;
738
742
  }
739
743
 
744
+ static inline int
745
+ bare_buffer__memcmp(void *a, size_t a_len, void *b, size_t b_len) {
746
+ int r = memcmp(a, b, a_len < b_len ? a_len : b_len);
747
+
748
+ if (r == 0) {
749
+ if (a_len < b_len) return -1;
750
+ if (a_len > b_len) return 1;
751
+ return 0;
752
+ }
753
+
754
+ return r < 0 ? -1 : 1;
755
+ }
756
+
740
757
  static int32_t
741
758
  bare_buffer_typed_compare(
742
759
  js_value_t *receiver,
@@ -755,11 +772,11 @@ bare_buffer_typed_compare(
755
772
  assert(err == 0);
756
773
 
757
774
  uint8_t *a;
758
- err = js_get_arraybuffer_info(env, a_handle, (void **) &a, NULL);
775
+ err = bare_buffer__get_info(env, a_handle, (void **) &a, NULL);
759
776
  assert(err == 0);
760
777
 
761
778
  uint8_t *b;
762
- err = js_get_arraybuffer_info(env, b_handle, (void **) &b, NULL);
779
+ err = bare_buffer__get_info(env, b_handle, (void **) &b, NULL);
763
780
  assert(err == 0);
764
781
 
765
782
  return bare_buffer__memcmp(&a[a_offset], a_len, &b[b_offset], b_len);
@@ -778,7 +795,7 @@ bare_buffer_compare(js_env_t *env, js_callback_info_t *info) {
778
795
  assert(argc == 6);
779
796
 
780
797
  uint8_t *a;
781
- err = js_get_arraybuffer_info(env, argv[0], (void **) &a, NULL);
798
+ err = bare_buffer__get_info(env, argv[0], (void **) &a, NULL);
782
799
  assert(err == 0);
783
800
 
784
801
  int64_t a_offset;
@@ -790,7 +807,7 @@ bare_buffer_compare(js_env_t *env, js_callback_info_t *info) {
790
807
  assert(err == 0);
791
808
 
792
809
  uint8_t *b;
793
- err = js_get_arraybuffer_info(env, argv[3], (void **) &b, NULL);
810
+ err = bare_buffer__get_info(env, argv[3], (void **) &b, NULL);
794
811
  assert(err == 0);
795
812
 
796
813
  int64_t b_offset;
package/global.d.ts CHANGED
@@ -6,4 +6,7 @@ declare global {
6
6
  type Buffer = buffer.Buffer
7
7
 
8
8
  const Buffer: BufferConstructor
9
+
10
+ const atob: typeof buffer.atob
11
+ const atob: typeof buffer.btoa
9
12
  }
package/global.js CHANGED
@@ -1 +1,6 @@
1
- global.Buffer = require('.')
1
+ const Buffer = require('.')
2
+
3
+ global.Buffer = Buffer
4
+
5
+ global.atob = Buffer.atob
6
+ global.btoa = Buffer.btoa
package/index.d.ts CHANGED
@@ -181,6 +181,9 @@ declare namespace Buffer {
181
181
  length?: number
182
182
  ): Buffer
183
183
 
184
+ export function atob(data: unknown): string
185
+ export function btoa(data: unknown): string
186
+
184
187
  export { Buffer, type BufferEncoding, constants }
185
188
  }
186
189
 
package/index.js CHANGED
@@ -742,3 +742,13 @@ function swap(buffer, n, m) {
742
742
  buffer[n] = buffer[m]
743
743
  buffer[m] = i
744
744
  }
745
+
746
+ exports.atob = function atob(data) {
747
+ return Buffer.from(data, 'base64').toString('latin1')
748
+ }
749
+
750
+ exports.btoa = function btoa(data) {
751
+ if (typeof data !== 'string') data = String(data)
752
+
753
+ return Buffer.from(data, 'latin1').toString('base64')
754
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bare-buffer",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "Native buffers for JavaScript",
5
5
  "exports": {
6
6
  "./package": "./package.json",