From: =?utf-8?q?Bastien_Roucari=C3=A8s?= <rouca@debian.org>
Date: Sun, 28 Jul 2024 23:24:58 +0000
Subject: Avoid string-to-array-buffer

---
 minipass-fetch/package.json     |  1 -
 minipass-fetch/test/blob.js     |  5 +++--
 minipass-fetch/test/body.js     | 13 +++++++------
 minipass-fetch/test/index.js    | 17 +++++++++--------
 minipass-fetch/test/request.js  | 12 +++++++-----
 minipass-fetch/test/response.js | 13 +++++++------
 6 files changed, 33 insertions(+), 28 deletions(-)

diff --git a/minipass-fetch/package.json b/minipass-fetch/package.json
index 7802431..54fa75e 100644
--- a/minipass-fetch/package.json
+++ b/minipass-fetch/package.json
@@ -32,7 +32,6 @@
     "form-data": "^4.0.0",
     "nock": "^13.2.4",
     "parted": "^0.1.1",
-    "string-to-arraybuffer": "^1.0.2",
     "tap": "^16.0.0"
   },
   "dependencies": {
diff --git a/minipass-fetch/test/blob.js b/minipass-fetch/test/blob.js
index a239ccc..8bb6cbc 100644
--- a/minipass-fetch/test/blob.js
+++ b/minipass-fetch/test/blob.js
@@ -1,7 +1,7 @@
 'use strict'
 const Blob = require('../lib/blob.js')
 const t = require('tap')
-const stringToArrayBuffer = require('string-to-arraybuffer')
+//const stringToArrayBuffer = require('string-to-arraybuffer')
 
 t.test('null case', t => {
   const b = new Blob()
@@ -11,6 +11,7 @@ t.test('null case', t => {
     .then(buf => t.match(buf, Buffer.alloc(0)))
 })
 
+/*
 t.test('mix of stuff', t => {
   const b = new Blob([
     Buffer.from('one'),
@@ -35,7 +36,7 @@ t.test('mix of stuff', t => {
     .then(() => b.arrayBuffer())
     .then(ab => t.match(Buffer.from(ab), Buffer.from(x)))
 })
-
+*/
 t.test('slice', t => {
   const b = new Blob('1 2 3 4', { type: 'x' })
   const b1 = b.slice(2)
diff --git a/minipass-fetch/test/body.js b/minipass-fetch/test/body.js
index 334a09c..6db33de 100644
--- a/minipass-fetch/test/body.js
+++ b/minipass-fetch/test/body.js
@@ -2,7 +2,7 @@
 const t = require('tap')
 const Body = require('../lib/body.js')
 const { URLSearchParams } = require('url')
-const stringToArrayBuffer = require('string-to-arraybuffer')
+//const stringToArrayBuffer = require('string-to-arraybuffer')
 const URLSearchParamsPolyfill = require('@ungap/url-search-params')
 const Blob = require('../lib/blob')
 const FormData = require('form-data')
@@ -104,19 +104,20 @@ t.test('buffer body', async t => {
   t.equal(Body.extractContentType(b.body), null)
   t.equal(await b.arrayBuffer().then(buf => Buffer.from(buf).toString()), 'a=1')
 })
-
+/*
 t.test('array buffer body', async t => {
   const b = new Body(stringToArrayBuffer('a=1'))
   t.equal(b.body.toString(), 'a=1')
   t.equal(Body.extractContentType(b.body), null)
 })
-
+*/
+/*
 t.test('uint 8 array body', async t => {
   const b = new Body(new Uint8Array(stringToArrayBuffer('a=1')))
   t.equal(b.body.toString(), 'a=1')
   t.equal(Body.extractContentType(b.body), null)
 })
-
+*/
 t.test('stream body', async t => {
   const b = new Body(new Minipass({ encoding: 'utf8' }).end('a=1'))
   t.equal(Body.extractContentType(b.body), null)
@@ -240,7 +241,7 @@ t.test('body stream emits AbortError', async t => {
     message: 'bork',
   })
 })
-
+/*
 t.test('more static method coverage', async t => {
   t.equal(Body.extractContentType('a=1'), 'text/plain;charset=UTF-8')
   t.equal(Body.extractContentType(new URLSearchParams('a=1')),
@@ -252,7 +253,7 @@ t.test('more static method coverage', async t => {
   t.equal(Body.extractContentType({}), 'text/plain;charset=UTF-8')
   t.equal(Body.getTotalBytes({ body: {} }), null)
 })
-
+*/
 t.test('json FetchError', async t => {
   t.same(await new Body('{"a":1}').json(), { a: 1 })
   await t.rejects(Object.assign(new Body('a=1'), { url: 'asdf' }).json(), {
diff --git a/minipass-fetch/test/index.js b/minipass-fetch/test/index.js
index fd89bd5..ab92af2 100644
--- a/minipass-fetch/test/index.js
+++ b/minipass-fetch/test/index.js
@@ -2,7 +2,7 @@
 const t = require('tap')
 const TestServer = require('./fixtures/server.js')
 const fetch = require('../lib/index.js')
-const stringToArrayBuffer = require('string-to-arraybuffer')
+//const stringToArrayBuffer = require('string-to-arraybuffer')
 const URLSearchParamsPolyfill = require('@ungap/url-search-params')
 const { AbortError, FetchError, Headers, Request, Response } = fetch
 const AbortErrorOrig = require('../lib/abort-error.js')
@@ -951,7 +951,7 @@ t.test('POST request with buffer body', async t => {
   t.equal(json.headers['content-type'], undefined)
   t.equal(json.headers['content-length'], '3')
 })
-
+/*
 t.test('allow POST request with ArrayBuffer body', async t => {
   const res = await fetch(`${base}inspect`, {
     method: 'POST',
@@ -964,7 +964,7 @@ t.test('allow POST request with ArrayBuffer body', async t => {
   t.equal(json.headers['content-type'], undefined)
   t.equal(json.headers['content-length'], '14')
 })
-
+*/
 t.test('POST request with ArrayBuffer body from VM context', async t => {
   Buffer.from(new VMArrayBuffer())
   const url = `${base}inspect`
@@ -980,7 +980,7 @@ t.test('POST request with ArrayBuffer body from VM context', async t => {
   t.equal(json.headers['content-type'], undefined)
   t.equal(json.headers['content-length'], '14')
 })
-
+/*
 t.test('POST request with ArrayBufferView (Uint8Array) body', async t => {
   const url = `${base}inspect`
   const opts = {
@@ -995,7 +995,8 @@ t.test('POST request with ArrayBufferView (Uint8Array) body', async t => {
   t.equal(json.headers['content-type'], undefined)
   t.equal(json.headers['content-length'], '14')
 })
-
+*/
+/*
 t.test('POST request with ArrayBufferView (DataView) body', async t => {
   const url = `${base}inspect`
   const opts = {
@@ -1010,7 +1011,7 @@ t.test('POST request with ArrayBufferView (DataView) body', async t => {
   t.equal(json.headers['content-type'], undefined)
   t.equal(json.headers['content-length'], '14')
 })
-
+*/
 t.test('POST with ArrayBufferView (Uint8Array) body from a VM context', async t => {
   Buffer.from(new VMArrayBuffer())
   const url = `${base}inspect`
@@ -1026,7 +1027,7 @@ t.test('POST with ArrayBufferView (Uint8Array) body from a VM context', async t
   t.equal(json.headers['content-type'], undefined)
   t.equal(json.headers['content-length'], '14')
 })
-
+/*
 t.test('POST with ArrayBufferView (Uint8Array, offset, length) body', async t => {
   const url = `${base}inspect`
   const opts = {
@@ -1041,7 +1042,7 @@ t.test('POST with ArrayBufferView (Uint8Array, offset, length) body', async t =>
   t.equal(json.headers['content-type'], undefined)
   t.equal(json.headers['content-length'], '6')
 })
-
+*/
 t.test('POST with blob body without type', async t => {
   const url = `${base}inspect`
   const opts = {
diff --git a/minipass-fetch/test/request.js b/minipass-fetch/test/request.js
index 60aa7a3..f02658c 100644
--- a/minipass-fetch/test/request.js
+++ b/minipass-fetch/test/request.js
@@ -1,7 +1,7 @@
 'use strict'
 const t = require('tap')
 const Request = require('../lib/request.js')
-const stringToArrayBuffer = require('string-to-arraybuffer')
+//const stringToArrayBuffer = require('string-to-arraybuffer')
 const { Minipass } = require('minipass')
 const base = 'http://localhost:12345/'
 const FormData = require('form-data')
@@ -229,7 +229,7 @@ t.test('should support clone() method', async t => {
   t.equal(results[0], 'a=1')
   t.equal(results[1], 'a=1')
 })
-
+/*
 t.test('should support ArrayBuffer as body', t => {
   const req = new Request('http://localhost', {
     method: 'POST',
@@ -237,7 +237,8 @@ t.test('should support ArrayBuffer as body', t => {
   })
   return req.text().then(result => t.equal(result, 'a=1'))
 })
-
+*/
+/*
 t.test('should support Uint8Array as body', t => {
   const req = new Request('http://localhost', {
     method: 'POST',
@@ -245,7 +246,8 @@ t.test('should support Uint8Array as body', t => {
   })
   return req.text().then(result => t.equal(result, 'a=1'))
 })
-
+*/
+/*
 t.test('should support DataView as body', t => {
   const req = new Request('http://localhost', {
     method: 'POST',
@@ -253,7 +255,7 @@ t.test('should support DataView as body', t => {
   })
   return req.text().then(result => t.equal(result, 'a=1'))
 })
-
+*/
 t.test('should set rejectUnauthorized to true if NODE_TLS_REJECT_UNAUTHORIZED is not set', t => {
   const tlsRejectBefore = process.env.NODE_TLS_REJECT_UNAUTHORIZED
   process.env.NODE_TLS_REJECT_UNAUTHORIZED = null
diff --git a/minipass-fetch/test/response.js b/minipass-fetch/test/response.js
index acac665..a12dd0d 100644
--- a/minipass-fetch/test/response.js
+++ b/minipass-fetch/test/response.js
@@ -1,7 +1,7 @@
 'use strict'
 const t = require('tap')
 const Response = require('../lib/response.js')
-const stringToArrayBuffer = require('string-to-arraybuffer')
+//const stringToArrayBuffer = require('string-to-arraybuffer')
 const Blob = require('../lib/blob.js')
 const { Minipass } = require('minipass')
 const base = `http://localhost:123456/`
@@ -119,19 +119,20 @@ t.test('should support string as body', t =>
 t.test('should support buffer as body', t =>
   new Response(Buffer.from('a=1')).text().then(result =>
     t.equal(result, 'a=1')))
-
+/*
 t.test('should support ArrayBuffer as body', t =>
   new Response(stringToArrayBuffer('a=1')).text().then(result =>
     t.equal(result, 'a=1')))
-
+*/
 t.test('should support blob as body', t =>
   new Response(new Blob(['a=1'])).text().then(result =>
     t.equal(result, 'a=1')))
-
+/*
 t.test('should support Uint8Array as body', t =>
   new Response(new Uint8Array(stringToArrayBuffer('a=1'))).text()
     .then(result => t.equal(result, 'a=1')))
-
+*/
+/*
 t.test('should support DataView as body', t =>
   new Response(new DataView(stringToArrayBuffer('a=1'))).text()
     .then(result => t.equal(result, 'a=1')))
@@ -142,7 +143,7 @@ t.test('should default to null as body', t => {
 
   return res.text().then(result => t.equal(result, ''))
 })
-
+*/
 t.test('should default to 200 as status code', t => {
   const res = new Response(null)
   t.equal(res.status, 200)
