scratch-vm 1.2.23 → 1.2.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1136,127 +1136,6 @@ module.exports = "AAEAAAARAQAABAAQRFNJRwAAAAEAAHTYAAAACEZGVE1flIgzAACYwAAAABxHRE
1136
1136
 
1137
1137
  /***/ }),
1138
1138
 
1139
- /***/ "./node_modules/buffer-shims/index.js":
1140
- /*!********************************************!*\
1141
- !*** ./node_modules/buffer-shims/index.js ***!
1142
- \********************************************/
1143
- /*! no static exports found */
1144
- /***/ (function(module, exports, __webpack_require__) {
1145
-
1146
- "use strict";
1147
- /* WEBPACK VAR INJECTION */(function(global) {
1148
-
1149
- var buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js");
1150
- var Buffer = buffer.Buffer;
1151
- var SlowBuffer = buffer.SlowBuffer;
1152
- var MAX_LEN = buffer.kMaxLength || 2147483647;
1153
- exports.alloc = function alloc(size, fill, encoding) {
1154
- if (typeof Buffer.alloc === 'function') {
1155
- return Buffer.alloc(size, fill, encoding);
1156
- }
1157
- if (typeof encoding === 'number') {
1158
- throw new TypeError('encoding must not be number');
1159
- }
1160
- if (typeof size !== 'number') {
1161
- throw new TypeError('size must be a number');
1162
- }
1163
- if (size > MAX_LEN) {
1164
- throw new RangeError('size is too large');
1165
- }
1166
- var enc = encoding;
1167
- var _fill = fill;
1168
- if (_fill === undefined) {
1169
- enc = undefined;
1170
- _fill = 0;
1171
- }
1172
- var buf = new Buffer(size);
1173
- if (typeof _fill === 'string') {
1174
- var fillBuf = new Buffer(_fill, enc);
1175
- var flen = fillBuf.length;
1176
- var i = -1;
1177
- while (++i < size) {
1178
- buf[i] = fillBuf[i % flen];
1179
- }
1180
- } else {
1181
- buf.fill(_fill);
1182
- }
1183
- return buf;
1184
- }
1185
- exports.allocUnsafe = function allocUnsafe(size) {
1186
- if (typeof Buffer.allocUnsafe === 'function') {
1187
- return Buffer.allocUnsafe(size);
1188
- }
1189
- if (typeof size !== 'number') {
1190
- throw new TypeError('size must be a number');
1191
- }
1192
- if (size > MAX_LEN) {
1193
- throw new RangeError('size is too large');
1194
- }
1195
- return new Buffer(size);
1196
- }
1197
- exports.from = function from(value, encodingOrOffset, length) {
1198
- if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
1199
- return Buffer.from(value, encodingOrOffset, length);
1200
- }
1201
- if (typeof value === 'number') {
1202
- throw new TypeError('"value" argument must not be a number');
1203
- }
1204
- if (typeof value === 'string') {
1205
- return new Buffer(value, encodingOrOffset);
1206
- }
1207
- if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
1208
- var offset = encodingOrOffset;
1209
- if (arguments.length === 1) {
1210
- return new Buffer(value);
1211
- }
1212
- if (typeof offset === 'undefined') {
1213
- offset = 0;
1214
- }
1215
- var len = length;
1216
- if (typeof len === 'undefined') {
1217
- len = value.byteLength - offset;
1218
- }
1219
- if (offset >= value.byteLength) {
1220
- throw new RangeError('\'offset\' is out of bounds');
1221
- }
1222
- if (len > value.byteLength - offset) {
1223
- throw new RangeError('\'length\' is out of bounds');
1224
- }
1225
- return new Buffer(value.slice(offset, offset + len));
1226
- }
1227
- if (Buffer.isBuffer(value)) {
1228
- var out = new Buffer(value.length);
1229
- value.copy(out, 0, 0, value.length);
1230
- return out;
1231
- }
1232
- if (value) {
1233
- if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
1234
- return new Buffer(value);
1235
- }
1236
- if (value.type === 'Buffer' && Array.isArray(value.data)) {
1237
- return new Buffer(value.data);
1238
- }
1239
- }
1240
-
1241
- throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
1242
- }
1243
- exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
1244
- if (typeof Buffer.allocUnsafeSlow === 'function') {
1245
- return Buffer.allocUnsafeSlow(size);
1246
- }
1247
- if (typeof size !== 'number') {
1248
- throw new TypeError('size must be a number');
1249
- }
1250
- if (size >= MAX_LEN) {
1251
- throw new RangeError('size is too large');
1252
- }
1253
- return new SlowBuffer(size);
1254
- }
1255
-
1256
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
1257
-
1258
- /***/ }),
1259
-
1260
1139
  /***/ "./node_modules/buffer/index.js":
1261
1140
  /*!**************************************!*\
1262
1141
  !*** ./node_modules/buffer/index.js ***!
@@ -24359,62 +24238,6 @@ function ZStream() {
24359
24238
  module.exports = ZStream;
24360
24239
 
24361
24240
 
24362
- /***/ }),
24363
-
24364
- /***/ "./node_modules/process-nextick-args/index.js":
24365
- /*!****************************************************!*\
24366
- !*** ./node_modules/process-nextick-args/index.js ***!
24367
- \****************************************************/
24368
- /*! no static exports found */
24369
- /***/ (function(module, exports, __webpack_require__) {
24370
-
24371
- "use strict";
24372
- /* WEBPACK VAR INJECTION */(function(process) {
24373
-
24374
- if (!process.version ||
24375
- process.version.indexOf('v0.') === 0 ||
24376
- process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
24377
- module.exports = nextTick;
24378
- } else {
24379
- module.exports = process.nextTick;
24380
- }
24381
-
24382
- function nextTick(fn, arg1, arg2, arg3) {
24383
- if (typeof fn !== 'function') {
24384
- throw new TypeError('"callback" argument must be a function');
24385
- }
24386
- var len = arguments.length;
24387
- var args, i;
24388
- switch (len) {
24389
- case 0:
24390
- case 1:
24391
- return process.nextTick(fn);
24392
- case 2:
24393
- return process.nextTick(function afterTickOne() {
24394
- fn.call(null, arg1);
24395
- });
24396
- case 3:
24397
- return process.nextTick(function afterTickTwo() {
24398
- fn.call(null, arg1, arg2);
24399
- });
24400
- case 4:
24401
- return process.nextTick(function afterTickThree() {
24402
- fn.call(null, arg1, arg2, arg3);
24403
- });
24404
- default:
24405
- args = new Array(len - 1);
24406
- i = 0;
24407
- while (i < args.length) {
24408
- args[i++] = arguments[i];
24409
- }
24410
- return process.nextTick(function afterTick() {
24411
- fn.apply(null, args);
24412
- });
24413
- }
24414
- }
24415
-
24416
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js")))
24417
-
24418
24241
  /***/ }),
24419
24242
 
24420
24243
  /***/ "./node_modules/process/browser.js":
@@ -25372,6 +25195,27 @@ module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modu
25372
25195
  /***/ (function(module, exports, __webpack_require__) {
25373
25196
 
25374
25197
  "use strict";
25198
+ // Copyright Joyent, Inc. and other Node contributors.
25199
+ //
25200
+ // Permission is hereby granted, free of charge, to any person obtaining a
25201
+ // copy of this software and associated documentation files (the
25202
+ // "Software"), to deal in the Software without restriction, including
25203
+ // without limitation the rights to use, copy, modify, merge, publish,
25204
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
25205
+ // persons to whom the Software is furnished to do so, subject to the
25206
+ // following conditions:
25207
+ //
25208
+ // The above copyright notice and this permission notice shall be included
25209
+ // in all copies or substantial portions of the Software.
25210
+ //
25211
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25212
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25213
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25214
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25215
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25216
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25217
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
25218
+
25375
25219
  // a duplex stream is just a stream that is both readable and writable.
25376
25220
  // Since JS doesn't have multiple prototypal inheritance, this class
25377
25221
  // prototypally inherits from Readable, and then parasitically from
@@ -25381,6 +25225,10 @@ module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modu
25381
25225
 
25382
25226
  /*<replacement>*/
25383
25227
 
25228
+ var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/readable-stream/node_modules/process-nextick-args/index.js");
25229
+ /*</replacement>*/
25230
+
25231
+ /*<replacement>*/
25384
25232
  var objectKeys = Object.keys || function (obj) {
25385
25233
  var keys = [];
25386
25234
  for (var key in obj) {
@@ -25392,11 +25240,7 @@ var objectKeys = Object.keys || function (obj) {
25392
25240
  module.exports = Duplex;
25393
25241
 
25394
25242
  /*<replacement>*/
25395
- var processNextTick = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js");
25396
- /*</replacement>*/
25397
-
25398
- /*<replacement>*/
25399
- var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js");
25243
+ var util = Object.create(__webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"));
25400
25244
  util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js");
25401
25245
  /*</replacement>*/
25402
25246
 
@@ -25405,10 +25249,13 @@ var Writable = __webpack_require__(/*! ./_stream_writable */ "./node_modules/rea
25405
25249
 
25406
25250
  util.inherits(Duplex, Readable);
25407
25251
 
25408
- var keys = objectKeys(Writable.prototype);
25409
- for (var v = 0; v < keys.length; v++) {
25410
- var method = keys[v];
25411
- if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
25252
+ {
25253
+ // avoid scope creep, the keys array can then be collected
25254
+ var keys = objectKeys(Writable.prototype);
25255
+ for (var v = 0; v < keys.length; v++) {
25256
+ var method = keys[v];
25257
+ if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
25258
+ }
25412
25259
  }
25413
25260
 
25414
25261
  function Duplex(options) {
@@ -25427,6 +25274,16 @@ function Duplex(options) {
25427
25274
  this.once('end', onend);
25428
25275
  }
25429
25276
 
25277
+ Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
25278
+ // making it explicit this property is not enumerable
25279
+ // because otherwise some prototype manipulation in
25280
+ // userland will fail
25281
+ enumerable: false,
25282
+ get: function () {
25283
+ return this._writableState.highWaterMark;
25284
+ }
25285
+ });
25286
+
25430
25287
  // the no-half-open enforcer
25431
25288
  function onend() {
25432
25289
  // if we allow half-open state, or if the writable side ended,
@@ -25435,18 +25292,40 @@ function onend() {
25435
25292
 
25436
25293
  // no more data can be written.
25437
25294
  // But allow more writes to happen in this tick.
25438
- processNextTick(onEndNT, this);
25295
+ pna.nextTick(onEndNT, this);
25439
25296
  }
25440
25297
 
25441
25298
  function onEndNT(self) {
25442
25299
  self.end();
25443
25300
  }
25444
25301
 
25445
- function forEach(xs, f) {
25446
- for (var i = 0, l = xs.length; i < l; i++) {
25447
- f(xs[i], i);
25302
+ Object.defineProperty(Duplex.prototype, 'destroyed', {
25303
+ get: function () {
25304
+ if (this._readableState === undefined || this._writableState === undefined) {
25305
+ return false;
25306
+ }
25307
+ return this._readableState.destroyed && this._writableState.destroyed;
25308
+ },
25309
+ set: function (value) {
25310
+ // we ignore the value if the stream
25311
+ // has not been initialized yet
25312
+ if (this._readableState === undefined || this._writableState === undefined) {
25313
+ return;
25314
+ }
25315
+
25316
+ // backward compatibility, the user is explicitly
25317
+ // managing destroyed
25318
+ this._readableState.destroyed = value;
25319
+ this._writableState.destroyed = value;
25448
25320
  }
25449
- }
25321
+ });
25322
+
25323
+ Duplex.prototype._destroy = function (err, cb) {
25324
+ this.push(null);
25325
+ this.end();
25326
+
25327
+ pna.nextTick(cb, err);
25328
+ };
25450
25329
 
25451
25330
  /***/ }),
25452
25331
 
@@ -25458,6 +25337,27 @@ function forEach(xs, f) {
25458
25337
  /***/ (function(module, exports, __webpack_require__) {
25459
25338
 
25460
25339
  "use strict";
25340
+ // Copyright Joyent, Inc. and other Node contributors.
25341
+ //
25342
+ // Permission is hereby granted, free of charge, to any person obtaining a
25343
+ // copy of this software and associated documentation files (the
25344
+ // "Software"), to deal in the Software without restriction, including
25345
+ // without limitation the rights to use, copy, modify, merge, publish,
25346
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
25347
+ // persons to whom the Software is furnished to do so, subject to the
25348
+ // following conditions:
25349
+ //
25350
+ // The above copyright notice and this permission notice shall be included
25351
+ // in all copies or substantial portions of the Software.
25352
+ //
25353
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25354
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25355
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25356
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25357
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25358
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25359
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
25360
+
25461
25361
  // a passthrough stream.
25462
25362
  // basically just the most minimal sort of Transform stream.
25463
25363
  // Every written chunk gets output as-is.
@@ -25469,7 +25369,7 @@ module.exports = PassThrough;
25469
25369
  var Transform = __webpack_require__(/*! ./_stream_transform */ "./node_modules/readable-stream/lib/_stream_transform.js");
25470
25370
 
25471
25371
  /*<replacement>*/
25472
- var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js");
25372
+ var util = Object.create(__webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"));
25473
25373
  util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js");
25474
25374
  /*</replacement>*/
25475
25375
 
@@ -25495,14 +25395,36 @@ PassThrough.prototype._transform = function (chunk, encoding, cb) {
25495
25395
  /***/ (function(module, exports, __webpack_require__) {
25496
25396
 
25497
25397
  "use strict";
25498
- /* WEBPACK VAR INJECTION */(function(process) {
25398
+ /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
25399
+ //
25400
+ // Permission is hereby granted, free of charge, to any person obtaining a
25401
+ // copy of this software and associated documentation files (the
25402
+ // "Software"), to deal in the Software without restriction, including
25403
+ // without limitation the rights to use, copy, modify, merge, publish,
25404
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
25405
+ // persons to whom the Software is furnished to do so, subject to the
25406
+ // following conditions:
25407
+ //
25408
+ // The above copyright notice and this permission notice shall be included
25409
+ // in all copies or substantial portions of the Software.
25410
+ //
25411
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25412
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25413
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25414
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25415
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25416
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25417
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
25418
+
25499
25419
 
25500
- module.exports = Readable;
25501
25420
 
25502
25421
  /*<replacement>*/
25503
- var processNextTick = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js");
25422
+
25423
+ var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/readable-stream/node_modules/process-nextick-args/index.js");
25504
25424
  /*</replacement>*/
25505
25425
 
25426
+ module.exports = Readable;
25427
+
25506
25428
  /*<replacement>*/
25507
25429
  var isArray = __webpack_require__(/*! isarray */ "./node_modules/isarray/index.js");
25508
25430
  /*</replacement>*/
@@ -25525,13 +25447,21 @@ var EElistenerCount = function (emitter, type) {
25525
25447
  var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js");
25526
25448
  /*</replacement>*/
25527
25449
 
25528
- var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer;
25529
25450
  /*<replacement>*/
25530
- var bufferShim = __webpack_require__(/*! buffer-shims */ "./node_modules/buffer-shims/index.js");
25451
+
25452
+ var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer;
25453
+ var OurUint8Array = global.Uint8Array || function () {};
25454
+ function _uint8ArrayToBuffer(chunk) {
25455
+ return Buffer.from(chunk);
25456
+ }
25457
+ function _isUint8Array(obj) {
25458
+ return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
25459
+ }
25460
+
25531
25461
  /*</replacement>*/
25532
25462
 
25533
25463
  /*<replacement>*/
25534
- var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js");
25464
+ var util = Object.create(__webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"));
25535
25465
  util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js");
25536
25466
  /*</replacement>*/
25537
25467
 
@@ -25546,6 +25476,7 @@ if (debugUtil && debugUtil.debuglog) {
25546
25476
  /*</replacement>*/
25547
25477
 
25548
25478
  var BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ "./node_modules/readable-stream/lib/internal/streams/BufferList.js");
25479
+ var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/readable-stream/lib/internal/streams/destroy.js");
25549
25480
  var StringDecoder;
25550
25481
 
25551
25482
  util.inherits(Readable, Stream);
@@ -25555,15 +25486,13 @@ var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
25555
25486
  function prependListener(emitter, event, fn) {
25556
25487
  // Sadly this is not cacheable as some libraries bundle their own
25557
25488
  // event emitter implementation with them.
25558
- if (typeof emitter.prependListener === 'function') {
25559
- return emitter.prependListener(event, fn);
25560
- } else {
25561
- // This is a hack to make sure that our error handler is attached before any
25562
- // userland ones. NEVER DO THIS. This is here only because this code needs
25563
- // to continue to work with older versions of Node.js that do not include
25564
- // the prependListener() method. The goal is to eventually remove this hack.
25565
- if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
25566
- }
25489
+ if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
25490
+
25491
+ // This is a hack to make sure that our error handler is attached before any
25492
+ // userland ones. NEVER DO THIS. This is here only because this code needs
25493
+ // to continue to work with older versions of Node.js that do not include
25494
+ // the prependListener() method. The goal is to eventually remove this hack.
25495
+ if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
25567
25496
  }
25568
25497
 
25569
25498
  function ReadableState(options, stream) {
@@ -25571,20 +25500,29 @@ function ReadableState(options, stream) {
25571
25500
 
25572
25501
  options = options || {};
25573
25502
 
25503
+ // Duplex streams are both readable and writable, but share
25504
+ // the same options object.
25505
+ // However, some cases require setting options to different
25506
+ // values for the readable and the writable sides of the duplex stream.
25507
+ // These options can be provided separately as readableXXX and writableXXX.
25508
+ var isDuplex = stream instanceof Duplex;
25509
+
25574
25510
  // object stream flag. Used to make read(n) ignore n and to
25575
25511
  // make all the buffer merging and length checks go away
25576
25512
  this.objectMode = !!options.objectMode;
25577
25513
 
25578
- if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
25514
+ if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
25579
25515
 
25580
25516
  // the point at which it stops calling _read() to fill the buffer
25581
25517
  // Note: 0 is a valid value, means "don't call _read preemptively ever"
25582
25518
  var hwm = options.highWaterMark;
25519
+ var readableHwm = options.readableHighWaterMark;
25583
25520
  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
25584
- this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
25521
+
25522
+ if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;
25585
25523
 
25586
25524
  // cast to ints.
25587
- this.highWaterMark = ~~this.highWaterMark;
25525
+ this.highWaterMark = Math.floor(this.highWaterMark);
25588
25526
 
25589
25527
  // A linked list is used to store data chunks instead of an array because the
25590
25528
  // linked list can remove elements from the beginning faster than
@@ -25598,10 +25536,10 @@ function ReadableState(options, stream) {
25598
25536
  this.endEmitted = false;
25599
25537
  this.reading = false;
25600
25538
 
25601
- // a flag to be able to tell if the onwrite cb is called immediately,
25602
- // or on a later tick. We set this to true at first, because any
25603
- // actions that shouldn't happen until "later" should generally also
25604
- // not happen before the first write call.
25539
+ // a flag to be able to tell if the event 'readable'/'data' is emitted
25540
+ // immediately, or on a later tick. We set this to true at first, because
25541
+ // any actions that shouldn't happen until "later" should generally also
25542
+ // not happen before the first read call.
25605
25543
  this.sync = true;
25606
25544
 
25607
25545
  // whenever we return null, then we set a flag to say
@@ -25611,15 +25549,14 @@ function ReadableState(options, stream) {
25611
25549
  this.readableListening = false;
25612
25550
  this.resumeScheduled = false;
25613
25551
 
25552
+ // has it been destroyed
25553
+ this.destroyed = false;
25554
+
25614
25555
  // Crypto is kind of old and crusty. Historically, its default string
25615
25556
  // encoding is 'binary' so we have to make this configurable.
25616
25557
  // Everything else in the universe uses 'utf8', though.
25617
25558
  this.defaultEncoding = options.defaultEncoding || 'utf8';
25618
25559
 
25619
- // when piping, we only care about 'readable' events that happen
25620
- // after read()ing all the bytes and not getting any pushback.
25621
- this.ranOut = false;
25622
-
25623
25560
  // the number of writers that are awaiting a drain event in .pipe()s
25624
25561
  this.awaitDrain = 0;
25625
25562
 
@@ -25645,87 +25582,129 @@ function Readable(options) {
25645
25582
  // legacy
25646
25583
  this.readable = true;
25647
25584
 
25648
- if (options && typeof options.read === 'function') this._read = options.read;
25585
+ if (options) {
25586
+ if (typeof options.read === 'function') this._read = options.read;
25587
+
25588
+ if (typeof options.destroy === 'function') this._destroy = options.destroy;
25589
+ }
25649
25590
 
25650
25591
  Stream.call(this);
25651
25592
  }
25652
25593
 
25594
+ Object.defineProperty(Readable.prototype, 'destroyed', {
25595
+ get: function () {
25596
+ if (this._readableState === undefined) {
25597
+ return false;
25598
+ }
25599
+ return this._readableState.destroyed;
25600
+ },
25601
+ set: function (value) {
25602
+ // we ignore the value if the stream
25603
+ // has not been initialized yet
25604
+ if (!this._readableState) {
25605
+ return;
25606
+ }
25607
+
25608
+ // backward compatibility, the user is explicitly
25609
+ // managing destroyed
25610
+ this._readableState.destroyed = value;
25611
+ }
25612
+ });
25613
+
25614
+ Readable.prototype.destroy = destroyImpl.destroy;
25615
+ Readable.prototype._undestroy = destroyImpl.undestroy;
25616
+ Readable.prototype._destroy = function (err, cb) {
25617
+ this.push(null);
25618
+ cb(err);
25619
+ };
25620
+
25653
25621
  // Manually shove something into the read() buffer.
25654
25622
  // This returns true if the highWaterMark has not been hit yet,
25655
25623
  // similar to how Writable.write() returns true if you should
25656
25624
  // write() some more.
25657
25625
  Readable.prototype.push = function (chunk, encoding) {
25658
25626
  var state = this._readableState;
25627
+ var skipChunkCheck;
25659
25628
 
25660
- if (!state.objectMode && typeof chunk === 'string') {
25661
- encoding = encoding || state.defaultEncoding;
25662
- if (encoding !== state.encoding) {
25663
- chunk = bufferShim.from(chunk, encoding);
25664
- encoding = '';
25629
+ if (!state.objectMode) {
25630
+ if (typeof chunk === 'string') {
25631
+ encoding = encoding || state.defaultEncoding;
25632
+ if (encoding !== state.encoding) {
25633
+ chunk = Buffer.from(chunk, encoding);
25634
+ encoding = '';
25635
+ }
25636
+ skipChunkCheck = true;
25665
25637
  }
25638
+ } else {
25639
+ skipChunkCheck = true;
25666
25640
  }
25667
25641
 
25668
- return readableAddChunk(this, state, chunk, encoding, false);
25642
+ return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
25669
25643
  };
25670
25644
 
25671
25645
  // Unshift should *always* be something directly out of read()
25672
25646
  Readable.prototype.unshift = function (chunk) {
25673
- var state = this._readableState;
25674
- return readableAddChunk(this, state, chunk, '', true);
25647
+ return readableAddChunk(this, chunk, null, true, false);
25675
25648
  };
25676
25649
 
25677
- Readable.prototype.isPaused = function () {
25678
- return this._readableState.flowing === false;
25679
- };
25680
-
25681
- function readableAddChunk(stream, state, chunk, encoding, addToFront) {
25682
- var er = chunkInvalid(state, chunk);
25683
- if (er) {
25684
- stream.emit('error', er);
25685
- } else if (chunk === null) {
25650
+ function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
25651
+ var state = stream._readableState;
25652
+ if (chunk === null) {
25686
25653
  state.reading = false;
25687
25654
  onEofChunk(stream, state);
25688
- } else if (state.objectMode || chunk && chunk.length > 0) {
25689
- if (state.ended && !addToFront) {
25690
- var e = new Error('stream.push() after EOF');
25691
- stream.emit('error', e);
25692
- } else if (state.endEmitted && addToFront) {
25693
- var _e = new Error('stream.unshift() after end event');
25694
- stream.emit('error', _e);
25695
- } else {
25696
- var skipAdd;
25697
- if (state.decoder && !addToFront && !encoding) {
25698
- chunk = state.decoder.write(chunk);
25699
- skipAdd = !state.objectMode && chunk.length === 0;
25700
- }
25701
-
25702
- if (!addToFront) state.reading = false;
25703
-
25704
- // Don't add to the buffer if we've decoded to an empty string chunk and
25705
- // we're not in object mode
25706
- if (!skipAdd) {
25707
- // if we want the data now, just emit it.
25708
- if (state.flowing && state.length === 0 && !state.sync) {
25709
- stream.emit('data', chunk);
25710
- stream.read(0);
25655
+ } else {
25656
+ var er;
25657
+ if (!skipChunkCheck) er = chunkInvalid(state, chunk);
25658
+ if (er) {
25659
+ stream.emit('error', er);
25660
+ } else if (state.objectMode || chunk && chunk.length > 0) {
25661
+ if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
25662
+ chunk = _uint8ArrayToBuffer(chunk);
25663
+ }
25664
+
25665
+ if (addToFront) {
25666
+ if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
25667
+ } else if (state.ended) {
25668
+ stream.emit('error', new Error('stream.push() after EOF'));
25669
+ } else {
25670
+ state.reading = false;
25671
+ if (state.decoder && !encoding) {
25672
+ chunk = state.decoder.write(chunk);
25673
+ if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
25711
25674
  } else {
25712
- // update the buffer info.
25713
- state.length += state.objectMode ? 1 : chunk.length;
25714
- if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
25715
-
25716
- if (state.needReadable) emitReadable(stream);
25675
+ addChunk(stream, state, chunk, false);
25717
25676
  }
25718
25677
  }
25719
-
25720
- maybeReadMore(stream, state);
25678
+ } else if (!addToFront) {
25679
+ state.reading = false;
25721
25680
  }
25722
- } else if (!addToFront) {
25723
- state.reading = false;
25724
25681
  }
25725
25682
 
25726
25683
  return needMoreData(state);
25727
25684
  }
25728
25685
 
25686
+ function addChunk(stream, state, chunk, addToFront) {
25687
+ if (state.flowing && state.length === 0 && !state.sync) {
25688
+ stream.emit('data', chunk);
25689
+ stream.read(0);
25690
+ } else {
25691
+ // update the buffer info.
25692
+ state.length += state.objectMode ? 1 : chunk.length;
25693
+ if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
25694
+
25695
+ if (state.needReadable) emitReadable(stream);
25696
+ }
25697
+ maybeReadMore(stream, state);
25698
+ }
25699
+
25700
+ function chunkInvalid(state, chunk) {
25701
+ var er;
25702
+ if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
25703
+ er = new TypeError('Invalid non-string/buffer chunk');
25704
+ }
25705
+ return er;
25706
+ }
25707
+
25729
25708
  // if it's past the high water mark, we can push in some more.
25730
25709
  // Also, if we have no data yet, we can stand some
25731
25710
  // more bytes. This is to work around cases where hwm=0,
@@ -25737,6 +25716,10 @@ function needMoreData(state) {
25737
25716
  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
25738
25717
  }
25739
25718
 
25719
+ Readable.prototype.isPaused = function () {
25720
+ return this._readableState.flowing === false;
25721
+ };
25722
+
25740
25723
  // backwards compatibility.
25741
25724
  Readable.prototype.setEncoding = function (enc) {
25742
25725
  if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./node_modules/string_decoder/lib/string_decoder.js").StringDecoder;
@@ -25885,14 +25868,6 @@ Readable.prototype.read = function (n) {
25885
25868
  return ret;
25886
25869
  };
25887
25870
 
25888
- function chunkInvalid(state, chunk) {
25889
- var er = null;
25890
- if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
25891
- er = new TypeError('Invalid non-string/buffer chunk');
25892
- }
25893
- return er;
25894
- }
25895
-
25896
25871
  function onEofChunk(stream, state) {
25897
25872
  if (state.ended) return;
25898
25873
  if (state.decoder) {
@@ -25917,7 +25892,7 @@ function emitReadable(stream) {
25917
25892
  if (!state.emittedReadable) {
25918
25893
  debug('emitReadable', state.flowing);
25919
25894
  state.emittedReadable = true;
25920
- if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
25895
+ if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);
25921
25896
  }
25922
25897
  }
25923
25898
 
@@ -25936,7 +25911,7 @@ function emitReadable_(stream) {
25936
25911
  function maybeReadMore(stream, state) {
25937
25912
  if (!state.readingMore) {
25938
25913
  state.readingMore = true;
25939
- processNextTick(maybeReadMore_, stream, state);
25914
+ pna.nextTick(maybeReadMore_, stream, state);
25940
25915
  }
25941
25916
  }
25942
25917
 
@@ -25980,14 +25955,17 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
25980
25955
 
25981
25956
  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
25982
25957
 
25983
- var endFn = doEnd ? onend : cleanup;
25984
- if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
25958
+ var endFn = doEnd ? onend : unpipe;
25959
+ if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);
25985
25960
 
25986
25961
  dest.on('unpipe', onunpipe);
25987
- function onunpipe(readable) {
25962
+ function onunpipe(readable, unpipeInfo) {
25988
25963
  debug('onunpipe');
25989
25964
  if (readable === src) {
25990
- cleanup();
25965
+ if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
25966
+ unpipeInfo.hasUnpiped = true;
25967
+ cleanup();
25968
+ }
25991
25969
  }
25992
25970
  }
25993
25971
 
@@ -26013,7 +25991,7 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
26013
25991
  dest.removeListener('error', onerror);
26014
25992
  dest.removeListener('unpipe', onunpipe);
26015
25993
  src.removeListener('end', onend);
26016
- src.removeListener('end', cleanup);
25994
+ src.removeListener('end', unpipe);
26017
25995
  src.removeListener('data', ondata);
26018
25996
 
26019
25997
  cleanedUp = true;
@@ -26106,6 +26084,7 @@ function pipeOnDrain(src) {
26106
26084
 
26107
26085
  Readable.prototype.unpipe = function (dest) {
26108
26086
  var state = this._readableState;
26087
+ var unpipeInfo = { hasUnpiped: false };
26109
26088
 
26110
26089
  // if we're not piping anywhere, then do nothing.
26111
26090
  if (state.pipesCount === 0) return this;
@@ -26121,7 +26100,7 @@ Readable.prototype.unpipe = function (dest) {
26121
26100
  state.pipes = null;
26122
26101
  state.pipesCount = 0;
26123
26102
  state.flowing = false;
26124
- if (dest) dest.emit('unpipe', this);
26103
+ if (dest) dest.emit('unpipe', this, unpipeInfo);
26125
26104
  return this;
26126
26105
  }
26127
26106
 
@@ -26136,7 +26115,7 @@ Readable.prototype.unpipe = function (dest) {
26136
26115
  state.flowing = false;
26137
26116
 
26138
26117
  for (var i = 0; i < len; i++) {
26139
- dests[i].emit('unpipe', this);
26118
+ dests[i].emit('unpipe', this, unpipeInfo);
26140
26119
  }return this;
26141
26120
  }
26142
26121
 
@@ -26148,7 +26127,7 @@ Readable.prototype.unpipe = function (dest) {
26148
26127
  state.pipesCount -= 1;
26149
26128
  if (state.pipesCount === 1) state.pipes = state.pipes[0];
26150
26129
 
26151
- dest.emit('unpipe', this);
26130
+ dest.emit('unpipe', this, unpipeInfo);
26152
26131
 
26153
26132
  return this;
26154
26133
  };
@@ -26167,9 +26146,9 @@ Readable.prototype.on = function (ev, fn) {
26167
26146
  state.readableListening = state.needReadable = true;
26168
26147
  state.emittedReadable = false;
26169
26148
  if (!state.reading) {
26170
- processNextTick(nReadingNextTick, this);
26149
+ pna.nextTick(nReadingNextTick, this);
26171
26150
  } else if (state.length) {
26172
- emitReadable(this, state);
26151
+ emitReadable(this);
26173
26152
  }
26174
26153
  }
26175
26154
  }
@@ -26198,7 +26177,7 @@ Readable.prototype.resume = function () {
26198
26177
  function resume(stream, state) {
26199
26178
  if (!state.resumeScheduled) {
26200
26179
  state.resumeScheduled = true;
26201
- processNextTick(resume_, stream, state);
26180
+ pna.nextTick(resume_, stream, state);
26202
26181
  }
26203
26182
  }
26204
26183
 
@@ -26235,18 +26214,19 @@ function flow(stream) {
26235
26214
  // This is *not* part of the readable stream interface.
26236
26215
  // It is an ugly unfortunate mess of history.
26237
26216
  Readable.prototype.wrap = function (stream) {
26217
+ var _this = this;
26218
+
26238
26219
  var state = this._readableState;
26239
26220
  var paused = false;
26240
26221
 
26241
- var self = this;
26242
26222
  stream.on('end', function () {
26243
26223
  debug('wrapped end');
26244
26224
  if (state.decoder && !state.ended) {
26245
26225
  var chunk = state.decoder.end();
26246
- if (chunk && chunk.length) self.push(chunk);
26226
+ if (chunk && chunk.length) _this.push(chunk);
26247
26227
  }
26248
26228
 
26249
- self.push(null);
26229
+ _this.push(null);
26250
26230
  });
26251
26231
 
26252
26232
  stream.on('data', function (chunk) {
@@ -26256,7 +26236,7 @@ Readable.prototype.wrap = function (stream) {
26256
26236
  // don't skip over falsy values in objectMode
26257
26237
  if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
26258
26238
 
26259
- var ret = self.push(chunk);
26239
+ var ret = _this.push(chunk);
26260
26240
  if (!ret) {
26261
26241
  paused = true;
26262
26242
  stream.pause();
@@ -26277,12 +26257,12 @@ Readable.prototype.wrap = function (stream) {
26277
26257
 
26278
26258
  // proxy certain important events.
26279
26259
  for (var n = 0; n < kProxyEvents.length; n++) {
26280
- stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
26260
+ stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
26281
26261
  }
26282
26262
 
26283
26263
  // when we try to consume some more bytes, simply unpause the
26284
26264
  // underlying stream.
26285
- self._read = function (n) {
26265
+ this._read = function (n) {
26286
26266
  debug('wrapped _read', n);
26287
26267
  if (paused) {
26288
26268
  paused = false;
@@ -26290,9 +26270,19 @@ Readable.prototype.wrap = function (stream) {
26290
26270
  }
26291
26271
  };
26292
26272
 
26293
- return self;
26273
+ return this;
26294
26274
  };
26295
26275
 
26276
+ Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
26277
+ // making it explicit this property is not enumerable
26278
+ // because otherwise some prototype manipulation in
26279
+ // userland will fail
26280
+ enumerable: false,
26281
+ get: function () {
26282
+ return this._readableState.highWaterMark;
26283
+ }
26284
+ });
26285
+
26296
26286
  // exposed for testing purposes only.
26297
26287
  Readable._fromList = fromList;
26298
26288
 
@@ -26370,7 +26360,7 @@ function copyFromBufferString(n, list) {
26370
26360
  // This function is designed to be inlinable, so please take care when making
26371
26361
  // changes to the function body.
26372
26362
  function copyFromBuffer(n, list) {
26373
- var ret = bufferShim.allocUnsafe(n);
26363
+ var ret = Buffer.allocUnsafe(n);
26374
26364
  var p = list.head;
26375
26365
  var c = 1;
26376
26366
  p.data.copy(ret);
@@ -26405,7 +26395,7 @@ function endReadable(stream) {
26405
26395
 
26406
26396
  if (!state.endEmitted) {
26407
26397
  state.ended = true;
26408
- processNextTick(endReadableNT, state, stream);
26398
+ pna.nextTick(endReadableNT, state, stream);
26409
26399
  }
26410
26400
  }
26411
26401
 
@@ -26418,19 +26408,13 @@ function endReadableNT(state, stream) {
26418
26408
  }
26419
26409
  }
26420
26410
 
26421
- function forEach(xs, f) {
26422
- for (var i = 0, l = xs.length; i < l; i++) {
26423
- f(xs[i], i);
26424
- }
26425
- }
26426
-
26427
26411
  function indexOf(xs, x) {
26428
26412
  for (var i = 0, l = xs.length; i < l; i++) {
26429
26413
  if (xs[i] === x) return i;
26430
26414
  }
26431
26415
  return -1;
26432
26416
  }
26433
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js")))
26417
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js")))
26434
26418
 
26435
26419
  /***/ }),
26436
26420
 
@@ -26442,6 +26426,27 @@ function indexOf(xs, x) {
26442
26426
  /***/ (function(module, exports, __webpack_require__) {
26443
26427
 
26444
26428
  "use strict";
26429
+ // Copyright Joyent, Inc. and other Node contributors.
26430
+ //
26431
+ // Permission is hereby granted, free of charge, to any person obtaining a
26432
+ // copy of this software and associated documentation files (the
26433
+ // "Software"), to deal in the Software without restriction, including
26434
+ // without limitation the rights to use, copy, modify, merge, publish,
26435
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
26436
+ // persons to whom the Software is furnished to do so, subject to the
26437
+ // following conditions:
26438
+ //
26439
+ // The above copyright notice and this permission notice shall be included
26440
+ // in all copies or substantial portions of the Software.
26441
+ //
26442
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
26443
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26444
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
26445
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
26446
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
26447
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
26448
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
26449
+
26445
26450
  // a transform stream is a readable/writable stream where you do
26446
26451
  // something with the data. Sometimes it's called a "filter",
26447
26452
  // but that's not a great name for it, since that implies a thing where
@@ -26491,43 +26496,34 @@ module.exports = Transform;
26491
26496
  var Duplex = __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js");
26492
26497
 
26493
26498
  /*<replacement>*/
26494
- var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js");
26499
+ var util = Object.create(__webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"));
26495
26500
  util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js");
26496
26501
  /*</replacement>*/
26497
26502
 
26498
26503
  util.inherits(Transform, Duplex);
26499
26504
 
26500
- function TransformState(stream) {
26501
- this.afterTransform = function (er, data) {
26502
- return afterTransform(stream, er, data);
26503
- };
26504
-
26505
- this.needTransform = false;
26506
- this.transforming = false;
26507
- this.writecb = null;
26508
- this.writechunk = null;
26509
- this.writeencoding = null;
26510
- }
26511
-
26512
- function afterTransform(stream, er, data) {
26513
- var ts = stream._transformState;
26505
+ function afterTransform(er, data) {
26506
+ var ts = this._transformState;
26514
26507
  ts.transforming = false;
26515
26508
 
26516
26509
  var cb = ts.writecb;
26517
26510
 
26518
- if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
26511
+ if (!cb) {
26512
+ return this.emit('error', new Error('write callback called multiple times'));
26513
+ }
26519
26514
 
26520
26515
  ts.writechunk = null;
26521
26516
  ts.writecb = null;
26522
26517
 
26523
- if (data !== null && data !== undefined) stream.push(data);
26518
+ if (data != null) // single equals check for both `null` and `undefined`
26519
+ this.push(data);
26524
26520
 
26525
26521
  cb(er);
26526
26522
 
26527
- var rs = stream._readableState;
26523
+ var rs = this._readableState;
26528
26524
  rs.reading = false;
26529
26525
  if (rs.needReadable || rs.length < rs.highWaterMark) {
26530
- stream._read(rs.highWaterMark);
26526
+ this._read(rs.highWaterMark);
26531
26527
  }
26532
26528
  }
26533
26529
 
@@ -26536,9 +26532,14 @@ function Transform(options) {
26536
26532
 
26537
26533
  Duplex.call(this, options);
26538
26534
 
26539
- this._transformState = new TransformState(this);
26540
-
26541
- var stream = this;
26535
+ this._transformState = {
26536
+ afterTransform: afterTransform.bind(this),
26537
+ needTransform: false,
26538
+ transforming: false,
26539
+ writecb: null,
26540
+ writechunk: null,
26541
+ writeencoding: null
26542
+ };
26542
26543
 
26543
26544
  // start out asking for a readable event once data is transformed.
26544
26545
  this._readableState.needReadable = true;
@@ -26555,11 +26556,19 @@ function Transform(options) {
26555
26556
  }
26556
26557
 
26557
26558
  // When the writable side finishes, then flush out anything remaining.
26558
- this.once('prefinish', function () {
26559
- if (typeof this._flush === 'function') this._flush(function (er, data) {
26560
- done(stream, er, data);
26561
- });else done(stream);
26562
- });
26559
+ this.on('prefinish', prefinish);
26560
+ }
26561
+
26562
+ function prefinish() {
26563
+ var _this = this;
26564
+
26565
+ if (typeof this._flush === 'function') {
26566
+ this._flush(function (er, data) {
26567
+ done(_this, er, data);
26568
+ });
26569
+ } else {
26570
+ done(this, null, null);
26571
+ }
26563
26572
  }
26564
26573
 
26565
26574
  Transform.prototype.push = function (chunk, encoding) {
@@ -26608,19 +26617,26 @@ Transform.prototype._read = function (n) {
26608
26617
  }
26609
26618
  };
26610
26619
 
26620
+ Transform.prototype._destroy = function (err, cb) {
26621
+ var _this2 = this;
26622
+
26623
+ Duplex.prototype._destroy.call(this, err, function (err2) {
26624
+ cb(err2);
26625
+ _this2.emit('close');
26626
+ });
26627
+ };
26628
+
26611
26629
  function done(stream, er, data) {
26612
26630
  if (er) return stream.emit('error', er);
26613
26631
 
26614
- if (data !== null && data !== undefined) stream.push(data);
26632
+ if (data != null) // single equals check for both `null` and `undefined`
26633
+ stream.push(data);
26615
26634
 
26616
26635
  // if there's nothing in the write buffer, then that means
26617
26636
  // that nothing more will ever be provided
26618
- var ws = stream._writableState;
26619
- var ts = stream._transformState;
26637
+ if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');
26620
26638
 
26621
- if (ws.length) throw new Error('Calling transform done when ws.length != 0');
26622
-
26623
- if (ts.transforming) throw new Error('Calling transform done when still transforming');
26639
+ if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');
26624
26640
 
26625
26641
  return stream.push(null);
26626
26642
  }
@@ -26635,20 +26651,63 @@ function done(stream, er, data) {
26635
26651
  /***/ (function(module, exports, __webpack_require__) {
26636
26652
 
26637
26653
  "use strict";
26638
- /* WEBPACK VAR INJECTION */(function(process, setImmediate) {// A bit simpler than readable streams.
26654
+ /* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.
26655
+ //
26656
+ // Permission is hereby granted, free of charge, to any person obtaining a
26657
+ // copy of this software and associated documentation files (the
26658
+ // "Software"), to deal in the Software without restriction, including
26659
+ // without limitation the rights to use, copy, modify, merge, publish,
26660
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
26661
+ // persons to whom the Software is furnished to do so, subject to the
26662
+ // following conditions:
26663
+ //
26664
+ // The above copyright notice and this permission notice shall be included
26665
+ // in all copies or substantial portions of the Software.
26666
+ //
26667
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
26668
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26669
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
26670
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
26671
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
26672
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
26673
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
26674
+
26675
+ // A bit simpler than readable streams.
26639
26676
  // Implement an async ._write(chunk, encoding, cb), and it'll handle all
26640
26677
  // the drain event emission and buffering.
26641
26678
 
26642
26679
 
26643
26680
 
26644
- module.exports = Writable;
26645
-
26646
26681
  /*<replacement>*/
26647
- var processNextTick = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js");
26682
+
26683
+ var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/readable-stream/node_modules/process-nextick-args/index.js");
26648
26684
  /*</replacement>*/
26649
26685
 
26686
+ module.exports = Writable;
26687
+
26688
+ /* <replacement> */
26689
+ function WriteReq(chunk, encoding, cb) {
26690
+ this.chunk = chunk;
26691
+ this.encoding = encoding;
26692
+ this.callback = cb;
26693
+ this.next = null;
26694
+ }
26695
+
26696
+ // It seems a linked list but it is not
26697
+ // there will be only 2 of these for each stream
26698
+ function CorkedRequest(state) {
26699
+ var _this = this;
26700
+
26701
+ this.next = null;
26702
+ this.entry = null;
26703
+ this.finish = function () {
26704
+ onCorkedFinish(_this, state);
26705
+ };
26706
+ }
26707
+ /* </replacement> */
26708
+
26650
26709
  /*<replacement>*/
26651
- var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
26710
+ var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
26652
26711
  /*</replacement>*/
26653
26712
 
26654
26713
  /*<replacement>*/
@@ -26658,7 +26717,7 @@ var Duplex;
26658
26717
  Writable.WritableState = WritableState;
26659
26718
 
26660
26719
  /*<replacement>*/
26661
- var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js");
26720
+ var util = Object.create(__webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"));
26662
26721
  util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js");
26663
26722
  /*</replacement>*/
26664
26723
 
@@ -26672,42 +26731,57 @@ var internalUtil = {
26672
26731
  var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js");
26673
26732
  /*</replacement>*/
26674
26733
 
26675
- var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer;
26676
26734
  /*<replacement>*/
26677
- var bufferShim = __webpack_require__(/*! buffer-shims */ "./node_modules/buffer-shims/index.js");
26735
+
26736
+ var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer;
26737
+ var OurUint8Array = global.Uint8Array || function () {};
26738
+ function _uint8ArrayToBuffer(chunk) {
26739
+ return Buffer.from(chunk);
26740
+ }
26741
+ function _isUint8Array(obj) {
26742
+ return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
26743
+ }
26744
+
26678
26745
  /*</replacement>*/
26679
26746
 
26747
+ var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/readable-stream/lib/internal/streams/destroy.js");
26748
+
26680
26749
  util.inherits(Writable, Stream);
26681
26750
 
26682
26751
  function nop() {}
26683
26752
 
26684
- function WriteReq(chunk, encoding, cb) {
26685
- this.chunk = chunk;
26686
- this.encoding = encoding;
26687
- this.callback = cb;
26688
- this.next = null;
26689
- }
26690
-
26691
26753
  function WritableState(options, stream) {
26692
26754
  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js");
26693
26755
 
26694
26756
  options = options || {};
26695
26757
 
26758
+ // Duplex streams are both readable and writable, but share
26759
+ // the same options object.
26760
+ // However, some cases require setting options to different
26761
+ // values for the readable and the writable sides of the duplex stream.
26762
+ // These options can be provided separately as readableXXX and writableXXX.
26763
+ var isDuplex = stream instanceof Duplex;
26764
+
26696
26765
  // object stream flag to indicate whether or not this stream
26697
26766
  // contains buffers or objects.
26698
26767
  this.objectMode = !!options.objectMode;
26699
26768
 
26700
- if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
26769
+ if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
26701
26770
 
26702
26771
  // the point at which write() starts returning false
26703
26772
  // Note: 0 is a valid value, means that we always return false if
26704
26773
  // the entire buffer is not flushed immediately on write()
26705
26774
  var hwm = options.highWaterMark;
26775
+ var writableHwm = options.writableHighWaterMark;
26706
26776
  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
26707
- this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
26777
+
26778
+ if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;
26708
26779
 
26709
26780
  // cast to ints.
26710
- this.highWaterMark = ~~this.highWaterMark;
26781
+ this.highWaterMark = Math.floor(this.highWaterMark);
26782
+
26783
+ // if _final has been called
26784
+ this.finalCalled = false;
26711
26785
 
26712
26786
  // drain event flag.
26713
26787
  this.needDrain = false;
@@ -26718,6 +26792,9 @@ function WritableState(options, stream) {
26718
26792
  // when 'finish' is emitted
26719
26793
  this.finished = false;
26720
26794
 
26795
+ // has it been destroyed
26796
+ this.destroyed = false;
26797
+
26721
26798
  // should we decode strings into buffers before passing to _write?
26722
26799
  // this is here so that some node-core streams can optimize string
26723
26800
  // handling at a lower level.
@@ -26799,7 +26876,7 @@ WritableState.prototype.getBuffer = function getBuffer() {
26799
26876
  Object.defineProperty(WritableState.prototype, 'buffer', {
26800
26877
  get: internalUtil.deprecate(function () {
26801
26878
  return this.getBuffer();
26802
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
26879
+ }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
26803
26880
  });
26804
26881
  } catch (_) {}
26805
26882
  })();
@@ -26812,6 +26889,7 @@ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.protot
26812
26889
  Object.defineProperty(Writable, Symbol.hasInstance, {
26813
26890
  value: function (object) {
26814
26891
  if (realHasInstance.call(this, object)) return true;
26892
+ if (this !== Writable) return false;
26815
26893
 
26816
26894
  return object && object._writableState instanceof WritableState;
26817
26895
  }
@@ -26845,6 +26923,10 @@ function Writable(options) {
26845
26923
  if (typeof options.write === 'function') this._write = options.write;
26846
26924
 
26847
26925
  if (typeof options.writev === 'function') this._writev = options.writev;
26926
+
26927
+ if (typeof options.destroy === 'function') this._destroy = options.destroy;
26928
+
26929
+ if (typeof options.final === 'function') this._final = options.final;
26848
26930
  }
26849
26931
 
26850
26932
  Stream.call(this);
@@ -26859,7 +26941,7 @@ function writeAfterEnd(stream, cb) {
26859
26941
  var er = new Error('write after end');
26860
26942
  // TODO: defer error events consistently everywhere, not just the cb
26861
26943
  stream.emit('error', er);
26862
- processNextTick(cb, er);
26944
+ pna.nextTick(cb, er);
26863
26945
  }
26864
26946
 
26865
26947
  // Checks that a user-supplied chunk is valid, especially for the particular
@@ -26876,7 +26958,7 @@ function validChunk(stream, state, chunk, cb) {
26876
26958
  }
26877
26959
  if (er) {
26878
26960
  stream.emit('error', er);
26879
- processNextTick(cb, er);
26961
+ pna.nextTick(cb, er);
26880
26962
  valid = false;
26881
26963
  }
26882
26964
  return valid;
@@ -26885,7 +26967,11 @@ function validChunk(stream, state, chunk, cb) {
26885
26967
  Writable.prototype.write = function (chunk, encoding, cb) {
26886
26968
  var state = this._writableState;
26887
26969
  var ret = false;
26888
- var isBuf = Buffer.isBuffer(chunk);
26970
+ var isBuf = !state.objectMode && _isUint8Array(chunk);
26971
+
26972
+ if (isBuf && !Buffer.isBuffer(chunk)) {
26973
+ chunk = _uint8ArrayToBuffer(chunk);
26974
+ }
26889
26975
 
26890
26976
  if (typeof encoding === 'function') {
26891
26977
  cb = encoding;
@@ -26930,18 +27016,32 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
26930
27016
 
26931
27017
  function decodeChunk(state, chunk, encoding) {
26932
27018
  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
26933
- chunk = bufferShim.from(chunk, encoding);
27019
+ chunk = Buffer.from(chunk, encoding);
26934
27020
  }
26935
27021
  return chunk;
26936
27022
  }
26937
27023
 
27024
+ Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
27025
+ // making it explicit this property is not enumerable
27026
+ // because otherwise some prototype manipulation in
27027
+ // userland will fail
27028
+ enumerable: false,
27029
+ get: function () {
27030
+ return this._writableState.highWaterMark;
27031
+ }
27032
+ });
27033
+
26938
27034
  // if we're already writing something, then just put this
26939
27035
  // in the queue, and wait our turn. Otherwise, call _write
26940
27036
  // If we return false, then we need a drain event, so set that flag.
26941
27037
  function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
26942
27038
  if (!isBuf) {
26943
- chunk = decodeChunk(state, chunk, encoding);
26944
- if (Buffer.isBuffer(chunk)) encoding = 'buffer';
27039
+ var newChunk = decodeChunk(state, chunk, encoding);
27040
+ if (chunk !== newChunk) {
27041
+ isBuf = true;
27042
+ encoding = 'buffer';
27043
+ chunk = newChunk;
27044
+ }
26945
27045
  }
26946
27046
  var len = state.objectMode ? 1 : chunk.length;
26947
27047
 
@@ -26953,7 +27053,13 @@ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
26953
27053
 
26954
27054
  if (state.writing || state.corked) {
26955
27055
  var last = state.lastBufferedRequest;
26956
- state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
27056
+ state.lastBufferedRequest = {
27057
+ chunk: chunk,
27058
+ encoding: encoding,
27059
+ isBuf: isBuf,
27060
+ callback: cb,
27061
+ next: null
27062
+ };
26957
27063
  if (last) {
26958
27064
  last.next = state.lastBufferedRequest;
26959
27065
  } else {
@@ -26978,10 +27084,26 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) {
26978
27084
 
26979
27085
  function onwriteError(stream, state, sync, er, cb) {
26980
27086
  --state.pendingcb;
26981
- if (sync) processNextTick(cb, er);else cb(er);
26982
27087
 
26983
- stream._writableState.errorEmitted = true;
26984
- stream.emit('error', er);
27088
+ if (sync) {
27089
+ // defer the callback if we are being called synchronously
27090
+ // to avoid piling up things on the stack
27091
+ pna.nextTick(cb, er);
27092
+ // this can emit finish, and it will always happen
27093
+ // after error
27094
+ pna.nextTick(finishMaybe, stream, state);
27095
+ stream._writableState.errorEmitted = true;
27096
+ stream.emit('error', er);
27097
+ } else {
27098
+ // the caller expect this to happen before if
27099
+ // it is async
27100
+ cb(er);
27101
+ stream._writableState.errorEmitted = true;
27102
+ stream.emit('error', er);
27103
+ // this can emit finish, but finish must
27104
+ // always follow error
27105
+ finishMaybe(stream, state);
27106
+ }
26985
27107
  }
26986
27108
 
26987
27109
  function onwriteStateUpdate(state) {
@@ -27046,11 +27168,14 @@ function clearBuffer(stream, state) {
27046
27168
  holder.entry = entry;
27047
27169
 
27048
27170
  var count = 0;
27171
+ var allBuffers = true;
27049
27172
  while (entry) {
27050
27173
  buffer[count] = entry;
27174
+ if (!entry.isBuf) allBuffers = false;
27051
27175
  entry = entry.next;
27052
27176
  count += 1;
27053
27177
  }
27178
+ buffer.allBuffers = allBuffers;
27054
27179
 
27055
27180
  doWrite(stream, state, true, state.length, buffer, '', holder.finish);
27056
27181
 
@@ -27064,6 +27189,7 @@ function clearBuffer(stream, state) {
27064
27189
  } else {
27065
27190
  state.corkedRequestsFree = new CorkedRequest(state);
27066
27191
  }
27192
+ state.bufferedRequestCount = 0;
27067
27193
  } else {
27068
27194
  // Slow case, write chunks one-by-one
27069
27195
  while (entry) {
@@ -27074,6 +27200,7 @@ function clearBuffer(stream, state) {
27074
27200
 
27075
27201
  doWrite(stream, state, false, len, chunk, encoding, cb);
27076
27202
  entry = entry.next;
27203
+ state.bufferedRequestCount--;
27077
27204
  // if we didn't call the onwrite immediately, then
27078
27205
  // it means that we need to wait until it does.
27079
27206
  // also, that means that the chunk and cb are currently
@@ -27086,7 +27213,6 @@ function clearBuffer(stream, state) {
27086
27213
  if (entry === null) state.lastBufferedRequest = null;
27087
27214
  }
27088
27215
 
27089
- state.bufferedRequestCount = 0;
27090
27216
  state.bufferedRequest = entry;
27091
27217
  state.bufferProcessing = false;
27092
27218
  }
@@ -27124,23 +27250,37 @@ Writable.prototype.end = function (chunk, encoding, cb) {
27124
27250
  function needFinish(state) {
27125
27251
  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
27126
27252
  }
27127
-
27128
- function prefinish(stream, state) {
27129
- if (!state.prefinished) {
27253
+ function callFinal(stream, state) {
27254
+ stream._final(function (err) {
27255
+ state.pendingcb--;
27256
+ if (err) {
27257
+ stream.emit('error', err);
27258
+ }
27130
27259
  state.prefinished = true;
27131
27260
  stream.emit('prefinish');
27261
+ finishMaybe(stream, state);
27262
+ });
27263
+ }
27264
+ function prefinish(stream, state) {
27265
+ if (!state.prefinished && !state.finalCalled) {
27266
+ if (typeof stream._final === 'function') {
27267
+ state.pendingcb++;
27268
+ state.finalCalled = true;
27269
+ pna.nextTick(callFinal, stream, state);
27270
+ } else {
27271
+ state.prefinished = true;
27272
+ stream.emit('prefinish');
27273
+ }
27132
27274
  }
27133
27275
  }
27134
27276
 
27135
27277
  function finishMaybe(stream, state) {
27136
27278
  var need = needFinish(state);
27137
27279
  if (need) {
27280
+ prefinish(stream, state);
27138
27281
  if (state.pendingcb === 0) {
27139
- prefinish(stream, state);
27140
27282
  state.finished = true;
27141
27283
  stream.emit('finish');
27142
- } else {
27143
- prefinish(stream, state);
27144
27284
  }
27145
27285
  }
27146
27286
  return need;
@@ -27150,36 +27290,55 @@ function endWritable(stream, state, cb) {
27150
27290
  state.ending = true;
27151
27291
  finishMaybe(stream, state);
27152
27292
  if (cb) {
27153
- if (state.finished) processNextTick(cb);else stream.once('finish', cb);
27293
+ if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);
27154
27294
  }
27155
27295
  state.ended = true;
27156
27296
  stream.writable = false;
27157
27297
  }
27158
27298
 
27159
- // It seems a linked list but it is not
27160
- // there will be only 2 of these for each stream
27161
- function CorkedRequest(state) {
27162
- var _this = this;
27299
+ function onCorkedFinish(corkReq, state, err) {
27300
+ var entry = corkReq.entry;
27301
+ corkReq.entry = null;
27302
+ while (entry) {
27303
+ var cb = entry.callback;
27304
+ state.pendingcb--;
27305
+ cb(err);
27306
+ entry = entry.next;
27307
+ }
27308
+ if (state.corkedRequestsFree) {
27309
+ state.corkedRequestsFree.next = corkReq;
27310
+ } else {
27311
+ state.corkedRequestsFree = corkReq;
27312
+ }
27313
+ }
27163
27314
 
27164
- this.next = null;
27165
- this.entry = null;
27166
- this.finish = function (err) {
27167
- var entry = _this.entry;
27168
- _this.entry = null;
27169
- while (entry) {
27170
- var cb = entry.callback;
27171
- state.pendingcb--;
27172
- cb(err);
27173
- entry = entry.next;
27315
+ Object.defineProperty(Writable.prototype, 'destroyed', {
27316
+ get: function () {
27317
+ if (this._writableState === undefined) {
27318
+ return false;
27174
27319
  }
27175
- if (state.corkedRequestsFree) {
27176
- state.corkedRequestsFree.next = _this;
27177
- } else {
27178
- state.corkedRequestsFree = _this;
27320
+ return this._writableState.destroyed;
27321
+ },
27322
+ set: function (value) {
27323
+ // we ignore the value if the stream
27324
+ // has not been initialized yet
27325
+ if (!this._writableState) {
27326
+ return;
27179
27327
  }
27180
- };
27181
- }
27182
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../timers-browserify/main.js */ "./node_modules/timers-browserify/main.js").setImmediate))
27328
+
27329
+ // backward compatibility, the user is explicitly
27330
+ // managing destroyed
27331
+ this._writableState.destroyed = value;
27332
+ }
27333
+ });
27334
+
27335
+ Writable.prototype.destroy = destroyImpl.destroy;
27336
+ Writable.prototype._undestroy = destroyImpl.undestroy;
27337
+ Writable.prototype._destroy = function (err, cb) {
27338
+ this.end();
27339
+ cb(err);
27340
+ };
27341
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../timers-browserify/main.js */ "./node_modules/timers-browserify/main.js").setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
27183
27342
 
27184
27343
  /***/ }),
27185
27344
 
@@ -27193,67 +27352,167 @@ function CorkedRequest(state) {
27193
27352
  "use strict";
27194
27353
 
27195
27354
 
27196
- var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer;
27355
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27356
+
27357
+ var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer;
27358
+ var util = __webpack_require__(/*! util */ 2);
27359
+
27360
+ function copyBuffer(src, target, offset) {
27361
+ src.copy(target, offset);
27362
+ }
27363
+
27364
+ module.exports = function () {
27365
+ function BufferList() {
27366
+ _classCallCheck(this, BufferList);
27367
+
27368
+ this.head = null;
27369
+ this.tail = null;
27370
+ this.length = 0;
27371
+ }
27372
+
27373
+ BufferList.prototype.push = function push(v) {
27374
+ var entry = { data: v, next: null };
27375
+ if (this.length > 0) this.tail.next = entry;else this.head = entry;
27376
+ this.tail = entry;
27377
+ ++this.length;
27378
+ };
27379
+
27380
+ BufferList.prototype.unshift = function unshift(v) {
27381
+ var entry = { data: v, next: this.head };
27382
+ if (this.length === 0) this.tail = entry;
27383
+ this.head = entry;
27384
+ ++this.length;
27385
+ };
27386
+
27387
+ BufferList.prototype.shift = function shift() {
27388
+ if (this.length === 0) return;
27389
+ var ret = this.head.data;
27390
+ if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
27391
+ --this.length;
27392
+ return ret;
27393
+ };
27394
+
27395
+ BufferList.prototype.clear = function clear() {
27396
+ this.head = this.tail = null;
27397
+ this.length = 0;
27398
+ };
27399
+
27400
+ BufferList.prototype.join = function join(s) {
27401
+ if (this.length === 0) return '';
27402
+ var p = this.head;
27403
+ var ret = '' + p.data;
27404
+ while (p = p.next) {
27405
+ ret += s + p.data;
27406
+ }return ret;
27407
+ };
27408
+
27409
+ BufferList.prototype.concat = function concat(n) {
27410
+ if (this.length === 0) return Buffer.alloc(0);
27411
+ if (this.length === 1) return this.head.data;
27412
+ var ret = Buffer.allocUnsafe(n >>> 0);
27413
+ var p = this.head;
27414
+ var i = 0;
27415
+ while (p) {
27416
+ copyBuffer(p.data, ret, i);
27417
+ i += p.data.length;
27418
+ p = p.next;
27419
+ }
27420
+ return ret;
27421
+ };
27422
+
27423
+ return BufferList;
27424
+ }();
27425
+
27426
+ if (util && util.inspect && util.inspect.custom) {
27427
+ module.exports.prototype[util.inspect.custom] = function () {
27428
+ var obj = util.inspect({ length: this.length });
27429
+ return this.constructor.name + ' ' + obj;
27430
+ };
27431
+ }
27432
+
27433
+ /***/ }),
27434
+
27435
+ /***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js":
27436
+ /*!**********************************************************************!*\
27437
+ !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***!
27438
+ \**********************************************************************/
27439
+ /*! no static exports found */
27440
+ /***/ (function(module, exports, __webpack_require__) {
27441
+
27442
+ "use strict";
27443
+
27444
+
27197
27445
  /*<replacement>*/
27198
- var bufferShim = __webpack_require__(/*! buffer-shims */ "./node_modules/buffer-shims/index.js");
27446
+
27447
+ var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/readable-stream/node_modules/process-nextick-args/index.js");
27199
27448
  /*</replacement>*/
27200
27449
 
27201
- module.exports = BufferList;
27450
+ // undocumented cb() API, needed for core, not for public API
27451
+ function destroy(err, cb) {
27452
+ var _this = this;
27202
27453
 
27203
- function BufferList() {
27204
- this.head = null;
27205
- this.tail = null;
27206
- this.length = 0;
27207
- }
27454
+ var readableDestroyed = this._readableState && this._readableState.destroyed;
27455
+ var writableDestroyed = this._writableState && this._writableState.destroyed;
27208
27456
 
27209
- BufferList.prototype.push = function (v) {
27210
- var entry = { data: v, next: null };
27211
- if (this.length > 0) this.tail.next = entry;else this.head = entry;
27212
- this.tail = entry;
27213
- ++this.length;
27214
- };
27457
+ if (readableDestroyed || writableDestroyed) {
27458
+ if (cb) {
27459
+ cb(err);
27460
+ } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
27461
+ pna.nextTick(emitErrorNT, this, err);
27462
+ }
27463
+ return this;
27464
+ }
27215
27465
 
27216
- BufferList.prototype.unshift = function (v) {
27217
- var entry = { data: v, next: this.head };
27218
- if (this.length === 0) this.tail = entry;
27219
- this.head = entry;
27220
- ++this.length;
27221
- };
27466
+ // we set destroyed to true before firing error callbacks in order
27467
+ // to make it re-entrance safe in case destroy() is called within callbacks
27222
27468
 
27223
- BufferList.prototype.shift = function () {
27224
- if (this.length === 0) return;
27225
- var ret = this.head.data;
27226
- if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
27227
- --this.length;
27228
- return ret;
27229
- };
27469
+ if (this._readableState) {
27470
+ this._readableState.destroyed = true;
27471
+ }
27230
27472
 
27231
- BufferList.prototype.clear = function () {
27232
- this.head = this.tail = null;
27233
- this.length = 0;
27234
- };
27473
+ // if this is a duplex stream mark the writable part as destroyed as well
27474
+ if (this._writableState) {
27475
+ this._writableState.destroyed = true;
27476
+ }
27235
27477
 
27236
- BufferList.prototype.join = function (s) {
27237
- if (this.length === 0) return '';
27238
- var p = this.head;
27239
- var ret = '' + p.data;
27240
- while (p = p.next) {
27241
- ret += s + p.data;
27242
- }return ret;
27243
- };
27478
+ this._destroy(err || null, function (err) {
27479
+ if (!cb && err) {
27480
+ pna.nextTick(emitErrorNT, _this, err);
27481
+ if (_this._writableState) {
27482
+ _this._writableState.errorEmitted = true;
27483
+ }
27484
+ } else if (cb) {
27485
+ cb(err);
27486
+ }
27487
+ });
27244
27488
 
27245
- BufferList.prototype.concat = function (n) {
27246
- if (this.length === 0) return bufferShim.alloc(0);
27247
- if (this.length === 1) return this.head.data;
27248
- var ret = bufferShim.allocUnsafe(n >>> 0);
27249
- var p = this.head;
27250
- var i = 0;
27251
- while (p) {
27252
- p.data.copy(ret, i);
27253
- i += p.data.length;
27254
- p = p.next;
27489
+ return this;
27490
+ }
27491
+
27492
+ function undestroy() {
27493
+ if (this._readableState) {
27494
+ this._readableState.destroyed = false;
27495
+ this._readableState.reading = false;
27496
+ this._readableState.ended = false;
27497
+ this._readableState.endEmitted = false;
27255
27498
  }
27256
- return ret;
27499
+
27500
+ if (this._writableState) {
27501
+ this._writableState.destroyed = false;
27502
+ this._writableState.ended = false;
27503
+ this._writableState.ending = false;
27504
+ this._writableState.finished = false;
27505
+ this._writableState.errorEmitted = false;
27506
+ }
27507
+ }
27508
+
27509
+ function emitErrorNT(self, err) {
27510
+ self.emit('error', err);
27511
+ }
27512
+
27513
+ module.exports = {
27514
+ destroy: destroy,
27515
+ undestroy: undestroy
27257
27516
  };
27258
27517
 
27259
27518
  /***/ }),
@@ -27268,6 +27527,64 @@ BufferList.prototype.concat = function (n) {
27268
27527
  module.exports = __webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter;
27269
27528
 
27270
27529
 
27530
+ /***/ }),
27531
+
27532
+ /***/ "./node_modules/readable-stream/node_modules/process-nextick-args/index.js":
27533
+ /*!*********************************************************************************!*\
27534
+ !*** ./node_modules/readable-stream/node_modules/process-nextick-args/index.js ***!
27535
+ \*********************************************************************************/
27536
+ /*! no static exports found */
27537
+ /***/ (function(module, exports, __webpack_require__) {
27538
+
27539
+ "use strict";
27540
+ /* WEBPACK VAR INJECTION */(function(process) {
27541
+
27542
+ if (typeof process === 'undefined' ||
27543
+ !process.version ||
27544
+ process.version.indexOf('v0.') === 0 ||
27545
+ process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
27546
+ module.exports = { nextTick: nextTick };
27547
+ } else {
27548
+ module.exports = process
27549
+ }
27550
+
27551
+ function nextTick(fn, arg1, arg2, arg3) {
27552
+ if (typeof fn !== 'function') {
27553
+ throw new TypeError('"callback" argument must be a function');
27554
+ }
27555
+ var len = arguments.length;
27556
+ var args, i;
27557
+ switch (len) {
27558
+ case 0:
27559
+ case 1:
27560
+ return process.nextTick(fn);
27561
+ case 2:
27562
+ return process.nextTick(function afterTickOne() {
27563
+ fn.call(null, arg1);
27564
+ });
27565
+ case 3:
27566
+ return process.nextTick(function afterTickTwo() {
27567
+ fn.call(null, arg1, arg2);
27568
+ });
27569
+ case 4:
27570
+ return process.nextTick(function afterTickThree() {
27571
+ fn.call(null, arg1, arg2, arg3);
27572
+ });
27573
+ default:
27574
+ args = new Array(len - 1);
27575
+ i = 0;
27576
+ while (i < args.length) {
27577
+ args[i++] = arguments[i];
27578
+ }
27579
+ return process.nextTick(function afterTick() {
27580
+ fn.apply(null, args);
27581
+ });
27582
+ }
27583
+ }
27584
+
27585
+
27586
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ "./node_modules/process/browser.js")))
27587
+
27271
27588
  /***/ }),
27272
27589
 
27273
27590
  /***/ "./node_modules/readable-stream/passthrough.js":
@@ -27322,6 +27639,79 @@ module.exports = __webpack_require__(/*! ./readable */ "./node_modules/readable-
27322
27639
  module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ "./node_modules/readable-stream/lib/_stream_writable.js");
27323
27640
 
27324
27641
 
27642
+ /***/ }),
27643
+
27644
+ /***/ "./node_modules/safe-buffer/index.js":
27645
+ /*!*******************************************!*\
27646
+ !*** ./node_modules/safe-buffer/index.js ***!
27647
+ \*******************************************/
27648
+ /*! no static exports found */
27649
+ /***/ (function(module, exports, __webpack_require__) {
27650
+
27651
+ /* eslint-disable node/no-deprecated-api */
27652
+ var buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js")
27653
+ var Buffer = buffer.Buffer
27654
+
27655
+ // alternative to using Object.keys for old browsers
27656
+ function copyProps (src, dst) {
27657
+ for (var key in src) {
27658
+ dst[key] = src[key]
27659
+ }
27660
+ }
27661
+ if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
27662
+ module.exports = buffer
27663
+ } else {
27664
+ // Copy properties from require('buffer')
27665
+ copyProps(buffer, exports)
27666
+ exports.Buffer = SafeBuffer
27667
+ }
27668
+
27669
+ function SafeBuffer (arg, encodingOrOffset, length) {
27670
+ return Buffer(arg, encodingOrOffset, length)
27671
+ }
27672
+
27673
+ // Copy static methods from Buffer
27674
+ copyProps(Buffer, SafeBuffer)
27675
+
27676
+ SafeBuffer.from = function (arg, encodingOrOffset, length) {
27677
+ if (typeof arg === 'number') {
27678
+ throw new TypeError('Argument must not be a number')
27679
+ }
27680
+ return Buffer(arg, encodingOrOffset, length)
27681
+ }
27682
+
27683
+ SafeBuffer.alloc = function (size, fill, encoding) {
27684
+ if (typeof size !== 'number') {
27685
+ throw new TypeError('Argument must be a number')
27686
+ }
27687
+ var buf = Buffer(size)
27688
+ if (fill !== undefined) {
27689
+ if (typeof encoding === 'string') {
27690
+ buf.fill(fill, encoding)
27691
+ } else {
27692
+ buf.fill(fill)
27693
+ }
27694
+ } else {
27695
+ buf.fill(0)
27696
+ }
27697
+ return buf
27698
+ }
27699
+
27700
+ SafeBuffer.allocUnsafe = function (size) {
27701
+ if (typeof size !== 'number') {
27702
+ throw new TypeError('Argument must be a number')
27703
+ }
27704
+ return Buffer(size)
27705
+ }
27706
+
27707
+ SafeBuffer.allocUnsafeSlow = function (size) {
27708
+ if (typeof size !== 'number') {
27709
+ throw new TypeError('Argument must be a number')
27710
+ }
27711
+ return buffer.SlowBuffer(size)
27712
+ }
27713
+
27714
+
27325
27715
  /***/ }),
27326
27716
 
27327
27717
  /***/ "./node_modules/scratch-parser/index.js":
@@ -44275,10 +44665,33 @@ Stream.prototype.pipe = function(dest, options) {
44275
44665
  /***/ (function(module, exports, __webpack_require__) {
44276
44666
 
44277
44667
  "use strict";
44668
+ // Copyright Joyent, Inc. and other Node contributors.
44669
+ //
44670
+ // Permission is hereby granted, free of charge, to any person obtaining a
44671
+ // copy of this software and associated documentation files (the
44672
+ // "Software"), to deal in the Software without restriction, including
44673
+ // without limitation the rights to use, copy, modify, merge, publish,
44674
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
44675
+ // persons to whom the Software is furnished to do so, subject to the
44676
+ // following conditions:
44677
+ //
44678
+ // The above copyright notice and this permission notice shall be included
44679
+ // in all copies or substantial portions of the Software.
44680
+ //
44681
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
44682
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
44683
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
44684
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
44685
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
44686
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
44687
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
44278
44688
 
44279
44689
 
44280
- var Buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js").Buffer;
44281
- var bufferShim = __webpack_require__(/*! buffer-shims */ "./node_modules/buffer-shims/index.js");
44690
+
44691
+ /*<replacement>*/
44692
+
44693
+ var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer;
44694
+ /*</replacement>*/
44282
44695
 
44283
44696
  var isEncoding = Buffer.isEncoding || function (encoding) {
44284
44697
  encoding = '' + encoding;
@@ -44355,7 +44768,7 @@ function StringDecoder(encoding) {
44355
44768
  }
44356
44769
  this.lastNeed = 0;
44357
44770
  this.lastTotal = 0;
44358
- this.lastChar = bufferShim.allocUnsafe(nb);
44771
+ this.lastChar = Buffer.allocUnsafe(nb);
44359
44772
  }
44360
44773
 
44361
44774
  StringDecoder.prototype.write = function (buf) {
@@ -44390,10 +44803,10 @@ StringDecoder.prototype.fillLast = function (buf) {
44390
44803
  };
44391
44804
 
44392
44805
  // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
44393
- // continuation byte.
44806
+ // continuation byte. If an invalid byte is detected, -2 is returned.
44394
44807
  function utf8CheckByte(byte) {
44395
44808
  if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
44396
- return -1;
44809
+ return byte >> 6 === 0x02 ? -1 : -2;
44397
44810
  }
44398
44811
 
44399
44812
  // Checks at most 3 bytes at the end of a Buffer in order to detect an
@@ -44407,13 +44820,13 @@ function utf8CheckIncomplete(self, buf, i) {
44407
44820
  if (nb > 0) self.lastNeed = nb - 1;
44408
44821
  return nb;
44409
44822
  }
44410
- if (--j < i) return 0;
44823
+ if (--j < i || nb === -2) return 0;
44411
44824
  nb = utf8CheckByte(buf[j]);
44412
44825
  if (nb >= 0) {
44413
44826
  if (nb > 0) self.lastNeed = nb - 2;
44414
44827
  return nb;
44415
44828
  }
44416
- if (--j < i) return 0;
44829
+ if (--j < i || nb === -2) return 0;
44417
44830
  nb = utf8CheckByte(buf[j]);
44418
44831
  if (nb >= 0) {
44419
44832
  if (nb > 0) {
@@ -44427,7 +44840,7 @@ function utf8CheckIncomplete(self, buf, i) {
44427
44840
  // Validates as many continuation bytes for a multi-byte UTF-8 character as
44428
44841
  // needed or are available. If we see a non-continuation byte where we expect
44429
44842
  // one, we "replace" the validated continuation bytes we've seen so far with
44430
- // UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding
44843
+ // a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding
44431
44844
  // behavior. The continuation byte check is included three times in the case
44432
44845
  // where all of the continuation bytes for a character exist in the same buffer.
44433
44846
  // It is also done this way as a slight performance increase instead of using a
@@ -44435,17 +44848,17 @@ function utf8CheckIncomplete(self, buf, i) {
44435
44848
  function utf8CheckExtraBytes(self, buf, p) {
44436
44849
  if ((buf[0] & 0xC0) !== 0x80) {
44437
44850
  self.lastNeed = 0;
44438
- return '\ufffd'.repeat(p);
44851
+ return '\ufffd';
44439
44852
  }
44440
44853
  if (self.lastNeed > 1 && buf.length > 1) {
44441
44854
  if ((buf[1] & 0xC0) !== 0x80) {
44442
44855
  self.lastNeed = 1;
44443
- return '\ufffd'.repeat(p + 1);
44856
+ return '\ufffd';
44444
44857
  }
44445
44858
  if (self.lastNeed > 2 && buf.length > 2) {
44446
44859
  if ((buf[2] & 0xC0) !== 0x80) {
44447
44860
  self.lastNeed = 2;
44448
- return '\ufffd'.repeat(p + 2);
44861
+ return '\ufffd';
44449
44862
  }
44450
44863
  }
44451
44864
  }
@@ -44476,11 +44889,11 @@ function utf8Text(buf, i) {
44476
44889
  return buf.toString('utf8', i, end);
44477
44890
  }
44478
44891
 
44479
- // For UTF-8, a replacement character for each buffered byte of a (partial)
44480
- // character needs to be added to the output.
44892
+ // For UTF-8, a replacement character is added when ending on a partial
44893
+ // character.
44481
44894
  function utf8End(buf) {
44482
44895
  var r = buf && buf.length ? this.write(buf) : '';
44483
- if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
44896
+ if (this.lastNeed) return r + '\ufffd';
44484
44897
  return r;
44485
44898
  }
44486
44899
 
@@ -48987,7 +49400,7 @@ module.exports = function() {
48987
49400
  /*! exports provided: name, version, description, author, license, homepage, repository, main, browser, scripts, config, tap, dependencies, peerDependencies, devDependencies, default */
48988
49401
  /***/ (function(module) {
48989
49402
 
48990
- module.exports = JSON.parse("{\"name\":\"scratch-vm\",\"version\":\"1.2.22\",\"description\":\"Virtual Machine for Scratch 3.0\",\"author\":\"Massachusetts Institute of Technology\",\"license\":\"BSD-3-Clause\",\"homepage\":\"https://github.com/LLK/scratch-vm#readme\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/LLK/scratch-vm.git\",\"sha\":\"4c58d01e1df49f96ce9bc9aa48059c9b00067d6e\"},\"main\":\"./dist/node/scratch-vm.js\",\"browser\":\"./src/index.js\",\"scripts\":{\"build\":\"npm run docs && webpack --progress --colors --bail\",\"coverage\":\"tap ./test/{unit,integration}/*.js --coverage --coverage-report=lcov\",\"deploy\":\"touch playground/.nojekyll && gh-pages -t -d playground -m \\\"Build for $(git log -n1 --pretty=format:\\\"%h %s\\\") [skip ci]\\\"\",\"docs\":\"jsdoc -c .jsdoc.json\",\"i18n:src\":\"mkdirp translations/core && format-message extract --out-file translations/core/en.json src/extensions/**/index.js\",\"i18n:push\":\"tx-push-src scratch-editor extensions translations/core/en.json\",\"lint\":\"eslint . && format-message lint src/**/*.js\",\"prepare\":\"husky install\",\"prepublish\":\"in-publish && npm run build || not-in-publish\",\"start\":\"webpack-dev-server\",\"tap\":\"tap ./test/{unit,integration}/*.js\",\"tap:unit\":\"tap ./test/unit/*.js\",\"tap:integration\":\"tap ./test/integration/*.js\",\"test\":\"npm run lint && npm run tap\",\"watch\":\"webpack --progress --colors --watch\",\"version\":\"json -f package.json -I -e \\\"this.repository.sha = '$(git log -n1 --pretty=format:%H)'\\\"\"},\"config\":{\"commitizen\":{\"path\":\"cz-conventional-changelog\"}},\"tap\":{\"branches\":60,\"functions\":70,\"lines\":70,\"statements\":70},\"dependencies\":{\"@vernier/godirect\":\"1.5.0\",\"arraybuffer-loader\":\"^1.0.6\",\"atob\":\"2.1.2\",\"btoa\":\"1.2.1\",\"canvas-toBlob\":\"1.0.0\",\"decode-html\":\"2.0.0\",\"diff-match-patch\":\"1.0.4\",\"format-message\":\"6.2.1\",\"htmlparser2\":\"3.10.0\",\"immutable\":\"3.8.1\",\"jszip\":\"^3.1.5\",\"minilog\":\"3.1.0\",\"scratch-parser\":\"5.0.0\",\"scratch-sb1-converter\":\"0.2.7\",\"scratch-translate-extension-languages\":\"0.0.20191118205314\",\"text-encoding\":\"0.7.0\",\"worker-loader\":\"^1.1.1\"},\"peerDependencies\":{\"scratch-svg-renderer\":\"^0.2.0-prerelease\"},\"devDependencies\":{\"@babel/core\":\"7.13.10\",\"@babel/preset-env\":\"7.14.8\",\"@commitlint/cli\":\"17.0.2\",\"@commitlint/config-conventional\":\"17.0.2\",\"adm-zip\":\"0.4.11\",\"babel-eslint\":\"10.1.0\",\"babel-loader\":\"8.2.2\",\"callsite\":\"1.0.0\",\"copy-webpack-plugin\":\"4.5.4\",\"docdash\":\"1.2.0\",\"eslint\":\"5.3.0\",\"eslint-config-scratch\":\"5.1.0\",\"expose-loader\":\"0.7.5\",\"file-loader\":\"2.0.0\",\"format-message-cli\":\"6.2.0\",\"gh-pages\":\"1.2.0\",\"husky\":\"8.0.1\",\"in-publish\":\"2.0.1\",\"js-md5\":\"0.7.3\",\"jsdoc\":\"3.6.6\",\"json\":\"^9.0.4\",\"lodash.defaultsdeep\":\"4.6.1\",\"pngjs\":\"3.3.3\",\"scratch-audio\":\"0.1.0-prerelease.20200528195344\",\"scratch-blocks\":\"0.1.0-prerelease.20221001221414\",\"scratch-l10n\":\"3.15.20220927031631\",\"scratch-render\":\"0.1.0-prerelease.20211028200436\",\"scratch-render-fonts\":\"1.0.0-prerelease.20210401210003\",\"scratch-semantic-release-config\":\"1.0.4\",\"scratch-storage\":\"2.0.2\",\"scratch-svg-renderer\":\"0.2.0-prerelease.20210727023023\",\"script-loader\":\"0.7.2\",\"stats.js\":\"0.17.0\",\"tap\":\"16.2.0\",\"tiny-worker\":\"2.3.0\",\"uglifyjs-webpack-plugin\":\"1.2.7\",\"webpack\":\"4.46.0\",\"webpack-cli\":\"3.1.0\",\"webpack-dev-server\":\"3.11.2\"}}");
49403
+ module.exports = JSON.parse("{\"name\":\"scratch-vm\",\"version\":\"1.2.24\",\"description\":\"Virtual Machine for Scratch 3.0\",\"author\":\"Massachusetts Institute of Technology\",\"license\":\"BSD-3-Clause\",\"homepage\":\"https://github.com/LLK/scratch-vm#readme\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/LLK/scratch-vm.git\",\"sha\":\"72d90d6e86f4b5a053d87d32422e4ee4dc2b6e57\"},\"main\":\"./dist/node/scratch-vm.js\",\"browser\":\"./src/index.js\",\"scripts\":{\"build\":\"npm run docs && webpack --progress --colors --bail\",\"coverage\":\"tap ./test/{unit,integration}/*.js --coverage --coverage-report=lcov\",\"deploy\":\"touch playground/.nojekyll && gh-pages -t -d playground -m \\\"Build for $(git log -n1 --pretty=format:\\\"%h %s\\\") [skip ci]\\\"\",\"docs\":\"jsdoc -c .jsdoc.json\",\"i18n:src\":\"mkdirp translations/core && format-message extract --out-file translations/core/en.json src/extensions/**/index.js\",\"i18n:push\":\"tx-push-src scratch-editor extensions translations/core/en.json\",\"lint\":\"eslint . && format-message lint src/**/*.js\",\"prepare\":\"husky install\",\"prepublish\":\"in-publish && npm run build || not-in-publish\",\"start\":\"webpack-dev-server\",\"tap\":\"tap ./test/{unit,integration}/*.js\",\"tap:unit\":\"tap ./test/unit/*.js\",\"tap:integration\":\"tap ./test/integration/*.js\",\"test\":\"npm run lint && npm run tap\",\"watch\":\"webpack --progress --colors --watch\",\"version\":\"json -f package.json -I -e \\\"this.repository.sha = '$(git log -n1 --pretty=format:%H)'\\\"\"},\"config\":{\"commitizen\":{\"path\":\"cz-conventional-changelog\"}},\"tap\":{\"branches\":60,\"functions\":70,\"lines\":70,\"statements\":70},\"dependencies\":{\"@vernier/godirect\":\"1.5.0\",\"arraybuffer-loader\":\"^1.0.6\",\"atob\":\"2.1.2\",\"btoa\":\"1.2.1\",\"canvas-toBlob\":\"1.0.0\",\"decode-html\":\"2.0.0\",\"diff-match-patch\":\"1.0.4\",\"format-message\":\"6.2.1\",\"htmlparser2\":\"3.10.0\",\"immutable\":\"3.8.1\",\"jszip\":\"^3.1.5\",\"minilog\":\"3.1.0\",\"scratch-parser\":\"5.0.0\",\"scratch-sb1-converter\":\"0.2.7\",\"scratch-translate-extension-languages\":\"0.0.20191118205314\",\"text-encoding\":\"0.7.0\",\"worker-loader\":\"^1.1.1\"},\"peerDependencies\":{\"scratch-svg-renderer\":\"^0.2.0-prerelease\"},\"devDependencies\":{\"@babel/core\":\"7.13.10\",\"@babel/preset-env\":\"7.14.8\",\"@commitlint/cli\":\"17.0.2\",\"@commitlint/config-conventional\":\"17.0.2\",\"adm-zip\":\"0.4.11\",\"babel-eslint\":\"10.1.0\",\"babel-loader\":\"8.2.2\",\"callsite\":\"1.0.0\",\"copy-webpack-plugin\":\"4.5.4\",\"docdash\":\"1.2.0\",\"eslint\":\"5.3.0\",\"eslint-config-scratch\":\"5.1.0\",\"expose-loader\":\"0.7.5\",\"file-loader\":\"2.0.0\",\"format-message-cli\":\"6.2.0\",\"gh-pages\":\"1.2.0\",\"husky\":\"8.0.1\",\"in-publish\":\"2.0.1\",\"js-md5\":\"0.7.3\",\"jsdoc\":\"3.6.6\",\"json\":\"^9.0.4\",\"lodash.defaultsdeep\":\"4.6.1\",\"pngjs\":\"3.3.3\",\"scratch-audio\":\"0.1.0-prerelease.20200528195344\",\"scratch-blocks\":\"0.1.0-prerelease.20221003201345\",\"scratch-l10n\":\"3.15.20221003143528\",\"scratch-render\":\"0.1.0-prerelease.20211028200436\",\"scratch-render-fonts\":\"1.0.0-prerelease.20210401210003\",\"scratch-semantic-release-config\":\"1.0.4\",\"scratch-storage\":\"2.0.2\",\"scratch-svg-renderer\":\"0.2.0-prerelease.20210727023023\",\"script-loader\":\"0.7.2\",\"stats.js\":\"0.17.0\",\"tap\":\"16.2.0\",\"tiny-worker\":\"2.3.0\",\"uglifyjs-webpack-plugin\":\"1.2.7\",\"webpack\":\"4.46.0\",\"webpack-cli\":\"3.1.0\",\"webpack-dev-server\":\"3.11.2\"}}");
48991
49404
 
48992
49405
  /***/ }),
48993
49406
 
@@ -87218,6 +87631,17 @@ module.exports = VirtualMachine;
87218
87631
 
87219
87632
  /* (ignored) */
87220
87633
 
87634
+ /***/ }),
87635
+
87636
+ /***/ 2:
87637
+ /*!**********************!*\
87638
+ !*** util (ignored) ***!
87639
+ \**********************/
87640
+ /*! no static exports found */
87641
+ /***/ (function(module, exports) {
87642
+
87643
+ /* (ignored) */
87644
+
87221
87645
  /***/ })
87222
87646
 
87223
87647
  /******/ });