@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
package/dist/index.esm.js
CHANGED
|
@@ -118,7 +118,7 @@ function assertAllowedPropertyName(name) {
|
|
|
118
118
|
throw new Error("Property name \"".concat(name, "\" is not allowed"));
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
var version = "3.0.
|
|
121
|
+
var version = "3.0.3";
|
|
122
122
|
|
|
123
123
|
var Subscription = /** @class */ (function () {
|
|
124
124
|
function Subscription(listeners, listener) {
|
|
@@ -1200,6 +1200,17 @@ var Builder = /** @class */ (function () {
|
|
|
1200
1200
|
this.setTestsFromUrl();
|
|
1201
1201
|
// TODO: do this on every request send?
|
|
1202
1202
|
this.getOverridesFromQueryString();
|
|
1203
|
+
// cookies used in personalization container script, so need to set before hydration to match script result
|
|
1204
|
+
var userAttrCookie = this.getCookie(Builder.attributesCookieName);
|
|
1205
|
+
if (userAttrCookie) {
|
|
1206
|
+
try {
|
|
1207
|
+
var attributes = JSON.parse(userAttrCookie);
|
|
1208
|
+
this.setUserAttributes(attributes);
|
|
1209
|
+
}
|
|
1210
|
+
catch (err) {
|
|
1211
|
+
console.debug('Error parsing user attributes cookie', err);
|
|
1212
|
+
}
|
|
1213
|
+
}
|
|
1203
1214
|
}
|
|
1204
1215
|
}
|
|
1205
1216
|
Builder.register = function (type, info) {
|
|
@@ -2089,12 +2100,9 @@ var Builder = /** @class */ (function () {
|
|
|
2089
2100
|
};
|
|
2090
2101
|
Builder.prototype.setUserAttributes = function (options) {
|
|
2091
2102
|
assign(Builder.overrideUserAttributes, options);
|
|
2092
|
-
|
|
2103
|
+
if (this.canTrack) {
|
|
2093
2104
|
this.setCookie(Builder.attributesCookieName, JSON.stringify(this.getUserAttributes()));
|
|
2094
2105
|
}
|
|
2095
|
-
catch (_a) {
|
|
2096
|
-
// Ignore
|
|
2097
|
-
}
|
|
2098
2106
|
this.userAttributesChanged.next(options);
|
|
2099
2107
|
};
|
|
2100
2108
|
/**
|
|
@@ -2262,6 +2270,26 @@ var Builder = /** @class */ (function () {
|
|
|
2262
2270
|
enumerable: false,
|
|
2263
2271
|
configurable: true
|
|
2264
2272
|
});
|
|
2273
|
+
Builder.prototype.makeFetchApiCall = function (url, requestOptions) {
|
|
2274
|
+
return getFetch()(url, requestOptions);
|
|
2275
|
+
};
|
|
2276
|
+
Builder.prototype.flattenMongoQuery = function (obj, _current, _res) {
|
|
2277
|
+
if (_res === void 0) { _res = {}; }
|
|
2278
|
+
for (var key in obj) {
|
|
2279
|
+
var value = obj[key];
|
|
2280
|
+
var newKey = _current ? _current + '.' + key : key;
|
|
2281
|
+
if (value &&
|
|
2282
|
+
typeof value === 'object' &&
|
|
2283
|
+
!Array.isArray(value) &&
|
|
2284
|
+
!Object.keys(value).find(function (item) { return item.startsWith('$'); })) {
|
|
2285
|
+
this.flattenMongoQuery(value, newKey, _res);
|
|
2286
|
+
}
|
|
2287
|
+
else {
|
|
2288
|
+
_res[newKey] = value;
|
|
2289
|
+
}
|
|
2290
|
+
}
|
|
2291
|
+
return _res;
|
|
2292
|
+
};
|
|
2265
2293
|
Builder.prototype.flushGetContentQueue = function (usePastQueue, useQueue) {
|
|
2266
2294
|
var _this = this;
|
|
2267
2295
|
if (usePastQueue === void 0) { usePastQueue = false; }
|
|
@@ -2280,6 +2308,7 @@ var Builder = /** @class */ (function () {
|
|
|
2280
2308
|
return;
|
|
2281
2309
|
}
|
|
2282
2310
|
var queue = useQueue || (usePastQueue ? this.priorContentQueue : this.getContentQueue) || [];
|
|
2311
|
+
var apiEndpoint = queue[0].apiEndpoint || 'query';
|
|
2283
2312
|
// TODO: do this on every request send?
|
|
2284
2313
|
this.getOverridesFromQueryString();
|
|
2285
2314
|
var queryParams = __assign(__assign({
|
|
@@ -2356,8 +2385,9 @@ var Builder = /** @class */ (function () {
|
|
|
2356
2385
|
}
|
|
2357
2386
|
for (var _i = 0, queue_2 = queue; _i < queue_2.length; _i++) {
|
|
2358
2387
|
var options = queue_2[_i];
|
|
2359
|
-
|
|
2360
|
-
|
|
2388
|
+
var format_1 = options.format;
|
|
2389
|
+
if (format_1) {
|
|
2390
|
+
queryParams.format = format_1;
|
|
2361
2391
|
}
|
|
2362
2392
|
// TODO: remove me and make permodel
|
|
2363
2393
|
if (options.static) {
|
|
@@ -2388,9 +2418,14 @@ var Builder = /** @class */ (function () {
|
|
|
2388
2418
|
var key = properties_1[_a];
|
|
2389
2419
|
var value = options[key];
|
|
2390
2420
|
if (value !== undefined) {
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2421
|
+
if (apiEndpoint === 'query') {
|
|
2422
|
+
queryParams.options = queryParams.options || {};
|
|
2423
|
+
queryParams.options[options.key] = queryParams.options[options.key] || {};
|
|
2424
|
+
queryParams.options[options.key][key] = JSON.stringify(value);
|
|
2425
|
+
}
|
|
2426
|
+
else {
|
|
2427
|
+
queryParams[key] = JSON.stringify(value);
|
|
2428
|
+
}
|
|
2394
2429
|
}
|
|
2395
2430
|
}
|
|
2396
2431
|
}
|
|
@@ -2405,18 +2440,36 @@ var Builder = /** @class */ (function () {
|
|
|
2405
2440
|
var params = omit(QueryString.parse(this.overrideParams), 'apiKey');
|
|
2406
2441
|
assign(queryParams, params);
|
|
2407
2442
|
}
|
|
2408
|
-
var queryStr = QueryString.stringifyDeep(queryParams);
|
|
2409
2443
|
var format = queryParams.format;
|
|
2444
|
+
var isApiCallForCodegen = format === 'solid' || format === 'react';
|
|
2445
|
+
var isApiCallForCodegenOrQuery = isApiCallForCodegen || apiEndpoint === 'query';
|
|
2446
|
+
if (apiEndpoint === 'content') {
|
|
2447
|
+
queryParams.enrich = true;
|
|
2448
|
+
if (queue[0].query) {
|
|
2449
|
+
var flattened = this.flattenMongoQuery({ query: queue[0].query });
|
|
2450
|
+
for (var key in flattened) {
|
|
2451
|
+
queryParams[key] = flattened[key];
|
|
2452
|
+
}
|
|
2453
|
+
delete queryParams.query;
|
|
2454
|
+
}
|
|
2455
|
+
}
|
|
2456
|
+
var queryStr = QueryString.stringifyDeep(queryParams);
|
|
2410
2457
|
var requestOptions = { headers: {} };
|
|
2411
2458
|
if (this.authToken) {
|
|
2412
2459
|
requestOptions.headers = __assign(__assign({}, requestOptions.headers), { Authorization: "Bearer ".concat(this.authToken) });
|
|
2413
2460
|
}
|
|
2414
|
-
var
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2461
|
+
var url;
|
|
2462
|
+
if (isApiCallForCodegen) {
|
|
2463
|
+
url = "".concat(host, "/api/v1/codegen/").concat(this.apiKey, "/").concat(keyNames);
|
|
2464
|
+
}
|
|
2465
|
+
else if (apiEndpoint === 'query') {
|
|
2466
|
+
url = "".concat(host, "/api/v3/query/").concat(this.apiKey, "/").concat(keyNames);
|
|
2467
|
+
}
|
|
2468
|
+
else {
|
|
2469
|
+
url = "".concat(host, "/api/v3/content/").concat(queue[0].model);
|
|
2470
|
+
}
|
|
2471
|
+
url = url + (queryParams && hasParams ? "?".concat(queryStr) : '');
|
|
2472
|
+
var promise = this.makeFetchApiCall(url, requestOptions)
|
|
2420
2473
|
.then(function (res) { return res.json(); })
|
|
2421
2474
|
.then(function (result) {
|
|
2422
2475
|
for (var _i = 0, queue_3 = queue; _i < queue_3.length; _i++) {
|
|
@@ -2434,7 +2487,7 @@ var Builder = /** @class */ (function () {
|
|
|
2434
2487
|
if (!observer) {
|
|
2435
2488
|
return;
|
|
2436
2489
|
}
|
|
2437
|
-
var data = result[keyName];
|
|
2490
|
+
var data = isApiCallForCodegenOrQuery ? result[keyName] : result.results;
|
|
2438
2491
|
var sorted = data; // sortBy(data, item => item.priority);
|
|
2439
2492
|
if (data) {
|
|
2440
2493
|
var testModifiedResults = Builder.isServer
|