diff options
| author | akiyamn | 2023-09-24 23:22:21 +1000 |
|---|---|---|
| committer | akiyamn | 2023-09-24 23:22:21 +1000 |
| commit | 4e87195739f2a5d9a05451b48773c8afdc680765 (patch) | |
| tree | 9cba501844a4a11dcbdffc4050ed8189561c55ed /node_modules/@esbuild-plugins | |
| download | price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.tar.gz price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.zip | |
Initial commit (by create-cloudflare CLI)
Diffstat (limited to 'node_modules/@esbuild-plugins')
51 files changed, 4422 insertions, 0 deletions
diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/Buffer.js b/node_modules/@esbuild-plugins/node-globals-polyfill/Buffer.js new file mode 100644 index 0000000..a857959 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/Buffer.js @@ -0,0 +1,2168 @@ +// taken from https://github.com/calvinmetcalf/buffer-es6 + +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */ +/* eslint-disable no-proto */ + +var lookup = [] +var revLookup = [] +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array +var inited = false +function init() { + inited = true + var code = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i + } + + revLookup['-'.charCodeAt(0)] = 62 + revLookup['_'.charCodeAt(0)] = 63 +} + +function base64toByteArray(b64) { + if (!inited) { + init() + } + var i, j, l, tmp, placeHolders, arr + var len = b64.length + + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 + + // base64 is 4/3 + up to two characters of the original data + arr = new Arr((len * 3) / 4 - placeHolders) + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? len - 4 : len + + var L = 0 + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)] + arr[L++] = (tmp >> 16) & 0xff + arr[L++] = (tmp >> 8) & 0xff + arr[L++] = tmp & 0xff + } + + if (placeHolders === 2) { + tmp = + (revLookup[b64.charCodeAt(i)] << 2) | + (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[L++] = tmp & 0xff + } else if (placeHolders === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[L++] = (tmp >> 8) & 0xff + arr[L++] = tmp & 0xff + } + + return arr +} + +function tripletToBase64(num) { + return ( + lookup[(num >> 18) & 0x3f] + + lookup[(num >> 12) & 0x3f] + + lookup[(num >> 6) & 0x3f] + + lookup[num & 0x3f] + ) +} + +function encodeChunk(uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2] + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function base64fromByteArray(uint8) { + if (!inited) { + init() + } + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var output = '' + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push( + encodeChunk( + uint8, + i, + i + maxChunkLength > len2 ? len2 : i + maxChunkLength, + ), + ) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + output += lookup[tmp >> 2] + output += lookup[(tmp << 4) & 0x3f] + output += '==' + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1] + output += lookup[tmp >> 10] + output += lookup[(tmp >> 4) & 0x3f] + output += lookup[(tmp << 2) & 0x3f] + output += '=' + } + + parts.push(output) + + return parts.join('') +} + +var INSPECT_MAX_BYTES = 50 + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ +Buffer.TYPED_ARRAY_SUPPORT = + global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : true + +function kMaxLength() { + return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff +} + +function createBuffer(that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length) + } + that.length = length + } + + return that +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +export function Buffer(arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length) + } + + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string', + ) + } + return allocUnsafe(this, arg) + } + return from(this, arg, encodingOrOffset, length) +} + +Buffer.poolSize = 8192 // not used by this implementation + +// TODO: Legacy, not needed anymore. Remove in next major version. +Buffer._augment = function(arr) { + arr.__proto__ = Buffer.prototype + return arr +} + +function from(that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } + + return fromObject(that, value) +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function(value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) +} + +Buffer.kMaxLength = kMaxLength() + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if ( + typeof Symbol !== 'undefined' && + Symbol.species && + Buffer[Symbol.species] === Buffer + ) { + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + // Object.defineProperty(Buffer, Symbol.species, { + // value: null, + // configurable: true + // }) + } +} + +function assertSize(size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } +} + +function alloc(that, size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function(size, fill, encoding) { + return alloc(null, size, fill, encoding) +} + +function allocUnsafe(that, size) { + assertSize(size) + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0 + } + } + return that +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function(size) { + return allocUnsafe(null, size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function(size) { + return allocUnsafe(null, size) +} + +function fromString(that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + var length = byteLength(string, encoding) | 0 + that = createBuffer(that, length) + + var actual = that.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual) + } + + return that +} + +function fromArrayLike(that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + that = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromArrayBuffer(that, array, byteOffset, length) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError("'offset' is out of bounds") + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError("'length' is out of bounds") + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array) + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset) + } else { + array = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array) + } + return that +} + +function fromObject(that, obj) { + if (internalIsBuffer(obj)) { + var len = checked(obj.length) | 0 + that = createBuffer(that, len) + + if (that.length === 0) { + return that + } + + obj.copy(that, 0, 0, len) + return that + } + + if (obj) { + if ( + (typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || + 'length' in obj + ) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError( + 'First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.', + ) +} + +function checked(length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError( + 'Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + + kMaxLength().toString(16) + + ' bytes', + ) + } + return length | 0 +} + +export function SlowBuffer(length) { + if (+length != length) { + // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} +Buffer.isBuffer = isBuffer +function internalIsBuffer(b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare(a, b) { + if (!internalIsBuffer(a) || !internalIsBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat(list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!internalIsBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength(string, encoding) { + if (internalIsBuffer(string)) { + return string.length + } + if ( + typeof ArrayBuffer !== 'undefined' && + typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) + ) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString(encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) + throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer.prototype._isBuffer = true + +function swap(b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16() { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32() { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64() { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString() { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals(b) { + if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + + +Buffer.prototype.compare = function compare( + target, + start, + end, + thisStart, + thisEnd, +) { + if (!internalIsBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if ( + start < 0 || + end > target.length || + thisStart < 0 || + thisEnd > this.length + ) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : buffer.length - 1 + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (internalIsBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xff // Search for a byte value [0-255] + if ( + Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function' + ) { + if (dir) { + return Uint8Array.prototype.indexOf.call( + buffer, + val, + byteOffset, + ) + } else { + return Uint8Array.prototype.lastIndexOf.call( + buffer, + val, + byteOffset, + ) + } + } + return arrayIndexOf(buffer, [val], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if ( + encoding === 'ucs2' || + encoding === 'ucs-2' || + encoding === 'utf16le' || + encoding === 'utf-16le' + ) { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read(buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if ( + read(arr, i) === + read(val, foundIndex === -1 ? 0 : i - foundIndex) + ) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) + return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) + byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write(buf, string, offset, length) { + return blitBuffer( + utf8ToBytes(string, buf.length - offset), + buf, + offset, + length, + ) +} + +function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write(buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write(buf, string, offset, length) { + return blitBuffer( + utf16leToBytes(string, buf.length - offset), + buf, + offset, + length, + ) +} + +Buffer.prototype.write = function write(string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported', + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ( + (string.length > 0 && (length < 0 || offset < 0)) || + offset > this.length + ) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) + throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON() { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0), + } +} + +function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return base64fromByteArray(buf) + } else { + return base64fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = + firstByte > 0xef + ? 4 + : firstByte > 0xdf + ? 3 + : firstByte > 0xbf + ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xc0) === 0x80) { + tempCodePoint = + ((firstByte & 0x1f) << 0x6) | (secondByte & 0x3f) + if (tempCodePoint > 0x7f) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ( + (secondByte & 0xc0) === 0x80 && + (thirdByte & 0xc0) === 0x80 + ) { + tempCodePoint = + ((firstByte & 0xf) << 0xc) | + ((secondByte & 0x3f) << 0x6) | + (thirdByte & 0x3f) + if ( + tempCodePoint > 0x7ff && + (tempCodePoint < 0xd800 || tempCodePoint > 0xdfff) + ) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ( + (secondByte & 0xc0) === 0x80 && + (thirdByte & 0xc0) === 0x80 && + (fourthByte & 0xc0) === 0x80 + ) { + tempCodePoint = + ((firstByte & 0xf) << 0x12) | + ((secondByte & 0x3f) << 0xc) | + ((thirdByte & 0x3f) << 0x6) | + (fourthByte & 0x3f) + if ( + tempCodePoint > 0xffff && + tempCodePoint < 0x110000 + ) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xfffd + bytesPerSequence = 1 + } else if (codePoint > 0xffff) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(((codePoint >>> 10) & 0x3ff) | 0xd800) + codePoint = 0xdc00 | (codePoint & 0x3ff) + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray(codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, (i += MAX_ARGUMENTS_LENGTH)), + ) + } + return res +} + +function asciiSlice(buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7f) + } + return ret +} + +function latin1Slice(buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice(buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice(buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice(start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) + throw new RangeError('offset is not uint') + if (offset + ext > length) + throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE( + offset, + byteLength, + noAssert, +) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE( + offset, + byteLength, + noAssert, +) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ( + (this[offset] | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + + this[offset + 3] * 0x1000000 + ) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ( + this[offset] * 0x1000000 + + ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]) + ) +} + +Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8(offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return this[offset] + return (0xff - this[offset] + 1) * -1 +} + +Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return val & 0x8000 ? val | 0xffff0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return val & 0x8000 ? val | 0xffff0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ( + this[offset] | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) + ) +} + +Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ( + (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3] + ) +} + +Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754read(this, offset, false, 52, 8) +} + +function checkInt(buf, value, offset, ext, max, min) { + if (!internalIsBuffer(buf)) + throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) + throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE( + value, + offset, + byteLength, + noAssert, +) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xff + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xff + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE( + value, + offset, + byteLength, + noAssert, +) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xff + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xff + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = value & 0xff + return offset + 1 +} + +function objectWriteUInt16(buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = + (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + ((littleEndian ? i : 1 - i) * 8) + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE( + value, + offset, + noAssert, +) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value & 0xff + this[offset + 1] = value >>> 8 + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE( + value, + offset, + noAssert, +) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value >>> 8 + this[offset + 1] = value & 0xff + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32(buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> ((littleEndian ? i : 3 - i) * 8)) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE( + value, + offset, + noAssert, +) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = value >>> 24 + this[offset + 2] = value >>> 16 + this[offset + 1] = value >>> 8 + this[offset] = value & 0xff + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE( + value, + offset, + noAssert, +) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value >>> 24 + this[offset + 1] = value >>> 16 + this[offset + 2] = value >>> 8 + this[offset + 3] = value & 0xff + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE( + value, + offset, + byteLength, + noAssert, +) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xff + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = (((value / mul) >> 0) - sub) & 0xff + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE( + value, + offset, + byteLength, + noAssert, +) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xff + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = (((value / mul) >> 0) - sub) & 0xff + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = value & 0xff + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value & 0xff + this[offset + 1] = value >>> 8 + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value >>> 8 + this[offset + 1] = value & 0xff + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value & 0xff + this[offset + 1] = value >>> 8 + this[offset + 2] = value >>> 16 + this[offset + 3] = value >>> 24 + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value >>> 24 + this[offset + 1] = value >>> 16 + this[offset + 2] = value >>> 8 + this[offset + 3] = value & 0xff + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat(buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754( + buf, + value, + offset, + 4, + 3.4028234663852886e38, + -3.4028234663852886e38, + ) + } + ieee754write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble(buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754( + buf, + value, + offset, + 8, + 1.7976931348623157e308, + -1.7976931348623157e308, + ) + } + ieee754write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE( + value, + offset, + noAssert, +) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE( + value, + offset, + noAssert, +) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy(target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) + throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart, + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill(val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = internalIsBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean(str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim(str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex(n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes(string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xd7ff && codePoint < 0xe000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xdbff) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xdc00) { + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = + (((leadSurrogate - 0xd800) << 10) | (codePoint - 0xdc00)) + + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push((codePoint >> 0x6) | 0xc0, (codePoint & 0x3f) | 0x80) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + (codePoint >> 0xc) | 0xe0, + ((codePoint >> 0x6) & 0x3f) | 0x80, + (codePoint & 0x3f) | 0x80, + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + (codePoint >> 0x12) | 0xf0, + ((codePoint >> 0xc) & 0x3f) | 0x80, + ((codePoint >> 0x6) & 0x3f) | 0x80, + (codePoint & 0x3f) | 0x80, + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes(str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xff) + } + return byteArray +} + +function utf16leToBytes(str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes(str) { + return base64toByteArray(base64clean(str)) +} + +function blitBuffer(src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) break + dst[i + offset] = src[i] + } + return i +} + +function isnan(val) { + return val !== val // eslint-disable-line no-self-compare +} + +// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence +// The _isBuffer check is for Safari 5-7 support, because it's missing +// Object.prototype.constructor. Remove this eventually +function isBuffer(obj) { + return ( + obj != null && + (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj)) + ) +} + +function isFastBuffer(obj) { + return ( + !!obj.constructor && + typeof obj.constructor.isBuffer === 'function' && + obj.constructor.isBuffer(obj) + ) +} + +// For Node v0.10 support. Remove this eventually. +function isSlowBuffer(obj) { + return ( + typeof obj.readFloatLE === 'function' && + typeof obj.slice === 'function' && + isFastBuffer(obj.slice(0, 0)) + ) +} + +function ieee754read(buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? nBytes - 1 : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << -nBits) - 1) + s >>= -nBits + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << -nBits) - 1) + e >>= -nBits + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +function ieee754write(buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0 + var i = isLE ? 0 : nBytes - 1 + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for ( + ; + mLen >= 8; + buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8 + ) {} + + e = (e << mLen) | m + eLen += mLen + for ( + ; + eLen > 0; + buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8 + ) {} + + buffer[offset + i - d] |= s * 128 +} diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/_buffer.js b/node_modules/@esbuild-plugins/node-globals-polyfill/_buffer.js new file mode 100644 index 0000000..66103f8 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/_buffer.js @@ -0,0 +1 @@ +export { Buffer } from '_node-buffer-polyfill_.js' diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/_process.js b/node_modules/@esbuild-plugins/node-globals-polyfill/_process.js new file mode 100644 index 0000000..e9d08e8 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/_process.js @@ -0,0 +1 @@ +export { process } from '_node-process-polyfill_.js' diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.d.ts b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.d.ts new file mode 100644 index 0000000..2f1104e --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.d.ts @@ -0,0 +1,7 @@ +import * as esbuild from 'esbuild'; +export declare function NodeGlobalsPolyfillPlugin({ buffer, process, }?: { + buffer?: boolean | undefined; + process?: boolean | undefined; +}): esbuild.Plugin; +export default NodeGlobalsPolyfillPlugin; +//# sourceMappingURL=index.d.ts.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.d.ts.map b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.d.ts.map new file mode 100644 index 0000000..2d38864 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,wBAAgB,yBAAyB,CAAC,EACtC,MAAc,EAEd,OAAc,GACjB;;;CAAK,GAAG,OAAO,CAAC,MAAM,CAyEtB;AAED,eAAe,yBAAyB,CAAA"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.js b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.js new file mode 100644 index 0000000..1bd8fb8 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.js @@ -0,0 +1,80 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeGlobalsPolyfillPlugin = void 0; +const path_1 = __importDefault(require("path")); +function NodeGlobalsPolyfillPlugin({ buffer = false, +// define = {}, +process = true, } = {}) { + return { + name: 'node-globals-polyfill', + setup({ initialOptions, onResolve, onLoad }) { + onResolve({ filter: /_node-buffer-polyfill_\.js/ }, (arg) => { + return { + path: path_1.default.resolve(__dirname, '../Buffer.js'), + }; + }); + onResolve({ filter: /_node-process-polyfill_\.js/ }, (arg) => { + return { + path: path_1.default.resolve(__dirname, '../process.js'), + }; + }); + // TODO esbuild cannot use virtual modules for inject: https://github.com/evanw/esbuild/issues/2762 + // onLoad({ filter: /_virtual-process-polyfill_\.js/ }, (arg) => { + // const data = fs + // .readFileSync(path.resolve(__dirname, '../process.js')) + // .toString() + // const keys = Object.keys(define) + // return { + // loader: 'js', + // contents: data.replace( + // `const defines = {}`, + // 'const defines = {\n' + + // keys + // .filter((x) => x.startsWith('process.')) + // .sort((a, b) => a.length - b.length) + // .map( + // (k) => + // ` ${JSON.stringify(k).replace( + // 'process.', + // '', + // )}: ${define[k]},`, + // ) + // .join('\n') + + // '\n}', + // ), + // } + // }) + onResolve({ filter: /_virtual-process-polyfill_\.js/ }, () => { + return { + path: path_1.default.resolve(__dirname, '../process.js'), + }; + }); + onResolve({ filter: /_virtual-buffer-polyfill_\.js/ }, () => { + return { + path: path_1.default.resolve(__dirname, '../_buffer.js'), + }; + }); + const polyfills = []; + if (process) { + polyfills.push(path_1.default.resolve(__dirname, '../_virtual-process-polyfill_.js')); + } + if (buffer) { + polyfills.push(path_1.default.resolve(__dirname, '../_virtual-buffer-polyfill_.js')); + } + if (initialOptions.inject) { + initialOptions.inject.push(...polyfills); + // handle duplicate plugin + initialOptions.inject = [...new Set(initialOptions.inject)]; + } + else { + initialOptions.inject = [...polyfills]; + } + }, + }; +} +exports.NodeGlobalsPolyfillPlugin = NodeGlobalsPolyfillPlugin; +exports.default = NodeGlobalsPolyfillPlugin; +//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.js.map b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.js.map new file mode 100644 index 0000000..8f8a451 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAIvB,SAAgB,yBAAyB,CAAC,EACtC,MAAM,GAAG,KAAK;AACd,eAAe;AACf,OAAO,GAAG,IAAI,GACjB,GAAG,EAAE;IACF,OAAO;QACH,IAAI,EAAE,uBAAuB;QAC7B,KAAK,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE;YACvC,SAAS,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxD,OAAO;oBACH,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC;iBAChD,CAAA;YACL,CAAC,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzD,OAAO;oBACH,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjD,CAAA;YACL,CAAC,CAAC,CAAA;YAEF,mGAAmG;YACnG,kEAAkE;YAClE,sBAAsB;YACtB,kEAAkE;YAClE,sBAAsB;YAEtB,uCAAuC;YACvC,eAAe;YACf,wBAAwB;YACxB,kCAAkC;YAClC,oCAAoC;YACpC,sCAAsC;YACtC,uBAAuB;YACvB,+DAA+D;YAC/D,2DAA2D;YAC3D,4BAA4B;YAC5B,iCAAiC;YACjC,8DAA8D;YAC9D,8CAA8C;YAC9C,sCAAsC;YACtC,kDAAkD;YAClD,wBAAwB;YACxB,oCAAoC;YACpC,yBAAyB;YACzB,aAAa;YACb,QAAQ;YACR,KAAK;YACL,SAAS,CAAC,EAAE,MAAM,EAAE,gCAAgC,EAAE,EAAE,GAAG,EAAE;gBACzD,OAAO;oBACH,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjD,CAAA;YACL,CAAC,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE,GAAG,EAAE;gBACxD,OAAO;oBACH,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjD,CAAA;YACL,CAAC,CAAC,CAAA;YAEF,MAAM,SAAS,GAAa,EAAE,CAAA;YAC9B,IAAI,OAAO,EAAE;gBACT,SAAS,CAAC,IAAI,CACV,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAC9D,CAAA;aACJ;YACD,IAAI,MAAM,EAAE;gBACR,SAAS,CAAC,IAAI,CACV,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAC7D,CAAA;aACJ;YACD,IAAI,cAAc,CAAC,MAAM,EAAE;gBACvB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;gBACxC,0BAA0B;gBAC1B,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;aAC9D;iBAAM;gBACH,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;aACzC;QACL,CAAC;KACJ,CAAA;AACL,CAAC;AA7ED,8DA6EC;AAED,kBAAe,yBAAyB,CAAA"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.d.ts b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.d.ts new file mode 100644 index 0000000..121d59b --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=index.test.d.ts.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.d.ts.map b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.d.ts.map new file mode 100644 index 0000000..b5774e1 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.js b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.js new file mode 100644 index 0000000..3f9f406 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.js @@ -0,0 +1,139 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const esbuild_1 = require("esbuild"); +const test_support_1 = require("test-support"); +const _1 = require("."); +require('debug').enable(require('../package.json').name); +test('process works', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `process.version`, + }); + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../process')], + }); + const output = res.outputFiles[0].text; + // console.log(output) + eval(output); + unlink(); +})); +test('process is tree shaken', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `console.log('hei')`, + }); + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../process')], + }); + const output = res.outputFiles[0].text; + expect(output).not.toContain('process'); + unlink(); +})); +// TODO esbuild cannot use virtual modules for inject: https://github.com/evanw/esbuild/issues/2762 +test('process env vars are replaced with ones from define', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `if (process.env.VAR !== 'hello') { throw new Error('process.env.VAR not right: ' + process.env.VAR) }`, + }); + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + define: { + 'process.env.VAR': '"hello"', + }, + plugins: [_1.NodeGlobalsPolyfillPlugin({})], + }); + const output = res.outputFiles[0].text; + eval(output); + unlink(); +})); +test('Buffer works', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `console.log(Buffer.from('xxx').toString())`, + }); + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../Buffer')], + }); + const output = res.outputFiles[0].text; + // console.log(output) + eval(output); + unlink(); +})); +test('Buffer is tree shaken', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `console.log('hei')`, + }); + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../Buffer')], + }); + const output = res.outputFiles[0].text; + expect(output).not.toContain('Buffer'); + unlink(); +})); +test('Buffer works using plugin', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': ` + let buf = new Buffer(256); + let len = buf.write("Simply Easy Learning"); + console.log("Octets written : "+ len);`, + }); + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [_1.NodeGlobalsPolyfillPlugin({ buffer: true })], + }); + const output = res.outputFiles[0].text; + // console.log(output) + eval(output); + unlink(); +})); +test('process works using plugin', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `console.log(process.cwd())`, + }); + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [_1.NodeGlobalsPolyfillPlugin({ process: true })], + }); + const output = res.outputFiles[0].text; + // console.log(output) + eval(output); + unlink(); +})); +//# sourceMappingURL=index.test.js.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.js.map b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.js.map new file mode 100644 index 0000000..cef0110 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/dist/index.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.d.ts b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.d.ts new file mode 100644 index 0000000..2f1104e --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.d.ts @@ -0,0 +1,7 @@ +import * as esbuild from 'esbuild'; +export declare function NodeGlobalsPolyfillPlugin({ buffer, process, }?: { + buffer?: boolean | undefined; + process?: boolean | undefined; +}): esbuild.Plugin; +export default NodeGlobalsPolyfillPlugin; +//# sourceMappingURL=index.d.ts.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.d.ts.map b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.d.ts.map new file mode 100644 index 0000000..2d38864 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,wBAAgB,yBAAyB,CAAC,EACtC,MAAc,EAEd,OAAc,GACjB;;;CAAK,GAAG,OAAO,CAAC,MAAM,CAyEtB;AAED,eAAe,yBAAyB,CAAA"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js new file mode 100644 index 0000000..aa0bceb --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js @@ -0,0 +1,73 @@ +import path from 'path'; +export function NodeGlobalsPolyfillPlugin({ buffer = false, +// define = {}, +process = true, } = {}) { + return { + name: 'node-globals-polyfill', + setup({ initialOptions, onResolve, onLoad }) { + onResolve({ filter: /_node-buffer-polyfill_\.js/ }, (arg) => { + return { + path: path.resolve(__dirname, '../Buffer.js'), + }; + }); + onResolve({ filter: /_node-process-polyfill_\.js/ }, (arg) => { + return { + path: path.resolve(__dirname, '../process.js'), + }; + }); + // TODO esbuild cannot use virtual modules for inject: https://github.com/evanw/esbuild/issues/2762 + // onLoad({ filter: /_virtual-process-polyfill_\.js/ }, (arg) => { + // const data = fs + // .readFileSync(path.resolve(__dirname, '../process.js')) + // .toString() + // const keys = Object.keys(define) + // return { + // loader: 'js', + // contents: data.replace( + // `const defines = {}`, + // 'const defines = {\n' + + // keys + // .filter((x) => x.startsWith('process.')) + // .sort((a, b) => a.length - b.length) + // .map( + // (k) => + // ` ${JSON.stringify(k).replace( + // 'process.', + // '', + // )}: ${define[k]},`, + // ) + // .join('\n') + + // '\n}', + // ), + // } + // }) + onResolve({ filter: /_virtual-process-polyfill_\.js/ }, () => { + return { + path: path.resolve(__dirname, '../process.js'), + }; + }); + onResolve({ filter: /_virtual-buffer-polyfill_\.js/ }, () => { + return { + path: path.resolve(__dirname, '../_buffer.js'), + }; + }); + const polyfills = []; + if (process) { + polyfills.push(path.resolve(__dirname, '../_virtual-process-polyfill_.js')); + } + if (buffer) { + polyfills.push(path.resolve(__dirname, '../_virtual-buffer-polyfill_.js')); + } + if (initialOptions.inject) { + initialOptions.inject.push(...polyfills); + // handle duplicate plugin + initialOptions.inject = [...new Set(initialOptions.inject)]; + } + else { + initialOptions.inject = [...polyfills]; + } + }, + }; +} +export default NodeGlobalsPolyfillPlugin; +//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js.map b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js.map new file mode 100644 index 0000000..0ebb938 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,MAAM,UAAU,yBAAyB,CAAC,EACtC,MAAM,GAAG,KAAK;AACd,eAAe;AACf,OAAO,GAAG,IAAI,GACjB,GAAG,EAAE;IACF,OAAO;QACH,IAAI,EAAE,uBAAuB;QAC7B,KAAK,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE;YACvC,SAAS,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxD,OAAO;oBACH,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC;iBAChD,CAAA;YACL,CAAC,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzD,OAAO;oBACH,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjD,CAAA;YACL,CAAC,CAAC,CAAA;YAEF,mGAAmG;YACnG,kEAAkE;YAClE,sBAAsB;YACtB,kEAAkE;YAClE,sBAAsB;YAEtB,uCAAuC;YACvC,eAAe;YACf,wBAAwB;YACxB,kCAAkC;YAClC,oCAAoC;YACpC,sCAAsC;YACtC,uBAAuB;YACvB,+DAA+D;YAC/D,2DAA2D;YAC3D,4BAA4B;YAC5B,iCAAiC;YACjC,8DAA8D;YAC9D,8CAA8C;YAC9C,sCAAsC;YACtC,kDAAkD;YAClD,wBAAwB;YACxB,oCAAoC;YACpC,yBAAyB;YACzB,aAAa;YACb,QAAQ;YACR,KAAK;YACL,SAAS,CAAC,EAAE,MAAM,EAAE,gCAAgC,EAAE,EAAE,GAAG,EAAE;gBACzD,OAAO;oBACH,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjD,CAAA;YACL,CAAC,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE,GAAG,EAAE;gBACxD,OAAO;oBACH,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjD,CAAA;YACL,CAAC,CAAC,CAAA;YAEF,MAAM,SAAS,GAAa,EAAE,CAAA;YAC9B,IAAI,OAAO,EAAE;gBACT,SAAS,CAAC,IAAI,CACV,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAC9D,CAAA;aACJ;YACD,IAAI,MAAM,EAAE;gBACR,SAAS,CAAC,IAAI,CACV,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAC7D,CAAA;aACJ;YACD,IAAI,cAAc,CAAC,MAAM,EAAE;gBACvB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;gBACxC,0BAA0B;gBAC1B,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;aAC9D;iBAAM;gBACH,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;aACzC;QACL,CAAC;KACJ,CAAA;AACL,CAAC;AAED,eAAe,yBAAyB,CAAA"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.d.ts b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.d.ts new file mode 100644 index 0000000..121d59b --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=index.test.d.ts.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.d.ts.map b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.d.ts.map new file mode 100644 index 0000000..b5774e1 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.js b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.js new file mode 100644 index 0000000..c3177d5 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.js @@ -0,0 +1,137 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +import { build } from 'esbuild'; +import { writeFiles } from 'test-support'; +import { NodeGlobalsPolyfillPlugin } from '.'; +require('debug').enable(require('../package.json').name); +test('process works', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `process.version`, + }); + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../process')], + }); + const output = res.outputFiles[0].text; + // console.log(output) + eval(output); + unlink(); +})); +test('process is tree shaken', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `console.log('hei')`, + }); + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../process')], + }); + const output = res.outputFiles[0].text; + expect(output).not.toContain('process'); + unlink(); +})); +// TODO esbuild cannot use virtual modules for inject: https://github.com/evanw/esbuild/issues/2762 +test('process env vars are replaced with ones from define', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `if (process.env.VAR !== 'hello') { throw new Error('process.env.VAR not right: ' + process.env.VAR) }`, + }); + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + define: { + 'process.env.VAR': '"hello"', + }, + plugins: [NodeGlobalsPolyfillPlugin({})], + }); + const output = res.outputFiles[0].text; + eval(output); + unlink(); +})); +test('Buffer works', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `console.log(Buffer.from('xxx').toString())`, + }); + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../Buffer')], + }); + const output = res.outputFiles[0].text; + // console.log(output) + eval(output); + unlink(); +})); +test('Buffer is tree shaken', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `console.log('hei')`, + }); + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../Buffer')], + }); + const output = res.outputFiles[0].text; + expect(output).not.toContain('Buffer'); + unlink(); +})); +test('Buffer works using plugin', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': ` + let buf = new Buffer(256); + let len = buf.write("Simply Easy Learning"); + console.log("Octets written : "+ len);`, + }); + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeGlobalsPolyfillPlugin({ buffer: true })], + }); + const output = res.outputFiles[0].text; + // console.log(output) + eval(output); + unlink(); +})); +test('process works using plugin', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `console.log(process.cwd())`, + }); + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeGlobalsPolyfillPlugin({ process: true })], + }); + const output = res.outputFiles[0].text; + // console.log(output) + eval(output); + unlink(); +})); +//# sourceMappingURL=index.test.js.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.js.map b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.js.map new file mode 100644 index 0000000..9e46b21 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/package.json b/node_modules/@esbuild-plugins/node-globals-polyfill/package.json new file mode 100644 index 0000000..f62b1fc --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/package.json @@ -0,0 +1,34 @@ +{ + "name": "@esbuild-plugins/node-globals-polyfill", + "version": "0.2.3", + "description": "", + "preferUnplugged": true, + "sideEffects": false, + "main": "dist/index.js", + "module": "esm/index.js", + "types": "dist/index.d.ts", + "repository": "https://github.com/remorses/esbuild-plugins.git", + "scripts": { + "build": "tsc && tsc -m es6 --outDir esm", + "watch": "tsc -w" + }, + "files": [ + "dist", + "src", + "esm", + "Buffer.js", + "process.js", + "_buffer.js", + "_process.js" + ], + "keywords": [], + "author": "Tommaso De Rossi, morse <beats.by.morse@gmail.com>", + "license": "ISC", + "devDependencies": { + "test-support": "*" + }, + "dependencies": {}, + "peerDependencies": { + "esbuild": "*" + } +} diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/process.js b/node_modules/@esbuild-plugins/node-globals-polyfill/process.js new file mode 100644 index 0000000..cb43c28 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/process.js @@ -0,0 +1,245 @@ +// shim for using process in browser +// based off https://github.com/defunctzombie/node-process/blob/master/browser.js + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined') +} +function defaultClearTimeout() { + throw new Error('clearTimeout has not been defined') +} +var cachedSetTimeout = defaultSetTimout +var cachedClearTimeout = defaultClearTimeout +if (typeof global.setTimeout === 'function') { + cachedSetTimeout = setTimeout +} +if (typeof global.clearTimeout === 'function') { + cachedClearTimeout = clearTimeout +} + +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0) + } + // if setTimeout wasn't available but was latter defined + if ( + (cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && + setTimeout + ) { + cachedSetTimeout = setTimeout + return setTimeout(fun, 0) + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0) + } catch (e) { + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0) + } catch (e) { + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0) + } + } +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker) + } + // if clearTimeout wasn't available but was latter defined + if ( + (cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && + clearTimeout + ) { + cachedClearTimeout = clearTimeout + return clearTimeout(marker) + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker) + } catch (e) { + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker) + } catch (e) { + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker) + } + } +} +var queue = [] +var draining = false +var currentQueue +var queueIndex = -1 + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return + } + draining = false + if (currentQueue.length) { + queue = currentQueue.concat(queue) + } else { + queueIndex = -1 + } + if (queue.length) { + drainQueue() + } +} + +function drainQueue() { + if (draining) { + return + } + var timeout = runTimeout(cleanUpNextTick) + draining = true + + var len = queue.length + while (len) { + currentQueue = queue + queue = [] + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run() + } + } + queueIndex = -1 + len = queue.length + } + currentQueue = null + draining = false + runClearTimeout(timeout) +} +function nextTick(fun) { + var args = new Array(arguments.length - 1) + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i] + } + } + queue.push(new Item(fun, args)) + if (queue.length === 1 && !draining) { + runTimeout(drainQueue) + } +} +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun + this.array = array +} +Item.prototype.run = function() { + this.fun.apply(null, this.array) +} +var title = 'browser' +var platform = 'browser' +var browser = true +var env = {} +var argv = [] +var version = '' // empty string to avoid regexp issues +var versions = {} +var release = {} +var config = {} + +function noop() {} + +var on = noop +var addListener = noop +var once = noop +var off = noop +var removeListener = noop +var removeAllListeners = noop +var emit = noop + +function binding(name) { + throw new Error('process.binding is not supported') +} + +function cwd() { + return '/' +} +function chdir(dir) { + throw new Error('process.chdir is not supported') +} +function umask() { + return 0 +} + +// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js +var performance = global.performance || {} +var performanceNow = + performance.now || + performance.mozNow || + performance.msNow || + performance.oNow || + performance.webkitNow || + function() { + return new Date().getTime() + } + +// generate timestamp or delta +// see http://nodejs.org/api/process.html#process_process_hrtime +function hrtime(previousTimestamp) { + var clocktime = performanceNow.call(performance) * 1e-3 + var seconds = Math.floor(clocktime) + var nanoseconds = Math.floor((clocktime % 1) * 1e9) + if (previousTimestamp) { + seconds = seconds - previousTimestamp[0] + nanoseconds = nanoseconds - previousTimestamp[1] + if (nanoseconds < 0) { + seconds-- + nanoseconds += 1e9 + } + } + return [seconds, nanoseconds] +} + +var startTime = new Date() +function uptime() { + var currentTime = new Date() + var dif = currentTime - startTime + return dif / 1000 +} + +export var process = { + nextTick: nextTick, + title: title, + browser: browser, + env: env, + argv: argv, + version: version, + versions: versions, + on: on, + addListener: addListener, + once: once, + off: off, + removeListener: removeListener, + removeAllListeners: removeAllListeners, + emit: emit, + binding: binding, + cwd: cwd, + chdir: chdir, + umask: umask, + hrtime: hrtime, + platform: platform, + release: release, + config: config, + uptime: uptime, +} + +// replace process.env.VAR with define + +const defines = {} +Object.keys(defines).forEach((key) => { + const segs = key.split('.') + let target = process + for (let i = 0; i < segs.length; i++) { + const seg = segs[i] + if (i === segs.length - 1) { + target[seg] = defines[key] + } else { + target = target[seg] || (target[seg] = {}) + } + } +}) diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/src/index.test.ts b/node_modules/@esbuild-plugins/node-globals-polyfill/src/index.test.ts new file mode 100644 index 0000000..62e530e --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/src/index.test.ts @@ -0,0 +1,155 @@ +import { build } from 'esbuild' +import { writeFiles } from 'test-support' +import { NodeGlobalsPolyfillPlugin } from '.' + +require('debug').enable(require('../package.json').name) + +test('process works', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `process.version`, + }) + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../process')], + }) + const output = res.outputFiles[0].text + // console.log(output) + eval(output) + unlink() +}) + +test('process is tree shaken', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `console.log('hei')`, + }) + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../process')], + }) + const output = res.outputFiles[0].text + expect(output).not.toContain('process') + unlink() +}) + +// TODO esbuild cannot use virtual modules for inject: https://github.com/evanw/esbuild/issues/2762 +test('process env vars are replaced with ones from define', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `if (process.env.VAR !== 'hello') { throw new Error('process.env.VAR not right: ' + process.env.VAR) }`, + }) + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + define: { + 'process.env.VAR': '"hello"', + }, + plugins: [NodeGlobalsPolyfillPlugin({})], + }) + const output = res.outputFiles[0].text + eval(output) + unlink() +}) + +test('Buffer works', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `console.log(Buffer.from('xxx').toString())`, + }) + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../Buffer')], + }) + const output = res.outputFiles[0].text + // console.log(output) + eval(output) + unlink() +}) + +test('Buffer is tree shaken', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `console.log('hei')`, + }) + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + inject: [require.resolve('../Buffer')], + }) + const output = res.outputFiles[0].text + expect(output).not.toContain('Buffer') + unlink() +}) + +test('Buffer works using plugin', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': ` + let buf = new Buffer(256); + let len = buf.write("Simply Easy Learning"); + console.log("Octets written : "+ len);`, + }) + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeGlobalsPolyfillPlugin({ buffer: true })], + }) + const output = res.outputFiles[0].text + // console.log(output) + eval(output) + unlink() +}) +test('process works using plugin', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `console.log(process.cwd())`, + }) + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeGlobalsPolyfillPlugin({ process: true })], + }) + const output = res.outputFiles[0].text + // console.log(output) + eval(output) + unlink() +}) diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/src/index.ts b/node_modules/@esbuild-plugins/node-globals-polyfill/src/index.ts new file mode 100644 index 0000000..4b06c37 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-globals-polyfill/src/index.ts @@ -0,0 +1,84 @@ +import path from 'path' +import fs from 'fs' +import * as esbuild from 'esbuild' + +export function NodeGlobalsPolyfillPlugin({ + buffer = false, + // define = {}, + process = true, +} = {}): esbuild.Plugin { + return { + name: 'node-globals-polyfill', + setup({ initialOptions, onResolve, onLoad }) { + onResolve({ filter: /_node-buffer-polyfill_\.js/ }, (arg) => { + return { + path: path.resolve(__dirname, '../Buffer.js'), + } + }) + onResolve({ filter: /_node-process-polyfill_\.js/ }, (arg) => { + return { + path: path.resolve(__dirname, '../process.js'), + } + }) + + // TODO esbuild cannot use virtual modules for inject: https://github.com/evanw/esbuild/issues/2762 + // onLoad({ filter: /_virtual-process-polyfill_\.js/ }, (arg) => { + // const data = fs + // .readFileSync(path.resolve(__dirname, '../process.js')) + // .toString() + + // const keys = Object.keys(define) + // return { + // loader: 'js', + // contents: data.replace( + // `const defines = {}`, + // 'const defines = {\n' + + // keys + // .filter((x) => x.startsWith('process.')) + // .sort((a, b) => a.length - b.length) + // .map( + // (k) => + // ` ${JSON.stringify(k).replace( + // 'process.', + // '', + // )}: ${define[k]},`, + // ) + // .join('\n') + + // '\n}', + // ), + // } + // }) + onResolve({ filter: /_virtual-process-polyfill_\.js/ }, () => { + return { + path: path.resolve(__dirname, '../process.js'), + } + }) + onResolve({ filter: /_virtual-buffer-polyfill_\.js/ }, () => { + return { + path: path.resolve(__dirname, '../_buffer.js'), + } + }) + + const polyfills: string[] = [] + if (process) { + polyfills.push( + path.resolve(__dirname, '../_virtual-process-polyfill_.js'), + ) + } + if (buffer) { + polyfills.push( + path.resolve(__dirname, '../_virtual-buffer-polyfill_.js'), + ) + } + if (initialOptions.inject) { + initialOptions.inject.push(...polyfills) + // handle duplicate plugin + initialOptions.inject = [...new Set(initialOptions.inject)] + } else { + initialOptions.inject = [...polyfills] + } + }, + } +} + +export default NodeGlobalsPolyfillPlugin diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.d.ts b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.d.ts new file mode 100644 index 0000000..65d4193 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.d.ts @@ -0,0 +1,8 @@ +import { Plugin } from 'esbuild'; +export interface NodePolyfillsOptions { + name?: string; + namespace?: string; +} +export declare function NodeModulesPolyfillPlugin(options?: NodePolyfillsOptions): Plugin; +export default NodeModulesPolyfillPlugin; +//# sourceMappingURL=index.d.ts.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.d.ts.map b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.d.ts.map new file mode 100644 index 0000000..c1151f9 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,SAAS,CAAA;AAkB/C,MAAM,WAAW,oBAAoB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,yBAAyB,CACrC,OAAO,GAAE,oBAAyB,GACnC,MAAM,CAwFR;AAmBD,eAAe,yBAAyB,CAAA"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.js b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.js new file mode 100644 index 0000000..51f4d1a --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.js @@ -0,0 +1,127 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NodeModulesPolyfillPlugin = void 0; +const escape_string_regexp_1 = __importDefault(require("escape-string-regexp")); +const fs_1 = __importDefault(require("fs")); +const path_1 = __importDefault(require("path")); +const polyfills_1 = require("./polyfills"); +// import { NodeResolvePlugin } from '@esbuild-plugins/node-resolve' +const NAME = 'node-modules-polyfills'; +const NAMESPACE = NAME; +function removeEndingSlash(importee) { + if (importee && importee.slice(-1) === '/') { + importee = importee.slice(0, -1); + } + return importee; +} +function NodeModulesPolyfillPlugin(options = {}) { + const { namespace = NAMESPACE, name = NAME } = options; + if (namespace.endsWith('commonjs')) { + throw new Error(`namespace ${namespace} must not end with commonjs`); + } + // this namespace is needed to make ES modules expose their default export to require: require('assert') will give you import('assert').default + const commonjsNamespace = namespace + '-commonjs'; + const polyfilledBuiltins = polyfills_1.builtinsPolyfills(); + const polyfilledBuiltinsNames = [...polyfilledBuiltins.keys()]; + return { + name, + setup: function setup({ onLoad, onResolve, initialOptions }) { + var _a; + // polyfills contain global keyword, it must be defined + if ((initialOptions === null || initialOptions === void 0 ? void 0 : initialOptions.define) && !((_a = initialOptions.define) === null || _a === void 0 ? void 0 : _a.global)) { + initialOptions.define['global'] = 'globalThis'; + } + else if (!(initialOptions === null || initialOptions === void 0 ? void 0 : initialOptions.define)) { + initialOptions.define = { global: 'globalThis' }; + } + // TODO these polyfill module cannot import anything, is that ok? + function loader(args) { + return __awaiter(this, void 0, void 0, function* () { + try { + const argsPath = args.path.replace(/^node:/, ''); + const isCommonjs = args.namespace.endsWith('commonjs'); + const resolved = polyfilledBuiltins.get(removeEndingSlash(argsPath)); + const contents = yield (yield fs_1.default.promises.readFile(resolved)).toString(); + let resolveDir = path_1.default.dirname(resolved); + if (isCommonjs) { + return { + loader: 'js', + contents: commonJsTemplate({ + importPath: argsPath, + }), + resolveDir, + }; + } + return { + loader: 'js', + contents, + resolveDir, + }; + } + catch (e) { + console.error('node-modules-polyfill', e); + return { + contents: `export {}`, + loader: 'js', + }; + } + }); + } + onLoad({ filter: /.*/, namespace }, loader); + onLoad({ filter: /.*/, namespace: commonjsNamespace }, loader); + const filter = new RegExp([ + ...polyfilledBuiltinsNames, + ...polyfilledBuiltinsNames.map((n) => `node:${n}`), + ] + .map(escape_string_regexp_1.default) + .join('|')); + function resolver(args) { + return __awaiter(this, void 0, void 0, function* () { + const argsPath = args.path.replace(/^node:/, ''); + const ignoreRequire = args.namespace === commonjsNamespace; + if (!polyfilledBuiltins.has(argsPath)) { + return; + } + const isCommonjs = !ignoreRequire && args.kind === 'require-call'; + return { + namespace: isCommonjs ? commonjsNamespace : namespace, + path: argsPath, + }; + }); + } + onResolve({ filter }, resolver); + // onResolve({ filter: /.*/, namespace }, resolver) + }, + }; +} +exports.NodeModulesPolyfillPlugin = NodeModulesPolyfillPlugin; +function commonJsTemplate({ importPath }) { + return ` +const polyfill = require('${importPath}') + +if (polyfill && polyfill.default) { + module.exports = polyfill.default + for (let k in polyfill) { + module.exports[k] = polyfill[k] + } +} else if (polyfill) { + module.exports = polyfill +} + + +`; +} +exports.default = NodeModulesPolyfillPlugin; +//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.js.map b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.js.map new file mode 100644 index 0000000..c4bf9e4 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.d.ts b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.d.ts new file mode 100644 index 0000000..121d59b --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=index.test.d.ts.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.d.ts.map b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.d.ts.map new file mode 100644 index 0000000..b5774e1 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.js b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.js new file mode 100644 index 0000000..2923eec --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.js @@ -0,0 +1,183 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const esbuild_1 = require("esbuild"); +const test_support_1 = require("test-support"); +const fs_1 = __importDefault(require("fs")); +const _1 = __importDefault(require(".")); +const node_globals_polyfill_1 = __importDefault(require("@esbuild-plugins/node-globals-polyfill")); +require('debug').enable(require('../package.json').name); +test('works', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `import {x} from './utils'; console.log(x);`, + 'utils.ts': `import path from 'path'; import { Buffer } from 'buffer'; export const x = path.resolve(Buffer.from('x').toString());`, + }); + // const outfile = randomOutputFile() + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [_1.default()], + }); + eval(res.outputFiles[0].text); + // console.log(res.outputFiles[0].text) + unlink(); +})); +test('works with SafeBuffer and other package consumers', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `import {Buffer as SafeBuffer} from './safe-buffer'; console.log(SafeBuffer);`, + 'safe-buffer.ts': fs_1.default + .readFileSync(require.resolve('safe-buffer')) + .toString(), + }); + // const outfile = randomOutputFile() + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [_1.default()], + }); + // console.log( + // res.outputFiles[0].text + // .split('\n') + // .map((x, i) => i + ' ' + x) + // .join('\n'), + // ) + eval(res.outputFiles[0].text); + unlink(); +})); +test('events works', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': ` + import EventEmitter from 'events'; + + class Test extends EventEmitter { + constructor() { }; + } + console.log(Test) + `, + }); + // const outfile = randomOutputFile() + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [_1.default()], + }); + // console.log(res.outputFiles[0].text) + eval(res.outputFiles[0].text); + unlink(); +})); +test('require can use default export', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': ` + const assert = require('assert') + // console.log(assert) + assert('ok') + `, + }); + // const outfile = randomOutputFile() + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [_1.default()], + }); + // console.log(res.outputFiles[0].text) + eval(res.outputFiles[0].text); + unlink(); +})); +test.skip('crypto', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `import { randomBytes } from 'crypto'; console.log(randomBytes(20).toString('hex'))`, + }); + // const outfile = randomOutputFile() + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [_1.default()], + }); + eval(res.outputFiles[0].text); + // console.log(res.outputFiles[0].text) + unlink(); +})); +test.skip('fs', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `import { readFile } from 'fs'; console.log(readFile(''))`, + }); + // const outfile = randomOutputFile() + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [_1.default()], + }); + eval(res.outputFiles[0].text); + // console.log(res.outputFiles[0].text) + unlink(); +})); +test('does not include global keyword', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `import {x} from './utils'; console.log(x);`, + 'utils.ts': `import path from 'path'; import { Buffer } from 'buffer'; export const x = path.resolve(Buffer.from('x').toString());`, + }); + // const outfile = randomOutputFile() + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [_1.default()], + }); + const text = res.outputFiles[0].text; + eval(text); + expect(text).not.toContain(/\bglobal\b/); + // console.log(res.outputFiles[0].text) + unlink(); +})); +test('works with globals polyfills', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield test_support_1.writeFiles({ + 'entry.ts': `import {x} from './utils'; console.log(x);`, + 'utils.ts': `import path from 'path'; import { Buffer } from 'buffer'; export const x = path.resolve(Buffer.from('x').toString());`, + }); + // const outfile = randomOutputFile() + const res = yield esbuild_1.build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [_1.default(), node_globals_polyfill_1.default()], + }); + const text = res.outputFiles[0].text; + eval(text); + console.log(text); + // console.log(res.outputFiles[0].text) + unlink(); +})); +//# sourceMappingURL=index.test.js.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.js.map b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.js.map new file mode 100644 index 0000000..e8a76e6 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/index.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.d.ts b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.d.ts new file mode 100644 index 0000000..564adc1 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.d.ts @@ -0,0 +1,2 @@ +export declare function builtinsPolyfills(): Map<any, any>; +//# sourceMappingURL=polyfills.d.ts.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.d.ts.map b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.d.ts.map new file mode 100644 index 0000000..2f7b592 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"polyfills.d.ts","sourceRoot":"","sources":["../src/polyfills.ts"],"names":[],"mappings":"AAQA,wBAAgB,iBAAiB,kBA8IhC"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.js b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.js new file mode 100644 index 0000000..4f4f953 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.js @@ -0,0 +1,61 @@ +"use strict"; +// Taken from https://github.com/ionic-team/rollup-plugin-node-polyfills/blob/master/src/modules.ts +Object.defineProperty(exports, "__esModule", { value: true }); +exports.builtinsPolyfills = void 0; +const EMPTY_PATH = require.resolve('rollup-plugin-node-polyfills/polyfills/empty.js'); +function builtinsPolyfills() { + const libs = new Map(); + libs.set('process', require.resolve('rollup-plugin-node-polyfills/polyfills/process-es6')); + libs.set('buffer', require.resolve('rollup-plugin-node-polyfills/polyfills/buffer-es6')); + libs.set('util', require.resolve('rollup-plugin-node-polyfills/polyfills/util')); + libs.set('sys', libs.get('util')); + libs.set('events', require.resolve('rollup-plugin-node-polyfills/polyfills/events')); + libs.set('stream', require.resolve('rollup-plugin-node-polyfills/polyfills/stream')); + libs.set('path', require.resolve('rollup-plugin-node-polyfills/polyfills/path')); + libs.set('querystring', require.resolve('rollup-plugin-node-polyfills/polyfills/qs')); + libs.set('punycode', require.resolve('rollup-plugin-node-polyfills/polyfills/punycode')); + libs.set('url', require.resolve('rollup-plugin-node-polyfills/polyfills/url')); + libs.set('string_decoder', require.resolve('rollup-plugin-node-polyfills/polyfills/string-decoder')); + libs.set('http', require.resolve('rollup-plugin-node-polyfills/polyfills/http')); + libs.set('https', require.resolve('rollup-plugin-node-polyfills/polyfills/http')); + libs.set('os', require.resolve('rollup-plugin-node-polyfills/polyfills/os')); + libs.set('assert', require.resolve('rollup-plugin-node-polyfills/polyfills/assert')); + libs.set('constants', require.resolve('rollup-plugin-node-polyfills/polyfills/constants')); + libs.set('_stream_duplex', require.resolve('rollup-plugin-node-polyfills/polyfills/readable-stream/duplex')); + libs.set('_stream_passthrough', require.resolve('rollup-plugin-node-polyfills/polyfills/readable-stream/passthrough')); + libs.set('_stream_readable', require.resolve('rollup-plugin-node-polyfills/polyfills/readable-stream/readable')); + libs.set('_stream_writable', require.resolve('rollup-plugin-node-polyfills/polyfills/readable-stream/writable')); + libs.set('_stream_transform', require.resolve('rollup-plugin-node-polyfills/polyfills/readable-stream/transform')); + libs.set('timers', require.resolve('rollup-plugin-node-polyfills/polyfills/timers')); + libs.set('console', require.resolve('rollup-plugin-node-polyfills/polyfills/console')); + libs.set('vm', require.resolve('rollup-plugin-node-polyfills/polyfills/vm')); + libs.set('zlib', require.resolve('rollup-plugin-node-polyfills/polyfills/zlib')); + libs.set('tty', require.resolve('rollup-plugin-node-polyfills/polyfills/tty')); + libs.set('domain', require.resolve('rollup-plugin-node-polyfills/polyfills/domain')); + // not shimmed + libs.set('dns', EMPTY_PATH); + libs.set('dgram', EMPTY_PATH); + libs.set('child_process', EMPTY_PATH); + libs.set('cluster', EMPTY_PATH); + libs.set('module', EMPTY_PATH); + libs.set('net', EMPTY_PATH); + libs.set('readline', EMPTY_PATH); + libs.set('repl', EMPTY_PATH); + libs.set('tls', EMPTY_PATH); + libs.set('fs', EMPTY_PATH); + libs.set('crypto', EMPTY_PATH); + // libs.set( + // 'fs', + // require.resolve('rollup-plugin-node-polyfills/polyfills/browserify-fs'), + // ) + // TODO enable crypto and fs https://github.com/ionic-team/rollup-plugin-node-polyfills/issues/20 + // libs.set( + // 'crypto', + // require.resolve( + // 'rollup-plugin-node-polyfills/polyfills/crypto-browserify', + // ), + // ) + return libs; +} +exports.builtinsPolyfills = builtinsPolyfills; +//# sourceMappingURL=polyfills.js.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.js.map b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.js.map new file mode 100644 index 0000000..a7ef0e3 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/dist/polyfills.js.map @@ -0,0 +1 @@ +{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["../src/polyfills.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.d.ts b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.d.ts new file mode 100644 index 0000000..65d4193 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.d.ts @@ -0,0 +1,8 @@ +import { Plugin } from 'esbuild'; +export interface NodePolyfillsOptions { + name?: string; + namespace?: string; +} +export declare function NodeModulesPolyfillPlugin(options?: NodePolyfillsOptions): Plugin; +export default NodeModulesPolyfillPlugin; +//# sourceMappingURL=index.d.ts.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.d.ts.map b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.d.ts.map new file mode 100644 index 0000000..c1151f9 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,SAAS,CAAA;AAkB/C,MAAM,WAAW,oBAAoB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,yBAAyB,CACrC,OAAO,GAAE,oBAAyB,GACnC,MAAM,CAwFR;AAmBD,eAAe,yBAAyB,CAAA"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.js b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.js new file mode 100644 index 0000000..69526b5 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.js @@ -0,0 +1,120 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +import escapeStringRegexp from 'escape-string-regexp'; +import fs from 'fs'; +import path from 'path'; +import { builtinsPolyfills } from './polyfills'; +// import { NodeResolvePlugin } from '@esbuild-plugins/node-resolve' +const NAME = 'node-modules-polyfills'; +const NAMESPACE = NAME; +function removeEndingSlash(importee) { + if (importee && importee.slice(-1) === '/') { + importee = importee.slice(0, -1); + } + return importee; +} +export function NodeModulesPolyfillPlugin(options = {}) { + const { namespace = NAMESPACE, name = NAME } = options; + if (namespace.endsWith('commonjs')) { + throw new Error(`namespace ${namespace} must not end with commonjs`); + } + // this namespace is needed to make ES modules expose their default export to require: require('assert') will give you import('assert').default + const commonjsNamespace = namespace + '-commonjs'; + const polyfilledBuiltins = builtinsPolyfills(); + const polyfilledBuiltinsNames = [...polyfilledBuiltins.keys()]; + return { + name, + setup: function setup({ onLoad, onResolve, initialOptions }) { + var _a; + // polyfills contain global keyword, it must be defined + if ((initialOptions === null || initialOptions === void 0 ? void 0 : initialOptions.define) && !((_a = initialOptions.define) === null || _a === void 0 ? void 0 : _a.global)) { + initialOptions.define['global'] = 'globalThis'; + } + else if (!(initialOptions === null || initialOptions === void 0 ? void 0 : initialOptions.define)) { + initialOptions.define = { global: 'globalThis' }; + } + // TODO these polyfill module cannot import anything, is that ok? + function loader(args) { + return __awaiter(this, void 0, void 0, function* () { + try { + const argsPath = args.path.replace(/^node:/, ''); + const isCommonjs = args.namespace.endsWith('commonjs'); + const resolved = polyfilledBuiltins.get(removeEndingSlash(argsPath)); + const contents = yield (yield fs.promises.readFile(resolved)).toString(); + let resolveDir = path.dirname(resolved); + if (isCommonjs) { + return { + loader: 'js', + contents: commonJsTemplate({ + importPath: argsPath, + }), + resolveDir, + }; + } + return { + loader: 'js', + contents, + resolveDir, + }; + } + catch (e) { + console.error('node-modules-polyfill', e); + return { + contents: `export {}`, + loader: 'js', + }; + } + }); + } + onLoad({ filter: /.*/, namespace }, loader); + onLoad({ filter: /.*/, namespace: commonjsNamespace }, loader); + const filter = new RegExp([ + ...polyfilledBuiltinsNames, + ...polyfilledBuiltinsNames.map((n) => `node:${n}`), + ] + .map(escapeStringRegexp) + .join('|')); + function resolver(args) { + return __awaiter(this, void 0, void 0, function* () { + const argsPath = args.path.replace(/^node:/, ''); + const ignoreRequire = args.namespace === commonjsNamespace; + if (!polyfilledBuiltins.has(argsPath)) { + return; + } + const isCommonjs = !ignoreRequire && args.kind === 'require-call'; + return { + namespace: isCommonjs ? commonjsNamespace : namespace, + path: argsPath, + }; + }); + } + onResolve({ filter }, resolver); + // onResolve({ filter: /.*/, namespace }, resolver) + }, + }; +} +function commonJsTemplate({ importPath }) { + return ` +const polyfill = require('${importPath}') + +if (polyfill && polyfill.default) { + module.exports = polyfill.default + for (let k in polyfill) { + module.exports[k] = polyfill[k] + } +} else if (polyfill) { + module.exports = polyfill +} + + +`; +} +export default NodeModulesPolyfillPlugin; +//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.js.map b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.js.map new file mode 100644 index 0000000..c8544ab --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.d.ts b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.d.ts new file mode 100644 index 0000000..121d59b --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=index.test.d.ts.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.d.ts.map b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.d.ts.map new file mode 100644 index 0000000..b5774e1 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.js b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.js new file mode 100644 index 0000000..b4ff899 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.js @@ -0,0 +1,178 @@ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +import { build } from 'esbuild'; +import { writeFiles } from 'test-support'; +import fs from 'fs'; +import NodeModulesPolyfillsPlugin from '.'; +import NodeGlobalsPolyfillsPlugin from '@esbuild-plugins/node-globals-polyfill'; +require('debug').enable(require('../package.json').name); +test('works', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `import {x} from './utils'; console.log(x);`, + 'utils.ts': `import path from 'path'; import { Buffer } from 'buffer'; export const x = path.resolve(Buffer.from('x').toString());`, + }); + // const outfile = randomOutputFile() + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }); + eval(res.outputFiles[0].text); + // console.log(res.outputFiles[0].text) + unlink(); +})); +test('works with SafeBuffer and other package consumers', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `import {Buffer as SafeBuffer} from './safe-buffer'; console.log(SafeBuffer);`, + 'safe-buffer.ts': fs + .readFileSync(require.resolve('safe-buffer')) + .toString(), + }); + // const outfile = randomOutputFile() + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }); + // console.log( + // res.outputFiles[0].text + // .split('\n') + // .map((x, i) => i + ' ' + x) + // .join('\n'), + // ) + eval(res.outputFiles[0].text); + unlink(); +})); +test('events works', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': ` + import EventEmitter from 'events'; + + class Test extends EventEmitter { + constructor() { }; + } + console.log(Test) + `, + }); + // const outfile = randomOutputFile() + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }); + // console.log(res.outputFiles[0].text) + eval(res.outputFiles[0].text); + unlink(); +})); +test('require can use default export', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': ` + const assert = require('assert') + // console.log(assert) + assert('ok') + `, + }); + // const outfile = randomOutputFile() + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }); + // console.log(res.outputFiles[0].text) + eval(res.outputFiles[0].text); + unlink(); +})); +test.skip('crypto', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `import { randomBytes } from 'crypto'; console.log(randomBytes(20).toString('hex'))`, + }); + // const outfile = randomOutputFile() + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }); + eval(res.outputFiles[0].text); + // console.log(res.outputFiles[0].text) + unlink(); +})); +test.skip('fs', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `import { readFile } from 'fs'; console.log(readFile(''))`, + }); + // const outfile = randomOutputFile() + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }); + eval(res.outputFiles[0].text); + // console.log(res.outputFiles[0].text) + unlink(); +})); +test('does not include global keyword', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `import {x} from './utils'; console.log(x);`, + 'utils.ts': `import path from 'path'; import { Buffer } from 'buffer'; export const x = path.resolve(Buffer.from('x').toString());`, + }); + // const outfile = randomOutputFile() + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }); + const text = res.outputFiles[0].text; + eval(text); + expect(text).not.toContain(/\bglobal\b/); + // console.log(res.outputFiles[0].text) + unlink(); +})); +test('works with globals polyfills', () => __awaiter(void 0, void 0, void 0, function* () { + const { unlink, paths: [ENTRY], } = yield writeFiles({ + 'entry.ts': `import {x} from './utils'; console.log(x);`, + 'utils.ts': `import path from 'path'; import { Buffer } from 'buffer'; export const x = path.resolve(Buffer.from('x').toString());`, + }); + // const outfile = randomOutputFile() + const res = yield build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin(), NodeGlobalsPolyfillsPlugin()], + }); + const text = res.outputFiles[0].text; + eval(text); + console.log(text); + // console.log(res.outputFiles[0].text) + unlink(); +})); +//# sourceMappingURL=index.test.js.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.js.map b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.js.map new file mode 100644 index 0000000..9e80cfd --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/index.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.d.ts b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.d.ts new file mode 100644 index 0000000..564adc1 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.d.ts @@ -0,0 +1,2 @@ +export declare function builtinsPolyfills(): Map<any, any>; +//# sourceMappingURL=polyfills.d.ts.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.d.ts.map b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.d.ts.map new file mode 100644 index 0000000..2f7b592 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"polyfills.d.ts","sourceRoot":"","sources":["../src/polyfills.ts"],"names":[],"mappings":"AAQA,wBAAgB,iBAAiB,kBA8IhC"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.js b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.js new file mode 100644 index 0000000..28b0ea7 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.js @@ -0,0 +1,57 @@ +// Taken from https://github.com/ionic-team/rollup-plugin-node-polyfills/blob/master/src/modules.ts +const EMPTY_PATH = require.resolve('rollup-plugin-node-polyfills/polyfills/empty.js'); +export function builtinsPolyfills() { + const libs = new Map(); + libs.set('process', require.resolve('rollup-plugin-node-polyfills/polyfills/process-es6')); + libs.set('buffer', require.resolve('rollup-plugin-node-polyfills/polyfills/buffer-es6')); + libs.set('util', require.resolve('rollup-plugin-node-polyfills/polyfills/util')); + libs.set('sys', libs.get('util')); + libs.set('events', require.resolve('rollup-plugin-node-polyfills/polyfills/events')); + libs.set('stream', require.resolve('rollup-plugin-node-polyfills/polyfills/stream')); + libs.set('path', require.resolve('rollup-plugin-node-polyfills/polyfills/path')); + libs.set('querystring', require.resolve('rollup-plugin-node-polyfills/polyfills/qs')); + libs.set('punycode', require.resolve('rollup-plugin-node-polyfills/polyfills/punycode')); + libs.set('url', require.resolve('rollup-plugin-node-polyfills/polyfills/url')); + libs.set('string_decoder', require.resolve('rollup-plugin-node-polyfills/polyfills/string-decoder')); + libs.set('http', require.resolve('rollup-plugin-node-polyfills/polyfills/http')); + libs.set('https', require.resolve('rollup-plugin-node-polyfills/polyfills/http')); + libs.set('os', require.resolve('rollup-plugin-node-polyfills/polyfills/os')); + libs.set('assert', require.resolve('rollup-plugin-node-polyfills/polyfills/assert')); + libs.set('constants', require.resolve('rollup-plugin-node-polyfills/polyfills/constants')); + libs.set('_stream_duplex', require.resolve('rollup-plugin-node-polyfills/polyfills/readable-stream/duplex')); + libs.set('_stream_passthrough', require.resolve('rollup-plugin-node-polyfills/polyfills/readable-stream/passthrough')); + libs.set('_stream_readable', require.resolve('rollup-plugin-node-polyfills/polyfills/readable-stream/readable')); + libs.set('_stream_writable', require.resolve('rollup-plugin-node-polyfills/polyfills/readable-stream/writable')); + libs.set('_stream_transform', require.resolve('rollup-plugin-node-polyfills/polyfills/readable-stream/transform')); + libs.set('timers', require.resolve('rollup-plugin-node-polyfills/polyfills/timers')); + libs.set('console', require.resolve('rollup-plugin-node-polyfills/polyfills/console')); + libs.set('vm', require.resolve('rollup-plugin-node-polyfills/polyfills/vm')); + libs.set('zlib', require.resolve('rollup-plugin-node-polyfills/polyfills/zlib')); + libs.set('tty', require.resolve('rollup-plugin-node-polyfills/polyfills/tty')); + libs.set('domain', require.resolve('rollup-plugin-node-polyfills/polyfills/domain')); + // not shimmed + libs.set('dns', EMPTY_PATH); + libs.set('dgram', EMPTY_PATH); + libs.set('child_process', EMPTY_PATH); + libs.set('cluster', EMPTY_PATH); + libs.set('module', EMPTY_PATH); + libs.set('net', EMPTY_PATH); + libs.set('readline', EMPTY_PATH); + libs.set('repl', EMPTY_PATH); + libs.set('tls', EMPTY_PATH); + libs.set('fs', EMPTY_PATH); + libs.set('crypto', EMPTY_PATH); + // libs.set( + // 'fs', + // require.resolve('rollup-plugin-node-polyfills/polyfills/browserify-fs'), + // ) + // TODO enable crypto and fs https://github.com/ionic-team/rollup-plugin-node-polyfills/issues/20 + // libs.set( + // 'crypto', + // require.resolve( + // 'rollup-plugin-node-polyfills/polyfills/crypto-browserify', + // ), + // ) + return libs; +} +//# sourceMappingURL=polyfills.js.map
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.js.map b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.js.map new file mode 100644 index 0000000..3c35ae4 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/esm/polyfills.js.map @@ -0,0 +1 @@ +{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["../src/polyfills.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/package.json b/node_modules/@esbuild-plugins/node-modules-polyfill/package.json new file mode 100644 index 0000000..d9a6e41 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/package.json @@ -0,0 +1,33 @@ +{ + "name": "@esbuild-plugins/node-modules-polyfill", + "version": "0.2.2", + "description": "", + "main": "dist/index.js", + "module": "esm/index.js", + "types": "dist/index.d.ts", + "repository": "https://github.com/remorses/esbuild-plugins.git", + "scripts": { + "build": "tsc && tsc -m es6 --outDir esm", + "watch": "tsc -w" + }, + "files": [ + "dist", + "src", + "esm" + ], + "keywords": [], + "author": "Tommaso De Rossi, morse <beats.by.morse@gmail.com>", + "license": "ISC", + "devDependencies": { + "safe-buffer": "^5.2.1", + "test-support": "*", + "@esbuild-plugins/node-globals-polyfill": "*" + }, + "dependencies": { + "escape-string-regexp": "^4.0.0", + "rollup-plugin-node-polyfills": "^0.2.1" + }, + "peerDependencies": { + "esbuild": "*" + } +} diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/src/index.test.ts b/node_modules/@esbuild-plugins/node-modules-polyfill/src/index.test.ts new file mode 100644 index 0000000..92792e6 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/src/index.test.ts @@ -0,0 +1,200 @@ +import { build } from 'esbuild' +import { writeFiles } from 'test-support' +import fs from 'fs' +import NodeModulesPolyfillsPlugin from '.' +import NodeGlobalsPolyfillsPlugin from '@esbuild-plugins/node-globals-polyfill' + +require('debug').enable(require('../package.json').name) + +test('works', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `import {x} from './utils'; console.log(x);`, + 'utils.ts': `import path from 'path'; import { Buffer } from 'buffer'; export const x = path.resolve(Buffer.from('x').toString());`, + }) + // const outfile = randomOutputFile() + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }) + eval(res.outputFiles[0].text) + // console.log(res.outputFiles[0].text) + unlink() +}) + +test('works with SafeBuffer and other package consumers', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `import {Buffer as SafeBuffer} from './safe-buffer'; console.log(SafeBuffer);`, + 'safe-buffer.ts': fs + .readFileSync(require.resolve('safe-buffer')) + .toString(), + }) + // const outfile = randomOutputFile() + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }) + // console.log( + // res.outputFiles[0].text + // .split('\n') + // .map((x, i) => i + ' ' + x) + // .join('\n'), + // ) + eval(res.outputFiles[0].text) + unlink() +}) + +test('events works', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': ` + import EventEmitter from 'events'; + + class Test extends EventEmitter { + constructor() { }; + } + console.log(Test) + `, + }) + // const outfile = randomOutputFile() + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }) + // console.log(res.outputFiles[0].text) + eval(res.outputFiles[0].text) + unlink() +}) + +test('require can use default export', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': ` + const assert = require('assert') + // console.log(assert) + assert('ok') + `, + }) + // const outfile = randomOutputFile() + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }) + // console.log(res.outputFiles[0].text) + eval(res.outputFiles[0].text) + unlink() +}) + +test.skip('crypto', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `import { randomBytes } from 'crypto'; console.log(randomBytes(20).toString('hex'))`, + }) + // const outfile = randomOutputFile() + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }) + eval(res.outputFiles[0].text) + // console.log(res.outputFiles[0].text) + unlink() +}) +test.skip('fs', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `import { readFile } from 'fs'; console.log(readFile(''))`, + }) + // const outfile = randomOutputFile() + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }) + eval(res.outputFiles[0].text) + // console.log(res.outputFiles[0].text) + unlink() +}) + +test('does not include global keyword', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `import {x} from './utils'; console.log(x);`, + 'utils.ts': `import path from 'path'; import { Buffer } from 'buffer'; export const x = path.resolve(Buffer.from('x').toString());`, + }) + // const outfile = randomOutputFile() + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin()], + }) + const text = res.outputFiles[0].text + eval(text) + expect(text).not.toContain(/\bglobal\b/) + // console.log(res.outputFiles[0].text) + unlink() +}) + +test('works with globals polyfills', async () => { + const { + unlink, + paths: [ENTRY], + } = await writeFiles({ + 'entry.ts': `import {x} from './utils'; console.log(x);`, + 'utils.ts': `import path from 'path'; import { Buffer } from 'buffer'; export const x = path.resolve(Buffer.from('x').toString());`, + }) + // const outfile = randomOutputFile() + const res = await build({ + entryPoints: [ENTRY], + write: false, + format: 'esm', + target: 'es2017', + bundle: true, + plugins: [NodeModulesPolyfillsPlugin(), NodeGlobalsPolyfillsPlugin()], + }) + const text = res.outputFiles[0].text + eval(text) + console.log(text) + // console.log(res.outputFiles[0].text) + unlink() +}) diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/src/index.ts b/node_modules/@esbuild-plugins/node-modules-polyfill/src/index.ts new file mode 100644 index 0000000..f7397e4 --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/src/index.ts @@ -0,0 +1,133 @@ +import { OnResolveArgs, Plugin } from 'esbuild' +import escapeStringRegexp from 'escape-string-regexp' +import fs from 'fs' +import path from 'path' +import esbuild from 'esbuild' +import { builtinsPolyfills } from './polyfills' + +// import { NodeResolvePlugin } from '@esbuild-plugins/node-resolve' +const NAME = 'node-modules-polyfills' +const NAMESPACE = NAME + +function removeEndingSlash(importee) { + if (importee && importee.slice(-1) === '/') { + importee = importee.slice(0, -1) + } + return importee +} + +export interface NodePolyfillsOptions { + name?: string + namespace?: string +} + +export function NodeModulesPolyfillPlugin( + options: NodePolyfillsOptions = {}, +): Plugin { + const { namespace = NAMESPACE, name = NAME } = options + if (namespace.endsWith('commonjs')) { + throw new Error(`namespace ${namespace} must not end with commonjs`) + } + // this namespace is needed to make ES modules expose their default export to require: require('assert') will give you import('assert').default + const commonjsNamespace = namespace + '-commonjs' + const polyfilledBuiltins = builtinsPolyfills() + const polyfilledBuiltinsNames = [...polyfilledBuiltins.keys()] + + return { + name, + setup: function setup({ onLoad, onResolve, initialOptions }) { + // polyfills contain global keyword, it must be defined + if (initialOptions?.define && !initialOptions.define?.global) { + initialOptions.define['global'] = 'globalThis' + } else if (!initialOptions?.define) { + initialOptions.define = { global: 'globalThis' } + } + + // TODO these polyfill module cannot import anything, is that ok? + async function loader( + args: esbuild.OnLoadArgs, + ): Promise<esbuild.OnLoadResult> { + try { + const argsPath = args.path.replace(/^node:/, '') + const isCommonjs = args.namespace.endsWith('commonjs') + + const resolved = polyfilledBuiltins.get( + removeEndingSlash(argsPath), + ) + const contents = await ( + await fs.promises.readFile(resolved) + ).toString() + let resolveDir = path.dirname(resolved) + + if (isCommonjs) { + return { + loader: 'js', + contents: commonJsTemplate({ + importPath: argsPath, + }), + resolveDir, + } + } + return { + loader: 'js', + contents, + resolveDir, + } + } catch (e) { + console.error('node-modules-polyfill', e) + return { + contents: `export {}`, + loader: 'js', + } + } + } + onLoad({ filter: /.*/, namespace }, loader) + onLoad({ filter: /.*/, namespace: commonjsNamespace }, loader) + const filter = new RegExp( + [ + ...polyfilledBuiltinsNames, + ...polyfilledBuiltinsNames.map((n) => `node:${n}`), + ] + .map(escapeStringRegexp) + .join('|'), // TODO builtins could end with slash, keep in mind in regex + ) + async function resolver(args: OnResolveArgs) { + const argsPath = args.path.replace(/^node:/, '') + const ignoreRequire = args.namespace === commonjsNamespace + + if (!polyfilledBuiltins.has(argsPath)) { + return + } + + const isCommonjs = + !ignoreRequire && args.kind === 'require-call' + + return { + namespace: isCommonjs ? commonjsNamespace : namespace, + path: argsPath, + } + } + onResolve({ filter }, resolver) + // onResolve({ filter: /.*/, namespace }, resolver) + }, + } +} + +function commonJsTemplate({ importPath }) { + return ` +const polyfill = require('${importPath}') + +if (polyfill && polyfill.default) { + module.exports = polyfill.default + for (let k in polyfill) { + module.exports[k] = polyfill[k] + } +} else if (polyfill) { + module.exports = polyfill +} + + +` +} + +export default NodeModulesPolyfillPlugin diff --git a/node_modules/@esbuild-plugins/node-modules-polyfill/src/polyfills.ts b/node_modules/@esbuild-plugins/node-modules-polyfill/src/polyfills.ts new file mode 100644 index 0000000..cea5f8d --- /dev/null +++ b/node_modules/@esbuild-plugins/node-modules-polyfill/src/polyfills.ts @@ -0,0 +1,151 @@ +// Taken from https://github.com/ionic-team/rollup-plugin-node-polyfills/blob/master/src/modules.ts + +import { NodePolyfillsOptions } from '.' + +const EMPTY_PATH = require.resolve( + 'rollup-plugin-node-polyfills/polyfills/empty.js', +) + +export function builtinsPolyfills() { + const libs = new Map() + + libs.set( + 'process', + require.resolve('rollup-plugin-node-polyfills/polyfills/process-es6'), + ) + libs.set( + 'buffer', + require.resolve('rollup-plugin-node-polyfills/polyfills/buffer-es6'), + ) + libs.set( + 'util', + require.resolve('rollup-plugin-node-polyfills/polyfills/util'), + ) + libs.set('sys', libs.get('util')) + libs.set( + 'events', + require.resolve('rollup-plugin-node-polyfills/polyfills/events'), + ) + libs.set( + 'stream', + require.resolve('rollup-plugin-node-polyfills/polyfills/stream'), + ) + libs.set( + 'path', + require.resolve('rollup-plugin-node-polyfills/polyfills/path'), + ) + libs.set( + 'querystring', + require.resolve('rollup-plugin-node-polyfills/polyfills/qs'), + ) + libs.set( + 'punycode', + require.resolve('rollup-plugin-node-polyfills/polyfills/punycode'), + ) + libs.set( + 'url', + require.resolve('rollup-plugin-node-polyfills/polyfills/url'), + ) + libs.set( + 'string_decoder', + require.resolve( + 'rollup-plugin-node-polyfills/polyfills/string-decoder', + ), + ) + libs.set( + 'http', + require.resolve('rollup-plugin-node-polyfills/polyfills/http'), + ) + libs.set( + 'https', + require.resolve('rollup-plugin-node-polyfills/polyfills/http'), + ) + libs.set('os', require.resolve('rollup-plugin-node-polyfills/polyfills/os')) + libs.set( + 'assert', + require.resolve('rollup-plugin-node-polyfills/polyfills/assert'), + ) + libs.set( + 'constants', + require.resolve('rollup-plugin-node-polyfills/polyfills/constants'), + ) + libs.set( + '_stream_duplex', + require.resolve( + 'rollup-plugin-node-polyfills/polyfills/readable-stream/duplex', + ), + ) + libs.set( + '_stream_passthrough', + require.resolve( + 'rollup-plugin-node-polyfills/polyfills/readable-stream/passthrough', + ), + ) + libs.set( + '_stream_readable', + require.resolve( + 'rollup-plugin-node-polyfills/polyfills/readable-stream/readable', + ), + ) + libs.set( + '_stream_writable', + require.resolve( + 'rollup-plugin-node-polyfills/polyfills/readable-stream/writable', + ), + ) + libs.set( + '_stream_transform', + require.resolve( + 'rollup-plugin-node-polyfills/polyfills/readable-stream/transform', + ), + ) + libs.set( + 'timers', + require.resolve('rollup-plugin-node-polyfills/polyfills/timers'), + ) + libs.set( + 'console', + require.resolve('rollup-plugin-node-polyfills/polyfills/console'), + ) + libs.set('vm', require.resolve('rollup-plugin-node-polyfills/polyfills/vm')) + libs.set( + 'zlib', + require.resolve('rollup-plugin-node-polyfills/polyfills/zlib'), + ) + libs.set( + 'tty', + require.resolve('rollup-plugin-node-polyfills/polyfills/tty'), + ) + libs.set( + 'domain', + require.resolve('rollup-plugin-node-polyfills/polyfills/domain'), + ) + + // not shimmed + libs.set('dns', EMPTY_PATH) + libs.set('dgram', EMPTY_PATH) + libs.set('child_process', EMPTY_PATH) + libs.set('cluster', EMPTY_PATH) + libs.set('module', EMPTY_PATH) + libs.set('net', EMPTY_PATH) + libs.set('readline', EMPTY_PATH) + libs.set('repl', EMPTY_PATH) + libs.set('tls', EMPTY_PATH) + libs.set('fs', EMPTY_PATH) + libs.set('crypto', EMPTY_PATH) + + // libs.set( + // 'fs', + // require.resolve('rollup-plugin-node-polyfills/polyfills/browserify-fs'), + // ) + + // TODO enable crypto and fs https://github.com/ionic-team/rollup-plugin-node-polyfills/issues/20 + // libs.set( + // 'crypto', + // require.resolve( + // 'rollup-plugin-node-polyfills/polyfills/crypto-browserify', + // ), + // ) + + return libs +} |
