@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.
Files changed (162) hide show
  1. package/README.md +0 -4
  2. package/dist/index.d.ts +51 -0
  3. package/lib/browser/dev.js +4790 -0
  4. package/lib/browser/dev.jsx +4392 -0
  5. package/lib/browser/index.js +4767 -0
  6. package/lib/browser/index.jsx +4374 -0
  7. package/lib/edge/dev.js +7921 -0
  8. package/lib/edge/dev.jsx +7525 -0
  9. package/lib/edge/index.js +7898 -0
  10. package/lib/edge/index.jsx +7507 -0
  11. package/lib/node/dev.js +4790 -0
  12. package/lib/node/dev.jsx +4392 -0
  13. package/lib/node/index.js +4767 -0
  14. package/lib/node/index.jsx +4374 -0
  15. package/package.json +86 -14
  16. package/CHANGELOG.md +0 -98
  17. package/solid-index.jsx +0 -5
  18. package/src/blocks/BaseText.jsx +0 -11
  19. package/src/blocks/button/button.jsx +0 -41
  20. package/src/blocks/button/component-info.js +0 -34
  21. package/src/blocks/columns/columns.jsx +0 -174
  22. package/src/blocks/columns/component-info.js +0 -218
  23. package/src/blocks/custom-code/component-info.js +0 -24
  24. package/src/blocks/custom-code/custom-code.jsx +0 -62
  25. package/src/blocks/embed/component-info.js +0 -37
  26. package/src/blocks/embed/embed.jsx +0 -50
  27. package/src/blocks/embed/helpers.js +0 -3
  28. package/src/blocks/form/component-info.js +0 -223
  29. package/src/blocks/form/form.jsx +0 -5
  30. package/src/blocks/fragment/component-info.js +0 -8
  31. package/src/blocks/fragment/fragment.jsx +0 -5
  32. package/src/blocks/helpers.js +0 -27
  33. package/src/blocks/image/component-info.js +0 -122
  34. package/src/blocks/image/image.helpers.js +0 -46
  35. package/src/blocks/image/image.jsx +0 -122
  36. package/src/blocks/img/component-info.js +0 -15
  37. package/src/blocks/img/img.jsx +0 -20
  38. package/src/blocks/input/component-info.js +0 -45
  39. package/src/blocks/input/input.jsx +0 -22
  40. package/src/blocks/raw-text/component-info.js +0 -11
  41. package/src/blocks/raw-text/raw-text.jsx +0 -10
  42. package/src/blocks/section/component-info.js +0 -41
  43. package/src/blocks/section/section.jsx +0 -26
  44. package/src/blocks/select/component-info.js +0 -44
  45. package/src/blocks/select/select.jsx +0 -30
  46. package/src/blocks/submit-button/component-info.js +0 -23
  47. package/src/blocks/submit-button/submit-button.jsx +0 -11
  48. package/src/blocks/symbol/component-info.js +0 -35
  49. package/src/blocks/symbol/symbol.helpers.js +0 -60
  50. package/src/blocks/symbol/symbol.jsx +0 -64
  51. package/src/blocks/text/component-info.js +0 -20
  52. package/src/blocks/text/text.jsx +0 -14
  53. package/src/blocks/textarea/component-info.js +0 -38
  54. package/src/blocks/textarea/textarea.jsx +0 -16
  55. package/src/blocks/video/component-info.js +0 -83
  56. package/src/blocks/video/video.jsx +0 -61
  57. package/src/components/block/block.helpers.js +0 -99
  58. package/src/components/block/block.jsx +0 -167
  59. package/src/components/block/components/block-styles.jsx +0 -85
  60. package/src/components/block/components/block-wrapper.jsx +0 -50
  61. package/src/components/block/components/component-ref/component-ref.helpers.js +0 -41
  62. package/src/components/block/components/component-ref/component-ref.jsx +0 -58
  63. package/src/components/block/components/interactive-element.jsx +0 -30
  64. package/src/components/block/components/repeated-block.jsx +0 -20
  65. package/src/components/block/types.js +0 -0
  66. package/src/components/blocks/blocks-wrapper.jsx +0 -66
  67. package/src/components/blocks/blocks.jsx +0 -57
  68. package/src/components/content/components/enable-editor.jsx +0 -347
  69. package/src/components/content/components/styles.helpers.js +0 -56
  70. package/src/components/content/components/styles.jsx +0 -36
  71. package/src/components/content/content.helpers.js +0 -48
  72. package/src/components/content/content.jsx +0 -136
  73. package/src/components/content/content.types.js +0 -0
  74. package/src/components/content/index.js +0 -2
  75. package/src/components/content/wrap-component-ref.js +0 -2
  76. package/src/components/content-variants/content-variants.jsx +0 -115
  77. package/src/components/content-variants/content-variants.types.js +0 -0
  78. package/src/components/content-variants/helpers.js +0 -158
  79. package/src/components/inlined-script.jsx +0 -5
  80. package/src/components/inlined-styles.jsx +0 -5
  81. package/src/constants/builder-registered-components.js +0 -63
  82. package/src/constants/device-sizes.js +0 -48
  83. package/src/constants/sdk-version.js +0 -1
  84. package/src/constants/target.js +0 -4
  85. package/src/context/builder.context.js +0 -16
  86. package/src/context/components.context.js +0 -5
  87. package/src/context/types.js +0 -0
  88. package/src/functions/apply-patch-with-mutation.js +0 -66
  89. package/src/functions/camel-to-kebab-case.js +0 -2
  90. package/src/functions/evaluate/acorn-interpreter.js +0 -2876
  91. package/src/functions/evaluate/evaluate.js +0 -79
  92. package/src/functions/evaluate/index.js +0 -2
  93. package/src/functions/evaluate/non-node-runtime/index.js +0 -18
  94. package/src/functions/evaluate/non-node-runtime/non-node-runtime.js +0 -92
  95. package/src/functions/evaluate/types.js +0 -0
  96. package/src/functions/event-handler-name.js +0 -5
  97. package/src/functions/extract-text-styles.js +0 -14
  98. package/src/functions/fast-clone.js +0 -2
  99. package/src/functions/fetch-builder-props.js +0 -60
  100. package/src/functions/get-block-actions-handler.js +0 -11
  101. package/src/functions/get-block-actions.js +0 -29
  102. package/src/functions/get-block-component-options.js +0 -27
  103. package/src/functions/get-block-properties.js +0 -63
  104. package/src/functions/get-builder-search-params/index.js +0 -33
  105. package/src/functions/get-content/generate-content-url.js +0 -59
  106. package/src/functions/get-content/index.js +0 -116
  107. package/src/functions/get-content/types.js +0 -0
  108. package/src/functions/get-fetch.js +0 -12
  109. package/src/functions/get-global-this.js +0 -16
  110. package/src/functions/get-processed-block.js +0 -74
  111. package/src/functions/get-react-native-block-styles.js +0 -32
  112. package/src/functions/is-browser.js +0 -4
  113. package/src/functions/is-editing.js +0 -6
  114. package/src/functions/is-iframe.js +0 -5
  115. package/src/functions/is-non-node-server.js +0 -9
  116. package/src/functions/is-previewing.js +0 -12
  117. package/src/functions/on-change.js +0 -24
  118. package/src/functions/register-component.js +0 -60
  119. package/src/functions/register.js +0 -27
  120. package/src/functions/sanitize-react-native-block-styles.js +0 -71
  121. package/src/functions/set-editor-settings.js +0 -13
  122. package/src/functions/set.js +0 -9
  123. package/src/functions/track/helpers.js +0 -48
  124. package/src/functions/track/index.js +0 -131
  125. package/src/functions/track/interaction.js +0 -57
  126. package/src/functions/transform-block-properties.js +0 -4
  127. package/src/functions/transform-block.js +0 -4
  128. package/src/helpers/ab-tests.js +0 -158
  129. package/src/helpers/canTrack.js +0 -3
  130. package/src/helpers/cookie.js +0 -77
  131. package/src/helpers/css.js +0 -30
  132. package/src/helpers/flatten.js +0 -31
  133. package/src/helpers/localStorage.js +0 -32
  134. package/src/helpers/logger.js +0 -8
  135. package/src/helpers/nullable.js +0 -2
  136. package/src/helpers/preview-lru-cache/get.js +0 -4
  137. package/src/helpers/preview-lru-cache/helpers.js +0 -0
  138. package/src/helpers/preview-lru-cache/init.js +0 -2
  139. package/src/helpers/preview-lru-cache/set.js +0 -31
  140. package/src/helpers/preview-lru-cache/types.js +0 -0
  141. package/src/helpers/sessionId.js +0 -55
  142. package/src/helpers/time.js +0 -3
  143. package/src/helpers/url.js +0 -11
  144. package/src/helpers/uuid.js +0 -11
  145. package/src/helpers/visitorId.js +0 -35
  146. package/src/index-helpers/blocks-exports.js +0 -13
  147. package/src/index-helpers/top-of-file.js +0 -2
  148. package/src/index.js +0 -12
  149. package/src/scripts/init-editing.js +0 -109
  150. package/src/types/api-version.js +0 -2
  151. package/src/types/builder-block.js +0 -0
  152. package/src/types/builder-content.js +0 -0
  153. package/src/types/builder-props.js +0 -0
  154. package/src/types/can-track.js +0 -0
  155. package/src/types/components.js +0 -0
  156. package/src/types/deep-partial.js +0 -0
  157. package/src/types/element.js +0 -0
  158. package/src/types/enforced-partials.js +0 -0
  159. package/src/types/input.js +0 -0
  160. package/src/types/targets.js +0 -0
  161. package/src/types/typescript.js +0 -0
  162. 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,2 +0,0 @@
1
- import { evaluate } from "./evaluate";
2
- export { evaluate }
@@ -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,5 +0,0 @@
1
- function capitalizeFirstLetter(string) {
2
- return string.charAt(0).toUpperCase() + string.slice(1);
3
- }
4
- const getEventHandlerName = key => `on${capitalizeFirstLetter(key)}`;
5
- export { getEventHandlerName }
@@ -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,2 +0,0 @@
1
- const fastClone = obj => JSON.parse(JSON.stringify(obj));
2
- export { fastClone }
@@ -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 }