use standard URLSearchParams insead of custom functions

This commit is contained in:
s2
2020-01-03 18:29:29 +01:00
parent b7fa481dcb
commit 45810382b9
67 changed files with 40893 additions and 47 deletions

15
node_modules/@ungap/url-search-params/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,15 @@
ISC License
Copyright (c) 2018, Andrea Giammarchi, @WebReflection
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

22
node_modules/@ungap/url-search-params/README.md generated vendored Normal file
View File

@@ -0,0 +1,22 @@
# URLSearchParams
[![Build Status](https://travis-ci.com/ungap/url-search-params.svg?branch=master)](https://travis-ci.com/ungap/url-search-params) [![Coverage Status](https://coveralls.io/repos/github/ungap/url-search-params/badge.svg?branch=master)](https://coveralls.io/github/ungap/url-search-params?branch=master) [![Greenkeeper badge](https://badges.greenkeeper.io/ungap/url-search-params.svg)](https://greenkeeper.io/) ![WebReflection status](https://offline.report/status/webreflection.svg)
The [URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) polyfill.
Previously known as [url-search-params](https://github.com/WebReflection/url-search-params).
All detections have been included and the code covered 100% (DOM patches are not measured on NodeJS though).
* CDN global patch via https://unpkg.com/@ungap/url-search-params
* ESM via `import URLSearchParams from '@ungap/url-search-params'`
* CJS via `const URLSearchParams = require('@ungap/url-search-params')`
[Live test](https://ungap.github.io/url-search-params/test/)
### ⚠ Webpack Users
If you have issues just requiring `@ungap/url-search-params`, be sure you require `@ungap/url-search-params/cjs` instead.
No issue should happen if you just `import` the module instead.

375
node_modules/@ungap/url-search-params/cjs/index.js generated vendored Normal file
View File

@@ -0,0 +1,375 @@
/*! (c) Andrea Giammarchi - ISC */
var self = this || /* istanbul ignore next */ {};
try {
(function (URLSearchParams, plus) {
if (
new URLSearchParams('q=%2B').get('q') !== plus ||
new URLSearchParams({q: plus}).get('q') !== plus ||
new URLSearchParams([['q', plus]]).get('q') !== plus ||
new URLSearchParams('q=\n').toString() !== 'q=%0A' ||
new URLSearchParams({q: ' &'}).toString() !== 'q=+%26' ||
new URLSearchParams({q: '%zx'}).toString() !== 'q=%25zx'
)
throw URLSearchParams;
self.URLSearchParams = URLSearchParams;
}(URLSearchParams, '+'));
} catch(URLSearchParams) {
(function (Object, String, isArray) {'use strict';
var create = Object.create;
var defineProperty = Object.defineProperty;
var find = /[!'\(\)~]|%20|%00/g;
var findPercentSign = /%(?![0-9a-fA-F]{2})/g;
var plus = /\+/g;
var replace = {
'!': '%21',
"'": '%27',
'(': '%28',
')': '%29',
'~': '%7E',
'%20': '+',
'%00': '\x00'
};
var proto = {
append: function (key, value) {
appendTo(this._ungap, key, value);
},
delete: function (key) {
delete this._ungap[key];
},
get: function (key) {
return this.has(key) ? this._ungap[key][0] : null;
},
getAll: function (key) {
return this.has(key) ? this._ungap[key].slice(0) : [];
},
has: function (key) {
return key in this._ungap;
},
set: function (key, value) {
this._ungap[key] = [String(value)];
},
forEach: function (callback, thisArg) {
var self = this;
for (var key in self._ungap)
self._ungap[key].forEach(invoke, key);
function invoke(value) {
callback.call(thisArg, value, String(key), self);
}
},
toJSON: function () {
return {};
},
toString: function () {
var query = [];
for (var key in this._ungap) {
var encoded = encode(key);
for (var
i = 0,
value = this._ungap[key];
i < value.length; i++
) {
query.push(encoded + '=' + encode(value[i]));
}
}
return query.join('&');
}
};
for (var key in proto)
defineProperty(URLSearchParams.prototype, key, {
configurable: true,
writable: true,
value: proto[key]
});
self.URLSearchParams = URLSearchParams;
function URLSearchParams(query) {
var dict = create(null);
defineProperty(this, '_ungap', {value: dict});
switch (true) {
case !query:
break;
case typeof query === 'string':
if (query.charAt(0) === '?') {
query = query.slice(1);
}
for (var
pairs = query.split('&'),
i = 0,
length = pairs.length; i < length; i++
) {
var value = pairs[i];
var index = value.indexOf('=');
if (-1 < index) {
appendTo(
dict,
decode(value.slice(0, index)),
decode(value.slice(index + 1))
);
} else if (value.length){
appendTo(
dict,
decode(value),
''
);
}
}
break;
case isArray(query):
for (var
i = 0,
length = query.length; i < length; i++
) {
var value = query[i];
appendTo(dict, value[0], value[1]);
}
break;
case 'forEach' in query:
query.forEach(addEach, dict);
break;
default:
for (var key in query)
appendTo(dict, key, query[key]);
}
}
function addEach(value, key) {
appendTo(this, key, value);
}
function appendTo(dict, key, value) {
var res = isArray(value) ? value.join(',') : value;
if (key in dict)
dict[key].push(res);
else
dict[key] = [res];
}
function decode(str) {
return decodeURIComponent(str.replace(findPercentSign, '%25').replace(plus, ' '));
}
function encode(str) {
return encodeURIComponent(str).replace(find, replacer);
}
function replacer(match) {
return replace[match];
}
}(Object, String, Array.isArray));
}
(function (URLSearchParamsProto) {
var iterable = false;
try { iterable = !!Symbol.iterator; } catch (o_O) {}
/* istanbul ignore else */
if (!('forEach' in URLSearchParamsProto)) {
URLSearchParamsProto.forEach = function forEach(callback, thisArg) {
var self = this;
var names = Object.create(null);
this.toString()
.replace(/=[\s\S]*?(?:&|$)/g, '=')
.split('=')
.forEach(function (name) {
if (!name.length || name in names)
return;
(names[name] = self.getAll(name)).forEach(function(value) {
callback.call(thisArg, value, name, self);
});
});
};
}
/* istanbul ignore else */
if (!('keys' in URLSearchParamsProto)) {
URLSearchParamsProto.keys = function keys() {
return iterator(this, function(value, key) { this.push(key); });
};
}
/* istanbul ignore else */
if (!('values' in URLSearchParamsProto)) {
URLSearchParamsProto.values = function values() {
return iterator(this, function(value, key) { this.push(value); });
};
}
/* istanbul ignore else */
if (!('entries' in URLSearchParamsProto)) {
URLSearchParamsProto.entries = function entries() {
return iterator(this, function(value, key) { this.push([key, value]); });
};
}
/* istanbul ignore else */
if (iterable && !(Symbol.iterator in URLSearchParamsProto)) {
URLSearchParamsProto[Symbol.iterator] = URLSearchParamsProto.entries;
}
/* istanbul ignore else */
if (!('sort' in URLSearchParamsProto)) {
URLSearchParamsProto.sort = function sort() {
var
entries = this.entries(),
entry = entries.next(),
done = entry.done,
keys = [],
values = Object.create(null),
i, key, value
;
while (!done) {
value = entry.value;
key = value[0];
keys.push(key);
if (!(key in values)) {
values[key] = [];
}
values[key].push(value[1]);
entry = entries.next();
done = entry.done;
}
// not the champion in efficiency
// but these two bits just do the job
keys.sort();
for (i = 0; i < keys.length; i++) {
this.delete(keys[i]);
}
for (i = 0; i < keys.length; i++) {
key = keys[i];
this.append(key, values[key].shift());
}
};
}
function iterator(self, callback) {
var items = [];
self.forEach(callback, items);
return iterable ?
items[Symbol.iterator]() :
{
next: function() {
var value = items.shift();
return {done: value === undefined, value: value};
}
};
}
/* istanbul ignore next */
(function (Object) {
var
dP = Object.defineProperty,
gOPD = Object.getOwnPropertyDescriptor,
createSearchParamsPollute = function (search) {
function append(name, value) {
URLSearchParamsProto.append.call(this, name, value);
name = this.toString();
search.set.call(this._usp, name ? ('?' + name) : '');
}
function del(name) {
URLSearchParamsProto.delete.call(this, name);
name = this.toString();
search.set.call(this._usp, name ? ('?' + name) : '');
}
function set(name, value) {
URLSearchParamsProto.set.call(this, name, value);
name = this.toString();
search.set.call(this._usp, name ? ('?' + name) : '');
}
return function (sp, value) {
sp.append = append;
sp.delete = del;
sp.set = set;
return dP(sp, '_usp', {
configurable: true,
writable: true,
value: value
});
};
},
createSearchParamsCreate = function (polluteSearchParams) {
return function (obj, sp) {
dP(
obj, '_searchParams', {
configurable: true,
writable: true,
value: polluteSearchParams(sp, obj)
}
);
return sp;
};
},
updateSearchParams = function (sp) {
var append = sp.append;
sp.append = URLSearchParamsProto.append;
URLSearchParams.call(sp, sp._usp.search.slice(1));
sp.append = append;
},
verifySearchParams = function (obj, Class) {
if (!(obj instanceof Class)) throw new TypeError(
"'searchParams' accessed on an object that " +
"does not implement interface " + Class.name
);
},
upgradeClass = function (Class) {
var
ClassProto = Class.prototype,
searchParams = gOPD(ClassProto, 'searchParams'),
href = gOPD(ClassProto, 'href'),
search = gOPD(ClassProto, 'search'),
createSearchParams
;
if (!searchParams && search && search.set) {
createSearchParams = createSearchParamsCreate(
createSearchParamsPollute(search)
);
Object.defineProperties(
ClassProto,
{
href: {
get: function () {
return href.get.call(this);
},
set: function (value) {
var sp = this._searchParams;
href.set.call(this, value);
if (sp) updateSearchParams(sp);
}
},
search: {
get: function () {
return search.get.call(this);
},
set: function (value) {
var sp = this._searchParams;
search.set.call(this, value);
if (sp) updateSearchParams(sp);
}
},
searchParams: {
get: function () {
verifySearchParams(this, Class);
return this._searchParams || createSearchParams(
this,
new URLSearchParams(this.search.slice(1))
);
},
set: function (sp) {
verifySearchParams(this, Class);
createSearchParams(this, sp);
}
}
}
);
}
}
;
try {
upgradeClass(HTMLAnchorElement);
if (/^function|object$/.test(typeof URL) && URL.prototype)
upgradeClass(URL);
} catch (meh) {}
}(Object));
}(self.URLSearchParams.prototype, Object));
module.exports = self.URLSearchParams;

375
node_modules/@ungap/url-search-params/esm/index.js generated vendored Normal file
View File

@@ -0,0 +1,375 @@
/*! (c) Andrea Giammarchi - ISC */
var self = this || /* istanbul ignore next */ {};
try {
(function (URLSearchParams, plus) {
if (
new URLSearchParams('q=%2B').get('q') !== plus ||
new URLSearchParams({q: plus}).get('q') !== plus ||
new URLSearchParams([['q', plus]]).get('q') !== plus ||
new URLSearchParams('q=\n').toString() !== 'q=%0A' ||
new URLSearchParams({q: ' &'}).toString() !== 'q=+%26' ||
new URLSearchParams({q: '%zx'}).toString() !== 'q=%25zx'
)
throw URLSearchParams;
self.URLSearchParams = URLSearchParams;
}(URLSearchParams, '+'));
} catch(URLSearchParams) {
(function (Object, String, isArray) {'use strict';
var create = Object.create;
var defineProperty = Object.defineProperty;
var find = /[!'\(\)~]|%20|%00/g;
var findPercentSign = /%(?![0-9a-fA-F]{2})/g;
var plus = /\+/g;
var replace = {
'!': '%21',
"'": '%27',
'(': '%28',
')': '%29',
'~': '%7E',
'%20': '+',
'%00': '\x00'
};
var proto = {
append: function (key, value) {
appendTo(this._ungap, key, value);
},
delete: function (key) {
delete this._ungap[key];
},
get: function (key) {
return this.has(key) ? this._ungap[key][0] : null;
},
getAll: function (key) {
return this.has(key) ? this._ungap[key].slice(0) : [];
},
has: function (key) {
return key in this._ungap;
},
set: function (key, value) {
this._ungap[key] = [String(value)];
},
forEach: function (callback, thisArg) {
var self = this;
for (var key in self._ungap)
self._ungap[key].forEach(invoke, key);
function invoke(value) {
callback.call(thisArg, value, String(key), self);
}
},
toJSON: function () {
return {};
},
toString: function () {
var query = [];
for (var key in this._ungap) {
var encoded = encode(key);
for (var
i = 0,
value = this._ungap[key];
i < value.length; i++
) {
query.push(encoded + '=' + encode(value[i]));
}
}
return query.join('&');
}
};
for (var key in proto)
defineProperty(URLSearchParams.prototype, key, {
configurable: true,
writable: true,
value: proto[key]
});
self.URLSearchParams = URLSearchParams;
function URLSearchParams(query) {
var dict = create(null);
defineProperty(this, '_ungap', {value: dict});
switch (true) {
case !query:
break;
case typeof query === 'string':
if (query.charAt(0) === '?') {
query = query.slice(1);
}
for (var
pairs = query.split('&'),
i = 0,
length = pairs.length; i < length; i++
) {
var value = pairs[i];
var index = value.indexOf('=');
if (-1 < index) {
appendTo(
dict,
decode(value.slice(0, index)),
decode(value.slice(index + 1))
);
} else if (value.length){
appendTo(
dict,
decode(value),
''
);
}
}
break;
case isArray(query):
for (var
i = 0,
length = query.length; i < length; i++
) {
var value = query[i];
appendTo(dict, value[0], value[1]);
}
break;
case 'forEach' in query:
query.forEach(addEach, dict);
break;
default:
for (var key in query)
appendTo(dict, key, query[key]);
}
}
function addEach(value, key) {
appendTo(this, key, value);
}
function appendTo(dict, key, value) {
var res = isArray(value) ? value.join(',') : value;
if (key in dict)
dict[key].push(res);
else
dict[key] = [res];
}
function decode(str) {
return decodeURIComponent(str.replace(findPercentSign, '%25').replace(plus, ' '));
}
function encode(str) {
return encodeURIComponent(str).replace(find, replacer);
}
function replacer(match) {
return replace[match];
}
}(Object, String, Array.isArray));
}
(function (URLSearchParamsProto) {
var iterable = false;
try { iterable = !!Symbol.iterator; } catch (o_O) {}
/* istanbul ignore else */
if (!('forEach' in URLSearchParamsProto)) {
URLSearchParamsProto.forEach = function forEach(callback, thisArg) {
var self = this;
var names = Object.create(null);
this.toString()
.replace(/=[\s\S]*?(?:&|$)/g, '=')
.split('=')
.forEach(function (name) {
if (!name.length || name in names)
return;
(names[name] = self.getAll(name)).forEach(function(value) {
callback.call(thisArg, value, name, self);
});
});
};
}
/* istanbul ignore else */
if (!('keys' in URLSearchParamsProto)) {
URLSearchParamsProto.keys = function keys() {
return iterator(this, function(value, key) { this.push(key); });
};
}
/* istanbul ignore else */
if (!('values' in URLSearchParamsProto)) {
URLSearchParamsProto.values = function values() {
return iterator(this, function(value, key) { this.push(value); });
};
}
/* istanbul ignore else */
if (!('entries' in URLSearchParamsProto)) {
URLSearchParamsProto.entries = function entries() {
return iterator(this, function(value, key) { this.push([key, value]); });
};
}
/* istanbul ignore else */
if (iterable && !(Symbol.iterator in URLSearchParamsProto)) {
URLSearchParamsProto[Symbol.iterator] = URLSearchParamsProto.entries;
}
/* istanbul ignore else */
if (!('sort' in URLSearchParamsProto)) {
URLSearchParamsProto.sort = function sort() {
var
entries = this.entries(),
entry = entries.next(),
done = entry.done,
keys = [],
values = Object.create(null),
i, key, value
;
while (!done) {
value = entry.value;
key = value[0];
keys.push(key);
if (!(key in values)) {
values[key] = [];
}
values[key].push(value[1]);
entry = entries.next();
done = entry.done;
}
// not the champion in efficiency
// but these two bits just do the job
keys.sort();
for (i = 0; i < keys.length; i++) {
this.delete(keys[i]);
}
for (i = 0; i < keys.length; i++) {
key = keys[i];
this.append(key, values[key].shift());
}
};
}
function iterator(self, callback) {
var items = [];
self.forEach(callback, items);
return iterable ?
items[Symbol.iterator]() :
{
next: function() {
var value = items.shift();
return {done: value === undefined, value: value};
}
};
}
/* istanbul ignore next */
(function (Object) {
var
dP = Object.defineProperty,
gOPD = Object.getOwnPropertyDescriptor,
createSearchParamsPollute = function (search) {
function append(name, value) {
URLSearchParamsProto.append.call(this, name, value);
name = this.toString();
search.set.call(this._usp, name ? ('?' + name) : '');
}
function del(name) {
URLSearchParamsProto.delete.call(this, name);
name = this.toString();
search.set.call(this._usp, name ? ('?' + name) : '');
}
function set(name, value) {
URLSearchParamsProto.set.call(this, name, value);
name = this.toString();
search.set.call(this._usp, name ? ('?' + name) : '');
}
return function (sp, value) {
sp.append = append;
sp.delete = del;
sp.set = set;
return dP(sp, '_usp', {
configurable: true,
writable: true,
value: value
});
};
},
createSearchParamsCreate = function (polluteSearchParams) {
return function (obj, sp) {
dP(
obj, '_searchParams', {
configurable: true,
writable: true,
value: polluteSearchParams(sp, obj)
}
);
return sp;
};
},
updateSearchParams = function (sp) {
var append = sp.append;
sp.append = URLSearchParamsProto.append;
URLSearchParams.call(sp, sp._usp.search.slice(1));
sp.append = append;
},
verifySearchParams = function (obj, Class) {
if (!(obj instanceof Class)) throw new TypeError(
"'searchParams' accessed on an object that " +
"does not implement interface " + Class.name
);
},
upgradeClass = function (Class) {
var
ClassProto = Class.prototype,
searchParams = gOPD(ClassProto, 'searchParams'),
href = gOPD(ClassProto, 'href'),
search = gOPD(ClassProto, 'search'),
createSearchParams
;
if (!searchParams && search && search.set) {
createSearchParams = createSearchParamsCreate(
createSearchParamsPollute(search)
);
Object.defineProperties(
ClassProto,
{
href: {
get: function () {
return href.get.call(this);
},
set: function (value) {
var sp = this._searchParams;
href.set.call(this, value);
if (sp) updateSearchParams(sp);
}
},
search: {
get: function () {
return search.get.call(this);
},
set: function (value) {
var sp = this._searchParams;
search.set.call(this, value);
if (sp) updateSearchParams(sp);
}
},
searchParams: {
get: function () {
verifySearchParams(this, Class);
return this._searchParams || createSearchParams(
this,
new URLSearchParams(this.search.slice(1))
);
},
set: function (sp) {
verifySearchParams(this, Class);
createSearchParams(this, sp);
}
}
}
);
}
}
;
try {
upgradeClass(HTMLAnchorElement);
if (/^function|object$/.test(typeof URL) && URL.prototype)
upgradeClass(URL);
} catch (meh) {}
}(Object));
}(self.URLSearchParams.prototype, Object));
export default self.URLSearchParams;

1
node_modules/@ungap/url-search-params/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export = URLSearchParams

374
node_modules/@ungap/url-search-params/index.js generated vendored Normal file
View File

@@ -0,0 +1,374 @@
/*! (c) Andrea Giammarchi - ISC */
var self = this || /* istanbul ignore next */ {};
try {
(function (URLSearchParams, plus) {
if (
new URLSearchParams('q=%2B').get('q') !== plus ||
new URLSearchParams({q: plus}).get('q') !== plus ||
new URLSearchParams([['q', plus]]).get('q') !== plus ||
new URLSearchParams('q=\n').toString() !== 'q=%0A' ||
new URLSearchParams({q: ' &'}).toString() !== 'q=+%26' ||
new URLSearchParams({q: '%zx'}).toString() !== 'q=%25zx'
)
throw URLSearchParams;
self.URLSearchParams = URLSearchParams;
}(URLSearchParams, '+'));
} catch(URLSearchParams) {
(function (Object, String, isArray) {'use strict';
var create = Object.create;
var defineProperty = Object.defineProperty;
var find = /[!'\(\)~]|%20|%00/g;
var findPercentSign = /%(?![0-9a-fA-F]{2})/g;
var plus = /\+/g;
var replace = {
'!': '%21',
"'": '%27',
'(': '%28',
')': '%29',
'~': '%7E',
'%20': '+',
'%00': '\x00'
};
var proto = {
append: function (key, value) {
appendTo(this._ungap, key, value);
},
delete: function (key) {
delete this._ungap[key];
},
get: function (key) {
return this.has(key) ? this._ungap[key][0] : null;
},
getAll: function (key) {
return this.has(key) ? this._ungap[key].slice(0) : [];
},
has: function (key) {
return key in this._ungap;
},
set: function (key, value) {
this._ungap[key] = [String(value)];
},
forEach: function (callback, thisArg) {
var self = this;
for (var key in self._ungap)
self._ungap[key].forEach(invoke, key);
function invoke(value) {
callback.call(thisArg, value, String(key), self);
}
},
toJSON: function () {
return {};
},
toString: function () {
var query = [];
for (var key in this._ungap) {
var encoded = encode(key);
for (var
i = 0,
value = this._ungap[key];
i < value.length; i++
) {
query.push(encoded + '=' + encode(value[i]));
}
}
return query.join('&');
}
};
for (var key in proto)
defineProperty(URLSearchParams.prototype, key, {
configurable: true,
writable: true,
value: proto[key]
});
self.URLSearchParams = URLSearchParams;
function URLSearchParams(query) {
var dict = create(null);
defineProperty(this, '_ungap', {value: dict});
switch (true) {
case !query:
break;
case typeof query === 'string':
if (query.charAt(0) === '?') {
query = query.slice(1);
}
for (var
pairs = query.split('&'),
i = 0,
length = pairs.length; i < length; i++
) {
var value = pairs[i];
var index = value.indexOf('=');
if (-1 < index) {
appendTo(
dict,
decode(value.slice(0, index)),
decode(value.slice(index + 1))
);
} else if (value.length){
appendTo(
dict,
decode(value),
''
);
}
}
break;
case isArray(query):
for (var
i = 0,
length = query.length; i < length; i++
) {
var value = query[i];
appendTo(dict, value[0], value[1]);
}
break;
case 'forEach' in query:
query.forEach(addEach, dict);
break;
default:
for (var key in query)
appendTo(dict, key, query[key]);
}
}
function addEach(value, key) {
appendTo(this, key, value);
}
function appendTo(dict, key, value) {
var res = isArray(value) ? value.join(',') : value;
if (key in dict)
dict[key].push(res);
else
dict[key] = [res];
}
function decode(str) {
return decodeURIComponent(str.replace(findPercentSign, '%25').replace(plus, ' '));
}
function encode(str) {
return encodeURIComponent(str).replace(find, replacer);
}
function replacer(match) {
return replace[match];
}
}(Object, String, Array.isArray));
}
(function (URLSearchParamsProto) {
var iterable = false;
try { iterable = !!Symbol.iterator; } catch (o_O) {}
/* istanbul ignore else */
if (!('forEach' in URLSearchParamsProto)) {
URLSearchParamsProto.forEach = function forEach(callback, thisArg) {
var self = this;
var names = Object.create(null);
this.toString()
.replace(/=[\s\S]*?(?:&|$)/g, '=')
.split('=')
.forEach(function (name) {
if (!name.length || name in names)
return;
(names[name] = self.getAll(name)).forEach(function(value) {
callback.call(thisArg, value, name, self);
});
});
};
}
/* istanbul ignore else */
if (!('keys' in URLSearchParamsProto)) {
URLSearchParamsProto.keys = function keys() {
return iterator(this, function(value, key) { this.push(key); });
};
}
/* istanbul ignore else */
if (!('values' in URLSearchParamsProto)) {
URLSearchParamsProto.values = function values() {
return iterator(this, function(value, key) { this.push(value); });
};
}
/* istanbul ignore else */
if (!('entries' in URLSearchParamsProto)) {
URLSearchParamsProto.entries = function entries() {
return iterator(this, function(value, key) { this.push([key, value]); });
};
}
/* istanbul ignore else */
if (iterable && !(Symbol.iterator in URLSearchParamsProto)) {
URLSearchParamsProto[Symbol.iterator] = URLSearchParamsProto.entries;
}
/* istanbul ignore else */
if (!('sort' in URLSearchParamsProto)) {
URLSearchParamsProto.sort = function sort() {
var
entries = this.entries(),
entry = entries.next(),
done = entry.done,
keys = [],
values = Object.create(null),
i, key, value
;
while (!done) {
value = entry.value;
key = value[0];
keys.push(key);
if (!(key in values)) {
values[key] = [];
}
values[key].push(value[1]);
entry = entries.next();
done = entry.done;
}
// not the champion in efficiency
// but these two bits just do the job
keys.sort();
for (i = 0; i < keys.length; i++) {
this.delete(keys[i]);
}
for (i = 0; i < keys.length; i++) {
key = keys[i];
this.append(key, values[key].shift());
}
};
}
function iterator(self, callback) {
var items = [];
self.forEach(callback, items);
return iterable ?
items[Symbol.iterator]() :
{
next: function() {
var value = items.shift();
return {done: value === undefined, value: value};
}
};
}
/* istanbul ignore next */
(function (Object) {
var
dP = Object.defineProperty,
gOPD = Object.getOwnPropertyDescriptor,
createSearchParamsPollute = function (search) {
function append(name, value) {
URLSearchParamsProto.append.call(this, name, value);
name = this.toString();
search.set.call(this._usp, name ? ('?' + name) : '');
}
function del(name) {
URLSearchParamsProto.delete.call(this, name);
name = this.toString();
search.set.call(this._usp, name ? ('?' + name) : '');
}
function set(name, value) {
URLSearchParamsProto.set.call(this, name, value);
name = this.toString();
search.set.call(this._usp, name ? ('?' + name) : '');
}
return function (sp, value) {
sp.append = append;
sp.delete = del;
sp.set = set;
return dP(sp, '_usp', {
configurable: true,
writable: true,
value: value
});
};
},
createSearchParamsCreate = function (polluteSearchParams) {
return function (obj, sp) {
dP(
obj, '_searchParams', {
configurable: true,
writable: true,
value: polluteSearchParams(sp, obj)
}
);
return sp;
};
},
updateSearchParams = function (sp) {
var append = sp.append;
sp.append = URLSearchParamsProto.append;
URLSearchParams.call(sp, sp._usp.search.slice(1));
sp.append = append;
},
verifySearchParams = function (obj, Class) {
if (!(obj instanceof Class)) throw new TypeError(
"'searchParams' accessed on an object that " +
"does not implement interface " + Class.name
);
},
upgradeClass = function (Class) {
var
ClassProto = Class.prototype,
searchParams = gOPD(ClassProto, 'searchParams'),
href = gOPD(ClassProto, 'href'),
search = gOPD(ClassProto, 'search'),
createSearchParams
;
if (!searchParams && search && search.set) {
createSearchParams = createSearchParamsCreate(
createSearchParamsPollute(search)
);
Object.defineProperties(
ClassProto,
{
href: {
get: function () {
return href.get.call(this);
},
set: function (value) {
var sp = this._searchParams;
href.set.call(this, value);
if (sp) updateSearchParams(sp);
}
},
search: {
get: function () {
return search.get.call(this);
},
set: function (value) {
var sp = this._searchParams;
search.set.call(this, value);
if (sp) updateSearchParams(sp);
}
},
searchParams: {
get: function () {
verifySearchParams(this, Class);
return this._searchParams || createSearchParams(
this,
new URLSearchParams(this.search.slice(1))
);
},
set: function (sp) {
verifySearchParams(this, Class);
createSearchParams(this, sp);
}
}
}
);
}
}
;
try {
upgradeClass(HTMLAnchorElement);
if (/^function|object$/.test(typeof URL) && URL.prototype)
upgradeClass(URL);
} catch (meh) {}
}(Object));
}(self.URLSearchParams.prototype, Object));

2
node_modules/@ungap/url-search-params/min.js generated vendored Normal file
View File

@@ -0,0 +1,2 @@
/*! (c) Andrea Giammarchi - ISC */
var self=this||{};try{!function(t,e){if(new t("q=%2B").get("q")!==e||new t({q:e}).get("q")!==e||new t([["q",e]]).get("q")!==e||"q=%0A"!==new t("q=\n").toString()||"q=+%26"!==new t({q:" &"}).toString()||"q=%25zx"!==new t({q:"%zx"}).toString())throw t;self.URLSearchParams=t}(URLSearchParams,"+")}catch(t){!function(t,a,o){"use strict";var u=t.create,h=t.defineProperty,e=/[!'\(\)~]|%20|%00/g,n=/%(?![0-9a-fA-F]{2})/g,r=/\+/g,i={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"},s={append:function(t,e){p(this._ungap,t,e)},delete:function(t){delete this._ungap[t]},get:function(t){return this.has(t)?this._ungap[t][0]:null},getAll:function(t){return this.has(t)?this._ungap[t].slice(0):[]},has:function(t){return t in this._ungap},set:function(t,e){this._ungap[t]=[a(e)]},forEach:function(e,n){var r=this;for(var i in r._ungap)r._ungap[i].forEach(t,i);function t(t){e.call(n,t,a(i),r)}},toJSON:function(){return{}},toString:function(){var t=[];for(var e in this._ungap)for(var n=v(e),r=0,i=this._ungap[e];r<i.length;r++)t.push(n+"="+v(i[r]));return t.join("&")}};for(var c in s)h(f.prototype,c,{configurable:!0,writable:!0,value:s[c]});function f(t){var e=u(null);switch(h(this,"_ungap",{value:e}),!0){case!t:break;case"string"==typeof t:"?"===t.charAt(0)&&(t=t.slice(1));for(var n=t.split("&"),r=0,i=n.length;r<i;r++){var a=(s=n[r]).indexOf("=");-1<a?p(e,g(s.slice(0,a)),g(s.slice(a+1))):s.length&&p(e,g(s),"")}break;case o(t):for(r=0,i=t.length;r<i;r++){var s;p(e,(s=t[r])[0],s[1])}break;case"forEach"in t:t.forEach(l,e);break;default:for(var c in t)p(e,c,t[c])}}function l(t,e){p(this,e,t)}function p(t,e,n){var r=o(n)?n.join(","):n;e in t?t[e].push(r):t[e]=[r]}function g(t){return decodeURIComponent(t.replace(n,"%25").replace(r," "))}function v(t){return encodeURIComponent(t).replace(e,d)}function d(t){return i[t]}self.URLSearchParams=f}(Object,String,Array.isArray)}!function(d){var r=!1;try{r=!!Symbol.iterator}catch(t){}function t(t,e){var n=[];return t.forEach(e,n),r?n[Symbol.iterator]():{next:function(){var t=n.shift();return{done:void 0===t,value:t}}}}"forEach"in d||(d.forEach=function(n,r){var i=this,t=Object.create(null);this.toString().replace(/=[\s\S]*?(?:&|$)/g,"=").split("=").forEach(function(e){!e.length||e in t||(t[e]=i.getAll(e)).forEach(function(t){n.call(r,t,e,i)})})}),"keys"in d||(d.keys=function(){return t(this,function(t,e){this.push(e)})}),"values"in d||(d.values=function(){return t(this,function(t,e){this.push(t)})}),"entries"in d||(d.entries=function(){return t(this,function(t,e){this.push([e,t])})}),!r||Symbol.iterator in d||(d[Symbol.iterator]=d.entries),"sort"in d||(d.sort=function(){for(var t,e,n,r=this.entries(),i=r.next(),a=i.done,s=[],c=Object.create(null);!a;)e=(n=i.value)[0],s.push(e),e in c||(c[e]=[]),c[e].push(n[1]),a=(i=r.next()).done;for(s.sort(),t=0;t<s.length;t++)this.delete(s[t]);for(t=0;t<s.length;t++)e=s[t],this.append(e,c[e].shift())}),function(f){function l(t){var e=t.append;t.append=d.append,URLSearchParams.call(t,t._usp.search.slice(1)),t.append=e}function p(t,e){if(!(t instanceof e))throw new TypeError("'searchParams' accessed on an object that does not implement interface "+e.name)}function t(e){var n,r,i,t=e.prototype,a=v(t,"searchParams"),s=v(t,"href"),c=v(t,"search");function o(t,e){d.append.call(this,t,e),t=this.toString(),i.set.call(this._usp,t?"?"+t:"")}function u(t){d.delete.call(this,t),t=this.toString(),i.set.call(this._usp,t?"?"+t:"")}function h(t,e){d.set.call(this,t,e),t=this.toString(),i.set.call(this._usp,t?"?"+t:"")}!a&&c&&c.set&&(i=c,r=function(t,e){return t.append=o,t.delete=u,t.set=h,g(t,"_usp",{configurable:!0,writable:!0,value:e})},n=function(t,e){return g(t,"_searchParams",{configurable:!0,writable:!0,value:r(e,t)}),e},f.defineProperties(t,{href:{get:function(){return s.get.call(this)},set:function(t){var e=this._searchParams;s.set.call(this,t),e&&l(e)}},search:{get:function(){return c.get.call(this)},set:function(t){var e=this._searchParams;c.set.call(this,t),e&&l(e)}},searchParams:{get:function(){return p(this,e),this._searchParams||n(this,new URLSearchParams(this.search.slice(1)))},set:function(t){p(this,e),n(this,t)}}}))}var g=f.defineProperty,v=f.getOwnPropertyDescriptor;try{t(HTMLAnchorElement),/^function|object$/.test(typeof URL)&&URL.prototype&&t(URL)}catch(t){}}(Object)}(self.URLSearchParams.prototype,Object);

68
node_modules/@ungap/url-search-params/package.json generated vendored Normal file
View File

@@ -0,0 +1,68 @@
{
"_args": [
[
"@ungap/url-search-params@0.1.4",
"/home/s2/Code/vanillajs-seed"
]
],
"_from": "@ungap/url-search-params@0.1.4",
"_id": "@ungap/url-search-params@0.1.4",
"_inBundle": false,
"_integrity": "sha512-RLwrxCTDNiNev9hpr9rDq8NyeQ8Nn0X1we4Wu7Tlf368I8r+7hBj3uObhifhuLk74egaYaSX5nUsBlWz6kjj+A==",
"_location": "/@ungap/url-search-params",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "@ungap/url-search-params@0.1.4",
"name": "@ungap/url-search-params",
"escapedName": "@ungap%2furl-search-params",
"scope": "@ungap",
"rawSpec": "0.1.4",
"saveSpec": null,
"fetchSpec": "0.1.4"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/@ungap/url-search-params/-/url-search-params-0.1.4.tgz",
"_spec": "0.1.4",
"_where": "/home/s2/Code/vanillajs-seed",
"author": {
"name": "Andrea Giammarchi"
},
"bugs": {
"url": "https://github.com/ungap/url-search-params/issues"
},
"description": "The URLSearchParams polyfill.",
"devDependencies": {
"coveralls": "^3.0.9",
"istanbul": "^0.4.5",
"uglify-js": "^3.7.0"
},
"homepage": "https://github.com/ungap/url-search-params#readme",
"keywords": [
"URLSearchParams",
"polyfill",
"ungap"
],
"license": "ISC",
"main": "cjs/index.js",
"module": "esm/index.js",
"name": "@ungap/url-search-params",
"repository": {
"type": "git",
"url": "git+https://github.com/ungap/url-search-params.git"
},
"scripts": {
"build": "npm run cjs && npm run esm && npm run min && npm run test && npm run size",
"cjs": "cp index.js cjs/ && echo 'module.exports = self.URLSearchParams;' >> cjs/index.js",
"coveralls": "cat ./coverage/lcov.info | coveralls",
"esm": "cp index.js esm/ && echo 'export default self.URLSearchParams;' >> esm/index.js",
"min": "uglifyjs index.js --support-ie8 --comments=/^!/ -c -m -o min.js",
"size": "cat index.js | wc -c && cat min.js | wc -c && gzip -c9 min.js | wc -c && cat min.js | brotli | wc -c",
"test": "istanbul cover test/index.js"
},
"unpkg": "min.js",
"version": "0.1.4"
}