@loaders.gl/polyfills 3.1.0-beta.4 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/index.js +11 -9
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/encoding.js +20 -14
- package/dist/es5/lib/encoding.js.map +1 -1
- package/dist/es5/node/buffer/to-array-buffer.node.js +1 -1
- package/dist/es5/node/buffer/to-array-buffer.node.js.map +1 -1
- package/dist/es5/node/fetch/fetch.node.js +103 -61
- package/dist/es5/node/fetch/fetch.node.js.map +1 -1
- package/dist/es5/node/fetch/headers.node.js +112 -73
- package/dist/es5/node/fetch/headers.node.js.map +1 -1
- package/dist/es5/node/fetch/response.node.js +182 -47
- package/dist/es5/node/fetch/response.node.js.map +1 -1
- package/dist/es5/node/fetch/utils/decode-data-uri.node.js +18 -12
- package/dist/es5/node/fetch/utils/decode-data-uri.node.js.map +1 -1
- package/dist/es5/node/fetch/utils/stream-utils.node.js +156 -50
- package/dist/es5/node/fetch/utils/stream-utils.node.js.map +1 -1
- package/dist/es5/node/file/blob-stream-controller.js +82 -37
- package/dist/es5/node/file/blob-stream-controller.js.map +1 -1
- package/dist/es5/node/file/blob-stream.js +67 -12
- package/dist/es5/node/file/blob-stream.js.map +1 -1
- package/dist/es5/node/file/blob.js +209 -100
- package/dist/es5/node/file/blob.js.map +1 -1
- package/dist/es5/node/file/file-reader.js +147 -40
- package/dist/es5/node/file/file-reader.js.map +1 -1
- package/dist/es5/node/file/file.js +41 -13
- package/dist/es5/node/file/file.js.map +1 -1
- package/dist/es5/node/file/readable-stream.js +26 -1
- package/dist/es5/node/file/readable-stream.js.map +1 -1
- package/dist/es5/node/images/encode-image.node.js +10 -8
- package/dist/es5/node/images/encode-image.node.js.map +1 -1
- package/dist/es5/node/images/parse-image.node.js +44 -17
- package/dist/es5/node/images/parse-image.node.js.map +1 -1
- package/dist/es5/promise/all-settled.js +7 -7
- package/dist/es5/promise/all-settled.js.map +1 -1
- package/dist/es5/utils/globals.js +8 -3
- package/dist/es5/utils/globals.js.map +1 -1
- package/dist/esm/node/fetch/utils/decode-data-uri.node.js +1 -3
- package/dist/esm/node/fetch/utils/decode-data-uri.node.js.map +1 -1
- package/dist/esm/node/fetch/utils/stream-utils.node.js +21 -12
- package/dist/esm/node/fetch/utils/stream-utils.node.js.map +1 -1
- package/dist/node/fetch/utils/decode-data-uri.node.d.ts +4 -4
- package/dist/node/fetch/utils/decode-data-uri.node.d.ts.map +1 -1
- package/dist/node/fetch/utils/decode-data-uri.node.js +4 -2
- package/dist/node/fetch/utils/stream-utils.node.d.ts +8 -2
- package/dist/node/fetch/utils/stream-utils.node.d.ts.map +1 -1
- package/dist/node/fetch/utils/stream-utils.node.js +31 -13
- package/package.json +2 -2
- package/src/node/fetch/utils/decode-data-uri.node.ts +7 -6
- package/src/node/fetch/utils/stream-utils.node.ts +38 -15
|
@@ -7,144 +7,253 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.BlobPolyfill = void 0;
|
|
9
9
|
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
+
|
|
16
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
+
|
|
18
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
|
+
|
|
10
20
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
21
|
|
|
12
22
|
var _blobStream = require("./blob-stream");
|
|
13
23
|
|
|
14
|
-
|
|
24
|
+
var _Symbol$toStringTag;
|
|
25
|
+
|
|
26
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
27
|
+
|
|
28
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
29
|
+
|
|
30
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
15
31
|
|
|
16
32
|
_Symbol$toStringTag = Symbol.toStringTag;
|
|
17
33
|
|
|
18
|
-
|
|
19
|
-
|
|
34
|
+
var BlobPolyfill = function () {
|
|
35
|
+
function BlobPolyfill() {
|
|
36
|
+
var init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
37
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
38
|
+
(0, _classCallCheck2.default)(this, BlobPolyfill);
|
|
20
39
|
(0, _defineProperty2.default)(this, "type", void 0);
|
|
21
40
|
(0, _defineProperty2.default)(this, "size", void 0);
|
|
22
41
|
(0, _defineProperty2.default)(this, "parts", void 0);
|
|
23
42
|
this.parts = [];
|
|
24
43
|
this.size = 0;
|
|
25
44
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
var _iterator = _createForOfIteratorHelper(init),
|
|
46
|
+
_step;
|
|
47
|
+
|
|
48
|
+
try {
|
|
49
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
50
|
+
var part = _step.value;
|
|
51
|
+
|
|
52
|
+
if (typeof part === 'string') {
|
|
53
|
+
var bytes = new TextEncoder().encode(part);
|
|
54
|
+
this.parts.push(bytes);
|
|
55
|
+
this.size += bytes.byteLength;
|
|
56
|
+
} else if (part instanceof BlobPolyfill) {
|
|
57
|
+
var _this$parts;
|
|
58
|
+
|
|
59
|
+
this.size += part.size;
|
|
60
|
+
|
|
61
|
+
(_this$parts = this.parts).push.apply(_this$parts, (0, _toConsumableArray2.default)(part.parts));
|
|
62
|
+
} else if (part instanceof ArrayBuffer) {
|
|
63
|
+
this.parts.push(new Uint8Array(part));
|
|
64
|
+
this.size += part.byteLength;
|
|
65
|
+
} else if (part instanceof Uint8Array) {
|
|
66
|
+
this.parts.push(part);
|
|
67
|
+
this.size += part.byteLength;
|
|
68
|
+
} else if (ArrayBuffer.isView(part)) {
|
|
69
|
+
var buffer = part.buffer,
|
|
70
|
+
byteOffset = part.byteOffset,
|
|
71
|
+
byteLength = part.byteLength;
|
|
72
|
+
this.parts.push(new Uint8Array(buffer, byteOffset, byteLength));
|
|
73
|
+
this.size += byteLength;
|
|
74
|
+
} else {
|
|
75
|
+
var _bytes = new TextEncoder().encode(String(part));
|
|
76
|
+
|
|
77
|
+
this.parts.push(_bytes);
|
|
78
|
+
this.size += _bytes.byteLength;
|
|
79
|
+
}
|
|
52
80
|
}
|
|
81
|
+
} catch (err) {
|
|
82
|
+
_iterator.e(err);
|
|
83
|
+
} finally {
|
|
84
|
+
_iterator.f();
|
|
53
85
|
}
|
|
54
86
|
|
|
55
87
|
this.type = readType(options.type);
|
|
56
88
|
}
|
|
57
89
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
90
|
+
(0, _createClass2.default)(BlobPolyfill, [{
|
|
91
|
+
key: "slice",
|
|
92
|
+
value: function slice() {
|
|
93
|
+
var start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
94
|
+
var end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.size;
|
|
95
|
+
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
96
|
+
var size = this.size,
|
|
97
|
+
parts = this.parts;
|
|
98
|
+
var offset = start < 0 ? Math.max(size + start, 0) : Math.min(start, size);
|
|
99
|
+
var limit = end < 0 ? Math.max(size + end, 0) : Math.min(end, size);
|
|
100
|
+
var span = Math.max(limit - offset, 0);
|
|
101
|
+
var blob = new BlobPolyfill([], {
|
|
102
|
+
type: type
|
|
103
|
+
});
|
|
73
104
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
for (const part of parts) {
|
|
78
|
-
const {
|
|
79
|
-
byteLength
|
|
80
|
-
} = part;
|
|
81
|
-
|
|
82
|
-
if (offset > 0 && byteLength <= offset) {
|
|
83
|
-
offset -= byteLength;
|
|
84
|
-
limit -= byteLength;
|
|
85
|
-
} else {
|
|
86
|
-
const chunk = part.subarray(offset, Math.min(byteLength, limit));
|
|
87
|
-
blobParts.push(chunk);
|
|
88
|
-
blobSize += chunk.byteLength;
|
|
89
|
-
offset = 0;
|
|
90
|
-
|
|
91
|
-
if (blobSize >= span) {
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
105
|
+
if (span === 0) {
|
|
106
|
+
return blob;
|
|
94
107
|
}
|
|
95
|
-
}
|
|
96
108
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return blob;
|
|
100
|
-
}
|
|
109
|
+
var blobSize = 0;
|
|
110
|
+
var blobParts = [];
|
|
101
111
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
112
|
+
var _iterator2 = _createForOfIteratorHelper(parts),
|
|
113
|
+
_step2;
|
|
114
|
+
|
|
115
|
+
try {
|
|
116
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
117
|
+
var part = _step2.value;
|
|
118
|
+
var byteLength = part.byteLength;
|
|
105
119
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
120
|
+
if (offset > 0 && byteLength <= offset) {
|
|
121
|
+
offset -= byteLength;
|
|
122
|
+
limit -= byteLength;
|
|
123
|
+
} else {
|
|
124
|
+
var chunk = part.subarray(offset, Math.min(byteLength, limit));
|
|
125
|
+
blobParts.push(chunk);
|
|
126
|
+
blobSize += chunk.byteLength;
|
|
127
|
+
offset = 0;
|
|
109
128
|
|
|
110
|
-
|
|
111
|
-
|
|
129
|
+
if (blobSize >= span) {
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
} catch (err) {
|
|
135
|
+
_iterator2.e(err);
|
|
136
|
+
} finally {
|
|
137
|
+
_iterator2.f();
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
blob.parts = blobParts;
|
|
141
|
+
blob.size = blobSize;
|
|
142
|
+
return blob;
|
|
112
143
|
}
|
|
144
|
+
}, {
|
|
145
|
+
key: "arrayBuffer",
|
|
146
|
+
value: function () {
|
|
147
|
+
var _arrayBuffer = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
|
|
148
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
149
|
+
while (1) {
|
|
150
|
+
switch (_context.prev = _context.next) {
|
|
151
|
+
case 0:
|
|
152
|
+
return _context.abrupt("return", this._toArrayBuffer());
|
|
113
153
|
|
|
114
|
-
|
|
115
|
-
|
|
154
|
+
case 1:
|
|
155
|
+
case "end":
|
|
156
|
+
return _context.stop();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}, _callee, this);
|
|
160
|
+
}));
|
|
116
161
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
162
|
+
function arrayBuffer() {
|
|
163
|
+
return _arrayBuffer.apply(this, arguments);
|
|
164
|
+
}
|
|
120
165
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
166
|
+
return arrayBuffer;
|
|
167
|
+
}()
|
|
168
|
+
}, {
|
|
169
|
+
key: "text",
|
|
170
|
+
value: function () {
|
|
171
|
+
var _text = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
|
|
172
|
+
var decoder, text, _iterator3, _step3, part;
|
|
124
173
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
174
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
175
|
+
while (1) {
|
|
176
|
+
switch (_context2.prev = _context2.next) {
|
|
177
|
+
case 0:
|
|
178
|
+
decoder = new TextDecoder();
|
|
179
|
+
text = '';
|
|
180
|
+
_iterator3 = _createForOfIteratorHelper(this.parts);
|
|
181
|
+
|
|
182
|
+
try {
|
|
183
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
184
|
+
part = _step3.value;
|
|
185
|
+
text += decoder.decode(part);
|
|
186
|
+
}
|
|
187
|
+
} catch (err) {
|
|
188
|
+
_iterator3.e(err);
|
|
189
|
+
} finally {
|
|
190
|
+
_iterator3.f();
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return _context2.abrupt("return", text);
|
|
128
194
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
195
|
+
case 5:
|
|
196
|
+
case "end":
|
|
197
|
+
return _context2.stop();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}, _callee2, this);
|
|
201
|
+
}));
|
|
133
202
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
203
|
+
function text() {
|
|
204
|
+
return _text.apply(this, arguments);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
return text;
|
|
208
|
+
}()
|
|
209
|
+
}, {
|
|
210
|
+
key: "stream",
|
|
211
|
+
value: function stream() {
|
|
212
|
+
return new _blobStream.BlobStream(this.parts);
|
|
213
|
+
}
|
|
214
|
+
}, {
|
|
215
|
+
key: "toString",
|
|
216
|
+
value: function toString() {
|
|
217
|
+
return '[object Blob]';
|
|
137
218
|
}
|
|
219
|
+
}, {
|
|
220
|
+
key: _Symbol$toStringTag,
|
|
221
|
+
get: function get() {
|
|
222
|
+
return 'Blob';
|
|
223
|
+
}
|
|
224
|
+
}, {
|
|
225
|
+
key: "_toArrayBuffer",
|
|
226
|
+
value: function _toArrayBuffer() {
|
|
227
|
+
var buffer = new ArrayBuffer(this.size);
|
|
228
|
+
var bytes = new Uint8Array(buffer);
|
|
229
|
+
var offset = 0;
|
|
138
230
|
|
|
139
|
-
|
|
140
|
-
|
|
231
|
+
var _iterator4 = _createForOfIteratorHelper(this.parts),
|
|
232
|
+
_step4;
|
|
141
233
|
|
|
142
|
-
|
|
234
|
+
try {
|
|
235
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
236
|
+
var part = _step4.value;
|
|
237
|
+
bytes.set(part, offset);
|
|
238
|
+
offset += part.byteLength;
|
|
239
|
+
}
|
|
240
|
+
} catch (err) {
|
|
241
|
+
_iterator4.e(err);
|
|
242
|
+
} finally {
|
|
243
|
+
_iterator4.f();
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
return buffer;
|
|
247
|
+
}
|
|
248
|
+
}]);
|
|
249
|
+
return BlobPolyfill;
|
|
250
|
+
}();
|
|
143
251
|
|
|
144
252
|
exports.BlobPolyfill = BlobPolyfill;
|
|
145
253
|
|
|
146
|
-
function readType(
|
|
147
|
-
|
|
254
|
+
function readType() {
|
|
255
|
+
var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
256
|
+
var type = String(input).toLowerCase();
|
|
148
257
|
return /[^\u0020-\u007E]/.test(type) ? '' : type;
|
|
149
258
|
}
|
|
150
259
|
//# sourceMappingURL=blob.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/node/file/blob.ts"],"names":["Symbol","toStringTag","BlobPolyfill","constructor","init","options","parts","size","part","bytes","TextEncoder","encode","push","byteLength","ArrayBuffer","Uint8Array","isView","buffer","byteOffset","String","type","readType","slice","start","end","offset","Math","max","min","limit","span","blob","blobSize","blobParts","chunk","subarray","arrayBuffer","_toArrayBuffer","text","decoder","TextDecoder","decode","stream","BlobStream","toString","set","input","toLowerCase","test"],"mappings":"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","sourcesContent":["// Forked from @gozala's web-blob under MIT license https://github.com/Gozala/web-blob\nimport {BlobStream} from './blob-stream';\n\n/**\n * Forked from @gozala's web-blob under MIT license\n * @see https://github.com/Gozala/web-blob\n */\nexport class BlobPolyfill {\n // implements Blob {\n /** The MIME type of the data contained in the Blob. If type is unknown, string is empty. */\n readonly type: string;\n /** The size, in bytes, of the data contained in the Blob object. */\n size: number;\n private parts: Uint8Array[];\n /**\n * @param [init]\n * @param [options]\n */\n constructor(init: BlobPart[] = [], options: BlobPropertyBag = {}) {\n this.parts = [];\n\n this.size = 0;\n for (const part of init) {\n if (typeof part === 'string') {\n const bytes = new TextEncoder().encode(part);\n this.parts.push(bytes);\n this.size += bytes.byteLength;\n } else if (part instanceof BlobPolyfill) {\n this.size += part.size;\n // @ts-ignore - `parts` is marked private so TS will complain about\n // accessing it.\n this.parts.push(...part.parts);\n } else if (part instanceof ArrayBuffer) {\n this.parts.push(new Uint8Array(part));\n this.size += part.byteLength;\n } else if (part instanceof Uint8Array) {\n this.parts.push(part);\n this.size += part.byteLength;\n } else if (ArrayBuffer.isView(part)) {\n const {buffer, byteOffset, byteLength} = part;\n this.parts.push(new Uint8Array(buffer, byteOffset, byteLength));\n this.size += byteLength;\n } else {\n const bytes = new TextEncoder().encode(String(part));\n this.parts.push(bytes);\n this.size += bytes.byteLength;\n }\n }\n\n /** @private */\n this.type = readType(options.type);\n }\n\n /**\n * Returns a new Blob object containing the data in the specified range of\n * bytes of the blob on which it's called.\n * @param start=0 - An index into the Blob indicating the first\n * byte to include in the new Blob. If you specify a negative value, it's\n * treated as an offset from the end of the Blob toward the beginning. For\n * example, `-10` would be the 10th from last byte in the Blob. The default\n * value is `0`. If you specify a value for start that is larger than the\n * size of the source Blob, the returned Blob has size 0 and contains no\n * data.\n * @param end - An index into the `Blob` indicating the first byte\n * that will *not* be included in the new `Blob` (i.e. the byte exactly at\n * this index is not included). If you specify a negative value, it's treated\n * as an offset from the end of the Blob toward the beginning. For example,\n * `-10` would be the 10th from last byte in the `Blob`. The default value is\n * size.\n * @param type - The content type to assign to the new Blob;\n * this will be the value of its type property. The default value is an empty\n * string.\n */\n slice(start: number = 0, end: number = this.size, type: string = ''): Blob {\n const {size, parts: parts} = this;\n let offset = start < 0 ? Math.max(size + start, 0) : Math.min(start, size);\n\n let limit = end < 0 ? Math.max(size + end, 0) : Math.min(end, size);\n const span = Math.max(limit - offset, 0);\n const blob = new BlobPolyfill([], {type});\n\n if (span === 0) {\n // @ts-ignore\n return blob;\n }\n\n let blobSize = 0;\n const blobParts: Uint8Array[] = [];\n for (const part of parts) {\n const {byteLength} = part;\n if (offset > 0 && byteLength <= offset) {\n offset -= byteLength;\n limit -= byteLength;\n } else {\n const chunk = part.subarray(offset, Math.min(byteLength, limit));\n blobParts.push(chunk);\n blobSize += chunk.byteLength;\n // no longer need to take that into account\n offset = 0;\n\n // don't add the overflow to new blobParts\n if (blobSize >= span) {\n break;\n }\n }\n }\n\n blob.parts = blobParts;\n blob.size = blobSize;\n\n // @ts-ignore\n return blob;\n }\n\n /**\n * Returns a promise that resolves with an ArrayBuffer containing the entire\n * contents of the Blob as binary data.\n */\n // eslint-disable-next-line require-await\n async arrayBuffer(): Promise<ArrayBuffer> {\n return this._toArrayBuffer();\n }\n\n /**\n * Returns a promise that resolves with a USVString containing the entire\n * contents of the Blob interpreted as UTF-8 text.\n */\n // eslint-disable-next-line require-await\n async text(): Promise<string> {\n const decoder = new TextDecoder();\n let text = '';\n for (const part of this.parts) {\n text += decoder.decode(part);\n }\n return text;\n }\n\n /**\n */\n // @ts-ignore\n stream(): BlobStream<any> {\n return new BlobStream<any>(this.parts);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return '[object Blob]';\n }\n\n get [Symbol.toStringTag]() {\n return 'Blob';\n }\n\n _toArrayBuffer(): ArrayBuffer {\n const buffer = new ArrayBuffer(this.size);\n const bytes = new Uint8Array(buffer);\n let offset = 0;\n for (const part of this.parts) {\n bytes.set(part, offset);\n offset += part.byteLength;\n }\n return buffer;\n }\n}\n\n/**\n */\nfunction readType(input: string = ''): string {\n const type = String(input).toLowerCase();\n return /[^\\u0020-\\u007E]/.test(type) ? '' : type;\n}\n"],"file":"blob.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/node/file/blob.ts"],"names":["Symbol","toStringTag","BlobPolyfill","init","options","parts","size","part","bytes","TextEncoder","encode","push","byteLength","ArrayBuffer","Uint8Array","isView","buffer","byteOffset","String","type","readType","start","end","offset","Math","max","min","limit","span","blob","blobSize","blobParts","chunk","subarray","_toArrayBuffer","decoder","TextDecoder","text","decode","BlobStream","set","input","toLowerCase","test"],"mappings":"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","sourcesContent":["// Forked from @gozala's web-blob under MIT license https://github.com/Gozala/web-blob\nimport {BlobStream} from './blob-stream';\n\n/**\n * Forked from @gozala's web-blob under MIT license\n * @see https://github.com/Gozala/web-blob\n */\nexport class BlobPolyfill {\n // implements Blob {\n /** The MIME type of the data contained in the Blob. If type is unknown, string is empty. */\n readonly type: string;\n /** The size, in bytes, of the data contained in the Blob object. */\n size: number;\n private parts: Uint8Array[];\n /**\n * @param [init]\n * @param [options]\n */\n constructor(init: BlobPart[] = [], options: BlobPropertyBag = {}) {\n this.parts = [];\n\n this.size = 0;\n for (const part of init) {\n if (typeof part === 'string') {\n const bytes = new TextEncoder().encode(part);\n this.parts.push(bytes);\n this.size += bytes.byteLength;\n } else if (part instanceof BlobPolyfill) {\n this.size += part.size;\n // @ts-ignore - `parts` is marked private so TS will complain about\n // accessing it.\n this.parts.push(...part.parts);\n } else if (part instanceof ArrayBuffer) {\n this.parts.push(new Uint8Array(part));\n this.size += part.byteLength;\n } else if (part instanceof Uint8Array) {\n this.parts.push(part);\n this.size += part.byteLength;\n } else if (ArrayBuffer.isView(part)) {\n const {buffer, byteOffset, byteLength} = part;\n this.parts.push(new Uint8Array(buffer, byteOffset, byteLength));\n this.size += byteLength;\n } else {\n const bytes = new TextEncoder().encode(String(part));\n this.parts.push(bytes);\n this.size += bytes.byteLength;\n }\n }\n\n /** @private */\n this.type = readType(options.type);\n }\n\n /**\n * Returns a new Blob object containing the data in the specified range of\n * bytes of the blob on which it's called.\n * @param start=0 - An index into the Blob indicating the first\n * byte to include in the new Blob. If you specify a negative value, it's\n * treated as an offset from the end of the Blob toward the beginning. For\n * example, `-10` would be the 10th from last byte in the Blob. The default\n * value is `0`. If you specify a value for start that is larger than the\n * size of the source Blob, the returned Blob has size 0 and contains no\n * data.\n * @param end - An index into the `Blob` indicating the first byte\n * that will *not* be included in the new `Blob` (i.e. the byte exactly at\n * this index is not included). If you specify a negative value, it's treated\n * as an offset from the end of the Blob toward the beginning. For example,\n * `-10` would be the 10th from last byte in the `Blob`. The default value is\n * size.\n * @param type - The content type to assign to the new Blob;\n * this will be the value of its type property. The default value is an empty\n * string.\n */\n slice(start: number = 0, end: number = this.size, type: string = ''): Blob {\n const {size, parts: parts} = this;\n let offset = start < 0 ? Math.max(size + start, 0) : Math.min(start, size);\n\n let limit = end < 0 ? Math.max(size + end, 0) : Math.min(end, size);\n const span = Math.max(limit - offset, 0);\n const blob = new BlobPolyfill([], {type});\n\n if (span === 0) {\n // @ts-ignore\n return blob;\n }\n\n let blobSize = 0;\n const blobParts: Uint8Array[] = [];\n for (const part of parts) {\n const {byteLength} = part;\n if (offset > 0 && byteLength <= offset) {\n offset -= byteLength;\n limit -= byteLength;\n } else {\n const chunk = part.subarray(offset, Math.min(byteLength, limit));\n blobParts.push(chunk);\n blobSize += chunk.byteLength;\n // no longer need to take that into account\n offset = 0;\n\n // don't add the overflow to new blobParts\n if (blobSize >= span) {\n break;\n }\n }\n }\n\n blob.parts = blobParts;\n blob.size = blobSize;\n\n // @ts-ignore\n return blob;\n }\n\n /**\n * Returns a promise that resolves with an ArrayBuffer containing the entire\n * contents of the Blob as binary data.\n */\n // eslint-disable-next-line require-await\n async arrayBuffer(): Promise<ArrayBuffer> {\n return this._toArrayBuffer();\n }\n\n /**\n * Returns a promise that resolves with a USVString containing the entire\n * contents of the Blob interpreted as UTF-8 text.\n */\n // eslint-disable-next-line require-await\n async text(): Promise<string> {\n const decoder = new TextDecoder();\n let text = '';\n for (const part of this.parts) {\n text += decoder.decode(part);\n }\n return text;\n }\n\n /**\n */\n // @ts-ignore\n stream(): BlobStream<any> {\n return new BlobStream<any>(this.parts);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return '[object Blob]';\n }\n\n get [Symbol.toStringTag]() {\n return 'Blob';\n }\n\n _toArrayBuffer(): ArrayBuffer {\n const buffer = new ArrayBuffer(this.size);\n const bytes = new Uint8Array(buffer);\n let offset = 0;\n for (const part of this.parts) {\n bytes.set(part, offset);\n offset += part.byteLength;\n }\n return buffer;\n }\n}\n\n/**\n */\nfunction readType(input: string = ''): string {\n const type = String(input).toLowerCase();\n return /[^\\u0020-\\u007E]/.test(type) ? '' : type;\n}\n"],"file":"blob.js"}
|
|
@@ -7,12 +7,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.FileReaderPolyfill = void 0;
|
|
9
9
|
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
10
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
19
|
|
|
12
20
|
var _btoa = require("../buffer/btoa.node");
|
|
13
21
|
|
|
14
|
-
|
|
15
|
-
|
|
22
|
+
var FileReaderPolyfill = function () {
|
|
23
|
+
function FileReaderPolyfill() {
|
|
24
|
+
(0, _classCallCheck2.default)(this, FileReaderPolyfill);
|
|
16
25
|
(0, _defineProperty2.default)(this, "onload", void 0);
|
|
17
26
|
(0, _defineProperty2.default)(this, "onabort", void 0);
|
|
18
27
|
(0, _defineProperty2.default)(this, "onerror", void 0);
|
|
@@ -31,52 +40,150 @@ class FileReaderPolyfill {
|
|
|
31
40
|
this.onload = null;
|
|
32
41
|
}
|
|
33
42
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
(0, _createClass2.default)(FileReaderPolyfill, [{
|
|
44
|
+
key: "abort",
|
|
45
|
+
value: function abort() {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
}, {
|
|
49
|
+
key: "readAsArrayBuffer",
|
|
50
|
+
value: function () {
|
|
51
|
+
var _readAsArrayBuffer = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(blob) {
|
|
52
|
+
var arrayBuffer;
|
|
53
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
54
|
+
while (1) {
|
|
55
|
+
switch (_context.prev = _context.next) {
|
|
56
|
+
case 0:
|
|
57
|
+
_context.next = 2;
|
|
58
|
+
return blob.arrayBuffer();
|
|
37
59
|
|
|
38
|
-
|
|
39
|
-
|
|
60
|
+
case 2:
|
|
61
|
+
arrayBuffer = _context.sent;
|
|
40
62
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
63
|
+
if (this.onload) {
|
|
64
|
+
this.onload({
|
|
65
|
+
target: {
|
|
66
|
+
result: arrayBuffer
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
49
70
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
71
|
+
case 4:
|
|
72
|
+
case "end":
|
|
73
|
+
return _context.stop();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}, _callee, this);
|
|
77
|
+
}));
|
|
53
78
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
79
|
+
function readAsArrayBuffer(_x) {
|
|
80
|
+
return _readAsArrayBuffer.apply(this, arguments);
|
|
81
|
+
}
|
|
57
82
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
83
|
+
return readAsArrayBuffer;
|
|
84
|
+
}()
|
|
85
|
+
}, {
|
|
86
|
+
key: "readAsBinaryString",
|
|
87
|
+
value: function () {
|
|
88
|
+
var _readAsBinaryString = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(blob) {
|
|
89
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
90
|
+
while (1) {
|
|
91
|
+
switch (_context2.prev = _context2.next) {
|
|
92
|
+
case 0:
|
|
93
|
+
throw Error('Not implemented');
|
|
66
94
|
|
|
67
|
-
|
|
68
|
-
|
|
95
|
+
case 1:
|
|
96
|
+
case "end":
|
|
97
|
+
return _context2.stop();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}, _callee2);
|
|
101
|
+
}));
|
|
69
102
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
103
|
+
function readAsBinaryString(_x2) {
|
|
104
|
+
return _readAsBinaryString.apply(this, arguments);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return readAsBinaryString;
|
|
108
|
+
}()
|
|
109
|
+
}, {
|
|
110
|
+
key: "readAsDataURL",
|
|
111
|
+
value: function () {
|
|
112
|
+
var _readAsDataURL = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(blob) {
|
|
113
|
+
var text, dataUrl;
|
|
114
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
115
|
+
while (1) {
|
|
116
|
+
switch (_context3.prev = _context3.next) {
|
|
117
|
+
case 0:
|
|
118
|
+
_context3.next = 2;
|
|
119
|
+
return blob.text();
|
|
120
|
+
|
|
121
|
+
case 2:
|
|
122
|
+
text = _context3.sent;
|
|
123
|
+
dataUrl = "data://;base64,".concat((0, _btoa.atob)(text));
|
|
124
|
+
|
|
125
|
+
if (this.onload) {
|
|
126
|
+
this.onload({
|
|
127
|
+
target: {
|
|
128
|
+
result: dataUrl
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
case 5:
|
|
134
|
+
case "end":
|
|
135
|
+
return _context3.stop();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}, _callee3, this);
|
|
139
|
+
}));
|
|
140
|
+
|
|
141
|
+
function readAsDataURL(_x3) {
|
|
142
|
+
return _readAsDataURL.apply(this, arguments);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return readAsDataURL;
|
|
146
|
+
}()
|
|
147
|
+
}, {
|
|
148
|
+
key: "readAsText",
|
|
149
|
+
value: function () {
|
|
150
|
+
var _readAsText = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(blob) {
|
|
151
|
+
var text;
|
|
152
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
153
|
+
while (1) {
|
|
154
|
+
switch (_context4.prev = _context4.next) {
|
|
155
|
+
case 0:
|
|
156
|
+
_context4.next = 2;
|
|
157
|
+
return blob.text();
|
|
158
|
+
|
|
159
|
+
case 2:
|
|
160
|
+
text = _context4.sent;
|
|
161
|
+
|
|
162
|
+
if (this.onload) {
|
|
163
|
+
this.onload({
|
|
164
|
+
target: {
|
|
165
|
+
result: text
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
case 4:
|
|
171
|
+
case "end":
|
|
172
|
+
return _context4.stop();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}, _callee4, this);
|
|
176
|
+
}));
|
|
177
|
+
|
|
178
|
+
function readAsText(_x4) {
|
|
179
|
+
return _readAsText.apply(this, arguments);
|
|
180
|
+
}
|
|
78
181
|
|
|
79
|
-
|
|
182
|
+
return readAsText;
|
|
183
|
+
}()
|
|
184
|
+
}]);
|
|
185
|
+
return FileReaderPolyfill;
|
|
186
|
+
}();
|
|
80
187
|
|
|
81
188
|
exports.FileReaderPolyfill = FileReaderPolyfill;
|
|
82
189
|
//# sourceMappingURL=file-reader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/node/file/file-reader.ts"],"names":["FileReaderPolyfill","
|
|
1
|
+
{"version":3,"sources":["../../../../src/node/file/file-reader.ts"],"names":["FileReaderPolyfill","onload","blob","arrayBuffer","target","result","Error","text","dataUrl"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;IAEaA,kB;AAmBX,gCAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACZ,SAAKC,MAAL,GAAc,IAAd;AACD;;;;WAED,iBAAc;AACZ;AACD;;;;yFAED,iBAAwBC,IAAxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAC4BA,IAAI,CAACC,WAAL,EAD5B;;AAAA;AACQA,gBAAAA,WADR;;AAEE,oBAAI,KAAKF,MAAT,EAAiB;AACf,uBAAKA,MAAL,CAAY;AAACG,oBAAAA,MAAM,EAAE;AAACC,sBAAAA,MAAM,EAAEF;AAAT;AAAT,mBAAZ;AACD;;AAJH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0FAOA,kBAAyBD,IAAzB;AAAA;AAAA;AAAA;AAAA;AAAA,sBACQI,KAAK,CAAC,iBAAD,CADb;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qFAIA,kBAAoBJ,IAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACqBA,IAAI,CAACK,IAAL,EADrB;;AAAA;AACQA,gBAAAA,IADR;AAEQC,gBAAAA,OAFR,4BAEoC,gBAAKD,IAAL,CAFpC;;AAGE,oBAAI,KAAKN,MAAT,EAAiB;AACf,uBAAKA,MAAL,CAAY;AAACG,oBAAAA,MAAM,EAAE;AAACC,sBAAAA,MAAM,EAAEG;AAAT;AAAT,mBAAZ;AACD;;AALH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kFAQA,kBAAiBN,IAAjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACqBA,IAAI,CAACK,IAAL,EADrB;;AAAA;AACQA,gBAAAA,IADR;;AAEE,oBAAI,KAAKN,MAAT,EAAiB;AACf,uBAAKA,MAAL,CAAY;AAACG,oBAAAA,MAAM,EAAE;AAACC,sBAAAA,MAAM,EAAEE;AAAT;AAAT,mBAAZ;AACD;;AAJH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O","sourcesContent":["import {atob} from '../buffer/btoa.node';\n\nexport class FileReaderPolyfill implements FileReader {\n // onload: ({result: any}) => void;\n onload;\n onabort;\n onerror;\n error;\n onloadstart;\n onloadend;\n onprogress;\n\n readyState;\n result;\n DONE;\n EMPTY;\n LOADING;\n addEventListener;\n removeEventListener;\n dispatchEvent;\n\n constructor() {\n this.onload = null;\n }\n\n abort(): void {\n return;\n }\n\n async readAsArrayBuffer(blob: Blob): Promise<void> {\n const arrayBuffer = await blob.arrayBuffer();\n if (this.onload) {\n this.onload({target: {result: arrayBuffer}});\n }\n }\n\n async readAsBinaryString(blob) {\n throw Error('Not implemented');\n }\n\n async readAsDataURL(blob) {\n const text = await blob.text();\n const dataUrl = `data://;base64,${atob(text)}`;\n if (this.onload) {\n this.onload({target: {result: dataUrl}});\n }\n }\n\n async readAsText(blob) {\n const text = await blob.text();\n if (this.onload) {\n this.onload({target: {result: text}});\n }\n }\n}\n"],"file":"file-reader.js"}
|