bare-buffer 3.0.2 → 3.1.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/binding.c CHANGED
@@ -10,7 +10,7 @@
10
10
  static js_type_tag_t bare_buffer__tag = {0xfea3e944b70b0812, 0xe53bb5c343c040b6};
11
11
 
12
12
  static inline int
13
- bare_buffer__memcmp (void *a, size_t a_len, void *b, size_t b_len) {
13
+ bare_buffer__memcmp(void *a, size_t a_len, void *b, size_t b_len) {
14
14
  int r = memcmp(a, b, a_len < b_len ? a_len : b_len);
15
15
 
16
16
  if (r == 0) {
@@ -23,12 +23,12 @@ bare_buffer__memcmp (void *a, size_t a_len, void *b, size_t b_len) {
23
23
  }
24
24
 
25
25
  static void
26
- bare_buffer__on_free_string (js_env_t *env, void *data, void *finalize_hint) {
26
+ bare_buffer__on_free_string(js_env_t *env, void *data, void *finalize_hint) {
27
27
  free(data);
28
28
  }
29
29
 
30
30
  static js_value_t *
31
- bare_buffer_alloc (js_env_t *env, js_callback_info_t *info) {
31
+ bare_buffer_alloc(js_env_t *env, js_callback_info_t *info) {
32
32
  int err;
33
33
 
34
34
  size_t argc = 1;
@@ -51,7 +51,7 @@ bare_buffer_alloc (js_env_t *env, js_callback_info_t *info) {
51
51
  }
52
52
 
53
53
  static js_value_t *
54
- bare_buffer_alloc_unsafe (js_env_t *env, js_callback_info_t *info) {
54
+ bare_buffer_alloc_unsafe(js_env_t *env, js_callback_info_t *info) {
55
55
  int err;
56
56
 
57
57
  size_t argc = 1;
@@ -74,7 +74,7 @@ bare_buffer_alloc_unsafe (js_env_t *env, js_callback_info_t *info) {
74
74
  }
75
75
 
76
76
  static uint32_t
77
- bare_buffer_typed_byte_length_utf8 (js_value_t *receiver, js_value_t *str, js_typed_callback_info_t *info) {
77
+ bare_buffer_typed_byte_length_utf8(js_value_t *receiver, js_value_t *str, js_typed_callback_info_t *info) {
78
78
  int err;
79
79
 
80
80
  js_env_t *env;
@@ -89,7 +89,7 @@ bare_buffer_typed_byte_length_utf8 (js_value_t *receiver, js_value_t *str, js_ty
89
89
  }
90
90
 
91
91
  static js_value_t *
92
- bare_buffer_byte_length_utf8 (js_env_t *env, js_callback_info_t *info) {
92
+ bare_buffer_byte_length_utf8(js_env_t *env, js_callback_info_t *info) {
93
93
  int err;
94
94
 
95
95
  size_t argc = 1;
@@ -112,7 +112,7 @@ bare_buffer_byte_length_utf8 (js_env_t *env, js_callback_info_t *info) {
112
112
  }
113
113
 
114
114
  static js_value_t *
115
- bare_buffer_to_string_utf8 (js_env_t *env, js_callback_info_t *info) {
115
+ bare_buffer_to_string_utf8(js_env_t *env, js_callback_info_t *info) {
116
116
  int err;
117
117
 
118
118
  size_t argc = 1;
@@ -136,7 +136,7 @@ bare_buffer_to_string_utf8 (js_env_t *env, js_callback_info_t *info) {
136
136
  }
137
137
 
138
138
  static uint32_t
139
- bare_buffer_typed_write_utf8 (js_value_t *receiver, js_value_t *typedarray, js_value_t *string, js_typed_callback_info_t *info) {
139
+ bare_buffer_typed_write_utf8(js_value_t *receiver, js_value_t *typedarray, js_value_t *string, js_typed_callback_info_t *info) {
140
140
  int err;
141
141
 
142
142
  js_env_t *env;
@@ -161,7 +161,7 @@ bare_buffer_typed_write_utf8 (js_value_t *receiver, js_value_t *typedarray, js_v
161
161
  }
162
162
 
163
163
  static js_value_t *
164
- bare_buffer_write_utf8 (js_env_t *env, js_callback_info_t *info) {
164
+ bare_buffer_write_utf8(js_env_t *env, js_callback_info_t *info) {
165
165
  int err;
166
166
 
167
167
  size_t argc = 2;
@@ -189,7 +189,7 @@ bare_buffer_write_utf8 (js_env_t *env, js_callback_info_t *info) {
189
189
  }
190
190
 
191
191
  static js_value_t *
192
- bare_buffer_to_string_utf16le (js_env_t *env, js_callback_info_t *info) {
192
+ bare_buffer_to_string_utf16le(js_env_t *env, js_callback_info_t *info) {
193
193
  int err;
194
194
 
195
195
  size_t argc = 1;
@@ -215,7 +215,7 @@ bare_buffer_to_string_utf16le (js_env_t *env, js_callback_info_t *info) {
215
215
  }
216
216
 
217
217
  static uint32_t
218
- bare_buffer_typed_write_utf16le (js_value_t *receiver, js_value_t *typedarray, js_value_t *string, js_typed_callback_info_t *info) {
218
+ bare_buffer_typed_write_utf16le(js_value_t *receiver, js_value_t *typedarray, js_value_t *string, js_typed_callback_info_t *info) {
219
219
  int err;
220
220
 
221
221
  js_env_t *env;
@@ -244,7 +244,7 @@ bare_buffer_typed_write_utf16le (js_value_t *receiver, js_value_t *typedarray, j
244
244
  }
245
245
 
246
246
  static js_value_t *
247
- bare_buffer_write_utf16le (js_env_t *env, js_callback_info_t *info) {
247
+ bare_buffer_write_utf16le(js_env_t *env, js_callback_info_t *info) {
248
248
  int err;
249
249
 
250
250
  size_t argc = 2;
@@ -276,7 +276,84 @@ bare_buffer_write_utf16le (js_env_t *env, js_callback_info_t *info) {
276
276
  }
277
277
 
278
278
  static js_value_t *
279
- bare_buffer_to_string_base64 (js_env_t *env, js_callback_info_t *info) {
279
+ bare_buffer_to_string_latin1(js_env_t *env, js_callback_info_t *info) {
280
+ int err;
281
+
282
+ size_t argc = 1;
283
+ js_value_t *argv[1];
284
+
285
+ err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
286
+ assert(err == 0);
287
+
288
+ assert(argc == 1);
289
+
290
+ latin1_t *buf;
291
+ size_t buf_len;
292
+ err = js_get_typedarray_info(env, argv[0], NULL, (void **) &buf, &buf_len, NULL, NULL);
293
+ assert(err == 0);
294
+
295
+ js_value_t *result;
296
+ err = js_create_string_latin1(env, buf, buf_len, &result);
297
+ assert(err == 0);
298
+
299
+ return result;
300
+ }
301
+
302
+ static uint32_t
303
+ bare_buffer_typed_write_latin1(js_value_t *receiver, js_value_t *typedarray, js_value_t *string, js_typed_callback_info_t *info) {
304
+ int err;
305
+
306
+ js_env_t *env;
307
+ err = js_get_typed_callback_info(info, &env, NULL);
308
+ assert(err == 0);
309
+
310
+ void *buf;
311
+ size_t buf_len;
312
+
313
+ js_typedarray_view_t *buf_view;
314
+ err = js_get_typedarray_view(env, typedarray, NULL, &buf, &buf_len, &buf_view);
315
+ assert(err == 0);
316
+
317
+ size_t str_len;
318
+ err = js_get_value_string_latin1(env, string, buf, buf_len, &str_len);
319
+ assert(err == 0);
320
+
321
+ err = js_release_typedarray_view(env, buf_view);
322
+ assert(err == 0);
323
+
324
+ return (uint32_t) str_len;
325
+ }
326
+
327
+ static js_value_t *
328
+ bare_buffer_write_latin1(js_env_t *env, js_callback_info_t *info) {
329
+ int err;
330
+
331
+ size_t argc = 2;
332
+ js_value_t *argv[2];
333
+
334
+ err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
335
+ assert(err == 0);
336
+
337
+ assert(argc == 2);
338
+
339
+ void *buf;
340
+ size_t buf_len;
341
+ err = js_get_typedarray_info(env, argv[0], NULL, &buf, &buf_len, NULL, NULL);
342
+ assert(err == 0);
343
+
344
+ size_t str_len;
345
+ err = js_get_value_string_latin1(env, argv[1], buf, buf_len, &str_len);
346
+ assert(err == 0);
347
+
348
+ js_value_t *result;
349
+ err = js_create_uint32(env, (uint32_t) str_len, &result);
350
+ assert(err == 0);
351
+
352
+ return result;
353
+ }
354
+
355
+ static js_value_t *
356
+ bare_buffer_to_string_base64(js_env_t *env, js_callback_info_t *info) {
280
357
  int err;
281
358
 
282
359
  size_t argc = 1;
@@ -308,7 +385,7 @@ bare_buffer_to_string_base64 (js_env_t *env, js_callback_info_t *info) {
308
385
  }
309
386
 
310
387
  static uint32_t
311
- bare_buffer_typed_write_base64 (js_value_t *receiver, js_value_t *typedarray, js_value_t *string, js_typed_callback_info_t *info) {
388
+ bare_buffer_typed_write_base64(js_value_t *receiver, js_value_t *typedarray, js_value_t *string, js_typed_callback_info_t *info) {
312
389
  int err;
313
390
 
314
391
  js_env_t *env;
@@ -348,7 +425,7 @@ bare_buffer_typed_write_base64 (js_value_t *receiver, js_value_t *typedarray, js
348
425
  }
349
426
 
350
427
  static js_value_t *
351
- bare_buffer_write_base64 (js_env_t *env, js_callback_info_t *info) {
428
+ bare_buffer_write_base64(js_env_t *env, js_callback_info_t *info) {
352
429
  int err;
353
430
 
354
431
  size_t argc = 2;
@@ -391,7 +468,7 @@ bare_buffer_write_base64 (js_env_t *env, js_callback_info_t *info) {
391
468
  }
392
469
 
393
470
  static js_value_t *
394
- bare_buffer_to_string_hex (js_env_t *env, js_callback_info_t *info) {
471
+ bare_buffer_to_string_hex(js_env_t *env, js_callback_info_t *info) {
395
472
  int err;
396
473
 
397
474
  size_t argc = 1;
@@ -423,7 +500,7 @@ bare_buffer_to_string_hex (js_env_t *env, js_callback_info_t *info) {
423
500
  }
424
501
 
425
502
  static uint32_t
426
- bare_buffer_typed_write_hex (js_value_t *receiver, js_value_t *typedarray, js_value_t *string, js_typed_callback_info_t *info) {
503
+ bare_buffer_typed_write_hex(js_value_t *receiver, js_value_t *typedarray, js_value_t *string, js_typed_callback_info_t *info) {
427
504
  int err;
428
505
 
429
506
  js_env_t *env;
@@ -463,7 +540,7 @@ bare_buffer_typed_write_hex (js_value_t *receiver, js_value_t *typedarray, js_va
463
540
  }
464
541
 
465
542
  static js_value_t *
466
- bare_buffer_write_hex (js_env_t *env, js_callback_info_t *info) {
543
+ bare_buffer_write_hex(js_env_t *env, js_callback_info_t *info) {
467
544
  int err;
468
545
 
469
546
  size_t argc = 2;
@@ -506,7 +583,7 @@ bare_buffer_write_hex (js_env_t *env, js_callback_info_t *info) {
506
583
  }
507
584
 
508
585
  static int32_t
509
- bare_buffer_typed_compare (js_value_t *receiver, js_value_t *source, js_value_t *target, js_typed_callback_info_t *info) {
586
+ bare_buffer_typed_compare(js_value_t *receiver, js_value_t *source, js_value_t *target, js_typed_callback_info_t *info) {
510
587
  int err;
511
588
 
512
589
  js_env_t *env;
@@ -515,19 +592,31 @@ bare_buffer_typed_compare (js_value_t *receiver, js_value_t *source, js_value_t
515
592
 
516
593
  void *a;
517
594
  size_t a_len;
518
- err = js_get_typedarray_info(env, source, NULL, &a, &a_len, NULL, NULL);
595
+
596
+ js_typedarray_view_t *a_view;
597
+ err = js_get_typedarray_view(env, source, NULL, &a, &a_len, &a_view);
519
598
  assert(err == 0);
520
599
 
521
600
  void *b;
522
601
  size_t b_len;
523
- err = js_get_typedarray_info(env, target, NULL, &b, &b_len, NULL, NULL);
602
+
603
+ js_typedarray_view_t *b_view;
604
+ err = js_get_typedarray_view(env, target, NULL, &b, &b_len, &b_view);
605
+ assert(err == 0);
606
+
607
+ int result = bare_buffer__memcmp(a, a_len, b, b_len);
608
+
609
+ err = js_release_typedarray_view(env, a_view);
524
610
  assert(err == 0);
525
611
 
526
- return bare_buffer__memcmp(a, a_len, b, b_len);
612
+ err = js_release_typedarray_view(env, b_view);
613
+ assert(err == 0);
614
+
615
+ return result;
527
616
  }
528
617
 
529
618
  static js_value_t *
530
- bare_buffer_compare (js_env_t *env, js_callback_info_t *info) {
619
+ bare_buffer_compare(js_env_t *env, js_callback_info_t *info) {
531
620
  int err;
532
621
 
533
622
  size_t argc = 2;
@@ -556,7 +645,7 @@ bare_buffer_compare (js_env_t *env, js_callback_info_t *info) {
556
645
  }
557
646
 
558
647
  static js_value_t *
559
- bare_buffer_tag (js_env_t *env, js_callback_info_t *info) {
648
+ bare_buffer_tag(js_env_t *env, js_callback_info_t *info) {
560
649
  int err;
561
650
 
562
651
  size_t argc = 1;
@@ -574,7 +663,7 @@ bare_buffer_tag (js_env_t *env, js_callback_info_t *info) {
574
663
  }
575
664
 
576
665
  static js_value_t *
577
- bare_buffer_is_tagged (js_env_t *env, js_callback_info_t *info) {
666
+ bare_buffer_is_tagged(js_env_t *env, js_callback_info_t *info) {
578
667
  int err;
579
668
 
580
669
  size_t argc = 1;
@@ -597,7 +686,7 @@ bare_buffer_is_tagged (js_env_t *env, js_callback_info_t *info) {
597
686
  }
598
687
 
599
688
  static js_value_t *
600
- bare_buffer_exports (js_env_t *env, js_value_t *exports) {
689
+ bare_buffer_exports(js_env_t *env, js_value_t *exports) {
601
690
  int err;
602
691
 
603
692
  #define V(name, untyped, signature, typed) \
@@ -669,6 +758,24 @@ bare_buffer_exports (js_env_t *env, js_value_t *exports) {
669
758
  bare_buffer_typed_write_utf16le
670
759
  );
671
760
 
761
+ V("toStringLatin1", bare_buffer_to_string_latin1, NULL, NULL);
762
+
763
+ V(
764
+ "writeLatin1",
765
+ bare_buffer_write_latin1,
766
+ &((js_callback_signature_t) {
767
+ .version = 0,
768
+ .result = js_uint32,
769
+ .args_len = 3,
770
+ .args = (int[]) {
771
+ js_object,
772
+ js_object,
773
+ js_string,
774
+ }
775
+ }),
776
+ bare_buffer_typed_write_latin1
777
+ );
778
+
672
779
  V("toStringBase64", bare_buffer_to_string_base64, NULL, NULL);
673
780
 
674
781
  V(
package/index.d.ts CHANGED
@@ -3,7 +3,9 @@ import constants from './lib/constants'
3
3
  type BufferEncoding =
4
4
  | 'ascii'
5
5
  | 'base64'
6
+ | 'binary'
6
7
  | 'hex'
8
+ | 'latin1'
7
9
  | 'ucs-2'
8
10
  | 'ucs2'
9
11
  | 'utf-16le'
package/index.js CHANGED
@@ -4,6 +4,7 @@ const base64 = require('./lib/base64')
4
4
  const hex = require('./lib/hex')
5
5
  const utf8 = require('./lib/utf8')
6
6
  const utf16le = require('./lib/utf16le')
7
+ const latin1 = require('./lib/latin1')
7
8
  const binding = require('./binding')
8
9
 
9
10
  let poolSize = 0
@@ -520,6 +521,7 @@ codecs.base64 = base64
520
521
  codecs.hex = hex
521
522
  codecs.utf8 = codecs['utf-8'] = utf8
522
523
  codecs.utf16le = codecs.ucs2 = codecs['utf-16le'] = codecs['ucs-2'] = utf16le
524
+ codecs.latin1 = codecs.binary = latin1
523
525
 
524
526
  function codecFor(encoding = 'utf8') {
525
527
  if (encoding in codecs) return codecs[encoding]
package/lib/latin1.js ADDED
@@ -0,0 +1,9 @@
1
+ const binding = require('../binding')
2
+
3
+ exports.byteLength = function byteLength(string) {
4
+ return string.length
5
+ }
6
+
7
+ exports.toString = binding.toStringLatin1
8
+
9
+ exports.write = binding.writeLatin1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bare-buffer",
3
- "version": "3.0.2",
3
+ "version": "3.1.2",
4
4
  "description": "Native buffers for JavaScript",
5
5
  "exports": {
6
6
  "./package": "./package.json",