@builder.io/sdk 3.0.2-2 → 3.0.3
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/.yarnrc.yml +1 -0
- package/CHANGELOG.md +13 -0
- package/dist/index.browser.js +71 -18
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs.js +71 -18
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +71 -18
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +13 -49
- package/dist/index.umd.js +71 -18
- package/dist/index.umd.js.map +1 -1
- package/dist/package.json +1 -3
- package/dist/src/builder.class.d.ts +7 -0
- package/dist/src/builder.class.js +70 -17
- package/dist/src/builder.class.js.map +1 -1
- package/dist/src/builder.class.test.js +757 -170
- package/dist/src/builder.class.test.js.map +1 -1
- package/dist/src/classes/animator.class.js +195 -218
- package/dist/src/classes/observable.class.js +97 -102
- package/dist/src/classes/promise.class.js +154 -150
- package/dist/src/classes/query-string.class.js +74 -73
- package/dist/src/classes/query-string.class.test.js +20 -20
- package/dist/src/constants/builder.js +4 -4
- package/dist/src/functions/assign.function.js +19 -19
- package/dist/src/functions/fetch.function.js +75 -97
- package/dist/src/functions/finder.function.js +274 -389
- package/dist/src/functions/next-tick.function.js +23 -26
- package/dist/src/functions/omit.function.js +13 -13
- package/dist/src/functions/server-only-require.function.js +9 -10
- package/dist/src/functions/throttle.function.js +37 -35
- package/dist/src/functions/to-error.js +6 -5
- package/dist/src/functions/uuid.js +8 -9
- package/dist/src/types/api-version.js +3 -3
- package/dist/src/types/content.js +3 -3
- package/dist/src/types/element.js +3 -3
- package/dist/src/url.js +42 -41
- package/dist/src/url.test.js +118 -222
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -6
- package/dist/src/functions/get-top-level-domain.d.ts +0 -6
- package/dist/src/functions/get-top-level-domain.js +0 -17
- package/dist/src/functions/get-top-level-domain.js.map +0 -1
|
@@ -1,82 +1,83 @@
|
|
|
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
|
-
|
|
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
|
-
}
|
|
7
|
+
function QueryString() {
|
|
27
8
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
9
|
+
QueryString.parseDeep = function (queryString) {
|
|
10
|
+
var obj = this.parse(queryString);
|
|
11
|
+
return this.deepen(obj);
|
|
12
|
+
};
|
|
13
|
+
QueryString.stringifyDeep = function (obj) {
|
|
14
|
+
var map = this.flatten(obj);
|
|
15
|
+
return this.stringify(map);
|
|
16
|
+
};
|
|
17
|
+
QueryString.parse = function (queryString) {
|
|
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
|
+
}
|
|
37
29
|
}
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
30
|
+
return query;
|
|
31
|
+
};
|
|
32
|
+
QueryString.stringify = function (map) {
|
|
33
|
+
var str = '';
|
|
34
|
+
for (var key in map) {
|
|
35
|
+
if (map.hasOwnProperty(key)) {
|
|
36
|
+
var value = map[key];
|
|
37
|
+
if (str) {
|
|
38
|
+
str += '&';
|
|
39
|
+
}
|
|
40
|
+
str += encodeURIComponent(key) + '=' + encodeURIComponent(value);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return str;
|
|
44
|
+
};
|
|
45
|
+
QueryString.deepen = function (map) {
|
|
46
|
+
// FIXME; Should be type Tree = Record<string, string | Tree>
|
|
47
|
+
// requires a typescript upgrade.
|
|
48
|
+
var output = {};
|
|
49
|
+
for (var k in map) {
|
|
50
|
+
var t = output;
|
|
51
|
+
var parts = k.split('.');
|
|
52
|
+
var key = parts.pop();
|
|
53
|
+
for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
|
|
54
|
+
var part = parts_1[_i];
|
|
55
|
+
assertAllowedPropertyName(part);
|
|
56
|
+
t = t[part] = t[part] || {};
|
|
57
|
+
}
|
|
58
|
+
t[key] = map[k];
|
|
59
|
+
}
|
|
60
|
+
return output;
|
|
61
|
+
};
|
|
62
|
+
QueryString.flatten = function (obj, _current, _res) {
|
|
63
|
+
if (_res === void 0) { _res = {}; }
|
|
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
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
_res[newKey] = value;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return _res;
|
|
75
|
+
};
|
|
76
|
+
return QueryString;
|
|
77
|
+
}());
|
|
77
78
|
exports.QueryString = QueryString;
|
|
78
79
|
function assertAllowedPropertyName(name) {
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
if (PROPERTY_NAME_DENY_LIST.indexOf(name) >= 0)
|
|
81
|
+
throw new Error("Property name \"".concat(name, "\" is not allowed"));
|
|
81
82
|
}
|
|
82
|
-
//# sourceMappingURL=query-string.class.js.map
|
|
83
|
+
//# 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,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports,
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.builder = void 0;
|
|
4
|
-
var builder_class_1 = require(
|
|
4
|
+
var builder_class_1 = require("../builder.class");
|
|
5
5
|
exports.builder = new builder_class_1.Builder(null, undefined, undefined, true);
|
|
6
6
|
builder_class_1.Builder.singletonInstance = exports.builder;
|
|
7
|
-
//# sourceMappingURL=builder.js.map
|
|
7
|
+
//# sourceMappingURL=builder.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
|
-
|
|
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];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
18
20
|
}
|
|
19
|
-
}
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
-
return to;
|
|
22
|
+
return to;
|
|
23
23
|
}
|
|
24
24
|
exports.assign = assign;
|
|
25
|
-
//# sourceMappingURL=assign.function.js.map
|
|
25
|
+
//# sourceMappingURL=assign.function.js.map
|
|
@@ -1,107 +1,85 @@
|
|
|
1
|
-
|
|
2
|
-
var __importDefault =
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
6
|
exports.getFetch = void 0;
|
|
9
|
-
var promise_class_1 = __importDefault(require(
|
|
10
|
-
var server_only_require_function_1 = __importDefault(require(
|
|
7
|
+
var promise_class_1 = __importDefault(require("../classes/promise.class"));
|
|
8
|
+
var server_only_require_function_1 = __importDefault(require("./server-only-require.function"));
|
|
11
9
|
function promiseResolve(value) {
|
|
12
|
-
|
|
13
|
-
return resolve(value);
|
|
14
|
-
});
|
|
10
|
+
return new promise_class_1.default(function (resolve) { return resolve(value); });
|
|
15
11
|
}
|
|
16
12
|
// Adapted from https://raw.githubusercontent.com/developit/unfetch/master/src/index.mjs
|
|
17
13
|
function tinyFetch(url, options) {
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
|
|
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
|
-
});
|
|
14
|
+
if (options === void 0) { options = {}; }
|
|
15
|
+
return new promise_class_1.default(function (resolve, reject) {
|
|
16
|
+
var request = new XMLHttpRequest();
|
|
17
|
+
request.open(options.method || 'get', url, true);
|
|
18
|
+
if (options.headers) {
|
|
19
|
+
for (var i in options.headers) {
|
|
20
|
+
request.setRequestHeader(i, options.headers[i]);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
request.withCredentials = options.credentials === 'include';
|
|
24
|
+
request.onload = function () {
|
|
25
|
+
resolve(response());
|
|
26
|
+
};
|
|
27
|
+
request.onerror = reject;
|
|
28
|
+
request.send(options.body);
|
|
29
|
+
function response() {
|
|
30
|
+
var keys = [];
|
|
31
|
+
var all = [];
|
|
32
|
+
var headers = {};
|
|
33
|
+
var header = undefined;
|
|
34
|
+
request
|
|
35
|
+
.getAllResponseHeaders()
|
|
36
|
+
.replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm, function (_match, _key, value) {
|
|
37
|
+
var key = _key;
|
|
38
|
+
keys.push((key = key.toLowerCase()));
|
|
39
|
+
all.push([key, value]);
|
|
40
|
+
header = headers[key];
|
|
41
|
+
headers[key] = header ? "".concat(header, ",").concat(value) : value;
|
|
42
|
+
return '';
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
ok: ((request.status / 100) | 0) === 2,
|
|
46
|
+
status: request.status,
|
|
47
|
+
statusText: request.statusText,
|
|
48
|
+
url: request.responseURL,
|
|
49
|
+
clone: response,
|
|
50
|
+
text: function () { return promiseResolve(request.responseText); },
|
|
51
|
+
json: function () { return promiseResolve(request.responseText).then(JSON.parse); },
|
|
52
|
+
blob: function () { return promiseResolve(new Blob([request.response])); },
|
|
53
|
+
headers: {
|
|
54
|
+
keys: function () { return keys; },
|
|
55
|
+
entries: function () { return all; },
|
|
56
|
+
get: function (n) { return headers[n.toLowerCase()]; },
|
|
57
|
+
has: function (n) { return n.toLowerCase() in headers; },
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
});
|
|
82
62
|
}
|
|
83
63
|
function getFetch() {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
console.warn(e);
|
|
64
|
+
// If fetch is defined, in the browser, via polyfill, or in a Cloudflare worker, use it.
|
|
65
|
+
var _fetch = undefined;
|
|
66
|
+
if (globalThis.fetch) {
|
|
67
|
+
_fetch !== null && _fetch !== void 0 ? _fetch : (_fetch = globalThis.fetch);
|
|
68
|
+
}
|
|
69
|
+
else if (typeof window === 'undefined') {
|
|
70
|
+
// If fetch is not defined, in a Node.js environment, use node-fetch.
|
|
71
|
+
try {
|
|
72
|
+
// node-fetch@^3 is ESM only, and will throw error on require.
|
|
73
|
+
_fetch !== null && _fetch !== void 0 ? _fetch : (_fetch = (0, server_only_require_function_1.default)('node-fetch'));
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
// If node-fetch is not installed, use tiny-fetch.
|
|
77
|
+
console.warn('node-fetch is not installed. consider polyfilling fetch or installing node-fetch.');
|
|
78
|
+
console.warn(e);
|
|
79
|
+
}
|
|
101
80
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return _fetch !== null && _fetch !== void 0 ? _fetch : tinyFetch;
|
|
81
|
+
// Otherwise, use tiny-fetch.
|
|
82
|
+
return _fetch !== null && _fetch !== void 0 ? _fetch : tinyFetch;
|
|
105
83
|
}
|
|
106
84
|
exports.getFetch = getFetch;
|
|
107
|
-
//# sourceMappingURL=fetch.function.js.map
|
|
85
|
+
//# sourceMappingURL=fetch.function.js.map
|