diff -r 7b1b88e27a20 -r 48c4eec2b7e6 wp/wp-includes/js/dist/vendor/wp-polyfill-fetch.js --- a/wp/wp-includes/js/dist/vendor/wp-polyfill-fetch.js Thu Sep 29 08:06:27 2022 +0200 +++ b/wp/wp-includes/js/dist/vendor/wp-polyfill-fetch.js Fri Sep 05 18:40:08 2025 +0200 @@ -4,17 +4,20 @@ (factory((global.WHATWGFetch = {}))); }(this, (function (exports) { 'use strict'; - var global = + /* eslint-disable no-prototype-builtins */ + var g = (typeof globalThis !== 'undefined' && globalThis) || (typeof self !== 'undefined' && self) || - (typeof global !== 'undefined' && global); + // eslint-disable-next-line no-undef + (typeof global !== 'undefined' && global) || + {}; var support = { - searchParams: 'URLSearchParams' in global, - iterable: 'Symbol' in global && 'iterator' in Symbol, + searchParams: 'URLSearchParams' in g, + iterable: 'Symbol' in g && 'iterator' in Symbol, blob: - 'FileReader' in global && - 'Blob' in global && + 'FileReader' in g && + 'Blob' in g && (function() { try { new Blob(); @@ -23,8 +26,8 @@ return false } })(), - formData: 'FormData' in global, - arrayBuffer: 'ArrayBuffer' in global + formData: 'FormData' in g, + arrayBuffer: 'ArrayBuffer' in g }; function isDataView(obj) { @@ -95,6 +98,9 @@ }, this); } else if (Array.isArray(headers)) { headers.forEach(function(header) { + if (header.length != 2) { + throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length) + } this.append(header[0], header[1]); }, this); } else if (headers) { @@ -165,6 +171,7 @@ } function consumed(body) { + if (body._noBody) return if (body.bodyUsed) { return Promise.reject(new TypeError('Already read')) } @@ -192,7 +199,9 @@ function readBlobAsText(blob) { var reader = new FileReader(); var promise = fileReaderReady(reader); - reader.readAsText(blob); + var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type); + var encoding = match ? match[1] : 'utf-8'; + reader.readAsText(blob, encoding); return promise } @@ -230,9 +239,11 @@ semantic of setting Request.bodyUsed in the constructor before _initBody is called. */ + // eslint-disable-next-line no-self-assign this.bodyUsed = this.bodyUsed; this._bodyInit = body; if (!body) { + this._noBody = true; this._bodyText = ''; } else if (typeof body === 'string') { this._bodyText = body; @@ -280,28 +291,29 @@ return Promise.resolve(new Blob([this._bodyText])) } }; + } - this.arrayBuffer = function() { - if (this._bodyArrayBuffer) { - var isConsumed = consumed(this); - if (isConsumed) { - return isConsumed - } - if (ArrayBuffer.isView(this._bodyArrayBuffer)) { - return Promise.resolve( - this._bodyArrayBuffer.buffer.slice( - this._bodyArrayBuffer.byteOffset, - this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength - ) + this.arrayBuffer = function() { + if (this._bodyArrayBuffer) { + var isConsumed = consumed(this); + if (isConsumed) { + return isConsumed + } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) { + return Promise.resolve( + this._bodyArrayBuffer.buffer.slice( + this._bodyArrayBuffer.byteOffset, + this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength ) - } else { - return Promise.resolve(this._bodyArrayBuffer) - } + ) } else { - return this.blob().then(readBlobAsArrayBuffer) + return Promise.resolve(this._bodyArrayBuffer) } - }; - } + } else if (support.blob) { + return this.blob().then(readBlobAsArrayBuffer) + } else { + throw new Error('could not read as ArrayBuffer') + } + }; this.text = function() { var rejected = consumed(this); @@ -334,7 +346,7 @@ } // HTTP methods whose capitalization should be normalized - var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']; + var methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE']; function normalizeMethod(method) { var upcased = method.toUpperCase(); @@ -375,7 +387,12 @@ } this.method = normalizeMethod(options.method || this.method || 'GET'); this.mode = options.mode || this.mode || null; - this.signal = options.signal || this.signal; + this.signal = options.signal || this.signal || (function () { + if ('AbortController' in g) { + var ctrl = new AbortController(); + return ctrl.signal; + } + }()); this.referrer = null; if ((this.method === 'GET' || this.method === 'HEAD') && body) { @@ -437,7 +454,11 @@ var key = parts.shift().trim(); if (key) { var value = parts.join(':').trim(); - headers.append(key, value); + try { + headers.append(key, value); + } catch (error) { + console.warn('Response ' + error.message); + } } }); return headers @@ -455,6 +476,9 @@ this.type = 'default'; this.status = options.status === undefined ? 200 : options.status; + if (this.status < 200 || this.status > 599) { + throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].") + } this.ok = this.status >= 200 && this.status < 300; this.statusText = options.statusText === undefined ? '' : '' + options.statusText; this.headers = new Headers(options.headers); @@ -474,7 +498,8 @@ }; Response.error = function() { - var response = new Response(null, {status: 0, statusText: ''}); + var response = new Response(null, {status: 200, statusText: ''}); + response.status = 0; response.type = 'error'; return response }; @@ -489,7 +514,7 @@ return new Response(null, {status: status, headers: {location: url}}) }; - exports.DOMException = global.DOMException; + exports.DOMException = g.DOMException; try { new exports.DOMException(); } catch (err) { @@ -550,7 +575,7 @@ function fixUrl(url) { try { - return url === '' && global.location.href ? global.location.href : url + return url === '' && g.location.href ? g.location.href : url } catch (e) { return url } @@ -568,18 +593,23 @@ if (support.blob) { xhr.responseType = 'blob'; } else if ( - support.arrayBuffer && - request.headers.get('Content-Type') && - request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1 + support.arrayBuffer ) { xhr.responseType = 'arraybuffer'; } } - if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) { + if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) { + var names = []; Object.getOwnPropertyNames(init.headers).forEach(function(name) { + names.push(normalizeName(name)); xhr.setRequestHeader(name, normalizeValue(init.headers[name])); }); + request.headers.forEach(function(value, name) { + if (names.indexOf(name) === -1) { + xhr.setRequestHeader(name, value); + } + }); } else { request.headers.forEach(function(value, name) { xhr.setRequestHeader(name, value); @@ -603,11 +633,11 @@ fetch.polyfill = true; - if (!global.fetch) { - global.fetch = fetch; - global.Headers = Headers; - global.Request = Request; - global.Response = Response; + if (!g.fetch) { + g.fetch = fetch; + g.Headers = Headers; + g.Request = Request; + g.Response = Response; } exports.Headers = Headers;