@builder.io/sdk-solid 0.5.8 → 0.6.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/README.md +0 -4
- package/dist/index.d.ts +51 -0
- package/lib/browser/dev.js +4790 -0
- package/lib/browser/dev.jsx +4392 -0
- package/lib/browser/index.js +4767 -0
- package/lib/browser/index.jsx +4374 -0
- package/lib/edge/dev.js +7921 -0
- package/lib/edge/dev.jsx +7525 -0
- package/lib/edge/index.js +7898 -0
- package/lib/edge/index.jsx +7507 -0
- package/lib/node/dev.js +4790 -0
- package/lib/node/dev.jsx +4392 -0
- package/lib/node/index.js +4767 -0
- package/lib/node/index.jsx +4374 -0
- package/package.json +86 -14
- package/CHANGELOG.md +0 -98
- package/solid-index.jsx +0 -5
- package/src/blocks/BaseText.jsx +0 -11
- package/src/blocks/button/button.jsx +0 -41
- package/src/blocks/button/component-info.js +0 -34
- package/src/blocks/columns/columns.jsx +0 -174
- package/src/blocks/columns/component-info.js +0 -218
- package/src/blocks/custom-code/component-info.js +0 -24
- package/src/blocks/custom-code/custom-code.jsx +0 -62
- package/src/blocks/embed/component-info.js +0 -37
- package/src/blocks/embed/embed.jsx +0 -50
- package/src/blocks/embed/helpers.js +0 -3
- package/src/blocks/form/component-info.js +0 -223
- package/src/blocks/form/form.jsx +0 -5
- package/src/blocks/fragment/component-info.js +0 -8
- package/src/blocks/fragment/fragment.jsx +0 -5
- package/src/blocks/helpers.js +0 -27
- package/src/blocks/image/component-info.js +0 -122
- package/src/blocks/image/image.helpers.js +0 -46
- package/src/blocks/image/image.jsx +0 -122
- package/src/blocks/img/component-info.js +0 -15
- package/src/blocks/img/img.jsx +0 -20
- package/src/blocks/input/component-info.js +0 -45
- package/src/blocks/input/input.jsx +0 -22
- package/src/blocks/raw-text/component-info.js +0 -11
- package/src/blocks/raw-text/raw-text.jsx +0 -10
- package/src/blocks/section/component-info.js +0 -41
- package/src/blocks/section/section.jsx +0 -26
- package/src/blocks/select/component-info.js +0 -44
- package/src/blocks/select/select.jsx +0 -30
- package/src/blocks/submit-button/component-info.js +0 -23
- package/src/blocks/submit-button/submit-button.jsx +0 -11
- package/src/blocks/symbol/component-info.js +0 -35
- package/src/blocks/symbol/symbol.helpers.js +0 -60
- package/src/blocks/symbol/symbol.jsx +0 -64
- package/src/blocks/text/component-info.js +0 -20
- package/src/blocks/text/text.jsx +0 -14
- package/src/blocks/textarea/component-info.js +0 -38
- package/src/blocks/textarea/textarea.jsx +0 -16
- package/src/blocks/video/component-info.js +0 -83
- package/src/blocks/video/video.jsx +0 -61
- package/src/components/block/block.helpers.js +0 -99
- package/src/components/block/block.jsx +0 -167
- package/src/components/block/components/block-styles.jsx +0 -85
- package/src/components/block/components/block-wrapper.jsx +0 -50
- package/src/components/block/components/component-ref/component-ref.helpers.js +0 -41
- package/src/components/block/components/component-ref/component-ref.jsx +0 -58
- package/src/components/block/components/interactive-element.jsx +0 -30
- package/src/components/block/components/repeated-block.jsx +0 -20
- package/src/components/block/types.js +0 -0
- package/src/components/blocks/blocks-wrapper.jsx +0 -66
- package/src/components/blocks/blocks.jsx +0 -57
- package/src/components/content/components/enable-editor.jsx +0 -347
- package/src/components/content/components/styles.helpers.js +0 -56
- package/src/components/content/components/styles.jsx +0 -36
- package/src/components/content/content.helpers.js +0 -48
- package/src/components/content/content.jsx +0 -136
- package/src/components/content/content.types.js +0 -0
- package/src/components/content/index.js +0 -2
- package/src/components/content/wrap-component-ref.js +0 -2
- package/src/components/content-variants/content-variants.jsx +0 -115
- package/src/components/content-variants/content-variants.types.js +0 -0
- package/src/components/content-variants/helpers.js +0 -158
- package/src/components/inlined-script.jsx +0 -5
- package/src/components/inlined-styles.jsx +0 -5
- package/src/constants/builder-registered-components.js +0 -63
- package/src/constants/device-sizes.js +0 -48
- package/src/constants/sdk-version.js +0 -1
- package/src/constants/target.js +0 -4
- package/src/context/builder.context.js +0 -16
- package/src/context/components.context.js +0 -5
- package/src/context/types.js +0 -0
- package/src/functions/apply-patch-with-mutation.js +0 -66
- package/src/functions/camel-to-kebab-case.js +0 -2
- package/src/functions/evaluate/acorn-interpreter.js +0 -2876
- package/src/functions/evaluate/evaluate.js +0 -79
- package/src/functions/evaluate/index.js +0 -2
- package/src/functions/evaluate/non-node-runtime/index.js +0 -18
- package/src/functions/evaluate/non-node-runtime/non-node-runtime.js +0 -92
- package/src/functions/evaluate/types.js +0 -0
- package/src/functions/event-handler-name.js +0 -5
- package/src/functions/extract-text-styles.js +0 -14
- package/src/functions/fast-clone.js +0 -2
- package/src/functions/fetch-builder-props.js +0 -60
- package/src/functions/get-block-actions-handler.js +0 -11
- package/src/functions/get-block-actions.js +0 -29
- package/src/functions/get-block-component-options.js +0 -27
- package/src/functions/get-block-properties.js +0 -63
- package/src/functions/get-builder-search-params/index.js +0 -33
- package/src/functions/get-content/generate-content-url.js +0 -59
- package/src/functions/get-content/index.js +0 -116
- package/src/functions/get-content/types.js +0 -0
- package/src/functions/get-fetch.js +0 -12
- package/src/functions/get-global-this.js +0 -16
- package/src/functions/get-processed-block.js +0 -74
- package/src/functions/get-react-native-block-styles.js +0 -32
- package/src/functions/is-browser.js +0 -4
- package/src/functions/is-editing.js +0 -6
- package/src/functions/is-iframe.js +0 -5
- package/src/functions/is-non-node-server.js +0 -9
- package/src/functions/is-previewing.js +0 -12
- package/src/functions/on-change.js +0 -24
- package/src/functions/register-component.js +0 -60
- package/src/functions/register.js +0 -27
- package/src/functions/sanitize-react-native-block-styles.js +0 -71
- package/src/functions/set-editor-settings.js +0 -13
- package/src/functions/set.js +0 -9
- package/src/functions/track/helpers.js +0 -48
- package/src/functions/track/index.js +0 -131
- package/src/functions/track/interaction.js +0 -57
- package/src/functions/transform-block-properties.js +0 -4
- package/src/functions/transform-block.js +0 -4
- package/src/helpers/ab-tests.js +0 -158
- package/src/helpers/canTrack.js +0 -3
- package/src/helpers/cookie.js +0 -77
- package/src/helpers/css.js +0 -30
- package/src/helpers/flatten.js +0 -31
- package/src/helpers/localStorage.js +0 -32
- package/src/helpers/logger.js +0 -8
- package/src/helpers/nullable.js +0 -2
- package/src/helpers/preview-lru-cache/get.js +0 -4
- package/src/helpers/preview-lru-cache/helpers.js +0 -0
- package/src/helpers/preview-lru-cache/init.js +0 -2
- package/src/helpers/preview-lru-cache/set.js +0 -31
- package/src/helpers/preview-lru-cache/types.js +0 -0
- package/src/helpers/sessionId.js +0 -55
- package/src/helpers/time.js +0 -3
- package/src/helpers/url.js +0 -11
- package/src/helpers/uuid.js +0 -11
- package/src/helpers/visitorId.js +0 -35
- package/src/index-helpers/blocks-exports.js +0 -13
- package/src/index-helpers/top-of-file.js +0 -2
- package/src/index.js +0 -12
- package/src/scripts/init-editing.js +0 -109
- package/src/types/api-version.js +0 -2
- package/src/types/builder-block.js +0 -0
- package/src/types/builder-content.js +0 -0
- package/src/types/builder-props.js +0 -0
- package/src/types/can-track.js +0 -0
- package/src/types/components.js +0 -0
- package/src/types/deep-partial.js +0 -0
- package/src/types/element.js +0 -0
- package/src/types/enforced-partials.js +0 -0
- package/src/types/input.js +0 -0
- package/src/types/targets.js +0 -0
- package/src/types/typescript.js +0 -0
- package/vite.config.ts +0 -18
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { logger } from "../../helpers/logger.js";
|
|
2
|
-
import { isBrowser } from "../is-browser.js";
|
|
3
|
-
import { isEditing } from "../is-editing.js";
|
|
4
|
-
import { isNonNodeServer } from "../is-non-node-server.js";
|
|
5
|
-
import { runInNonNode } from "./non-node-runtime/index.js";
|
|
6
|
-
function evaluate({
|
|
7
|
-
code,
|
|
8
|
-
context,
|
|
9
|
-
localState,
|
|
10
|
-
rootState,
|
|
11
|
-
rootSetState,
|
|
12
|
-
event,
|
|
13
|
-
isExpression = true
|
|
14
|
-
}) {
|
|
15
|
-
if (code === "") {
|
|
16
|
-
logger.warn("Skipping evaluation of empty code block.");
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
const builder = {
|
|
20
|
-
isEditing: isEditing(),
|
|
21
|
-
isBrowser: isBrowser(),
|
|
22
|
-
isServer: !isBrowser()
|
|
23
|
-
};
|
|
24
|
-
const useReturn = isExpression && !(code.includes(";") || code.includes(" return ") || code.trim().startsWith("return "));
|
|
25
|
-
const useCode = useReturn ? `return (${code});` : code;
|
|
26
|
-
const args = {
|
|
27
|
-
useCode,
|
|
28
|
-
builder,
|
|
29
|
-
context,
|
|
30
|
-
event,
|
|
31
|
-
rootSetState,
|
|
32
|
-
rootState,
|
|
33
|
-
localState
|
|
34
|
-
};
|
|
35
|
-
if (isBrowser()) return runInBrowser(args);
|
|
36
|
-
if (isNonNodeServer()) return runInNonNode(args);
|
|
37
|
-
return runInNode(args);
|
|
38
|
-
}
|
|
39
|
-
const runInBrowser = ({
|
|
40
|
-
useCode,
|
|
41
|
-
builder,
|
|
42
|
-
context,
|
|
43
|
-
event,
|
|
44
|
-
localState,
|
|
45
|
-
rootSetState,
|
|
46
|
-
rootState
|
|
47
|
-
}) => {
|
|
48
|
-
const state = flattenState(rootState, localState, rootSetState);
|
|
49
|
-
try {
|
|
50
|
-
return new Function("builder", "Builder", "state", "context", "event", useCode)(builder, builder, state, context, event);
|
|
51
|
-
} catch (e) {
|
|
52
|
-
logger.warn("Builder custom code error: \n While Evaluating: \n ", useCode, "\n", e);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
const runInNode = args => {
|
|
56
|
-
return runInBrowser(args);
|
|
57
|
-
};
|
|
58
|
-
function flattenState(rootState, localState, rootSetState) {
|
|
59
|
-
if (rootState === localState) {
|
|
60
|
-
throw new Error("rootState === localState");
|
|
61
|
-
}
|
|
62
|
-
return new Proxy(rootState, {
|
|
63
|
-
get: (_, prop) => {
|
|
64
|
-
if (localState && prop in localState) {
|
|
65
|
-
return localState[prop];
|
|
66
|
-
}
|
|
67
|
-
return rootState[prop];
|
|
68
|
-
},
|
|
69
|
-
set: (_, prop, value) => {
|
|
70
|
-
if (localState && prop in localState) {
|
|
71
|
-
throw new Error("Writing to local state is not allowed as it is read-only.");
|
|
72
|
-
}
|
|
73
|
-
rootState[prop] = value;
|
|
74
|
-
rootSetState == null ? void 0 : rootSetState(rootState);
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
export { evaluate, flattenState, runInBrowser, runInNode }
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { logger } from "../../../helpers/logger.js";
|
|
2
|
-
import { isNonNodeServer } from "../../is-non-node-server.js";
|
|
3
|
-
let runInNonNode;
|
|
4
|
-
if (isNonNodeServer()) {
|
|
5
|
-
import("./non-node-runtime.js").then(m => {
|
|
6
|
-
runInNonNode = m.runInNonNode;
|
|
7
|
-
}).catch(err => {
|
|
8
|
-
const ERROR_MESSAGE = `Error importing JS interpreter for non-Node.js runtimes. Make sure \`js-interpreter\` is installed.
|
|
9
|
-
Read more here: https://github.com/BuilderIO/builder/tree/main/packages/sdks/README.md#non-nodejs-runtimes-edge-serverless
|
|
10
|
-
`;
|
|
11
|
-
logger.error(ERROR_MESSAGE, err);
|
|
12
|
-
runInNonNode = (..._args) => {
|
|
13
|
-
logger.error(ERROR_MESSAGE);
|
|
14
|
-
return void 0;
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
export { runInNonNode }
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
configurable: true,
|
|
8
|
-
writable: true,
|
|
9
|
-
value
|
|
10
|
-
}) : obj[key] = value;
|
|
11
|
-
var __spreadValues = (a, b) => {
|
|
12
|
-
for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
13
|
-
if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
15
|
-
}
|
|
16
|
-
return a;
|
|
17
|
-
};
|
|
18
|
-
import { logger } from "../../../helpers/logger";
|
|
19
|
-
import { set } from "../../set";
|
|
20
|
-
import Interpreter from "../acorn-interpreter.js";
|
|
21
|
-
const processCode = code => {
|
|
22
|
-
return code.split("\n").map(line => {
|
|
23
|
-
const trimmed = line.trim();
|
|
24
|
-
if (line.includes("__awaiter")) return void 0;
|
|
25
|
-
const isStateSetter = trimmed.startsWith("state.");
|
|
26
|
-
if (!isStateSetter) return line;
|
|
27
|
-
const [lhs, rhs] = trimmed.split("=");
|
|
28
|
-
const setStr = lhs.replace("state.", "").trim();
|
|
29
|
-
const setExpr = `setRootState('${setStr}', ${rhs.trim()})`;
|
|
30
|
-
return `
|
|
31
|
-
${line}
|
|
32
|
-
${setExpr}
|
|
33
|
-
`;
|
|
34
|
-
}).filter(Boolean).join("\n");
|
|
35
|
-
};
|
|
36
|
-
const getJSONValName = val => val + "JSON";
|
|
37
|
-
const runInNonNode = ({
|
|
38
|
-
builder,
|
|
39
|
-
context,
|
|
40
|
-
event,
|
|
41
|
-
rootState,
|
|
42
|
-
localState,
|
|
43
|
-
rootSetState,
|
|
44
|
-
useCode
|
|
45
|
-
}) => {
|
|
46
|
-
const state = __spreadValues(__spreadValues({}, rootState), localState);
|
|
47
|
-
const properties = {
|
|
48
|
-
state,
|
|
49
|
-
Builder: builder,
|
|
50
|
-
builder,
|
|
51
|
-
context,
|
|
52
|
-
event
|
|
53
|
-
};
|
|
54
|
-
const prependedCode = Object.keys(properties).map(key => `var ${key} = JSON.parse(${getJSONValName(key)});`).join("\n");
|
|
55
|
-
const cleanedCode = processCode(useCode);
|
|
56
|
-
if (cleanedCode === "") {
|
|
57
|
-
logger.warn("Skipping evaluation of empty code block.");
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
const transformed = `
|
|
61
|
-
function theFunction() {
|
|
62
|
-
${prependedCode}
|
|
63
|
-
|
|
64
|
-
${cleanedCode}
|
|
65
|
-
}
|
|
66
|
-
theFunction();
|
|
67
|
-
`;
|
|
68
|
-
const setRootState = (prop, value) => {
|
|
69
|
-
const newState = set(state, prop, value);
|
|
70
|
-
rootSetState == null ? void 0 : rootSetState(newState);
|
|
71
|
-
};
|
|
72
|
-
const initFunc = function (interpreter, globalObject) {
|
|
73
|
-
Object.keys(properties).forEach(key => {
|
|
74
|
-
const val = properties[key] || {};
|
|
75
|
-
const jsonVal = JSON.stringify(val);
|
|
76
|
-
interpreter.setProperty(globalObject, getJSONValName(key), jsonVal);
|
|
77
|
-
});
|
|
78
|
-
interpreter.setProperty(globalObject, "setRootState", interpreter.createNativeFunction(setRootState));
|
|
79
|
-
};
|
|
80
|
-
try {
|
|
81
|
-
const myInterpreter = new Interpreter(transformed, initFunc);
|
|
82
|
-
myInterpreter.run();
|
|
83
|
-
const output = myInterpreter.pseudoToNative(myInterpreter.value);
|
|
84
|
-
return output;
|
|
85
|
-
} catch (e) {
|
|
86
|
-
logger.warn("Custom code error in non-node runtime. SDK can only execute ES5 JavaScript.", {
|
|
87
|
-
e
|
|
88
|
-
});
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
export { runInNonNode }
|
|
File without changes
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const TEXT_STYLE_KEYS = ["color", "whiteSpace", "direction", "hyphens", "overflowWrap"];
|
|
2
|
-
const isTextStyle = key => {
|
|
3
|
-
return TEXT_STYLE_KEYS.includes(key) || key.startsWith("font") || key.startsWith("text") || key.startsWith("letter") || key.startsWith("line") || key.startsWith("word") || key.startsWith("writing");
|
|
4
|
-
};
|
|
5
|
-
const extractTextStyles = styles => {
|
|
6
|
-
const textStyles = {};
|
|
7
|
-
Object.entries(styles).forEach(([key, value]) => {
|
|
8
|
-
if (isTextStyle(key)) {
|
|
9
|
-
textStyles[key] = value;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
return textStyles;
|
|
13
|
-
};
|
|
14
|
-
export { extractTextStyles }
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
configurable: true,
|
|
10
|
-
writable: true,
|
|
11
|
-
value
|
|
12
|
-
}) : obj[key] = value;
|
|
13
|
-
var __spreadValues = (a, b) => {
|
|
14
|
-
for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
15
|
-
if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
-
var __async = (__this, __arguments, generator) => {
|
|
22
|
-
return new Promise((resolve, reject) => {
|
|
23
|
-
var fulfilled = value => {
|
|
24
|
-
try {
|
|
25
|
-
step(generator.next(value));
|
|
26
|
-
} catch (e) {
|
|
27
|
-
reject(e);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
var rejected = value => {
|
|
31
|
-
try {
|
|
32
|
-
step(generator.throw(value));
|
|
33
|
-
} catch (e) {
|
|
34
|
-
reject(e);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
var step = x => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
38
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
import { getBuilderSearchParams } from "./get-builder-search-params/index.js";
|
|
42
|
-
import { fetchOneEntry } from "./get-content/index.js";
|
|
43
|
-
const fetchBuilderProps = _args => __async(void 0, null, function* () {
|
|
44
|
-
var _a, _b, _c;
|
|
45
|
-
const urlPath = _args.path || ((_a = _args.url) == null ? void 0 : _a.pathname) || ((_b = _args.userAttributes) == null ? void 0 : _b.urlPath);
|
|
46
|
-
const getContentArgs = __spreadProps(__spreadValues({}, _args), {
|
|
47
|
-
apiKey: _args.apiKey,
|
|
48
|
-
model: _args.model || "page",
|
|
49
|
-
userAttributes: __spreadValues(__spreadValues({}, _args.userAttributes), urlPath ? {
|
|
50
|
-
urlPath
|
|
51
|
-
} : {}),
|
|
52
|
-
options: getBuilderSearchParams(_args.searchParams || ((_c = _args.url) == null ? void 0 : _c.searchParams) || _args.options)
|
|
53
|
-
});
|
|
54
|
-
return {
|
|
55
|
-
apiKey: getContentArgs.apiKey,
|
|
56
|
-
model: getContentArgs.model,
|
|
57
|
-
content: yield fetchOneEntry(getContentArgs)
|
|
58
|
-
};
|
|
59
|
-
});
|
|
60
|
-
export { fetchBuilderProps }
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { evaluate } from "./evaluate";
|
|
2
|
-
const createEventHandler = (value, options) => event => evaluate({
|
|
3
|
-
code: value,
|
|
4
|
-
context: options.context,
|
|
5
|
-
localState: options.localState,
|
|
6
|
-
rootState: options.rootState,
|
|
7
|
-
rootSetState: options.rootSetState,
|
|
8
|
-
event,
|
|
9
|
-
isExpression: false
|
|
10
|
-
});
|
|
11
|
-
export { createEventHandler }
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { TARGET } from "../constants/target.js";
|
|
2
|
-
import { getEventHandlerName } from "./event-handler-name.js";
|
|
3
|
-
import { createEventHandler } from "./get-block-actions-handler.js";
|
|
4
|
-
function getBlockActions(options) {
|
|
5
|
-
var _a;
|
|
6
|
-
const obj = {};
|
|
7
|
-
const optionActions = (_a = options.block.actions) != null ? _a : {};
|
|
8
|
-
for (const key in optionActions) {
|
|
9
|
-
if (!optionActions.hasOwnProperty(key)) {
|
|
10
|
-
continue;
|
|
11
|
-
}
|
|
12
|
-
const value = optionActions[key];
|
|
13
|
-
let eventHandlerName = getEventHandlerName(key);
|
|
14
|
-
if (options.stripPrefix) {
|
|
15
|
-
switch (TARGET) {
|
|
16
|
-
case "vue2":
|
|
17
|
-
case "vue3":
|
|
18
|
-
eventHandlerName = eventHandlerName.replace("v-on:", "");
|
|
19
|
-
break;
|
|
20
|
-
case "svelte":
|
|
21
|
-
eventHandlerName = eventHandlerName.replace("on:", "");
|
|
22
|
-
break;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
obj[eventHandlerName] = createEventHandler(value, options);
|
|
26
|
-
}
|
|
27
|
-
return obj;
|
|
28
|
-
}
|
|
29
|
-
export { getBlockActions }
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
configurable: true,
|
|
10
|
-
writable: true,
|
|
11
|
-
value
|
|
12
|
-
}) : obj[key] = value;
|
|
13
|
-
var __spreadValues = (a, b) => {
|
|
14
|
-
for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
15
|
-
if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
-
function getBlockComponentOptions(block) {
|
|
22
|
-
var _a;
|
|
23
|
-
return __spreadProps(__spreadValues(__spreadValues({}, (_a = block.component) == null ? void 0 : _a.options), block.options), {
|
|
24
|
-
builderBlock: block
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
export { getBlockComponentOptions }
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
configurable: true,
|
|
10
|
-
writable: true,
|
|
11
|
-
value
|
|
12
|
-
}) : obj[key] = value;
|
|
13
|
-
var __spreadValues = (a, b) => {
|
|
14
|
-
for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
15
|
-
if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
-
import { TARGET } from "../constants/target.js";
|
|
22
|
-
import { convertStyleMapToCSSArray } from "../helpers/css.js";
|
|
23
|
-
import { getReactNativeBlockStyles } from "./get-react-native-block-styles.js";
|
|
24
|
-
import { transformBlockProperties } from "./transform-block-properties.js";
|
|
25
|
-
const extractRelevantRootBlockProperties = block => {
|
|
26
|
-
return {
|
|
27
|
-
href: block.href
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
function getBlockProperties({
|
|
31
|
-
block,
|
|
32
|
-
context
|
|
33
|
-
}) {
|
|
34
|
-
var _a;
|
|
35
|
-
const properties = __spreadProps(__spreadValues(__spreadValues({}, extractRelevantRootBlockProperties(block)), block.properties), {
|
|
36
|
-
"builder-id": block.id,
|
|
37
|
-
style: block.style ? getStyleAttribute(block.style) : void 0,
|
|
38
|
-
class: [block.id, "builder-block", block.class, (_a = block.properties) == null ? void 0 : _a.class].filter(Boolean).join(" ")
|
|
39
|
-
});
|
|
40
|
-
if (TARGET === "reactNative") {
|
|
41
|
-
properties.style = getReactNativeBlockStyles({
|
|
42
|
-
block,
|
|
43
|
-
context,
|
|
44
|
-
blockStyles: properties.style
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
return transformBlockProperties(properties);
|
|
48
|
-
}
|
|
49
|
-
function getStyleAttribute(style) {
|
|
50
|
-
switch (TARGET) {
|
|
51
|
-
case "svelte":
|
|
52
|
-
case "vue2":
|
|
53
|
-
case "vue3":
|
|
54
|
-
case "solid":
|
|
55
|
-
return convertStyleMapToCSSArray(style).join(" ");
|
|
56
|
-
case "qwik":
|
|
57
|
-
case "reactNative":
|
|
58
|
-
case "react":
|
|
59
|
-
case "rsc":
|
|
60
|
-
return style;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
export { getBlockProperties }
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { isBrowser } from "../is-browser.js";
|
|
2
|
-
const BUILDER_SEARCHPARAMS_PREFIX = "builder.";
|
|
3
|
-
const BUILDER_OPTIONS_PREFIX = "options.";
|
|
4
|
-
const convertSearchParamsToQueryObject = searchParams => {
|
|
5
|
-
const options = {};
|
|
6
|
-
searchParams.forEach((value, key) => {
|
|
7
|
-
options[key] = value;
|
|
8
|
-
});
|
|
9
|
-
return options;
|
|
10
|
-
};
|
|
11
|
-
const getBuilderSearchParams = _options => {
|
|
12
|
-
if (!_options) {
|
|
13
|
-
return {};
|
|
14
|
-
}
|
|
15
|
-
const options = normalizeSearchParams(_options);
|
|
16
|
-
const newOptions = {};
|
|
17
|
-
Object.keys(options).forEach(key => {
|
|
18
|
-
if (key.startsWith(BUILDER_SEARCHPARAMS_PREFIX)) {
|
|
19
|
-
const trimmedKey = key.replace(BUILDER_SEARCHPARAMS_PREFIX, "").replace(BUILDER_OPTIONS_PREFIX, "");
|
|
20
|
-
newOptions[trimmedKey] = options[key];
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
return newOptions;
|
|
24
|
-
};
|
|
25
|
-
const getBuilderSearchParamsFromWindow = () => {
|
|
26
|
-
if (!isBrowser()) {
|
|
27
|
-
return {};
|
|
28
|
-
}
|
|
29
|
-
const searchParams = new URLSearchParams(window.location.search);
|
|
30
|
-
return getBuilderSearchParams(searchParams);
|
|
31
|
-
};
|
|
32
|
-
const normalizeSearchParams = searchParams => searchParams instanceof URLSearchParams ? convertSearchParamsToQueryObject(searchParams) : searchParams;
|
|
33
|
-
export { convertSearchParamsToQueryObject, getBuilderSearchParams, getBuilderSearchParamsFromWindow, normalizeSearchParams }
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
configurable: true,
|
|
8
|
-
writable: true,
|
|
9
|
-
value
|
|
10
|
-
}) : obj[key] = value;
|
|
11
|
-
var __spreadValues = (a, b) => {
|
|
12
|
-
for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
13
|
-
if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
15
|
-
}
|
|
16
|
-
return a;
|
|
17
|
-
};
|
|
18
|
-
import { flatten } from "../../helpers/flatten.js";
|
|
19
|
-
import { getBuilderSearchParamsFromWindow, normalizeSearchParams } from "../get-builder-search-params/index.js";
|
|
20
|
-
import { DEFAULT_API_VERSION } from "../../types/api-version.js";
|
|
21
|
-
const generateContentUrl = options => {
|
|
22
|
-
const {
|
|
23
|
-
limit = 30,
|
|
24
|
-
userAttributes,
|
|
25
|
-
query,
|
|
26
|
-
noTraverse = false,
|
|
27
|
-
model,
|
|
28
|
-
apiKey,
|
|
29
|
-
includeRefs = true,
|
|
30
|
-
enrich,
|
|
31
|
-
locale,
|
|
32
|
-
apiVersion = DEFAULT_API_VERSION
|
|
33
|
-
} = options;
|
|
34
|
-
if (!apiKey) {
|
|
35
|
-
throw new Error("Missing API key");
|
|
36
|
-
}
|
|
37
|
-
if (!["v2", "v3"].includes(apiVersion)) {
|
|
38
|
-
throw new Error(`Invalid apiVersion: expected 'v2' or 'v3', received '${apiVersion}'`);
|
|
39
|
-
}
|
|
40
|
-
const url = new URL(`https://cdn.builder.io/api/${apiVersion}/content/${model}?apiKey=${apiKey}&limit=${limit}&noTraverse=${noTraverse}&includeRefs=${includeRefs}${locale ? `&locale=${locale}` : ""}${enrich ? `&enrich=${enrich}` : ""}`);
|
|
41
|
-
const queryOptions = __spreadValues(__spreadValues({}, getBuilderSearchParamsFromWindow()), normalizeSearchParams(options.options || {}));
|
|
42
|
-
const flattened = flatten(queryOptions);
|
|
43
|
-
for (const key in flattened) {
|
|
44
|
-
url.searchParams.set(key, String(flattened[key]));
|
|
45
|
-
}
|
|
46
|
-
if (userAttributes) {
|
|
47
|
-
url.searchParams.set("userAttributes", JSON.stringify(userAttributes));
|
|
48
|
-
}
|
|
49
|
-
if (query) {
|
|
50
|
-
const flattened2 = flatten({
|
|
51
|
-
query
|
|
52
|
-
});
|
|
53
|
-
for (const key in flattened2) {
|
|
54
|
-
url.searchParams.set(key, JSON.stringify(flattened2[key]));
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return url;
|
|
58
|
-
};
|
|
59
|
-
export { generateContentUrl }
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
configurable: true,
|
|
10
|
-
writable: true,
|
|
11
|
-
value
|
|
12
|
-
}) : obj[key] = value;
|
|
13
|
-
var __spreadValues = (a, b) => {
|
|
14
|
-
for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
15
|
-
if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
|
|
17
|
-
}
|
|
18
|
-
return a;
|
|
19
|
-
};
|
|
20
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
|
-
var __async = (__this, __arguments, generator) => {
|
|
22
|
-
return new Promise((resolve, reject) => {
|
|
23
|
-
var fulfilled = value => {
|
|
24
|
-
try {
|
|
25
|
-
step(generator.next(value));
|
|
26
|
-
} catch (e) {
|
|
27
|
-
reject(e);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
var rejected = value => {
|
|
31
|
-
try {
|
|
32
|
-
step(generator.throw(value));
|
|
33
|
-
} catch (e) {
|
|
34
|
-
reject(e);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
var step = x => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
38
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
import { TARGET } from "../../constants/target.js";
|
|
42
|
-
import { handleABTesting } from "../../helpers/ab-tests.js";
|
|
43
|
-
import { getDefaultCanTrack } from "../../helpers/canTrack.js";
|
|
44
|
-
import { logger } from "../../helpers/logger.js";
|
|
45
|
-
import { getPreviewContent } from "../../helpers/preview-lru-cache/get.js";
|
|
46
|
-
import { fetch } from "../get-fetch.js";
|
|
47
|
-
import { isBrowser } from "../is-browser.js";
|
|
48
|
-
import { generateContentUrl } from "./generate-content-url.js";
|
|
49
|
-
const checkContentHasResults = content => "results" in content;
|
|
50
|
-
function fetchOneEntry(options) {
|
|
51
|
-
return __async(this, null, function* () {
|
|
52
|
-
const allContent = yield fetchEntries(__spreadProps(__spreadValues({}, options), {
|
|
53
|
-
limit: 1
|
|
54
|
-
}));
|
|
55
|
-
if (allContent) {
|
|
56
|
-
return allContent.results[0] || null;
|
|
57
|
-
}
|
|
58
|
-
return null;
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
const getContent = fetchOneEntry;
|
|
62
|
-
const _fetchContent = options => __async(void 0, null, function* () {
|
|
63
|
-
const url = generateContentUrl(options);
|
|
64
|
-
const res = yield fetch(url.href);
|
|
65
|
-
const content = yield res.json();
|
|
66
|
-
return content;
|
|
67
|
-
});
|
|
68
|
-
const _processContentResult = (_0, _1, ..._2) => __async(void 0, [_0, _1, ..._2], function* (options, content, url = generateContentUrl(options)) {
|
|
69
|
-
const canTrack = getDefaultCanTrack(options.canTrack);
|
|
70
|
-
const isPreviewing = url.search.includes(`preview=`);
|
|
71
|
-
if (TARGET === "rsc" && isPreviewing) {
|
|
72
|
-
const newResults = [];
|
|
73
|
-
for (const item of content.results) {
|
|
74
|
-
const previewContent = getPreviewContent(url.searchParams);
|
|
75
|
-
newResults.push(previewContent || item);
|
|
76
|
-
}
|
|
77
|
-
content.results = newResults;
|
|
78
|
-
}
|
|
79
|
-
if (!canTrack) return content;
|
|
80
|
-
if (!(isBrowser() || TARGET === "reactNative")) return content;
|
|
81
|
-
try {
|
|
82
|
-
const newResults = [];
|
|
83
|
-
for (const item of content.results) {
|
|
84
|
-
newResults.push(yield handleABTesting({
|
|
85
|
-
item,
|
|
86
|
-
canTrack
|
|
87
|
-
}));
|
|
88
|
-
}
|
|
89
|
-
content.results = newResults;
|
|
90
|
-
} catch (e) {
|
|
91
|
-
logger.error("Could not process A/B tests. ", e);
|
|
92
|
-
}
|
|
93
|
-
return content;
|
|
94
|
-
});
|
|
95
|
-
function fetchEntries(options) {
|
|
96
|
-
return __async(this, null, function* () {
|
|
97
|
-
try {
|
|
98
|
-
const url = generateContentUrl(options);
|
|
99
|
-
const content = yield _fetchContent(options);
|
|
100
|
-
if (!checkContentHasResults(content)) {
|
|
101
|
-
logger.error("Error fetching data. ", {
|
|
102
|
-
url,
|
|
103
|
-
content,
|
|
104
|
-
options
|
|
105
|
-
});
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
return _processContentResult(options, content);
|
|
109
|
-
} catch (error) {
|
|
110
|
-
logger.error("Error fetching data. ", error);
|
|
111
|
-
return null;
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
const getAllContent = fetchEntries;
|
|
116
|
-
export { _processContentResult, fetchEntries, fetchOneEntry, getAllContent, getContent }
|
|
File without changes
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { getGlobalThis } from "./get-global-this.js";
|
|
2
|
-
function getFetch() {
|
|
3
|
-
const globalFetch = getGlobalThis().fetch;
|
|
4
|
-
if (typeof globalFetch === "undefined") {
|
|
5
|
-
console.warn(`Builder SDK could not find a global fetch function. Make sure you have a polyfill for fetch in your project.
|
|
6
|
-
For more information, read https://github.com/BuilderIO/this-package-uses-fetch`);
|
|
7
|
-
throw new Error("Builder SDK could not find a global `fetch` function");
|
|
8
|
-
}
|
|
9
|
-
return globalFetch;
|
|
10
|
-
}
|
|
11
|
-
const fetch = getFetch();
|
|
12
|
-
export { fetch }
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
function getGlobalThis() {
|
|
2
|
-
if (typeof globalThis !== "undefined") {
|
|
3
|
-
return globalThis;
|
|
4
|
-
}
|
|
5
|
-
if (typeof window !== "undefined") {
|
|
6
|
-
return window;
|
|
7
|
-
}
|
|
8
|
-
if (typeof global !== "undefined") {
|
|
9
|
-
return global;
|
|
10
|
-
}
|
|
11
|
-
if (typeof self !== "undefined") {
|
|
12
|
-
return self;
|
|
13
|
-
}
|
|
14
|
-
return globalThis;
|
|
15
|
-
}
|
|
16
|
-
export { getGlobalThis }
|