aboutsummaryrefslogtreecommitdiff
path: root/node_modules/typedarray-to-buffer
diff options
context:
space:
mode:
authorMinteck <freeziv.ytb@gmail.com>2021-03-07 18:29:17 +0100
committerMinteck <freeziv.ytb@gmail.com>2021-03-07 18:29:17 +0100
commit0f79e708bf07721b73ea41e5d341be08e8ea4dce (patch)
treef3c63cd6a9f4ef0b26f95eec6a031600232e80c8 /node_modules/typedarray-to-buffer
downloadelectrode-0f79e708bf07721b73ea41e5d341be08e8ea4dce.tar.gz
electrode-0f79e708bf07721b73ea41e5d341be08e8ea4dce.tar.bz2
electrode-0f79e708bf07721b73ea41e5d341be08e8ea4dce.zip
Initial commit
Diffstat (limited to 'node_modules/typedarray-to-buffer')
-rw-r--r--node_modules/typedarray-to-buffer/.airtap.yml15
-rw-r--r--node_modules/typedarray-to-buffer/.travis.yml11
-rw-r--r--node_modules/typedarray-to-buffer/LICENSE21
-rw-r--r--node_modules/typedarray-to-buffer/README.md85
-rw-r--r--node_modules/typedarray-to-buffer/index.js25
-rw-r--r--node_modules/typedarray-to-buffer/package.json75
-rw-r--r--node_modules/typedarray-to-buffer/test/basic.js50
7 files changed, 282 insertions, 0 deletions
diff --git a/node_modules/typedarray-to-buffer/.airtap.yml b/node_modules/typedarray-to-buffer/.airtap.yml
new file mode 100644
index 0000000..3417780
--- /dev/null
+++ b/node_modules/typedarray-to-buffer/.airtap.yml
@@ -0,0 +1,15 @@
+sauce_connect: true
+loopback: airtap.local
+browsers:
+ - name: chrome
+ version: latest
+ - name: firefox
+ version: latest
+ - name: safari
+ version: latest
+ - name: microsoftedge
+ version: latest
+ - name: ie
+ version: latest
+ - name: iphone
+ version: latest
diff --git a/node_modules/typedarray-to-buffer/.travis.yml b/node_modules/typedarray-to-buffer/.travis.yml
new file mode 100644
index 0000000..f25afbd
--- /dev/null
+++ b/node_modules/typedarray-to-buffer/.travis.yml
@@ -0,0 +1,11 @@
+language: node_js
+node_js:
+ - lts/*
+addons:
+ sauce_connect: true
+ hosts:
+ - airtap.local
+env:
+ global:
+ - secure: i51rE9rZGHbcZWlL58j3H1qtL23OIV2r0X4TcQKNI3pw2mubdHFJmfPNNO19ItfReu8wwQMxOehKamwaNvqMiKWyHfn/QcThFQysqzgGZ6AgnUbYx9od6XFNDeWd1sVBf7QBAL07y7KWlYGWCwFwWjabSVySzQhEBdisPcskfkI=
+ - secure: BKq6/5z9LK3KDkTjs7BGeBZ1KsWgz+MsAXZ4P64NSeVGFaBdXU45+ww1mwxXFt5l22/mhyOQZfebQl+kGVqRSZ+DEgQeCymkNZ6CD8c6w6cLuOJXiXwuu/cDM2DD0tfGeu2YZC7yEikP7BqEFwH3D324rRzSGLF2RSAAwkOI7bE=
diff --git a/node_modules/typedarray-to-buffer/LICENSE b/node_modules/typedarray-to-buffer/LICENSE
new file mode 100644
index 0000000..0c068ce
--- /dev/null
+++ b/node_modules/typedarray-to-buffer/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Feross Aboukhadijeh
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/typedarray-to-buffer/README.md b/node_modules/typedarray-to-buffer/README.md
new file mode 100644
index 0000000..35761fb
--- /dev/null
+++ b/node_modules/typedarray-to-buffer/README.md
@@ -0,0 +1,85 @@
+# typedarray-to-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]
+
+[travis-image]: https://img.shields.io/travis/feross/typedarray-to-buffer/master.svg
+[travis-url]: https://travis-ci.org/feross/typedarray-to-buffer
+[npm-image]: https://img.shields.io/npm/v/typedarray-to-buffer.svg
+[npm-url]: https://npmjs.org/package/typedarray-to-buffer
+[downloads-image]: https://img.shields.io/npm/dm/typedarray-to-buffer.svg
+[downloads-url]: https://npmjs.org/package/typedarray-to-buffer
+[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
+[standard-url]: https://standardjs.com
+
+#### Convert a typed array to a [Buffer](https://github.com/feross/buffer) without a copy.
+
+[![saucelabs][saucelabs-image]][saucelabs-url]
+
+[saucelabs-image]: https://saucelabs.com/browser-matrix/typedarray-to-buffer.svg
+[saucelabs-url]: https://saucelabs.com/u/typedarray-to-buffer
+
+Say you're using the ['buffer'](https://github.com/feross/buffer) module on npm, or
+[browserify](http://browserify.org/) and you're working with lots of binary data.
+
+Unfortunately, sometimes the browser or someone else's API gives you a typed array like
+`Uint8Array` to work with and you need to convert it to a `Buffer`. What do you do?
+
+Of course: `Buffer.from(uint8array)`
+
+But, alas, every time you do `Buffer.from(uint8array)` **the entire array gets copied**.
+The `Buffer` constructor does a copy; this is
+defined by the [node docs](http://nodejs.org/api/buffer.html) and the 'buffer' module
+matches the node API exactly.
+
+So, how can we avoid this expensive copy in
+[performance critical applications](https://github.com/feross/buffer/issues/22)?
+
+***Simply use this module, of course!***
+
+If you have an `ArrayBuffer`, you don't need this module, because
+`Buffer.from(arrayBuffer)`
+[is already efficient](https://nodejs.org/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length).
+
+## install
+
+```bash
+npm install typedarray-to-buffer
+```
+
+## usage
+
+To convert a typed array to a `Buffer` **without a copy**, do this:
+
+```js
+var toBuffer = require('typedarray-to-buffer')
+
+var arr = new Uint8Array([1, 2, 3])
+arr = toBuffer(arr)
+
+// arr is a buffer now!
+
+arr.toString() // '\u0001\u0002\u0003'
+arr.readUInt16BE(0) // 258
+```
+
+## how it works
+
+If the browser supports typed arrays, then `toBuffer` will **augment the typed array** you
+pass in with the `Buffer` methods and return it. See [how does Buffer
+work?](https://github.com/feross/buffer#how-does-it-work) for more about how augmentation
+works.
+
+This module uses the typed array's underlying `ArrayBuffer` to back the new `Buffer`. This
+respects the "view" on the `ArrayBuffer`, i.e. `byteOffset` and `byteLength`. In other
+words, if you do `toBuffer(new Uint32Array([1, 2, 3]))`, then the new `Buffer` will
+contain `[1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0]`, **not** `[1, 2, 3]`. And it still doesn't
+require a copy.
+
+If the browser doesn't support typed arrays, then `toBuffer` will create a new `Buffer`
+object, copy the data into it, and return it. There's no simple performance optimization
+we can do for old browsers. Oh well.
+
+If this module is used in node, then it will just call `Buffer.from`. This is just for
+the convenience of modules that work in both node and the browser.
+
+## license
+
+MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org).
diff --git a/node_modules/typedarray-to-buffer/index.js b/node_modules/typedarray-to-buffer/index.js
new file mode 100644
index 0000000..5fa394d
--- /dev/null
+++ b/node_modules/typedarray-to-buffer/index.js
@@ -0,0 +1,25 @@
+/**
+ * Convert a typed array to a Buffer without a copy
+ *
+ * Author: Feross Aboukhadijeh <https://feross.org>
+ * License: MIT
+ *
+ * `npm install typedarray-to-buffer`
+ */
+
+var isTypedArray = require('is-typedarray').strict
+
+module.exports = function typedarrayToBuffer (arr) {
+ if (isTypedArray(arr)) {
+ // To avoid a copy, use the typed array's underlying ArrayBuffer to back new Buffer
+ var buf = Buffer.from(arr.buffer)
+ if (arr.byteLength !== arr.buffer.byteLength) {
+ // Respect the "view", i.e. byteOffset and byteLength, without doing a copy
+ buf = buf.slice(arr.byteOffset, arr.byteOffset + arr.byteLength)
+ }
+ return buf
+ } else {
+ // Pass through all other types to `Buffer.from`
+ return Buffer.from(arr)
+ }
+}
diff --git a/node_modules/typedarray-to-buffer/package.json b/node_modules/typedarray-to-buffer/package.json
new file mode 100644
index 0000000..bac7683
--- /dev/null
+++ b/node_modules/typedarray-to-buffer/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "typedarray-to-buffer@^3.1.5",
+ "_id": "typedarray-to-buffer@3.1.5",
+ "_inBundle": false,
+ "_integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "_location": "/typedarray-to-buffer",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "typedarray-to-buffer@^3.1.5",
+ "name": "typedarray-to-buffer",
+ "escapedName": "typedarray-to-buffer",
+ "rawSpec": "^3.1.5",
+ "saveSpec": null,
+ "fetchSpec": "^3.1.5"
+ },
+ "_requiredBy": [
+ "/file-type"
+ ],
+ "_resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "_shasum": "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080",
+ "_spec": "typedarray-to-buffer@^3.1.5",
+ "_where": "/data/dev/Projets/FNS Electrode/Projets/FNS Electrode/node_modules/file-type",
+ "author": {
+ "name": "Feross Aboukhadijeh",
+ "email": "feross@feross.org",
+ "url": "http://feross.org/"
+ },
+ "bugs": {
+ "url": "https://github.com/feross/typedarray-to-buffer/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "is-typedarray": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Convert a typed array to a Buffer without a copy",
+ "devDependencies": {
+ "airtap": "0.0.4",
+ "standard": "*",
+ "tape": "^4.0.0"
+ },
+ "homepage": "http://feross.org",
+ "keywords": [
+ "buffer",
+ "typed array",
+ "convert",
+ "no copy",
+ "uint8array",
+ "uint16array",
+ "uint32array",
+ "int16array",
+ "int32array",
+ "float32array",
+ "float64array",
+ "browser",
+ "arraybuffer",
+ "dataview"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "typedarray-to-buffer",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/feross/typedarray-to-buffer.git"
+ },
+ "scripts": {
+ "test": "standard && npm run test-node && npm run test-browser",
+ "test-browser": "airtap -- test/*.js",
+ "test-browser-local": "airtap --local -- test/*.js",
+ "test-node": "tape test/*.js"
+ },
+ "version": "3.1.5"
+}
diff --git a/node_modules/typedarray-to-buffer/test/basic.js b/node_modules/typedarray-to-buffer/test/basic.js
new file mode 100644
index 0000000..3521096
--- /dev/null
+++ b/node_modules/typedarray-to-buffer/test/basic.js
@@ -0,0 +1,50 @@
+var test = require('tape')
+var toBuffer = require('../')
+
+test('convert to buffer from Uint8Array', function (t) {
+ if (typeof Uint8Array !== 'undefined') {
+ var arr = new Uint8Array([1, 2, 3])
+ arr = toBuffer(arr)
+
+ t.deepEqual(arr, Buffer.from([1, 2, 3]), 'contents equal')
+ t.ok(Buffer.isBuffer(arr), 'is buffer')
+ t.equal(arr.readUInt8(0), 1)
+ t.equal(arr.readUInt8(1), 2)
+ t.equal(arr.readUInt8(2), 3)
+ } else {
+ t.pass('browser lacks Uint8Array support, skip test')
+ }
+ t.end()
+})
+
+test('convert to buffer from another arrayview type (Uint32Array)', function (t) {
+ if (typeof Uint32Array !== 'undefined' && Buffer.TYPED_ARRAY_SUPPORT !== false) {
+ var arr = new Uint32Array([1, 2, 3])
+ arr = toBuffer(arr)
+
+ t.deepEqual(arr, Buffer.from([1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0]), 'contents equal')
+ t.ok(Buffer.isBuffer(arr), 'is buffer')
+ t.equal(arr.readUInt32LE(0), 1)
+ t.equal(arr.readUInt32LE(4), 2)
+ t.equal(arr.readUInt32LE(8), 3)
+ t.equal(arr instanceof Uint8Array, true)
+ } else {
+ t.pass('browser lacks Uint32Array support, skip test')
+ }
+ t.end()
+})
+
+test('convert to buffer from ArrayBuffer', function (t) {
+ if (typeof Uint32Array !== 'undefined' && Buffer.TYPED_ARRAY_SUPPORT !== false) {
+ var arr = new Uint32Array([1, 2, 3]).subarray(1, 2)
+ arr = toBuffer(arr)
+
+ t.deepEqual(arr, Buffer.from([2, 0, 0, 0]), 'contents equal')
+ t.ok(Buffer.isBuffer(arr), 'is buffer')
+ t.equal(arr.readUInt32LE(0), 2)
+ t.equal(arr instanceof Uint8Array, true)
+ } else {
+ t.pass('browser lacks ArrayBuffer support, skip test')
+ }
+ t.end()
+})