@slicemachine/adapter-next 0.0.9 → 0.0.11

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.
Files changed (101) hide show
  1. package/dist/hooks/command-init.cjs +196 -0
  2. package/dist/hooks/command-init.cjs.map +1 -0
  3. package/dist/hooks/command-init.d.ts +3 -0
  4. package/dist/hooks/command-init.js +178 -0
  5. package/dist/hooks/command-init.js.map +1 -0
  6. package/dist/hooks/slice-create.cjs +8 -3
  7. package/dist/hooks/slice-create.cjs.map +1 -1
  8. package/dist/hooks/slice-create.js +8 -3
  9. package/dist/hooks/slice-create.js.map +1 -1
  10. package/dist/hooks/sliceSimulator-setup-read.cjs +12 -2
  11. package/dist/hooks/sliceSimulator-setup-read.cjs.map +1 -1
  12. package/dist/hooks/sliceSimulator-setup-read.js +12 -2
  13. package/dist/hooks/sliceSimulator-setup-read.js.map +1 -1
  14. package/dist/lib/checkIsTypeScriptProject.cjs +9 -0
  15. package/dist/lib/checkIsTypeScriptProject.cjs.map +1 -0
  16. package/dist/lib/checkIsTypeScriptProject.d.ts +8 -0
  17. package/dist/lib/checkIsTypeScriptProject.js +9 -0
  18. package/dist/lib/checkIsTypeScriptProject.js.map +1 -0
  19. package/dist/lib/checkPathExists.cjs +30 -0
  20. package/dist/lib/checkPathExists.cjs.map +1 -0
  21. package/dist/lib/checkPathExists.d.ts +2 -0
  22. package/dist/lib/checkPathExists.js +13 -0
  23. package/dist/lib/checkPathExists.js.map +1 -0
  24. package/dist/lib/getJSOrTSXFileExtension.cjs +8 -3
  25. package/dist/lib/getJSOrTSXFileExtension.cjs.map +1 -1
  26. package/dist/lib/getJSOrTSXFileExtension.d.ts +7 -1
  27. package/dist/lib/getJSOrTSXFileExtension.js +8 -3
  28. package/dist/lib/getJSOrTSXFileExtension.js.map +1 -1
  29. package/dist/lib/rejectIfNecessary.cjs.map +1 -1
  30. package/dist/lib/rejectIfNecessary.js.map +1 -1
  31. package/dist/lib/upsertSliceLibraryIndexFile.cjs +37 -11
  32. package/dist/lib/upsertSliceLibraryIndexFile.cjs.map +1 -1
  33. package/dist/lib/upsertSliceLibraryIndexFile.js +37 -11
  34. package/dist/lib/upsertSliceLibraryIndexFile.js.map +1 -1
  35. package/dist/node_modules/data-uri-to-buffer/dist/index.cjs.map +1 -1
  36. package/dist/node_modules/data-uri-to-buffer/dist/index.js.map +1 -1
  37. package/dist/node_modules/fetch-blob/file.cjs +6 -0
  38. package/dist/node_modules/fetch-blob/file.cjs.map +1 -1
  39. package/dist/node_modules/fetch-blob/file.js +6 -0
  40. package/dist/node_modules/fetch-blob/file.js.map +1 -1
  41. package/dist/node_modules/fetch-blob/index.cjs +48 -2
  42. package/dist/node_modules/fetch-blob/index.cjs.map +1 -1
  43. package/dist/node_modules/fetch-blob/index.js +48 -2
  44. package/dist/node_modules/fetch-blob/index.js.map +1 -1
  45. package/dist/node_modules/fetch-blob/streams.cjs.map +1 -1
  46. package/dist/node_modules/fetch-blob/streams.js.map +1 -1
  47. package/dist/node_modules/formdata-polyfill/esm.min.cjs.map +1 -1
  48. package/dist/node_modules/formdata-polyfill/esm.min.js.map +1 -1
  49. package/dist/node_modules/node-domexception/index.cjs.map +1 -1
  50. package/dist/node_modules/node-domexception/index.js.map +1 -1
  51. package/dist/node_modules/node-fetch/src/body.cjs +25 -0
  52. package/dist/node_modules/node-fetch/src/body.cjs.map +1 -1
  53. package/dist/node_modules/node-fetch/src/body.js +25 -0
  54. package/dist/node_modules/node-fetch/src/body.js.map +1 -1
  55. package/dist/node_modules/node-fetch/src/errors/base.cjs.map +1 -1
  56. package/dist/node_modules/node-fetch/src/errors/base.js.map +1 -1
  57. package/dist/node_modules/node-fetch/src/errors/fetch-error.cjs +5 -0
  58. package/dist/node_modules/node-fetch/src/errors/fetch-error.cjs.map +1 -1
  59. package/dist/node_modules/node-fetch/src/errors/fetch-error.js +5 -0
  60. package/dist/node_modules/node-fetch/src/errors/fetch-error.js.map +1 -1
  61. package/dist/node_modules/node-fetch/src/headers.cjs +17 -0
  62. package/dist/node_modules/node-fetch/src/headers.cjs.map +1 -1
  63. package/dist/node_modules/node-fetch/src/headers.js +17 -0
  64. package/dist/node_modules/node-fetch/src/headers.js.map +1 -1
  65. package/dist/node_modules/node-fetch/src/index.cjs.map +1 -1
  66. package/dist/node_modules/node-fetch/src/index.js.map +1 -1
  67. package/dist/node_modules/node-fetch/src/request.cjs +13 -0
  68. package/dist/node_modules/node-fetch/src/request.cjs.map +1 -1
  69. package/dist/node_modules/node-fetch/src/request.js +13 -0
  70. package/dist/node_modules/node-fetch/src/request.js.map +1 -1
  71. package/dist/node_modules/node-fetch/src/response.cjs +13 -0
  72. package/dist/node_modules/node-fetch/src/response.cjs.map +1 -1
  73. package/dist/node_modules/node-fetch/src/response.js +13 -0
  74. package/dist/node_modules/node-fetch/src/response.js.map +1 -1
  75. package/dist/node_modules/node-fetch/src/utils/get-search.cjs.map +1 -1
  76. package/dist/node_modules/node-fetch/src/utils/get-search.js.map +1 -1
  77. package/dist/node_modules/node-fetch/src/utils/is.cjs.map +1 -1
  78. package/dist/node_modules/node-fetch/src/utils/is.js.map +1 -1
  79. package/dist/node_modules/node-fetch/src/utils/multipart-parser.cjs +6 -0
  80. package/dist/node_modules/node-fetch/src/utils/multipart-parser.cjs.map +1 -1
  81. package/dist/node_modules/node-fetch/src/utils/multipart-parser.js +6 -0
  82. package/dist/node_modules/node-fetch/src/utils/multipart-parser.js.map +1 -1
  83. package/dist/node_modules/web-streams-polyfill/dist/ponyfill.es2018.cjs +223 -0
  84. package/dist/node_modules/web-streams-polyfill/dist/ponyfill.es2018.cjs.map +1 -1
  85. package/dist/node_modules/web-streams-polyfill/dist/ponyfill.es2018.js +223 -0
  86. package/dist/node_modules/web-streams-polyfill/dist/ponyfill.es2018.js.map +1 -1
  87. package/dist/plugin.cjs +4 -1
  88. package/dist/plugin.cjs.map +1 -1
  89. package/dist/plugin.js +4 -1
  90. package/dist/plugin.js.map +1 -1
  91. package/dist/types.d.ts +1 -0
  92. package/package.json +15 -15
  93. package/src/hooks/command-init.ts +227 -0
  94. package/src/hooks/slice-create.ts +12 -3
  95. package/src/hooks/sliceSimulator-setup-read.ts +11 -2
  96. package/src/lib/checkIsTypeScriptProject.ts +17 -0
  97. package/src/lib/checkPathExists.ts +12 -0
  98. package/src/lib/getJSOrTSXFileExtension.ts +18 -5
  99. package/src/lib/upsertSliceLibraryIndexFile.ts +44 -10
  100. package/src/plugin.ts +4 -0
  101. package/src/types.ts +1 -0
@@ -25,7 +25,10 @@ const POOL_SIZE = 65536;
25
25
  async function* toIterator(parts, clone = true) {
26
26
  for (const part of parts) {
27
27
  if ("stream" in part) {
28
- yield* part.stream();
28
+ yield* (
29
+ /** @type {AsyncIterableIterator<Uint8Array>} */
30
+ part.stream()
31
+ );
29
32
  } else if (ArrayBuffer.isView(part)) {
30
33
  if (clone) {
31
34
  let position = part.byteOffset;
@@ -40,7 +43,10 @@ async function* toIterator(parts, clone = true) {
40
43
  yield part;
41
44
  }
42
45
  } else {
43
- let position = 0, b = part;
46
+ let position = 0, b = (
47
+ /** @type {Blob} */
48
+ part
49
+ );
44
50
  while (position !== b.size) {
45
51
  const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE));
46
52
  const buffer = await chunk.arrayBuffer();
@@ -51,7 +57,16 @@ async function* toIterator(parts, clone = true) {
51
57
  }
52
58
  }
53
59
  const _Blob = (_a = class {
60
+ /**
61
+ * The Blob() constructor returns a new Blob object. The content
62
+ * of the blob consists of the concatenation of the values given
63
+ * in the parameter array.
64
+ *
65
+ * @param {*} blobParts
66
+ * @param {{ type?: string, endings?: string }} [options]
67
+ */
54
68
  constructor(blobParts = [], options = {}) {
69
+ /** @type {Array.<(Blob|Uint8Array)>} */
55
70
  __privateAdd(this, _parts, []);
56
71
  __privateAdd(this, _type, "");
57
72
  __privateAdd(this, _size, 0);
@@ -86,12 +101,26 @@ const _Blob = (_a = class {
86
101
  const type = options.type === void 0 ? "" : String(options.type);
87
102
  __privateSet(this, _type, /^[\x20-\x7E]*$/.test(type) ? type : "");
88
103
  }
104
+ /**
105
+ * The Blob interface's size property returns the
106
+ * size of the Blob in bytes.
107
+ */
89
108
  get size() {
90
109
  return __privateGet(this, _size);
91
110
  }
111
+ /**
112
+ * The type property of a Blob object returns the MIME type of the file.
113
+ */
92
114
  get type() {
93
115
  return __privateGet(this, _type);
94
116
  }
117
+ /**
118
+ * The text() method in the Blob interface returns a Promise
119
+ * that resolves with a string containing the contents of
120
+ * the blob, interpreted as UTF-8.
121
+ *
122
+ * @return {Promise<string>}
123
+ */
95
124
  async text() {
96
125
  const decoder = new TextDecoder();
97
126
  let str = "";
@@ -101,6 +130,13 @@ const _Blob = (_a = class {
101
130
  str += decoder.decode();
102
131
  return str;
103
132
  }
133
+ /**
134
+ * The arrayBuffer() method in the Blob interface returns a
135
+ * Promise that resolves with the contents of the blob as
136
+ * binary data contained in an ArrayBuffer.
137
+ *
138
+ * @return {Promise<ArrayBuffer>}
139
+ */
104
140
  async arrayBuffer() {
105
141
  const data = new Uint8Array(this.size);
106
142
  let offset = 0;
@@ -113,6 +149,7 @@ const _Blob = (_a = class {
113
149
  stream() {
114
150
  const it = toIterator(__privateGet(this, _parts), true);
115
151
  return new globalThis.ReadableStream({
152
+ // @ts-ignore
116
153
  type: "bytes",
117
154
  async pull(ctrl) {
118
155
  const chunk = await it.next();
@@ -123,6 +160,15 @@ const _Blob = (_a = class {
123
160
  }
124
161
  });
125
162
  }
163
+ /**
164
+ * The Blob interface's slice() method creates and returns a
165
+ * new Blob object which contains data from a subset of the
166
+ * blob on which it's called.
167
+ *
168
+ * @param {number} [start]
169
+ * @param {number} [end]
170
+ * @param {string} [type]
171
+ */
126
172
  slice(start = 0, end = this.size, type = "") {
127
173
  const { size } = this;
128
174
  let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size);
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../node_modules/fetch-blob/index.js"],"sourcesContent":["/*! fetch-blob. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n for (const part of parts) {\n if ('stream' in part) {\n yield * (/** @type {AsyncIterableIterator<Uint8Array>} */ (part.stream()))\n } else if (ArrayBuffer.isView(part)) {\n if (clone) {\n let position = part.byteOffset\n const end = part.byteOffset + part.byteLength\n while (position !== end) {\n const size = Math.min(end - position, POOL_SIZE)\n const chunk = part.buffer.slice(position, position + size)\n position += chunk.byteLength\n yield new Uint8Array(chunk)\n }\n } else {\n yield part\n }\n /* c8 ignore next 10 */\n } else {\n // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n let position = 0, b = (/** @type {Blob} */ (part))\n while (position !== b.size) {\n const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n yield new Uint8Array(buffer)\n }\n }\n }\n}\n\nconst _Blob = class Blob {\n /** @type {Array.<(Blob|Uint8Array)>} */\n #parts = []\n #type = ''\n #size = 0\n #endings = 'transparent'\n\n /**\n * The Blob() constructor returns a new Blob object. The content\n * of the blob consists of the concatenation of the values given\n * in the parameter array.\n *\n * @param {*} blobParts\n * @param {{ type?: string, endings?: string }} [options]\n */\n constructor (blobParts = [], options = {}) {\n if (typeof blobParts !== 'object' || blobParts === null) {\n throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n }\n\n if (typeof blobParts[Symbol.iterator] !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n }\n\n if (typeof options !== 'object' && typeof options !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n }\n\n if (options === null) options = {}\n\n const encoder = new TextEncoder()\n for (const element of blobParts) {\n let part\n if (ArrayBuffer.isView(element)) {\n part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n } else if (element instanceof ArrayBuffer) {\n part = new Uint8Array(element.slice(0))\n } else if (element instanceof Blob) {\n part = element\n } else {\n part = encoder.encode(`${element}`)\n }\n\n this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n this.#parts.push(part)\n }\n\n this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n const type = options.type === undefined ? '' : String(options.type)\n this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n }\n\n /**\n * The Blob interface's size property returns the\n * size of the Blob in bytes.\n */\n get size () {\n return this.#size\n }\n\n /**\n * The type property of a Blob object returns the MIME type of the file.\n */\n get type () {\n return this.#type\n }\n\n /**\n * The text() method in the Blob interface returns a Promise\n * that resolves with a string containing the contents of\n * the blob, interpreted as UTF-8.\n *\n * @return {Promise<string>}\n */\n async text () {\n // More optimized than using this.arrayBuffer()\n // that requires twice as much ram\n const decoder = new TextDecoder()\n let str = ''\n for await (const part of toIterator(this.#parts, false)) {\n str += decoder.decode(part, { stream: true })\n }\n // Remaining\n str += decoder.decode()\n return str\n }\n\n /**\n * The arrayBuffer() method in the Blob interface returns a\n * Promise that resolves with the contents of the blob as\n * binary data contained in an ArrayBuffer.\n *\n * @return {Promise<ArrayBuffer>}\n */\n async arrayBuffer () {\n // Easier way... Just a unnecessary overhead\n // const view = new Uint8Array(this.size);\n // await this.stream().getReader({mode: 'byob'}).read(view);\n // return view.buffer;\n\n const data = new Uint8Array(this.size)\n let offset = 0\n for await (const chunk of toIterator(this.#parts, false)) {\n data.set(chunk, offset)\n offset += chunk.length\n }\n\n return data.buffer\n }\n\n stream () {\n const it = toIterator(this.#parts, true)\n\n return new globalThis.ReadableStream({\n // @ts-ignore\n type: 'bytes',\n async pull (ctrl) {\n const chunk = await it.next()\n chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n },\n\n async cancel () {\n await it.return()\n }\n })\n }\n\n /**\n * The Blob interface's slice() method creates and returns a\n * new Blob object which contains data from a subset of the\n * blob on which it's called.\n *\n * @param {number} [start]\n * @param {number} [end]\n * @param {string} [type]\n */\n slice (start = 0, end = this.size, type = '') {\n const { size } = this\n\n let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n const span = Math.max(relativeEnd - relativeStart, 0)\n const parts = this.#parts\n const blobParts = []\n let added = 0\n\n for (const part of parts) {\n // don't add the overflow to new blobParts\n if (added >= span) {\n break\n }\n\n const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n if (relativeStart && size <= relativeStart) {\n // Skip the beginning and change the relative\n // start & end position as we skip the unwanted parts\n relativeStart -= size\n relativeEnd -= size\n } else {\n let chunk\n if (ArrayBuffer.isView(part)) {\n chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n added += chunk.byteLength\n } else {\n chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n added += chunk.size\n }\n relativeEnd -= size\n blobParts.push(chunk)\n relativeStart = 0 // All next sequential parts should start at 0\n }\n }\n\n const blob = new Blob([], { type: String(type).toLowerCase() })\n blob.#size = span\n blob.#parts = blobParts\n\n return blob\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n\n static [Symbol.hasInstance] (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.constructor === 'function' &&\n (\n typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function'\n ) &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n }\n}\n\nObject.defineProperties(_Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n"],"names":["size"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../node_modules/fetch-blob/index.js"],"sourcesContent":["/*! fetch-blob. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n for (const part of parts) {\n if ('stream' in part) {\n yield * (/** @type {AsyncIterableIterator<Uint8Array>} */ (part.stream()))\n } else if (ArrayBuffer.isView(part)) {\n if (clone) {\n let position = part.byteOffset\n const end = part.byteOffset + part.byteLength\n while (position !== end) {\n const size = Math.min(end - position, POOL_SIZE)\n const chunk = part.buffer.slice(position, position + size)\n position += chunk.byteLength\n yield new Uint8Array(chunk)\n }\n } else {\n yield part\n }\n /* c8 ignore next 10 */\n } else {\n // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n let position = 0, b = (/** @type {Blob} */ (part))\n while (position !== b.size) {\n const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n yield new Uint8Array(buffer)\n }\n }\n }\n}\n\nconst _Blob = class Blob {\n /** @type {Array.<(Blob|Uint8Array)>} */\n #parts = []\n #type = ''\n #size = 0\n #endings = 'transparent'\n\n /**\n * The Blob() constructor returns a new Blob object. The content\n * of the blob consists of the concatenation of the values given\n * in the parameter array.\n *\n * @param {*} blobParts\n * @param {{ type?: string, endings?: string }} [options]\n */\n constructor (blobParts = [], options = {}) {\n if (typeof blobParts !== 'object' || blobParts === null) {\n throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n }\n\n if (typeof blobParts[Symbol.iterator] !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n }\n\n if (typeof options !== 'object' && typeof options !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n }\n\n if (options === null) options = {}\n\n const encoder = new TextEncoder()\n for (const element of blobParts) {\n let part\n if (ArrayBuffer.isView(element)) {\n part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n } else if (element instanceof ArrayBuffer) {\n part = new Uint8Array(element.slice(0))\n } else if (element instanceof Blob) {\n part = element\n } else {\n part = encoder.encode(`${element}`)\n }\n\n this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n this.#parts.push(part)\n }\n\n this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n const type = options.type === undefined ? '' : String(options.type)\n this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n }\n\n /**\n * The Blob interface's size property returns the\n * size of the Blob in bytes.\n */\n get size () {\n return this.#size\n }\n\n /**\n * The type property of a Blob object returns the MIME type of the file.\n */\n get type () {\n return this.#type\n }\n\n /**\n * The text() method in the Blob interface returns a Promise\n * that resolves with a string containing the contents of\n * the blob, interpreted as UTF-8.\n *\n * @return {Promise<string>}\n */\n async text () {\n // More optimized than using this.arrayBuffer()\n // that requires twice as much ram\n const decoder = new TextDecoder()\n let str = ''\n for await (const part of toIterator(this.#parts, false)) {\n str += decoder.decode(part, { stream: true })\n }\n // Remaining\n str += decoder.decode()\n return str\n }\n\n /**\n * The arrayBuffer() method in the Blob interface returns a\n * Promise that resolves with the contents of the blob as\n * binary data contained in an ArrayBuffer.\n *\n * @return {Promise<ArrayBuffer>}\n */\n async arrayBuffer () {\n // Easier way... Just a unnecessary overhead\n // const view = new Uint8Array(this.size);\n // await this.stream().getReader({mode: 'byob'}).read(view);\n // return view.buffer;\n\n const data = new Uint8Array(this.size)\n let offset = 0\n for await (const chunk of toIterator(this.#parts, false)) {\n data.set(chunk, offset)\n offset += chunk.length\n }\n\n return data.buffer\n }\n\n stream () {\n const it = toIterator(this.#parts, true)\n\n return new globalThis.ReadableStream({\n // @ts-ignore\n type: 'bytes',\n async pull (ctrl) {\n const chunk = await it.next()\n chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n },\n\n async cancel () {\n await it.return()\n }\n })\n }\n\n /**\n * The Blob interface's slice() method creates and returns a\n * new Blob object which contains data from a subset of the\n * blob on which it's called.\n *\n * @param {number} [start]\n * @param {number} [end]\n * @param {string} [type]\n */\n slice (start = 0, end = this.size, type = '') {\n const { size } = this\n\n let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n const span = Math.max(relativeEnd - relativeStart, 0)\n const parts = this.#parts\n const blobParts = []\n let added = 0\n\n for (const part of parts) {\n // don't add the overflow to new blobParts\n if (added >= span) {\n break\n }\n\n const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n if (relativeStart && size <= relativeStart) {\n // Skip the beginning and change the relative\n // start & end position as we skip the unwanted parts\n relativeStart -= size\n relativeEnd -= size\n } else {\n let chunk\n if (ArrayBuffer.isView(part)) {\n chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n added += chunk.byteLength\n } else {\n chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n added += chunk.size\n }\n relativeEnd -= size\n blobParts.push(chunk)\n relativeStart = 0 // All next sequential parts should start at 0\n }\n }\n\n const blob = new Blob([], { type: String(type).toLowerCase() })\n blob.#size = span\n blob.#parts = blobParts\n\n return blob\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n\n static [Symbol.hasInstance] (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.constructor === 'function' &&\n (\n typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function'\n ) &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n }\n}\n\nObject.defineProperties(_Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n"],"names":["size"],"mappings":"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"}
@@ -23,7 +23,10 @@ const POOL_SIZE = 65536;
23
23
  async function* toIterator(parts, clone = true) {
24
24
  for (const part of parts) {
25
25
  if ("stream" in part) {
26
- yield* part.stream();
26
+ yield* (
27
+ /** @type {AsyncIterableIterator<Uint8Array>} */
28
+ part.stream()
29
+ );
27
30
  } else if (ArrayBuffer.isView(part)) {
28
31
  if (clone) {
29
32
  let position = part.byteOffset;
@@ -38,7 +41,10 @@ async function* toIterator(parts, clone = true) {
38
41
  yield part;
39
42
  }
40
43
  } else {
41
- let position = 0, b = part;
44
+ let position = 0, b = (
45
+ /** @type {Blob} */
46
+ part
47
+ );
42
48
  while (position !== b.size) {
43
49
  const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE));
44
50
  const buffer = await chunk.arrayBuffer();
@@ -49,7 +55,16 @@ async function* toIterator(parts, clone = true) {
49
55
  }
50
56
  }
51
57
  const _Blob = (_a = class {
58
+ /**
59
+ * The Blob() constructor returns a new Blob object. The content
60
+ * of the blob consists of the concatenation of the values given
61
+ * in the parameter array.
62
+ *
63
+ * @param {*} blobParts
64
+ * @param {{ type?: string, endings?: string }} [options]
65
+ */
52
66
  constructor(blobParts = [], options = {}) {
67
+ /** @type {Array.<(Blob|Uint8Array)>} */
53
68
  __privateAdd(this, _parts, []);
54
69
  __privateAdd(this, _type, "");
55
70
  __privateAdd(this, _size, 0);
@@ -84,12 +99,26 @@ const _Blob = (_a = class {
84
99
  const type = options.type === void 0 ? "" : String(options.type);
85
100
  __privateSet(this, _type, /^[\x20-\x7E]*$/.test(type) ? type : "");
86
101
  }
102
+ /**
103
+ * The Blob interface's size property returns the
104
+ * size of the Blob in bytes.
105
+ */
87
106
  get size() {
88
107
  return __privateGet(this, _size);
89
108
  }
109
+ /**
110
+ * The type property of a Blob object returns the MIME type of the file.
111
+ */
90
112
  get type() {
91
113
  return __privateGet(this, _type);
92
114
  }
115
+ /**
116
+ * The text() method in the Blob interface returns a Promise
117
+ * that resolves with a string containing the contents of
118
+ * the blob, interpreted as UTF-8.
119
+ *
120
+ * @return {Promise<string>}
121
+ */
93
122
  async text() {
94
123
  const decoder = new TextDecoder();
95
124
  let str = "";
@@ -99,6 +128,13 @@ const _Blob = (_a = class {
99
128
  str += decoder.decode();
100
129
  return str;
101
130
  }
131
+ /**
132
+ * The arrayBuffer() method in the Blob interface returns a
133
+ * Promise that resolves with the contents of the blob as
134
+ * binary data contained in an ArrayBuffer.
135
+ *
136
+ * @return {Promise<ArrayBuffer>}
137
+ */
102
138
  async arrayBuffer() {
103
139
  const data = new Uint8Array(this.size);
104
140
  let offset = 0;
@@ -111,6 +147,7 @@ const _Blob = (_a = class {
111
147
  stream() {
112
148
  const it = toIterator(__privateGet(this, _parts), true);
113
149
  return new globalThis.ReadableStream({
150
+ // @ts-ignore
114
151
  type: "bytes",
115
152
  async pull(ctrl) {
116
153
  const chunk = await it.next();
@@ -121,6 +158,15 @@ const _Blob = (_a = class {
121
158
  }
122
159
  });
123
160
  }
161
+ /**
162
+ * The Blob interface's slice() method creates and returns a
163
+ * new Blob object which contains data from a subset of the
164
+ * blob on which it's called.
165
+ *
166
+ * @param {number} [start]
167
+ * @param {number} [end]
168
+ * @param {string} [type]
169
+ */
124
170
  slice(start = 0, end = this.size, type = "") {
125
171
  const { size } = this;
126
172
  let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/fetch-blob/index.js"],"sourcesContent":["/*! fetch-blob. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n for (const part of parts) {\n if ('stream' in part) {\n yield * (/** @type {AsyncIterableIterator<Uint8Array>} */ (part.stream()))\n } else if (ArrayBuffer.isView(part)) {\n if (clone) {\n let position = part.byteOffset\n const end = part.byteOffset + part.byteLength\n while (position !== end) {\n const size = Math.min(end - position, POOL_SIZE)\n const chunk = part.buffer.slice(position, position + size)\n position += chunk.byteLength\n yield new Uint8Array(chunk)\n }\n } else {\n yield part\n }\n /* c8 ignore next 10 */\n } else {\n // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n let position = 0, b = (/** @type {Blob} */ (part))\n while (position !== b.size) {\n const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n yield new Uint8Array(buffer)\n }\n }\n }\n}\n\nconst _Blob = class Blob {\n /** @type {Array.<(Blob|Uint8Array)>} */\n #parts = []\n #type = ''\n #size = 0\n #endings = 'transparent'\n\n /**\n * The Blob() constructor returns a new Blob object. The content\n * of the blob consists of the concatenation of the values given\n * in the parameter array.\n *\n * @param {*} blobParts\n * @param {{ type?: string, endings?: string }} [options]\n */\n constructor (blobParts = [], options = {}) {\n if (typeof blobParts !== 'object' || blobParts === null) {\n throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n }\n\n if (typeof blobParts[Symbol.iterator] !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n }\n\n if (typeof options !== 'object' && typeof options !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n }\n\n if (options === null) options = {}\n\n const encoder = new TextEncoder()\n for (const element of blobParts) {\n let part\n if (ArrayBuffer.isView(element)) {\n part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n } else if (element instanceof ArrayBuffer) {\n part = new Uint8Array(element.slice(0))\n } else if (element instanceof Blob) {\n part = element\n } else {\n part = encoder.encode(`${element}`)\n }\n\n this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n this.#parts.push(part)\n }\n\n this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n const type = options.type === undefined ? '' : String(options.type)\n this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n }\n\n /**\n * The Blob interface's size property returns the\n * size of the Blob in bytes.\n */\n get size () {\n return this.#size\n }\n\n /**\n * The type property of a Blob object returns the MIME type of the file.\n */\n get type () {\n return this.#type\n }\n\n /**\n * The text() method in the Blob interface returns a Promise\n * that resolves with a string containing the contents of\n * the blob, interpreted as UTF-8.\n *\n * @return {Promise<string>}\n */\n async text () {\n // More optimized than using this.arrayBuffer()\n // that requires twice as much ram\n const decoder = new TextDecoder()\n let str = ''\n for await (const part of toIterator(this.#parts, false)) {\n str += decoder.decode(part, { stream: true })\n }\n // Remaining\n str += decoder.decode()\n return str\n }\n\n /**\n * The arrayBuffer() method in the Blob interface returns a\n * Promise that resolves with the contents of the blob as\n * binary data contained in an ArrayBuffer.\n *\n * @return {Promise<ArrayBuffer>}\n */\n async arrayBuffer () {\n // Easier way... Just a unnecessary overhead\n // const view = new Uint8Array(this.size);\n // await this.stream().getReader({mode: 'byob'}).read(view);\n // return view.buffer;\n\n const data = new Uint8Array(this.size)\n let offset = 0\n for await (const chunk of toIterator(this.#parts, false)) {\n data.set(chunk, offset)\n offset += chunk.length\n }\n\n return data.buffer\n }\n\n stream () {\n const it = toIterator(this.#parts, true)\n\n return new globalThis.ReadableStream({\n // @ts-ignore\n type: 'bytes',\n async pull (ctrl) {\n const chunk = await it.next()\n chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n },\n\n async cancel () {\n await it.return()\n }\n })\n }\n\n /**\n * The Blob interface's slice() method creates and returns a\n * new Blob object which contains data from a subset of the\n * blob on which it's called.\n *\n * @param {number} [start]\n * @param {number} [end]\n * @param {string} [type]\n */\n slice (start = 0, end = this.size, type = '') {\n const { size } = this\n\n let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n const span = Math.max(relativeEnd - relativeStart, 0)\n const parts = this.#parts\n const blobParts = []\n let added = 0\n\n for (const part of parts) {\n // don't add the overflow to new blobParts\n if (added >= span) {\n break\n }\n\n const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n if (relativeStart && size <= relativeStart) {\n // Skip the beginning and change the relative\n // start & end position as we skip the unwanted parts\n relativeStart -= size\n relativeEnd -= size\n } else {\n let chunk\n if (ArrayBuffer.isView(part)) {\n chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n added += chunk.byteLength\n } else {\n chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n added += chunk.size\n }\n relativeEnd -= size\n blobParts.push(chunk)\n relativeStart = 0 // All next sequential parts should start at 0\n }\n }\n\n const blob = new Blob([], { type: String(type).toLowerCase() })\n blob.#size = span\n blob.#parts = blobParts\n\n return blob\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n\n static [Symbol.hasInstance] (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.constructor === 'function' &&\n (\n typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function'\n ) &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n }\n}\n\nObject.defineProperties(_Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n"],"names":["size"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/fetch-blob/index.js"],"sourcesContent":["/*! fetch-blob. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n for (const part of parts) {\n if ('stream' in part) {\n yield * (/** @type {AsyncIterableIterator<Uint8Array>} */ (part.stream()))\n } else if (ArrayBuffer.isView(part)) {\n if (clone) {\n let position = part.byteOffset\n const end = part.byteOffset + part.byteLength\n while (position !== end) {\n const size = Math.min(end - position, POOL_SIZE)\n const chunk = part.buffer.slice(position, position + size)\n position += chunk.byteLength\n yield new Uint8Array(chunk)\n }\n } else {\n yield part\n }\n /* c8 ignore next 10 */\n } else {\n // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n let position = 0, b = (/** @type {Blob} */ (part))\n while (position !== b.size) {\n const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n yield new Uint8Array(buffer)\n }\n }\n }\n}\n\nconst _Blob = class Blob {\n /** @type {Array.<(Blob|Uint8Array)>} */\n #parts = []\n #type = ''\n #size = 0\n #endings = 'transparent'\n\n /**\n * The Blob() constructor returns a new Blob object. The content\n * of the blob consists of the concatenation of the values given\n * in the parameter array.\n *\n * @param {*} blobParts\n * @param {{ type?: string, endings?: string }} [options]\n */\n constructor (blobParts = [], options = {}) {\n if (typeof blobParts !== 'object' || blobParts === null) {\n throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n }\n\n if (typeof blobParts[Symbol.iterator] !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n }\n\n if (typeof options !== 'object' && typeof options !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n }\n\n if (options === null) options = {}\n\n const encoder = new TextEncoder()\n for (const element of blobParts) {\n let part\n if (ArrayBuffer.isView(element)) {\n part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n } else if (element instanceof ArrayBuffer) {\n part = new Uint8Array(element.slice(0))\n } else if (element instanceof Blob) {\n part = element\n } else {\n part = encoder.encode(`${element}`)\n }\n\n this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n this.#parts.push(part)\n }\n\n this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n const type = options.type === undefined ? '' : String(options.type)\n this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n }\n\n /**\n * The Blob interface's size property returns the\n * size of the Blob in bytes.\n */\n get size () {\n return this.#size\n }\n\n /**\n * The type property of a Blob object returns the MIME type of the file.\n */\n get type () {\n return this.#type\n }\n\n /**\n * The text() method in the Blob interface returns a Promise\n * that resolves with a string containing the contents of\n * the blob, interpreted as UTF-8.\n *\n * @return {Promise<string>}\n */\n async text () {\n // More optimized than using this.arrayBuffer()\n // that requires twice as much ram\n const decoder = new TextDecoder()\n let str = ''\n for await (const part of toIterator(this.#parts, false)) {\n str += decoder.decode(part, { stream: true })\n }\n // Remaining\n str += decoder.decode()\n return str\n }\n\n /**\n * The arrayBuffer() method in the Blob interface returns a\n * Promise that resolves with the contents of the blob as\n * binary data contained in an ArrayBuffer.\n *\n * @return {Promise<ArrayBuffer>}\n */\n async arrayBuffer () {\n // Easier way... Just a unnecessary overhead\n // const view = new Uint8Array(this.size);\n // await this.stream().getReader({mode: 'byob'}).read(view);\n // return view.buffer;\n\n const data = new Uint8Array(this.size)\n let offset = 0\n for await (const chunk of toIterator(this.#parts, false)) {\n data.set(chunk, offset)\n offset += chunk.length\n }\n\n return data.buffer\n }\n\n stream () {\n const it = toIterator(this.#parts, true)\n\n return new globalThis.ReadableStream({\n // @ts-ignore\n type: 'bytes',\n async pull (ctrl) {\n const chunk = await it.next()\n chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n },\n\n async cancel () {\n await it.return()\n }\n })\n }\n\n /**\n * The Blob interface's slice() method creates and returns a\n * new Blob object which contains data from a subset of the\n * blob on which it's called.\n *\n * @param {number} [start]\n * @param {number} [end]\n * @param {string} [type]\n */\n slice (start = 0, end = this.size, type = '') {\n const { size } = this\n\n let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n const span = Math.max(relativeEnd - relativeStart, 0)\n const parts = this.#parts\n const blobParts = []\n let added = 0\n\n for (const part of parts) {\n // don't add the overflow to new blobParts\n if (added >= span) {\n break\n }\n\n const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n if (relativeStart && size <= relativeStart) {\n // Skip the beginning and change the relative\n // start & end position as we skip the unwanted parts\n relativeStart -= size\n relativeEnd -= size\n } else {\n let chunk\n if (ArrayBuffer.isView(part)) {\n chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n added += chunk.byteLength\n } else {\n chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n added += chunk.size\n }\n relativeEnd -= size\n blobParts.push(chunk)\n relativeStart = 0 // All next sequential parts should start at 0\n }\n }\n\n const blob = new Blob([], { type: String(type).toLowerCase() })\n blob.#size = span\n blob.#parts = blobParts\n\n return blob\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n\n static [Symbol.hasInstance] (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.constructor === 'function' &&\n (\n typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function'\n ) &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n }\n}\n\nObject.defineProperties(_Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n"],"names":["size"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"streams.cjs","sources":["../../../node_modules/fetch-blob/streams.cjs"],"sourcesContent":["/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n // `node:stream/web` got introduced in v16.5.0 as experimental\n // and it's preferred over the polyfilled version. So we also\n // suppress the warning that gets emitted by NodeJS for using it.\n try {\n const process = require('node:process')\n const { emitWarning } = process\n try {\n process.emitWarning = () => {}\n Object.assign(globalThis, require('node:stream/web'))\n process.emitWarning = emitWarning\n } catch (error) {\n process.emitWarning = emitWarning\n throw error\n }\n } catch (error) {\n // fallback to polyfill implementation\n Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n }\n}\n\ntry {\n // Don't use node: prefix for this, require+node: is not supported until node v14.14\n // Only `import()` can use prefix in 12.20 and later\n const { Blob } = require('buffer')\n if (Blob && !Blob.prototype.stream) {\n Blob.prototype.stream = function name (params) {\n let position = 0\n const blob = this\n\n return new ReadableStream({\n type: 'bytes',\n async pull (ctrl) {\n const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n ctrl.enqueue(new Uint8Array(buffer))\n\n if (position === blob.size) {\n ctrl.close()\n }\n }\n })\n }\n }\n} catch (error) {}\n/* c8 ignore end */\n"],"names":["require$$2"],"mappings":";;AAEA,MAAM,YAAY;AAElB,IAAI,CAAC,WAAW,gBAAgB;AAI9B,MAAI;AACF,UAAM,UAAU,QAAQ;AACxB,UAAM,EAAE,YAAW,IAAK;AACxB,QAAI;AACF,cAAQ,cAAc,MAAM;AAAA,MAAE;AAC9B,aAAO,OAAO,YAAY,QAAQ,kBAAkB;AACpD,cAAQ,cAAc;AAAA,IACvB,SAAQ,OAAP;AACA,cAAQ,cAAc;AACtB,YAAM;AAAA,IACP;AAAA,EACF,SAAQ,OAAP;AAEA,WAAO,OAAO,YAAYA,gBAAAA,WAAuD;AAAA,EAClF;AACH;AAEA,IAAI;AAGF,QAAM,EAAE,KAAI,IAAK,QAAQ;AACzB,MAAI,QAAQ,CAAC,KAAK,UAAU,QAAQ;AAClC,SAAK,UAAU,SAAS,SAAS,KAAM,QAAQ;AAC7C,UAAI,WAAW;AACf,YAAM,OAAO;AAEb,aAAO,IAAI,eAAe;AAAA,QACxB,MAAM;AAAA,QACN,MAAM,KAAM,MAAM;AAChB,gBAAM,QAAQ,KAAK,MAAM,UAAU,KAAK,IAAI,KAAK,MAAM,WAAW,SAAS,CAAC;AAC5E,gBAAM,SAAS,MAAM,MAAM,YAAa;AACxC,sBAAY,OAAO;AACnB,eAAK,QAAQ,IAAI,WAAW,MAAM,CAAC;AAEnC,cAAI,aAAa,KAAK,MAAM;AAC1B,iBAAK,MAAO;AAAA,UACb;AAAA,QACF;AAAA,MACT,CAAO;AAAA,IACF;AAAA,EACF;AACH,SAAS,OAAP;AAAc;"}
1
+ {"version":3,"file":"streams.cjs","sources":["../../../node_modules/fetch-blob/streams.cjs"],"sourcesContent":["/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n // `node:stream/web` got introduced in v16.5.0 as experimental\n // and it's preferred over the polyfilled version. So we also\n // suppress the warning that gets emitted by NodeJS for using it.\n try {\n const process = require('node:process')\n const { emitWarning } = process\n try {\n process.emitWarning = () => {}\n Object.assign(globalThis, require('node:stream/web'))\n process.emitWarning = emitWarning\n } catch (error) {\n process.emitWarning = emitWarning\n throw error\n }\n } catch (error) {\n // fallback to polyfill implementation\n Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n }\n}\n\ntry {\n // Don't use node: prefix for this, require+node: is not supported until node v14.14\n // Only `import()` can use prefix in 12.20 and later\n const { Blob } = require('buffer')\n if (Blob && !Blob.prototype.stream) {\n Blob.prototype.stream = function name (params) {\n let position = 0\n const blob = this\n\n return new ReadableStream({\n type: 'bytes',\n async pull (ctrl) {\n const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n ctrl.enqueue(new Uint8Array(buffer))\n\n if (position === blob.size) {\n ctrl.close()\n }\n }\n })\n }\n }\n} catch (error) {}\n/* c8 ignore end */\n"],"names":["require$$2"],"mappings":";;AAEA,MAAM,YAAY;AAElB,IAAI,CAAC,WAAW,gBAAgB;AAI9B,MAAI;AACF,UAAM,UAAU,QAAQ,cAAc;AACtC,UAAM,EAAE,YAAW,IAAK;AACxB,QAAI;AACF,cAAQ,cAAc,MAAM;AAAA,MAAE;AAC9B,aAAO,OAAO,YAAY,QAAQ,iBAAiB,CAAC;AACpD,cAAQ,cAAc;AAAA,IACvB,SAAQ,OAAP;AACA,cAAQ,cAAc;AACtB,YAAM;AAAA,IACP;AAAA,EACF,SAAQ,OAAP;AAEA,WAAO,OAAO,YAAYA,gBAAAA,WAAuD;AAAA,EAClF;AACH;AAEA,IAAI;AAGF,QAAM,EAAE,KAAI,IAAK,QAAQ,QAAQ;AACjC,MAAI,QAAQ,CAAC,KAAK,UAAU,QAAQ;AAClC,SAAK,UAAU,SAAS,SAAS,KAAM,QAAQ;AAC7C,UAAI,WAAW;AACf,YAAM,OAAO;AAEb,aAAO,IAAI,eAAe;AAAA,QACxB,MAAM;AAAA,QACN,MAAM,KAAM,MAAM;AAChB,gBAAM,QAAQ,KAAK,MAAM,UAAU,KAAK,IAAI,KAAK,MAAM,WAAW,SAAS,CAAC;AAC5E,gBAAM,SAAS,MAAM,MAAM,YAAa;AACxC,sBAAY,OAAO;AACnB,eAAK,QAAQ,IAAI,WAAW,MAAM,CAAC;AAEnC,cAAI,aAAa,KAAK,MAAM;AAC1B,iBAAK,MAAO;AAAA,UACb;AAAA,QACF;AAAA,MACT,CAAO;AAAA,IACF;AAAA,EACF;AACH,SAAS,OAAP;AAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"streams.js","sources":["../../../node_modules/fetch-blob/streams.cjs"],"sourcesContent":["/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n // `node:stream/web` got introduced in v16.5.0 as experimental\n // and it's preferred over the polyfilled version. So we also\n // suppress the warning that gets emitted by NodeJS for using it.\n try {\n const process = require('node:process')\n const { emitWarning } = process\n try {\n process.emitWarning = () => {}\n Object.assign(globalThis, require('node:stream/web'))\n process.emitWarning = emitWarning\n } catch (error) {\n process.emitWarning = emitWarning\n throw error\n }\n } catch (error) {\n // fallback to polyfill implementation\n Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n }\n}\n\ntry {\n // Don't use node: prefix for this, require+node: is not supported until node v14.14\n // Only `import()` can use prefix in 12.20 and later\n const { Blob } = require('buffer')\n if (Blob && !Blob.prototype.stream) {\n Blob.prototype.stream = function name (params) {\n let position = 0\n const blob = this\n\n return new ReadableStream({\n type: 'bytes',\n async pull (ctrl) {\n const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n ctrl.enqueue(new Uint8Array(buffer))\n\n if (position === blob.size) {\n ctrl.close()\n }\n }\n })\n }\n }\n} catch (error) {}\n/* c8 ignore end */\n"],"names":["require$$2"],"mappings":";AAEA,MAAM,YAAY;AAElB,IAAI,CAAC,WAAW,gBAAgB;AAI9B,MAAI;AACF,UAAM,UAAU,QAAQ;AACxB,UAAM,EAAE,YAAW,IAAK;AACxB,QAAI;AACF,cAAQ,cAAc,MAAM;AAAA,MAAE;AAC9B,aAAO,OAAO,YAAY,QAAQ,kBAAkB;AACpD,cAAQ,cAAc;AAAA,IACvB,SAAQ,OAAP;AACA,cAAQ,cAAc;AACtB,YAAM;AAAA,IACP;AAAA,EACF,SAAQ,OAAP;AAEA,WAAO,OAAO,YAAYA,wBAAuD;AAAA,EAClF;AACH;AAEA,IAAI;AAGF,QAAM,EAAE,KAAI,IAAK,QAAQ;AACzB,MAAI,QAAQ,CAAC,KAAK,UAAU,QAAQ;AAClC,SAAK,UAAU,SAAS,SAAS,KAAM,QAAQ;AAC7C,UAAI,WAAW;AACf,YAAM,OAAO;AAEb,aAAO,IAAI,eAAe;AAAA,QACxB,MAAM;AAAA,QACN,MAAM,KAAM,MAAM;AAChB,gBAAM,QAAQ,KAAK,MAAM,UAAU,KAAK,IAAI,KAAK,MAAM,WAAW,SAAS,CAAC;AAC5E,gBAAM,SAAS,MAAM,MAAM,YAAa;AACxC,sBAAY,OAAO;AACnB,eAAK,QAAQ,IAAI,WAAW,MAAM,CAAC;AAEnC,cAAI,aAAa,KAAK,MAAM;AAC1B,iBAAK,MAAO;AAAA,UACb;AAAA,QACF;AAAA,MACT,CAAO;AAAA,IACF;AAAA,EACF;AACH,SAAS,OAAP;AAAc;"}
1
+ {"version":3,"file":"streams.js","sources":["../../../node_modules/fetch-blob/streams.cjs"],"sourcesContent":["/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n // `node:stream/web` got introduced in v16.5.0 as experimental\n // and it's preferred over the polyfilled version. So we also\n // suppress the warning that gets emitted by NodeJS for using it.\n try {\n const process = require('node:process')\n const { emitWarning } = process\n try {\n process.emitWarning = () => {}\n Object.assign(globalThis, require('node:stream/web'))\n process.emitWarning = emitWarning\n } catch (error) {\n process.emitWarning = emitWarning\n throw error\n }\n } catch (error) {\n // fallback to polyfill implementation\n Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n }\n}\n\ntry {\n // Don't use node: prefix for this, require+node: is not supported until node v14.14\n // Only `import()` can use prefix in 12.20 and later\n const { Blob } = require('buffer')\n if (Blob && !Blob.prototype.stream) {\n Blob.prototype.stream = function name (params) {\n let position = 0\n const blob = this\n\n return new ReadableStream({\n type: 'bytes',\n async pull (ctrl) {\n const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n ctrl.enqueue(new Uint8Array(buffer))\n\n if (position === blob.size) {\n ctrl.close()\n }\n }\n })\n }\n }\n} catch (error) {}\n/* c8 ignore end */\n"],"names":["require$$2"],"mappings":";AAEA,MAAM,YAAY;AAElB,IAAI,CAAC,WAAW,gBAAgB;AAI9B,MAAI;AACF,UAAM,UAAU,QAAQ,cAAc;AACtC,UAAM,EAAE,YAAW,IAAK;AACxB,QAAI;AACF,cAAQ,cAAc,MAAM;AAAA,MAAE;AAC9B,aAAO,OAAO,YAAY,QAAQ,iBAAiB,CAAC;AACpD,cAAQ,cAAc;AAAA,IACvB,SAAQ,OAAP;AACA,cAAQ,cAAc;AACtB,YAAM;AAAA,IACP;AAAA,EACF,SAAQ,OAAP;AAEA,WAAO,OAAO,YAAYA,wBAAuD;AAAA,EAClF;AACH;AAEA,IAAI;AAGF,QAAM,EAAE,KAAI,IAAK,QAAQ,QAAQ;AACjC,MAAI,QAAQ,CAAC,KAAK,UAAU,QAAQ;AAClC,SAAK,UAAU,SAAS,SAAS,KAAM,QAAQ;AAC7C,UAAI,WAAW;AACf,YAAM,OAAO;AAEb,aAAO,IAAI,eAAe;AAAA,QACxB,MAAM;AAAA,QACN,MAAM,KAAM,MAAM;AAChB,gBAAM,QAAQ,KAAK,MAAM,UAAU,KAAK,IAAI,KAAK,MAAM,WAAW,SAAS,CAAC;AAC5E,gBAAM,SAAS,MAAM,MAAM,YAAa;AACxC,sBAAY,OAAO;AACnB,eAAK,QAAQ,IAAI,WAAW,MAAM,CAAC;AAEnC,cAAI,aAAa,KAAK,MAAM;AAC1B,iBAAK,MAAO;AAAA,UACb;AAAA,QACF;AAAA,MACT,CAAO;AAAA,IACF;AAAA,EACF;AACH,SAAS,OAAP;AAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"esm.min.cjs","sources":["../../../node_modules/formdata-polyfill/esm.min.js"],"sourcesContent":["/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.length<e){throw new TypeError(`Failed to execute '${n}' on 'FormData': ${e} arguments required, but only ${a.length} present.`)}}\n\nexport const File = F\n\n/** @type {typeof globalThis.FormData} */\nexport const FormData = class FormData {\n#d=[];\nconstructor(...a){if(a.length)throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`)}\nget [t]() {return 'FormData'}\n[i](){return this.entries()}\nstatic [h](o) {return o&&typeof o==='object'&&o[t]==='FormData'&&!m.some(m=>typeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;c<l;c++)if(b[c][0]===a)return b[c][1];return null}\ngetAll(a,b){x('getAll',arguments,1);b=[];a+='';this.#d.forEach(c=>c[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(?<!\\r)\\n/g, '\\r\\n')}\\r\\n`)\n:c.push(p+e(n)+`\"; filename=\"${e(v.name, 1)}\"\\r\\nContent-Type: ${v.type||\"application/octet-stream\"}\\r\\n\\r\\n`, v, '\\r\\n'))\nc.push(`--${b}--`)\nreturn new B(c,{type:\"multipart/form-data; boundary=\"+b})}\n"],"names":["F","f","e","m","C"],"mappings":"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"}
1
+ {"version":3,"file":"esm.min.cjs","sources":["../../../node_modules/formdata-polyfill/esm.min.js"],"sourcesContent":["/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.length<e){throw new TypeError(`Failed to execute '${n}' on 'FormData': ${e} arguments required, but only ${a.length} present.`)}}\n\nexport const File = F\n\n/** @type {typeof globalThis.FormData} */\nexport const FormData = class FormData {\n#d=[];\nconstructor(...a){if(a.length)throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`)}\nget [t]() {return 'FormData'}\n[i](){return this.entries()}\nstatic [h](o) {return o&&typeof o==='object'&&o[t]==='FormData'&&!m.some(m=>typeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;c<l;c++)if(b[c][0]===a)return b[c][1];return null}\ngetAll(a,b){x('getAll',arguments,1);b=[];a+='';this.#d.forEach(c=>c[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(?<!\\r)\\n/g, '\\r\\n')}\\r\\n`)\n:c.push(p+e(n)+`\"; filename=\"${e(v.name, 1)}\"\\r\\nContent-Type: ${v.type||\"application/octet-stream\"}\\r\\n\\r\\n`, v, '\\r\\n'))\nc.push(`--${b}--`)\nreturn new B(c,{type:\"multipart/form-data; boundary=\"+b})}\n"],"names":["F","f","e","m","C"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"esm.min.js","sources":["../../../node_modules/formdata-polyfill/esm.min.js"],"sourcesContent":["/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.length<e){throw new TypeError(`Failed to execute '${n}' on 'FormData': ${e} arguments required, but only ${a.length} present.`)}}\n\nexport const File = F\n\n/** @type {typeof globalThis.FormData} */\nexport const FormData = class FormData {\n#d=[];\nconstructor(...a){if(a.length)throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`)}\nget [t]() {return 'FormData'}\n[i](){return this.entries()}\nstatic [h](o) {return o&&typeof o==='object'&&o[t]==='FormData'&&!m.some(m=>typeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;c<l;c++)if(b[c][0]===a)return b[c][1];return null}\ngetAll(a,b){x('getAll',arguments,1);b=[];a+='';this.#d.forEach(c=>c[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(?<!\\r)\\n/g, '\\r\\n')}\\r\\n`)\n:c.push(p+e(n)+`\"; filename=\"${e(v.name, 1)}\"\\r\\nContent-Type: ${v.type||\"application/octet-stream\"}\\r\\n\\r\\n`, v, '\\r\\n'))\nc.push(`--${b}--`)\nreturn new B(c,{type:\"multipart/form-data; boundary=\"+b})}\n"],"names":["F","f","e","m","C"],"mappings":"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"}
1
+ {"version":3,"file":"esm.min.js","sources":["../../../node_modules/formdata-polyfill/esm.min.js"],"sourcesContent":["/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.length<e){throw new TypeError(`Failed to execute '${n}' on 'FormData': ${e} arguments required, but only ${a.length} present.`)}}\n\nexport const File = F\n\n/** @type {typeof globalThis.FormData} */\nexport const FormData = class FormData {\n#d=[];\nconstructor(...a){if(a.length)throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`)}\nget [t]() {return 'FormData'}\n[i](){return this.entries()}\nstatic [h](o) {return o&&typeof o==='object'&&o[t]==='FormData'&&!m.some(m=>typeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;c<l;c++)if(b[c][0]===a)return b[c][1];return null}\ngetAll(a,b){x('getAll',arguments,1);b=[];a+='';this.#d.forEach(c=>c[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(?<!\\r)\\n/g, '\\r\\n')}\\r\\n`)\n:c.push(p+e(n)+`\"; filename=\"${e(v.name, 1)}\"\\r\\nContent-Type: ${v.type||\"application/octet-stream\"}\\r\\n\\r\\n`, v, '\\r\\n'))\nc.push(`--${b}--`)\nreturn new B(c,{type:\"multipart/form-data; boundary=\"+b})}\n"],"names":["F","f","e","m","C"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../node_modules/node-domexception/index.js"],"sourcesContent":["/*! node-domexception. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n"],"names":[],"mappings":";;AAEA,IAAI,CAAC,WAAW,cAAc;AAC5B,MAAI;AACF,UAAM,EAAE,eAAc,IAAK,QAAQ,mBACnC,OAAO,IAAI,eAAc,EAAG,OAC5B,KAAK,IAAI,YAAa;AACtB,SAAK,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;AAAA,EAC9B,SAAQ,KAAP;AACA,QAAI,YAAY,SAAS,mBACvB,WAAW,eAAe,IAAI;AAAA,EAEjC;AACH;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../node_modules/node-domexception/index.js"],"sourcesContent":["/*! node-domexception. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n"],"names":[],"mappings":";;AAEA,IAAI,CAAC,WAAW,cAAc;AAC5B,MAAI;AACF,UAAM,EAAE,eAAc,IAAK,QAAQ,gBAAgB,GACnD,OAAO,IAAI,eAAc,EAAG,OAC5B,KAAK,IAAI,YAAa;AACtB,SAAK,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;AAAA,EAC9B,SAAQ,KAAP;AACA,QAAI,YAAY,SAAS,mBACvB,WAAW,eAAe,IAAI;AAAA,EAEjC;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/node-domexception/index.js"],"sourcesContent":["/*! node-domexception. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n"],"names":[],"mappings":";AAEA,IAAI,CAAC,WAAW,cAAc;AAC5B,MAAI;AACF,UAAM,EAAE,eAAc,IAAK,QAAQ,mBACnC,OAAO,IAAI,eAAc,EAAG,OAC5B,KAAK,IAAI,YAAa;AACtB,SAAK,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;AAAA,EAC9B,SAAQ,KAAP;AACA,QAAI,YAAY,SAAS,mBACvB,WAAW,eAAe,IAAI;AAAA,EAEjC;AACH;"}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/node-domexception/index.js"],"sourcesContent":["/*! node-domexception. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n"],"names":[],"mappings":";AAEA,IAAI,CAAC,WAAW,cAAc;AAC5B,MAAI;AACF,UAAM,EAAE,eAAc,IAAK,QAAQ,gBAAgB,GACnD,OAAO,IAAI,eAAc,EAAG,OAC5B,KAAK,IAAI,YAAa;AACtB,SAAK,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;AAAA,EAC9B,SAAQ,KAAP;AACA,QAAI,YAAY,SAAS,mBACvB,WAAW,eAAe,IAAI;AAAA,EAEjC;AACH;"}
@@ -62,6 +62,11 @@ class Body {
62
62
  get bodyUsed() {
63
63
  return this[INTERNALS].disturbed;
64
64
  }
65
+ /**
66
+ * Decode response as ArrayBuffer
67
+ *
68
+ * @return Promise
69
+ */
65
70
  async arrayBuffer() {
66
71
  const { buffer, byteOffset, byteLength } = await consumeBody(this);
67
72
  return buffer.slice(byteOffset, byteOffset + byteLength);
@@ -79,6 +84,11 @@ class Body {
79
84
  const { toFormData } = await Promise.resolve().then(() => require("./utils/multipart-parser.cjs"));
80
85
  return toFormData(this.body, ct);
81
86
  }
87
+ /**
88
+ * Return raw response as Blob
89
+ *
90
+ * @return Promise
91
+ */
82
92
  async blob() {
83
93
  const ct = this.headers && this.headers.get("content-type") || this[INTERNALS].body && this[INTERNALS].body.type || "";
84
94
  const buf = await this.arrayBuffer();
@@ -86,14 +96,29 @@ class Body {
86
96
  type: ct
87
97
  });
88
98
  }
99
+ /**
100
+ * Decode response as json
101
+ *
102
+ * @return Promise
103
+ */
89
104
  async json() {
90
105
  const text = await this.text();
91
106
  return JSON.parse(text);
92
107
  }
108
+ /**
109
+ * Decode response as text
110
+ *
111
+ * @return Promise
112
+ */
93
113
  async text() {
94
114
  const buffer = await consumeBody(this);
95
115
  return new TextDecoder().decode(buffer);
96
116
  }
117
+ /**
118
+ * Decode response as buffer (non-spec api)
119
+ *
120
+ * @return Promise
121
+ */
97
122
  buffer() {
98
123
  return consumeBody(this);
99
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"body.cjs","sources":["../../../../node_modules/node-fetch/src/body.js"],"sourcesContent":["\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @param String highWaterMark highWaterMark for both PassThrough body streams\n * @return Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise<void>}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n"],"names":["promisify","isURLSearchParameters","Buffer","isBlob","types","FormData","formDataToBlob","FetchBaseError","FetchError","Blob","deprecate","PassThrough"],"mappings":";;;;;;;;;;AAkBA,MAAM,WAAWA,UAAS,UAAC,OAAO,QAAQ;AAC1C,MAAM,YAAY,OAAO,gBAAgB;AAW1B,MAAM,KAAK;AAAA,EACzB,YAAY,MAAM;AAAA,IACjB,OAAO;AAAA,EACP,IAAG,IAAI;AACP,QAAI,WAAW;AAEf,QAAI,SAAS,MAAM;AAElB,aAAO;AAAA,IACV,WAAaC,GAAAA,sBAAsB,IAAI,GAAG;AAEvC,aAAOC,YAAAA,OAAO,KAAK,KAAK,SAAU,CAAA;AAAA,IAClC,WAAUC,GAAAA,OAAO,IAAI;AAAG;AAAA,aAEdD,YAAAA,OAAO,SAAS,IAAI;AAAG;AAAA,aAEvBE,UAAK,MAAC,iBAAiB,IAAI,GAAG;AAExC,aAAOF,YAAM,OAAC,KAAK,IAAI;AAAA,IACvB,WAAU,YAAY,OAAO,IAAI,GAAG;AAEpC,aAAOA,YAAAA,OAAO,KAAK,KAAK,QAAQ,KAAK,YAAY,KAAK,UAAU;AAAA,IACnE,WAAa,gBAAgB;AAAQ;AAAA,aAExB,gBAAgBG,QAAAA,UAAU;AAEpC,aAAOC,QAAAA,eAAe,IAAI;AAC1B,iBAAW,KAAK,KAAK,MAAM,GAAG,EAAE;AAAA,IACnC,OAAS;AAGN,aAAOJ,YAAAA,OAAO,KAAK,OAAO,IAAI,CAAC;AAAA,IAC/B;AAED,QAAI,SAAS;AAEb,QAAIA,YAAM,OAAC,SAAS,IAAI,GAAG;AAC1B,eAAS,OAAO,SAAS,KAAK,IAAI;AAAA,IACrC,WAAaC,GAAAA,OAAO,IAAI,GAAG;AACxB,eAAS,OAAO,SAAS,KAAK,KAAK,OAAM,CAAE;AAAA,IAC3C;AAED,SAAK,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,OAAO;AAAA,IACV;AACE,SAAK,OAAO;AAEZ,QAAI,gBAAgB,QAAQ;AAC3B,WAAK,GAAG,SAAS,YAAU;AAC1B,cAAM,QAAQ,kBAAkBI,KAAc,iBAC7C,SACA,IAAIC,sBAAW,+CAA+C,KAAK,QAAQ,OAAO,WAAW,UAAU,MAAM;AAC9G,aAAK,WAAW,QAAQ;AAAA,MAC5B,CAAI;AAAA,IACD;AAAA,EACD;AAAA,EAED,IAAI,OAAO;AACV,WAAO,KAAK,WAAW;AAAA,EACvB;AAAA,EAED,IAAI,WAAW;AACd,WAAO,KAAK,WAAW;AAAA,EACvB;AAAA,EAOD,MAAM,cAAc;AACnB,UAAM,EAAC,QAAQ,YAAY,WAAU,IAAI,MAAM,YAAY,IAAI;AAC/D,WAAO,OAAO,MAAM,YAAY,aAAa,UAAU;AAAA,EACvD;AAAA,EAED,MAAM,WAAW;AAChB,UAAM,KAAK,KAAK,QAAQ,IAAI,cAAc;AAE1C,QAAI,GAAG,WAAW,mCAAmC,GAAG;AACvD,YAAM,WAAW,IAAIH,QAAAA;AACrB,YAAM,aAAa,IAAI,gBAAgB,MAAM,KAAK,KAAM,CAAA;AAExD,iBAAW,CAAC,MAAM,KAAK,KAAK,YAAY;AACvC,iBAAS,OAAO,MAAM,KAAK;AAAA,MAC3B;AAED,aAAO;AAAA,IACP;AAED,UAAM,EAAC,WAAU,IAAI,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,+BAA6B;AAC/D,WAAO,WAAW,KAAK,MAAM,EAAE;AAAA,EAC/B;AAAA,EAOD,MAAM,OAAO;AACZ,UAAM,KAAM,KAAK,WAAW,KAAK,QAAQ,IAAI,cAAc,KAAO,KAAK,WAAW,QAAQ,KAAK,WAAW,KAAK,QAAS;AACxH,UAAM,MAAM,MAAM,KAAK;AAEvB,WAAO,IAAII,MAAAA,QAAK,CAAC,GAAG,GAAG;AAAA,MACtB,MAAM;AAAA,IACT,CAAG;AAAA,EACD;AAAA,EAOD,MAAM,OAAO;AACZ,UAAM,OAAO,MAAM,KAAK;AACxB,WAAO,KAAK,MAAM,IAAI;AAAA,EACtB;AAAA,EAOD,MAAM,OAAO;AACZ,UAAM,SAAS,MAAM,YAAY,IAAI;AACrC,WAAO,IAAI,YAAW,EAAG,OAAO,MAAM;AAAA,EACtC;AAAA,EAOD,SAAS;AACR,WAAO,YAAY,IAAI;AAAA,EACvB;AACF;AAEA,KAAK,UAAU,SAASC,oBAAU,KAAK,UAAU,QAAQ,sEAA0E,mBAAmB;AAGtJ,OAAO,iBAAiB,KAAK,WAAW;AAAA,EACvC,MAAM,EAAC,YAAY,KAAI;AAAA,EACvB,UAAU,EAAC,YAAY,KAAI;AAAA,EAC3B,aAAa,EAAC,YAAY,KAAI;AAAA,EAC9B,MAAM,EAAC,YAAY,KAAI;AAAA,EACvB,MAAM,EAAC,YAAY,KAAI;AAAA,EACvB,MAAM,EAAC,YAAY,KAAI;AAAA,EACvB,MAAM,EAAC,KAAKA,UAAS;AAAA,IAAC,MAAM;AAAA,IAAE;AAAA,IAC7B;AAAA,IACA;AAAA,EAAiE,EAAC;AACpE,CAAC;AASD,eAAe,YAAY,MAAM;AAChC,MAAI,KAAK,WAAW,WAAW;AAC9B,UAAM,IAAI,UAAU,0BAA0B,KAAK,KAAK;AAAA,EACxD;AAED,OAAK,WAAW,YAAY;AAE5B,MAAI,KAAK,WAAW,OAAO;AAC1B,UAAM,KAAK,WAAW;AAAA,EACtB;AAED,QAAM,EAAC,KAAI,IAAI;AAGf,MAAI,SAAS,MAAM;AAClB,WAAOR,YAAM,OAAC,MAAM,CAAC;AAAA,EACrB;AAGD,MAAI,EAAE,gBAAgB,SAAS;AAC9B,WAAOA,YAAM,OAAC,MAAM,CAAC;AAAA,EACrB;AAID,QAAM,QAAQ,CAAA;AACd,MAAI,aAAa;AAEjB,MAAI;AACH,qBAAiB,SAAS,MAAM;AAC/B,UAAI,KAAK,OAAO,KAAK,aAAa,MAAM,SAAS,KAAK,MAAM;AAC3D,cAAM,QAAQ,IAAIM,sBAAW,mBAAmB,KAAK,mBAAmB,KAAK,QAAQ,UAAU;AAC/F,aAAK,QAAQ,KAAK;AAClB,cAAM;AAAA,MACN;AAED,oBAAc,MAAM;AACpB,YAAM,KAAK,KAAK;AAAA,IAChB;AAAA,EACD,SAAQ,OAAP;AACD,UAAM,SAAS,iBAAiBD,KAAAA,iBAAiB,QAAQ,IAAIC,WAAU,WAAC,+CAA+C,KAAK,QAAQ,MAAM,WAAW,UAAU,KAAK;AACpK,UAAM;AAAA,EACN;AAED,MAAI,KAAK,kBAAkB,QAAQ,KAAK,eAAe,UAAU,MAAM;AACtE,QAAI;AACH,UAAI,MAAM,MAAM,OAAK,OAAO,MAAM,QAAQ,GAAG;AAC5C,eAAON,YAAAA,OAAO,KAAK,MAAM,KAAK,EAAE,CAAC;AAAA,MACjC;AAED,aAAOA,mBAAO,OAAO,OAAO,UAAU;AAAA,IACtC,SAAQ,OAAP;AACD,YAAM,IAAIM,WAAU,WAAC,kDAAkD,KAAK,QAAQ,MAAM,WAAW,UAAU,KAAK;AAAA,IACpH;AAAA,EACH,OAAQ;AACN,UAAM,IAAIA,WAAU,WAAC,4DAA4D,KAAK,KAAK;AAAA,EAC3F;AACF;AASY,MAAC,QAAQ,CAAC,UAAU,kBAAkB;AACjD,MAAI;AACJ,MAAI;AACJ,MAAI,EAAC,KAAI,IAAI,SAAS;AAGtB,MAAI,SAAS,UAAU;AACtB,UAAM,IAAI,MAAM,oCAAoC;AAAA,EACpD;AAID,MAAK,gBAAgB,UAAY,OAAO,KAAK,gBAAgB,YAAa;AAEzE,SAAK,IAAIG,OAAAA,YAAY,EAAC,cAAa,CAAC;AACpC,SAAK,IAAIA,OAAAA,YAAY,EAAC,cAAa,CAAC;AACpC,SAAK,KAAK,EAAE;AACZ,SAAK,KAAK,EAAE;AAEZ,aAAS,WAAW,SAAS;AAC7B,WAAO;AAAA,EACP;AAED,SAAO;AACR;AAEA,MAAM,6BAA6BD,UAAS;AAAA,EAC3C,UAAQ,KAAK,YAAa;AAAA,EAC1B;AAAA,EACA;AACD;AAYY,MAAC,qBAAqB,CAAC,MAAM,YAAY;AAEpD,MAAI,SAAS,MAAM;AAClB,WAAO;AAAA,EACP;AAGD,MAAI,OAAO,SAAS,UAAU;AAC7B,WAAO;AAAA,EACP;AAGD,MAAIT,GAAAA,sBAAsB,IAAI,GAAG;AAChC,WAAO;AAAA,EACP;AAGD,MAAIE,GAAAA,OAAO,IAAI,GAAG;AACjB,WAAO,KAAK,QAAQ;AAAA,EACpB;AAGD,MAAID,mBAAO,SAAS,IAAI,KAAKE,UAAK,MAAC,iBAAiB,IAAI,KAAK,YAAY,OAAO,IAAI,GAAG;AACtF,WAAO;AAAA,EACP;AAED,MAAI,gBAAgBC,QAAAA,UAAU;AAC7B,WAAO,iCAAiC,QAAQ,WAAW;AAAA,EAC3D;AAGD,MAAI,QAAQ,OAAO,KAAK,gBAAgB,YAAY;AACnD,WAAO,gCAAgC,2BAA2B,IAAI;AAAA,EACtE;AAGD,MAAI,gBAAgB,QAAQ;AAC3B,WAAO;AAAA,EACP;AAGD,SAAO;AACR;AAWY,MAAC,gBAAgB,aAAW;AACvC,QAAM,EAAC,KAAI,IAAI,QAAQ;AAGvB,MAAI,SAAS,MAAM;AAClB,WAAO;AAAA,EACP;AAGD,MAAIF,GAAAA,OAAO,IAAI,GAAG;AACjB,WAAO,KAAK;AAAA,EACZ;AAGD,MAAID,YAAM,OAAC,SAAS,IAAI,GAAG;AAC1B,WAAO,KAAK;AAAA,EACZ;AAGD,MAAI,QAAQ,OAAO,KAAK,kBAAkB,YAAY;AACrD,WAAO,KAAK,kBAAkB,KAAK,eAAgB,IAAG,KAAK,cAAe,IAAG;AAAA,EAC7E;AAGD,SAAO;AACR;AASY,MAAC,gBAAgB,OAAO,MAAM,EAAC,KAAI,MAAM;AACpD,MAAI,SAAS,MAAM;AAElB,SAAK,IAAG;AAAA,EACV,OAAQ;AAEN,UAAM,SAAS,MAAM,IAAI;AAAA,EACzB;AACF;;;;;;"}
1
+ {"version":3,"file":"body.cjs","sources":["../../../../node_modules/node-fetch/src/body.js"],"sourcesContent":["\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @param String highWaterMark highWaterMark for both PassThrough body streams\n * @return Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise<void>}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n"],"names":["promisify","isURLSearchParameters","Buffer","isBlob","types","FormData","formDataToBlob","FetchBaseError","FetchError","Blob","deprecate","PassThrough"],"mappings":"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"}
@@ -60,6 +60,11 @@ class Body {
60
60
  get bodyUsed() {
61
61
  return this[INTERNALS].disturbed;
62
62
  }
63
+ /**
64
+ * Decode response as ArrayBuffer
65
+ *
66
+ * @return Promise
67
+ */
63
68
  async arrayBuffer() {
64
69
  const { buffer, byteOffset, byteLength } = await consumeBody(this);
65
70
  return buffer.slice(byteOffset, byteOffset + byteLength);
@@ -77,6 +82,11 @@ class Body {
77
82
  const { toFormData } = await import("./utils/multipart-parser.js");
78
83
  return toFormData(this.body, ct);
79
84
  }
85
+ /**
86
+ * Return raw response as Blob
87
+ *
88
+ * @return Promise
89
+ */
80
90
  async blob() {
81
91
  const ct = this.headers && this.headers.get("content-type") || this[INTERNALS].body && this[INTERNALS].body.type || "";
82
92
  const buf = await this.arrayBuffer();
@@ -84,14 +94,29 @@ class Body {
84
94
  type: ct
85
95
  });
86
96
  }
97
+ /**
98
+ * Decode response as json
99
+ *
100
+ * @return Promise
101
+ */
87
102
  async json() {
88
103
  const text = await this.text();
89
104
  return JSON.parse(text);
90
105
  }
106
+ /**
107
+ * Decode response as text
108
+ *
109
+ * @return Promise
110
+ */
91
111
  async text() {
92
112
  const buffer = await consumeBody(this);
93
113
  return new TextDecoder().decode(buffer);
94
114
  }
115
+ /**
116
+ * Decode response as buffer (non-spec api)
117
+ *
118
+ * @return Promise
119
+ */
95
120
  buffer() {
96
121
  return consumeBody(this);
97
122
  }