@common.js/fetch-blob 3.2.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/from.js ADDED
@@ -0,0 +1,530 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ default: function() {
13
+ return _default;
14
+ },
15
+ File: function() {
16
+ return _fileJs.default;
17
+ },
18
+ Blob: function() {
19
+ return _indexJs.default;
20
+ },
21
+ blobFrom: function() {
22
+ return blobFrom;
23
+ },
24
+ blobFromSync: function() {
25
+ return blobFromSync;
26
+ },
27
+ fileFrom: function() {
28
+ return fileFrom;
29
+ },
30
+ fileFromSync: function() {
31
+ return fileFromSync;
32
+ }
33
+ });
34
+ var _nodeFs = require("node:fs");
35
+ var _nodePath = require("node:path");
36
+ var _nodeDomexception = /*#__PURE__*/ _interopRequireDefault(require("node-domexception"));
37
+ var _fileJs = /*#__PURE__*/ _interopRequireDefault(require("./file.js"));
38
+ var _indexJs = /*#__PURE__*/ _interopRequireDefault(require("./index.js"));
39
+ function AsyncGenerator(gen) {
40
+ var front, back;
41
+ function send(key, arg) {
42
+ return new Promise(function(resolve, reject) {
43
+ var request = {
44
+ key: key,
45
+ arg: arg,
46
+ resolve: resolve,
47
+ reject: reject,
48
+ next: null
49
+ };
50
+ if (back) {
51
+ back = back.next = request;
52
+ } else {
53
+ front = back = request;
54
+ resume(key, arg);
55
+ }
56
+ });
57
+ }
58
+ function resume(key, arg) {
59
+ try {
60
+ var result = gen[key](arg);
61
+ var value = result.value;
62
+ var wrappedAwait = value instanceof _AwaitValue;
63
+ Promise.resolve(wrappedAwait ? value.wrapped : value).then(function(arg) {
64
+ if (wrappedAwait) {
65
+ resume("next", arg);
66
+ return;
67
+ }
68
+ settle(result.done ? "return" : "normal", arg);
69
+ }, function(err) {
70
+ resume("throw", err);
71
+ });
72
+ } catch (err) {
73
+ settle("throw", err);
74
+ }
75
+ }
76
+ function settle(type, value) {
77
+ switch(type){
78
+ case "return":
79
+ front.resolve({
80
+ value: value,
81
+ done: true
82
+ });
83
+ break;
84
+ case "throw":
85
+ front.reject(value);
86
+ break;
87
+ default:
88
+ front.resolve({
89
+ value: value,
90
+ done: false
91
+ });
92
+ break;
93
+ }
94
+ front = front.next;
95
+ if (front) {
96
+ resume(front.key, front.arg);
97
+ } else {
98
+ back = null;
99
+ }
100
+ }
101
+ this._invoke = send;
102
+ if (typeof gen.return !== "function") {
103
+ this.return = undefined;
104
+ }
105
+ }
106
+ if (typeof Symbol === "function" && Symbol.asyncIterator) {
107
+ AsyncGenerator.prototype[Symbol.asyncIterator] = function() {
108
+ return this;
109
+ };
110
+ }
111
+ AsyncGenerator.prototype.next = function(arg) {
112
+ return this._invoke("next", arg);
113
+ };
114
+ AsyncGenerator.prototype.throw = function(arg) {
115
+ return this._invoke("throw", arg);
116
+ };
117
+ AsyncGenerator.prototype.return = function(arg) {
118
+ return this._invoke("return", arg);
119
+ };
120
+ function _asyncGeneratorDelegate(inner, awaitWrap) {
121
+ var iter = {}, waiting = false;
122
+ function pump(key, value) {
123
+ waiting = true;
124
+ value = new Promise(function(resolve) {
125
+ resolve(inner[key](value));
126
+ });
127
+ return {
128
+ done: false,
129
+ value: awaitWrap(value)
130
+ };
131
+ }
132
+ ;
133
+ if (typeof Symbol === "function" && Symbol.iterator) {
134
+ iter[Symbol.iterator] = function() {
135
+ return this;
136
+ };
137
+ }
138
+ iter.next = function(value) {
139
+ if (waiting) {
140
+ waiting = false;
141
+ return value;
142
+ }
143
+ return pump("next", value);
144
+ };
145
+ if (typeof inner.throw === "function") {
146
+ iter.throw = function(value) {
147
+ if (waiting) {
148
+ waiting = false;
149
+ throw value;
150
+ }
151
+ return pump("throw", value);
152
+ };
153
+ }
154
+ if (typeof inner.return === "function") {
155
+ iter.return = function(value) {
156
+ return pump("return", value);
157
+ };
158
+ }
159
+ return iter;
160
+ }
161
+ function _asyncIterator(iterable) {
162
+ var method, async, sync, retry = 2;
163
+ for("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;){
164
+ if (async && null != (method = iterable[async])) return method.call(iterable);
165
+ if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable));
166
+ async = "@@asyncIterator", sync = "@@iterator";
167
+ }
168
+ throw new TypeError("Object is not async iterable");
169
+ }
170
+ function AsyncFromSyncIterator(s) {
171
+ function AsyncFromSyncIteratorContinuation(r) {
172
+ if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
173
+ var done = r.done;
174
+ return Promise.resolve(r.value).then(function(value) {
175
+ return {
176
+ value: value,
177
+ done: done
178
+ };
179
+ });
180
+ }
181
+ return AsyncFromSyncIterator = function(s) {
182
+ this.s = s, this.n = s.next;
183
+ }, AsyncFromSyncIterator.prototype = {
184
+ s: null,
185
+ n: null,
186
+ next: function() {
187
+ return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
188
+ },
189
+ return: function(value) {
190
+ var ret = this.s.return;
191
+ return void 0 === ret ? Promise.resolve({
192
+ value: value,
193
+ done: !0
194
+ }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
195
+ },
196
+ throw: function(value) {
197
+ var thr = this.s.return;
198
+ return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
199
+ }
200
+ }, new AsyncFromSyncIterator(s);
201
+ }
202
+ function _awaitAsyncGenerator(value) {
203
+ return new _AwaitValue(value);
204
+ }
205
+ function _AwaitValue(value) {
206
+ this.wrapped = value;
207
+ }
208
+ function _checkPrivateRedeclaration(obj, privateCollection) {
209
+ if (privateCollection.has(obj)) {
210
+ throw new TypeError("Cannot initialize the same private elements twice on an object");
211
+ }
212
+ }
213
+ function _classApplyDescriptorGet(receiver, descriptor) {
214
+ if (descriptor.get) {
215
+ return descriptor.get.call(receiver);
216
+ }
217
+ return descriptor.value;
218
+ }
219
+ function _classApplyDescriptorSet(receiver, descriptor, value) {
220
+ if (descriptor.set) {
221
+ descriptor.set.call(receiver, value);
222
+ } else {
223
+ if (!descriptor.writable) {
224
+ throw new TypeError("attempted to set read only private field");
225
+ }
226
+ descriptor.value = value;
227
+ }
228
+ }
229
+ function _classCallCheck(instance, Constructor) {
230
+ if (!(instance instanceof Constructor)) {
231
+ throw new TypeError("Cannot call a class as a function");
232
+ }
233
+ }
234
+ function _classExtractFieldDescriptor(receiver, privateMap, action) {
235
+ if (!privateMap.has(receiver)) {
236
+ throw new TypeError("attempted to " + action + " private field on non-instance");
237
+ }
238
+ return privateMap.get(receiver);
239
+ }
240
+ function _classPrivateFieldGet(receiver, privateMap) {
241
+ var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get");
242
+ return _classApplyDescriptorGet(receiver, descriptor);
243
+ }
244
+ function _classPrivateFieldInit(obj, privateMap, value) {
245
+ _checkPrivateRedeclaration(obj, privateMap);
246
+ privateMap.set(obj, value);
247
+ }
248
+ function _classPrivateFieldSet(receiver, privateMap, value) {
249
+ var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set");
250
+ _classApplyDescriptorSet(receiver, descriptor, value);
251
+ return value;
252
+ }
253
+ function _defineProperties(target, props) {
254
+ for(var i = 0; i < props.length; i++){
255
+ var descriptor = props[i];
256
+ descriptor.enumerable = descriptor.enumerable || false;
257
+ descriptor.configurable = true;
258
+ if ("value" in descriptor) descriptor.writable = true;
259
+ Object.defineProperty(target, descriptor.key, descriptor);
260
+ }
261
+ }
262
+ function _createClass(Constructor, protoProps, staticProps) {
263
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
264
+ if (staticProps) _defineProperties(Constructor, staticProps);
265
+ return Constructor;
266
+ }
267
+ function _interopRequireDefault(obj) {
268
+ return obj && obj.__esModule ? obj : {
269
+ default: obj
270
+ };
271
+ }
272
+ function _wrapAsyncGenerator(fn) {
273
+ return function() {
274
+ return new AsyncGenerator(fn.apply(this, arguments));
275
+ };
276
+ }
277
+ var __generator = (void 0) && (void 0).__generator || function(thisArg, body) {
278
+ var f, y, t, g, _ = {
279
+ label: 0,
280
+ sent: function() {
281
+ if (t[0] & 1) throw t[1];
282
+ return t[1];
283
+ },
284
+ trys: [],
285
+ ops: []
286
+ };
287
+ return g = {
288
+ next: verb(0),
289
+ "throw": verb(1),
290
+ "return": verb(2)
291
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
292
+ return this;
293
+ }), g;
294
+ function verb(n) {
295
+ return function(v) {
296
+ return step([
297
+ n,
298
+ v
299
+ ]);
300
+ };
301
+ }
302
+ function step(op) {
303
+ if (f) throw new TypeError("Generator is already executing.");
304
+ while(_)try {
305
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
306
+ if (y = 0, t) op = [
307
+ op[0] & 2,
308
+ t.value
309
+ ];
310
+ switch(op[0]){
311
+ case 0:
312
+ case 1:
313
+ t = op;
314
+ break;
315
+ case 4:
316
+ _.label++;
317
+ return {
318
+ value: op[1],
319
+ done: false
320
+ };
321
+ case 5:
322
+ _.label++;
323
+ y = op[1];
324
+ op = [
325
+ 0
326
+ ];
327
+ continue;
328
+ case 7:
329
+ op = _.ops.pop();
330
+ _.trys.pop();
331
+ continue;
332
+ default:
333
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
334
+ _ = 0;
335
+ continue;
336
+ }
337
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
338
+ _.label = op[1];
339
+ break;
340
+ }
341
+ if (op[0] === 6 && _.label < t[1]) {
342
+ _.label = t[1];
343
+ t = op;
344
+ break;
345
+ }
346
+ if (t && _.label < t[2]) {
347
+ _.label = t[2];
348
+ _.ops.push(op);
349
+ break;
350
+ }
351
+ if (t[2]) _.ops.pop();
352
+ _.trys.pop();
353
+ continue;
354
+ }
355
+ op = body.call(thisArg, _);
356
+ } catch (e) {
357
+ op = [
358
+ 6,
359
+ e
360
+ ];
361
+ y = 0;
362
+ } finally{
363
+ f = t = 0;
364
+ }
365
+ if (op[0] & 5) throw op[1];
366
+ return {
367
+ value: op[0] ? op[1] : void 0,
368
+ done: true
369
+ };
370
+ }
371
+ };
372
+ var __values = (void 0) && (void 0).__values || function(o) {
373
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
374
+ if (m) return m.call(o);
375
+ if (o && typeof o.length === "number") return {
376
+ next: function() {
377
+ if (o && i >= o.length) o = void 0;
378
+ return {
379
+ value: o && o[i++],
380
+ done: !o
381
+ };
382
+ }
383
+ };
384
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
385
+ };
386
+ var stat = _nodeFs.promises.stat;
387
+ /**
388
+ * @param {string} path filepath on the disk
389
+ * @param {string} [type] mimetype to use
390
+ */ var blobFromSync = function(path, type) {
391
+ return fromBlob((0, _nodeFs.statSync)(path), path, type);
392
+ };
393
+ /**
394
+ * @param {string} path filepath on the disk
395
+ * @param {string} [type] mimetype to use
396
+ * @returns {Promise<Blob>}
397
+ */ var blobFrom = function(path, type) {
398
+ return stat(path).then(function(stat) {
399
+ return fromBlob(stat, path, type);
400
+ });
401
+ };
402
+ /**
403
+ * @param {string} path filepath on the disk
404
+ * @param {string} [type] mimetype to use
405
+ * @returns {Promise<File>}
406
+ */ var fileFrom = function(path, type) {
407
+ return stat(path).then(function(stat) {
408
+ return fromFile(stat, path, type);
409
+ });
410
+ };
411
+ /**
412
+ * @param {string} path filepath on the disk
413
+ * @param {string} [type] mimetype to use
414
+ */ var fileFromSync = function(path, type) {
415
+ return fromFile((0, _nodeFs.statSync)(path), path, type);
416
+ };
417
+ // @ts-ignore
418
+ var fromBlob = function(stat, path) {
419
+ var type = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "";
420
+ return new _indexJs.default([
421
+ new BlobDataItem({
422
+ path: path,
423
+ size: stat.size,
424
+ lastModified: stat.mtimeMs,
425
+ start: 0
426
+ })
427
+ ], {
428
+ type: type
429
+ });
430
+ };
431
+ // @ts-ignore
432
+ var fromFile = function(stat, path) {
433
+ var type = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "";
434
+ return new _fileJs.default([
435
+ new BlobDataItem({
436
+ path: path,
437
+ size: stat.size,
438
+ lastModified: stat.mtimeMs,
439
+ start: 0
440
+ })
441
+ ], (0, _nodePath.basename)(path), {
442
+ type: type,
443
+ lastModified: stat.mtimeMs
444
+ });
445
+ };
446
+ var _path = /*#__PURE__*/ new WeakMap(), _start = /*#__PURE__*/ new WeakMap();
447
+ var _toStringTag = Symbol.toStringTag;
448
+ /**
449
+ * This is a blob backed up by a file on the disk
450
+ * with minium requirement. Its wrapped around a Blob as a blobPart
451
+ * so you have no direct access to this.
452
+ *
453
+ * @private
454
+ */ var BlobDataItem = /*#__PURE__*/ function() {
455
+ "use strict";
456
+ function BlobDataItem(options) {
457
+ _classCallCheck(this, BlobDataItem);
458
+ _classPrivateFieldInit(this, _path, {
459
+ writable: true,
460
+ value: void 0
461
+ });
462
+ _classPrivateFieldInit(this, _start, {
463
+ writable: true,
464
+ value: void 0
465
+ });
466
+ _classPrivateFieldSet(this, _path, options.path);
467
+ _classPrivateFieldSet(this, _start, options.start);
468
+ this.size = options.size;
469
+ this.lastModified = options.lastModified;
470
+ }
471
+ _createClass(BlobDataItem, [
472
+ {
473
+ /**
474
+ * Slicing arguments is first validated and formatted
475
+ * to not be out of range by Blob.prototype.slice
476
+ */ key: "slice",
477
+ value: function slice(start, end) {
478
+ return new BlobDataItem({
479
+ path: _classPrivateFieldGet(this, _path),
480
+ lastModified: this.lastModified,
481
+ size: end - start,
482
+ start: _classPrivateFieldGet(this, _start) + start
483
+ });
484
+ }
485
+ },
486
+ {
487
+ key: "stream",
488
+ value: function stream() {
489
+ var _this = this;
490
+ return _wrapAsyncGenerator(function() {
491
+ var mtimeMs;
492
+ return __generator(this, function(_state) {
493
+ switch(_state.label){
494
+ case 0:
495
+ return [
496
+ 4,
497
+ _awaitAsyncGenerator(stat(_classPrivateFieldGet(_this, _path)))
498
+ ];
499
+ case 1:
500
+ mtimeMs = _state.sent().mtimeMs;
501
+ if (mtimeMs > _this.lastModified) {
502
+ throw new _nodeDomexception.default("The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.", "NotReadableError");
503
+ }
504
+ return [
505
+ 5,
506
+ __values(_asyncGeneratorDelegate(_asyncIterator((0, _nodeFs.createReadStream)(_classPrivateFieldGet(_this, _path), {
507
+ start: _classPrivateFieldGet(_this, _start),
508
+ end: _classPrivateFieldGet(_this, _start) + _this.size - 1
509
+ })), _awaitAsyncGenerator))
510
+ ];
511
+ case 2:
512
+ _state.sent();
513
+ return [
514
+ 2
515
+ ];
516
+ }
517
+ });
518
+ })();
519
+ }
520
+ },
521
+ {
522
+ key: _toStringTag,
523
+ get: function get() {
524
+ return "Blob";
525
+ }
526
+ }
527
+ ]);
528
+ return BlobDataItem;
529
+ }();
530
+ var _default = blobFromSync;
package/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ /** @type {typeof globalThis.Blob} */
2
+ export const Blob: typeof globalThis.Blob;
3
+ export default Blob;