@builder.io/sdk 3.0.1 → 3.0.2-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.js +1 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/package.json +3 -2
- package/dist/src/builder.class.d.ts +1 -0
- package/dist/src/builder.class.js.map +1 -1
- package/dist/src/classes/promise.class.js +150 -154
- package/dist/src/classes/query-string.class.js +73 -74
- package/dist/src/classes/query-string.class.test.js +20 -20
- package/dist/src/functions/assign.function.js +19 -19
- package/dist/src/functions/fetch.function.js +97 -75
- package/dist/src/functions/finder.function.js +389 -274
- package/dist/src/functions/get-top-level-domain.js +8 -8
- package/dist/src/functions/next-tick.function.js +26 -23
- package/dist/src/functions/omit.function.js +13 -13
- package/dist/src/functions/server-only-require.function.js +10 -9
- package/dist/src/functions/throttle.function.js +35 -37
- package/dist/src/functions/to-error.js +5 -6
- package/dist/src/functions/uuid.js +9 -8
- package/dist/src/types/api-version.js +3 -3
- package/dist/src/types/element.js +3 -3
- package/dist/src/url.test.js +222 -118
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/.yarnrc.yml +0 -1
|
@@ -1,83 +1,82 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports,
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.QueryString = void 0;
|
|
4
4
|
var PROPERTY_NAME_DENY_LIST = Object.freeze(['__proto__', 'prototype', 'constructor']);
|
|
5
5
|
// TODO: unit tests
|
|
6
6
|
var QueryString = /** @class */ (function () {
|
|
7
|
-
|
|
7
|
+
function QueryString() {}
|
|
8
|
+
QueryString.parseDeep = function (queryString) {
|
|
9
|
+
var obj = this.parse(queryString);
|
|
10
|
+
return this.deepen(obj);
|
|
11
|
+
};
|
|
12
|
+
QueryString.stringifyDeep = function (obj) {
|
|
13
|
+
var map = this.flatten(obj);
|
|
14
|
+
return this.stringify(map);
|
|
15
|
+
};
|
|
16
|
+
QueryString.parse = function (queryString) {
|
|
17
|
+
var query = {};
|
|
18
|
+
var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
|
|
19
|
+
for (var i = 0; i < pairs.length; i++) {
|
|
20
|
+
var pair = pairs[i].split('=');
|
|
21
|
+
// TODO: node support?
|
|
22
|
+
try {
|
|
23
|
+
query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
|
|
24
|
+
} catch (error) {
|
|
25
|
+
// Ignore malformed URI components
|
|
26
|
+
}
|
|
8
27
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var query = {};
|
|
19
|
-
var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
|
|
20
|
-
for (var i = 0; i < pairs.length; i++) {
|
|
21
|
-
var pair = pairs[i].split('=');
|
|
22
|
-
// TODO: node support?
|
|
23
|
-
try {
|
|
24
|
-
query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
// Ignore malformed URI components
|
|
28
|
-
}
|
|
28
|
+
return query;
|
|
29
|
+
};
|
|
30
|
+
QueryString.stringify = function (map) {
|
|
31
|
+
var str = '';
|
|
32
|
+
for (var key in map) {
|
|
33
|
+
if (map.hasOwnProperty(key)) {
|
|
34
|
+
var value = map[key];
|
|
35
|
+
if (str) {
|
|
36
|
+
str += '&';
|
|
29
37
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
_res[newKey] = value;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return _res;
|
|
75
|
-
};
|
|
76
|
-
return QueryString;
|
|
77
|
-
}());
|
|
38
|
+
str += encodeURIComponent(key) + '=' + encodeURIComponent(value);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return str;
|
|
42
|
+
};
|
|
43
|
+
QueryString.deepen = function (map) {
|
|
44
|
+
// FIXME; Should be type Tree = Record<string, string | Tree>
|
|
45
|
+
// requires a typescript upgrade.
|
|
46
|
+
var output = {};
|
|
47
|
+
for (var k in map) {
|
|
48
|
+
var t = output;
|
|
49
|
+
var parts = k.split('.');
|
|
50
|
+
var key = parts.pop();
|
|
51
|
+
for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
|
|
52
|
+
var part = parts_1[_i];
|
|
53
|
+
assertAllowedPropertyName(part);
|
|
54
|
+
t = t[part] = t[part] || {};
|
|
55
|
+
}
|
|
56
|
+
t[key] = map[k];
|
|
57
|
+
}
|
|
58
|
+
return output;
|
|
59
|
+
};
|
|
60
|
+
QueryString.flatten = function (obj, _current, _res) {
|
|
61
|
+
if (_res === void 0) {
|
|
62
|
+
_res = {};
|
|
63
|
+
}
|
|
64
|
+
for (var key in obj) {
|
|
65
|
+
var value = obj[key];
|
|
66
|
+
var newKey = _current ? _current + '.' + key : key;
|
|
67
|
+
if (value && typeof value === 'object') {
|
|
68
|
+
this.flatten(value, newKey, _res);
|
|
69
|
+
} else {
|
|
70
|
+
_res[newKey] = value;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return _res;
|
|
74
|
+
};
|
|
75
|
+
return QueryString;
|
|
76
|
+
})();
|
|
78
77
|
exports.QueryString = QueryString;
|
|
79
78
|
function assertAllowedPropertyName(name) {
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
if (PROPERTY_NAME_DENY_LIST.indexOf(name) >= 0)
|
|
80
|
+
throw new Error('Property name "'.concat(name, '" is not allowed'));
|
|
82
81
|
}
|
|
83
|
-
//# sourceMappingURL=query-string.class.js.map
|
|
82
|
+
//# sourceMappingURL=query-string.class.js.map
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports,
|
|
3
|
-
var query_string_class_1 = require(
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
|
+
var query_string_class_1 = require('./query-string.class');
|
|
4
4
|
test.each([
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
// prettier-ignore
|
|
6
|
+
['__proto__.foo.baz=1'],
|
|
7
|
+
['prototype.foo=1'],
|
|
8
8
|
])('(regression) prototype pollution %#', function (input) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
expect(function () {
|
|
10
|
+
query_string_class_1.QueryString.parseDeep(input);
|
|
11
|
+
}).toThrowError(/Property name \".*\" is not allowed/);
|
|
12
|
+
var pollutedObject = {};
|
|
13
|
+
expect(pollutedObject.foo).toBeUndefined();
|
|
14
14
|
});
|
|
15
15
|
describe('.parseDeep', function () {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
test('input string may be prefixed with a question mark', function () {
|
|
17
|
+
var result = query_string_class_1.QueryString.parseDeep('?foo=1');
|
|
18
|
+
expect(result).toEqual({ foo: '1' });
|
|
19
|
+
});
|
|
20
|
+
test('converts the paths to a single object', function () {
|
|
21
|
+
var result = query_string_class_1.QueryString.parseDeep('foo.bar.baz=1&foo.boo=2');
|
|
22
|
+
expect(result).toEqual({ foo: { bar: { baz: '1' }, boo: '2' } });
|
|
23
|
+
});
|
|
24
24
|
});
|
|
25
|
-
//# sourceMappingURL=query-string.class.test.js.map
|
|
25
|
+
//# sourceMappingURL=query-string.class.test.js.map
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports,
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
3
|
exports.assign = void 0;
|
|
4
4
|
function assign(target) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
}
|
|
5
|
+
var args = [];
|
|
6
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
7
|
+
args[_i - 1] = arguments[_i];
|
|
8
|
+
}
|
|
9
|
+
var to = Object(target);
|
|
10
|
+
for (var index = 1; index < arguments.length; index++) {
|
|
11
|
+
var nextSource = arguments[index];
|
|
12
|
+
if (nextSource != null) {
|
|
13
|
+
// Skip over if undefined or null
|
|
14
|
+
for (var nextKey in nextSource) {
|
|
15
|
+
// Avoid bugs when hasOwnProperty is shadowed
|
|
16
|
+
if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
|
|
17
|
+
to[nextKey] = nextSource[nextKey];
|
|
20
18
|
}
|
|
19
|
+
}
|
|
21
20
|
}
|
|
22
|
-
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
23
|
}
|
|
24
24
|
exports.assign = assign;
|
|
25
|
-
//# sourceMappingURL=assign.function.js.map
|
|
25
|
+
//# sourceMappingURL=assign.function.js.map
|
|
@@ -1,85 +1,107 @@
|
|
|
1
|
-
|
|
2
|
-
var __importDefault =
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
var __importDefault =
|
|
3
|
+
(this && this.__importDefault) ||
|
|
4
|
+
function (mod) {
|
|
5
|
+
return mod && mod.__esModule ? mod : { default: mod };
|
|
6
|
+
};
|
|
7
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
6
8
|
exports.getFetch = void 0;
|
|
7
|
-
var promise_class_1 = __importDefault(require(
|
|
8
|
-
var server_only_require_function_1 = __importDefault(require(
|
|
9
|
+
var promise_class_1 = __importDefault(require('../classes/promise.class'));
|
|
10
|
+
var server_only_require_function_1 = __importDefault(require('./server-only-require.function'));
|
|
9
11
|
function promiseResolve(value) {
|
|
10
|
-
|
|
12
|
+
return new promise_class_1.default(function (resolve) {
|
|
13
|
+
return resolve(value);
|
|
14
|
+
});
|
|
11
15
|
}
|
|
12
16
|
// Adapted from https://raw.githubusercontent.com/developit/unfetch/master/src/index.mjs
|
|
13
17
|
function tinyFetch(url, options) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
18
|
+
if (options === void 0) {
|
|
19
|
+
options = {};
|
|
20
|
+
}
|
|
21
|
+
return new promise_class_1.default(function (resolve, reject) {
|
|
22
|
+
var request = new XMLHttpRequest();
|
|
23
|
+
request.open(options.method || 'get', url, true);
|
|
24
|
+
if (options.headers) {
|
|
25
|
+
for (var i in options.headers) {
|
|
26
|
+
request.setRequestHeader(i, options.headers[i]);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
request.withCredentials = options.credentials === 'include';
|
|
30
|
+
request.onload = function () {
|
|
31
|
+
resolve(response());
|
|
32
|
+
};
|
|
33
|
+
request.onerror = reject;
|
|
34
|
+
request.send(options.body);
|
|
35
|
+
function response() {
|
|
36
|
+
var keys = [];
|
|
37
|
+
var all = [];
|
|
38
|
+
var headers = {};
|
|
39
|
+
var header = undefined;
|
|
40
|
+
request
|
|
41
|
+
.getAllResponseHeaders()
|
|
42
|
+
.replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm, function (_match, _key, value) {
|
|
43
|
+
var key = _key;
|
|
44
|
+
keys.push((key = key.toLowerCase()));
|
|
45
|
+
all.push([key, value]);
|
|
46
|
+
header = headers[key];
|
|
47
|
+
headers[key] = header ? ''.concat(header, ',').concat(value) : value;
|
|
48
|
+
return '';
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
ok: ((request.status / 100) | 0) === 2,
|
|
52
|
+
status: request.status,
|
|
53
|
+
statusText: request.statusText,
|
|
54
|
+
url: request.responseURL,
|
|
55
|
+
clone: response,
|
|
56
|
+
text: function () {
|
|
57
|
+
return promiseResolve(request.responseText);
|
|
58
|
+
},
|
|
59
|
+
json: function () {
|
|
60
|
+
return promiseResolve(request.responseText).then(JSON.parse);
|
|
61
|
+
},
|
|
62
|
+
blob: function () {
|
|
63
|
+
return promiseResolve(new Blob([request.response]));
|
|
64
|
+
},
|
|
65
|
+
headers: {
|
|
66
|
+
keys: function () {
|
|
67
|
+
return keys;
|
|
68
|
+
},
|
|
69
|
+
entries: function () {
|
|
70
|
+
return all;
|
|
71
|
+
},
|
|
72
|
+
get: function (n) {
|
|
73
|
+
return headers[n.toLowerCase()];
|
|
74
|
+
},
|
|
75
|
+
has: function (n) {
|
|
76
|
+
return n.toLowerCase() in headers;
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
});
|
|
62
82
|
}
|
|
63
83
|
function getFetch() {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
84
|
+
// If fetch is defined, in the browser, via polyfill, or in a Cloudflare worker, use it.
|
|
85
|
+
var _fetch = undefined;
|
|
86
|
+
if (globalThis.fetch) {
|
|
87
|
+
_fetch !== null && _fetch !== void 0 ? _fetch : (_fetch = globalThis.fetch);
|
|
88
|
+
} else if (typeof window === 'undefined') {
|
|
89
|
+
// If fetch is not defined, in a Node.js environment, use node-fetch.
|
|
90
|
+
try {
|
|
91
|
+
// node-fetch@^3 is ESM only, and will throw error on require.
|
|
92
|
+
_fetch !== null && _fetch !== void 0
|
|
93
|
+
? _fetch
|
|
94
|
+
: (_fetch = (0, server_only_require_function_1.default)('node-fetch'));
|
|
95
|
+
} catch (e) {
|
|
96
|
+
// If node-fetch is not installed, use tiny-fetch.
|
|
97
|
+
console.warn(
|
|
98
|
+
'node-fetch is not installed. consider polyfilling fetch or installing node-fetch.'
|
|
99
|
+
);
|
|
100
|
+
console.warn(e);
|
|
80
101
|
}
|
|
81
|
-
|
|
82
|
-
|
|
102
|
+
}
|
|
103
|
+
// Otherwise, use tiny-fetch.
|
|
104
|
+
return _fetch !== null && _fetch !== void 0 ? _fetch : tinyFetch;
|
|
83
105
|
}
|
|
84
106
|
exports.getFetch = getFetch;
|
|
85
|
-
//# sourceMappingURL=fetch.function.js.map
|
|
107
|
+
//# sourceMappingURL=fetch.function.js.map
|