@builder.io/react 3.2.0 → 3.2.1

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 (30) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +8 -0
  3. package/dist/builder-react-lite.cjs.js +1 -1
  4. package/dist/builder-react-lite.cjs.js.map +1 -1
  5. package/dist/builder-react-lite.esm.js +1 -1
  6. package/dist/builder-react-lite.esm.js.map +1 -1
  7. package/dist/builder-react.browser.js +2 -2
  8. package/dist/builder-react.browser.js.map +1 -1
  9. package/dist/builder-react.cjs.js +1 -1
  10. package/dist/builder-react.cjs.js.map +1 -1
  11. package/dist/builder-react.es5.js +1 -1
  12. package/dist/builder-react.es5.js.map +1 -1
  13. package/dist/builder-react.unpkg.js +2 -2
  14. package/dist/builder-react.unpkg.js.map +1 -1
  15. package/dist/lib/package.json +1 -1
  16. package/dist/lib/src/functions/should-force-browser-runtime-in-node.js +22 -0
  17. package/dist/lib/src/functions/should-force-browser-runtime-in-node.js.map +1 -0
  18. package/dist/lib/src/functions/string-to-function.js +2 -1
  19. package/dist/lib/src/functions/string-to-function.js.map +1 -1
  20. package/dist/lib/src/functions/try-eval.js +2 -1
  21. package/dist/lib/src/functions/try-eval.js.map +1 -1
  22. package/dist/lib/src/functions/with-children.js +16 -1
  23. package/dist/lib/src/functions/with-children.js.map +1 -1
  24. package/dist/types/src/functions/should-force-browser-runtime-in-node.d.ts +1 -0
  25. package/package.json +2 -2
  26. package/src/components/core-react.code-workspace +14 -0
  27. package/src/functions/should-force-browser-runtime-in-node.ts +23 -0
  28. package/src/functions/string-to-function.ts +2 -1
  29. package/src/functions/try-eval.tsx +2 -1
  30. package/src/functions/with-children.tsx +18 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/react",
3
- "version": "3.1.2",
3
+ "version": "3.2.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/builder-react.cjs.js",
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shouldForceBrowserRuntimeInNode = void 0;
4
+ function isNodeRuntime() {
5
+ var _a;
6
+ return typeof process !== 'undefined' && Boolean((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node);
7
+ }
8
+ var shouldForceBrowserRuntimeInNode = function () {
9
+ var _a;
10
+ if (!isNodeRuntime())
11
+ return false;
12
+ var isArm64 = process.arch === 'arm64';
13
+ var isNode20 = process.version.startsWith('v20');
14
+ var hasNoNodeSnapshotNodeOption = (_a = process.env.NODE_OPTIONS) === null || _a === void 0 ? void 0 : _a.includes('--no-node-snapshot');
15
+ if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
16
+ console.log("Skipping usage of `isolated-vm` to avoid crashes in Node v20 on an arm64 machine.\n If you would like to use the `isolated-vm` package on this machine, please provide the `NODE_OPTIONS=--no-node-snapshot` config to your Node process.\n See https://github.com/BuilderIO/builder/blob/main/packages/react/README.md#node-v20--m1-macs-apple-silicon-support for more information.\n ");
17
+ return true;
18
+ }
19
+ return false;
20
+ };
21
+ exports.shouldForceBrowserRuntimeInNode = shouldForceBrowserRuntimeInNode;
22
+ //# sourceMappingURL=should-force-browser-runtime-in-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"should-force-browser-runtime-in-node.js","sourceRoot":"","sources":["../../../../src/functions/should-force-browser-runtime-in-node.ts"],"names":[],"mappings":";;;AAAA,SAAS,aAAa;;IACpB,OAAO,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,0CAAE,IAAI,CAAC,CAAC;AAC5E,CAAC;AAEM,IAAM,+BAA+B,GAAG;;IAC7C,IAAI,CAAC,aAAa,EAAE;QAAE,OAAO,KAAK,CAAC;IAEnC,IAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;IACzC,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEnD,IAAM,2BAA2B,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,YAAY,0CAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAE7F,IAAI,OAAO,IAAI,QAAQ,IAAI,CAAC,2BAA2B,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,mYAGX,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAlBW,QAAA,+BAA+B,mCAkB1C"}
@@ -15,6 +15,7 @@ exports.getIsolateContext = exports.makeFn = exports.stringToFunction = exports.
15
15
  var sdk_1 = require("@builder.io/sdk");
16
16
  var safe_dynamic_require_1 = require("./safe-dynamic-require");
17
17
  var is_debug_1 = require("./is-debug");
18
+ var should_force_browser_runtime_in_node_1 = require("./should-force-browser-runtime-in-node");
18
19
  var fnCache = {};
19
20
  var api = function (state) { return sdk_1.builder; };
20
21
  exports.api = api;
@@ -65,7 +66,7 @@ function stringToFunction(str, expression, errors, logs) {
65
66
  args[_i] = arguments[_i];
66
67
  }
67
68
  try {
68
- if (sdk_1.Builder.isBrowser) {
69
+ if (sdk_1.Builder.isBrowser || (0, should_force_browser_runtime_in_node_1.shouldForceBrowserRuntimeInNode)()) {
69
70
  return fn.apply(void 0, args);
70
71
  }
71
72
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"string-to-function.js","sourceRoot":"","sources":["../../../../src/functions/string-to-function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string-to-function.js","sourceRoot":"","sources":["../../../../src/functions/string-to-function.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ var sdk_1 = require("@builder.io/sdk");
6
6
  var safe_dynamic_require_1 = require("./safe-dynamic-require");
7
7
  var is_debug_1 = require("./is-debug");
8
8
  var string_to_function_1 = require("./string-to-function");
9
+ var should_force_browser_runtime_in_node_1 = require("./should-force-browser-runtime-in-node");
9
10
  var tryEval = function (str, data, errors) {
10
11
  if (data === void 0) { data = {}; }
11
12
  var value = str;
@@ -34,7 +35,7 @@ var tryEval = function (str, data, errors) {
34
35
  }
35
36
  }
36
37
  try {
37
- if (sdk_1.Builder.isBrowser) {
38
+ if (sdk_1.Builder.isBrowser || (0, should_force_browser_runtime_in_node_1.shouldForceBrowserRuntimeInNode)()) {
38
39
  return fn(data || {});
39
40
  }
40
41
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"try-eval.js","sourceRoot":"","sources":["../../../../src/functions/try-eval.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AACb,uCAA0C;AAC1C,+DAA4D;AAC5D,uCAAqC;AACrC,2DAAiE;AAE1D,IAAM,OAAO,GAAG,UAAC,GAAY,EAAE,IAAc,EAAE,MAAgB;IAAhC,qBAAA,EAAA,SAAc;IAClD,IAAM,KAAK,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE;QAChD,OAAO;KACR;IACD,IAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACvE,IAAI,EAAE,GAAa;QACjB,yBAAyB;IAC3B,CAAC,CAAC;IACF,IAAI;QACF,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,oEAAoE;YACpE,yBAAyB;YACzB,EAAE,GAAG,IAAI,QAAQ,CACf,OAAO;YACP,qEAAqE;YACrE,4bAeI,SAAS,CAAC,CAAC,CAAC,kBAAW,GAAG,OAAI,CAAC,CAAC,CAAC,GAAG,iBACtC,CACH,CAAC;SACH;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;SACrD;aAAM;YACL,gDAAgD;SACjD;KACF;IACD,IAAI;QACF,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,OAAO,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;SACvB;aAAM;YACL,4FAA4F;YAC5F,0FAA0F;YAC1F,uBAAuB;YACvB,IAAM,GAAG,GAAG,IAAA,yCAAkB,EAAC,aAAa,CAAC,CAAC;YAC9C,IAAM,OAAO,GAAG,IAAA,sCAAiB,GAAE,CAAC;YACpC,IAAM,QAAQ,GAAG,IAAA,2BAAM,EAAC,GAAI,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACpD,IAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrF,IAAI;gBACF,sFAAsF;gBACtF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aAC9B;YAAC,OAAO,MAAW,EAAE;gBACpB,OAAO,SAAS,CAAC;aAClB;SACF;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;QAED,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;SACnF;aAAM;YACL,IAAI,IAAA,kBAAO,GAAE,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;aACpF;YACD,gDAAgD;SACjD;KACF;IAED,OAAO;AACT,CAAC,CAAC;AA5EW,QAAA,OAAO,WA4ElB"}
1
+ {"version":3,"file":"try-eval.js","sourceRoot":"","sources":["../../../../src/functions/try-eval.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AACb,uCAA0C;AAC1C,+DAA4D;AAC5D,uCAAqC;AACrC,2DAAiE;AACjE,+FAAyF;AAElF,IAAM,OAAO,GAAG,UAAC,GAAY,EAAE,IAAc,EAAE,MAAgB;IAAhC,qBAAA,EAAA,SAAc;IAClD,IAAM,KAAK,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE;QAChD,OAAO;KACR;IACD,IAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACvE,IAAI,EAAE,GAAa;QACjB,yBAAyB;IAC3B,CAAC,CAAC;IACF,IAAI;QACF,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,oEAAoE;YACpE,yBAAyB;YACzB,EAAE,GAAG,IAAI,QAAQ,CACf,OAAO;YACP,qEAAqE;YACrE,4bAeI,SAAS,CAAC,CAAC,CAAC,kBAAW,GAAG,OAAI,CAAC,CAAC,CAAC,GAAG,iBACtC,CACH,CAAC;SACH;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;SACrD;aAAM;YACL,gDAAgD;SACjD;KACF;IACD,IAAI;QACF,IAAI,aAAO,CAAC,SAAS,IAAI,IAAA,sEAA+B,GAAE,EAAE;YAC1D,OAAO,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;SACvB;aAAM;YACL,4FAA4F;YAC5F,0FAA0F;YAC1F,uBAAuB;YACvB,IAAM,GAAG,GAAG,IAAA,yCAAkB,EAAC,aAAa,CAAC,CAAC;YAC9C,IAAM,OAAO,GAAG,IAAA,sCAAiB,GAAE,CAAC;YACpC,IAAM,QAAQ,GAAG,IAAA,2BAAM,EAAC,GAAI,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACpD,IAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrF,IAAI;gBACF,sFAAsF;gBACtF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aAC9B;YAAC,OAAO,MAAW,EAAE;gBACpB,OAAO,SAAS,CAAC;aAClB;SACF;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;QAED,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;SACnF;aAAM;YACL,IAAI,IAAA,kBAAO,GAAE,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;aACpF;YACD,gDAAgD;SACjD;KACF;IAED,OAAO;AACT,CAAC,CAAC;AA5EW,QAAA,OAAO,WA4ElB"}
@@ -18,6 +18,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.withChildren = void 0;
19
19
  var react_1 = __importDefault(require("react"));
20
20
  var builder_block_component_1 = require("../components/builder-block.component");
21
+ var isBuilderElement = function (item) {
22
+ return Boolean((item === null || item === void 0 ? void 0 : item['@type']) === '@builder.io/sdk:Element');
23
+ };
21
24
  /**
22
25
  * Higher order component for passing Builder.io children as React children
23
26
  *
@@ -42,14 +45,26 @@ var builder_block_component_1 = require("../components/builder-block.component")
42
45
  */
43
46
  var withChildren = function (Component) {
44
47
  var HOC = react_1.default.forwardRef(function (props, ref) {
48
+ var _a, _b;
49
+ var useProps = __assign({}, props);
45
50
  var children = props.children ||
46
51
  (props.builderBlock &&
47
52
  props.builderBlock.children &&
48
53
  props.builderBlock.children.map(function (child) { return react_1.default.createElement(builder_block_component_1.BuilderBlock, { key: child.id, block: child }); }));
54
+ var componentOptions = (_b = (_a = props.builderBlock) === null || _a === void 0 ? void 0 : _a.component) === null || _b === void 0 ? void 0 : _b.options;
55
+ if (!!componentOptions) {
56
+ Object.keys(componentOptions).forEach(function (key) {
57
+ var value = componentOptions[key];
58
+ var valueIsArrayOfBuilderElements = Array.isArray(value) && value.every(isBuilderElement);
59
+ if (valueIsArrayOfBuilderElements) {
60
+ useProps[key] = value.map(function (child) { return react_1.default.createElement(builder_block_component_1.BuilderBlock, { key: child.id, block: child }); });
61
+ }
62
+ });
63
+ }
49
64
  return (
50
65
  // getting type errors due to `@types/react` version mismatches. Can safely ignore.
51
66
  // @ts-ignore
52
- react_1.default.createElement(Component, __assign({}, props, { ref: ref }), children));
67
+ react_1.default.createElement(Component, __assign({}, useProps, { ref: ref }), children));
53
68
  });
54
69
  HOC.builderOptions = {
55
70
  canHaveChildren: true,
@@ -1 +1 @@
1
- {"version":3,"file":"with-children.js","sourceRoot":"","sources":["../../../../src/functions/with-children.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;AACb,gDAA0B;AAE1B,iFAAqE;AAErE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,IAAM,YAAY,GAAG,UAAmB,SAAiC;IAC9E,IAAM,GAAG,GAAG,eAAK,CAAC,UAAU,CAC1B,UAAC,KAAK,EAAE,GAAG;QACT,IAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ;YACd,CAAC,KAAK,CAAC,YAAY;gBACjB,KAAK,CAAC,YAAY,CAAC,QAAQ;gBAC3B,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,8BAAC,sCAAY,IAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,GAAI,EAA7C,CAA6C,CAAC,CAAC,CAAC;QAE7F,OAAO;QACL,mFAAmF;QACnF,aAAa;QACb,8BAAC,SAAS,eAAK,KAAK,IAAE,GAAG,EAAE,GAAG,KAC3B,QAAQ,CACC,CACb,CAAC;IACJ,CAAC,CACF,CAAC;IAED,GAAW,CAAC,cAAc,GAAG;QAC5B,eAAe,EAAE,IAAI;KACtB,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAxBW,QAAA,YAAY,gBAwBvB"}
1
+ {"version":3,"file":"with-children.js","sourceRoot":"","sources":["../../../../src/functions/with-children.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;AACb,gDAA0B;AAE1B,iFAAqE;AAErE,IAAM,gBAAgB,GAAG,UAAC,IAAa;IACrC,OAAO,OAAO,CAAC,CAAC,IAAY,aAAZ,IAAI,uBAAJ,IAAI,CAAW,OAAO,CAAC,MAAK,yBAAyB,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,IAAM,YAAY,GAAG,UAAmB,SAAiC;IAC9E,IAAM,GAAG,GAAG,eAAK,CAAC,UAAU,CAC1B,UAAC,KAAK,EAAE,GAAG;;QACT,IAAM,QAAQ,gBAAQ,KAAK,CAAE,CAAC;QAC9B,IAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ;YACd,CAAC,KAAK,CAAC,YAAY;gBACjB,KAAK,CAAC,YAAY,CAAC,QAAQ;gBAC3B,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,8BAAC,sCAAY,IAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,GAAI,EAA7C,CAA6C,CAAC,CAAC,CAAC;QAE7F,IAAM,gBAAgB,GAAG,MAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,SAAS,0CAAE,OAAO,CAAC;QAChE,IAAI,CAAC,CAAC,gBAAgB,EAAE;YACtB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG;gBACvC,IAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAM,6BAA6B,GACjC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACxD,IAAI,6BAA6B,EAAE;oBACjC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,8BAAC,sCAAY,IAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,GAAI,EAA7C,CAA6C,CAAC,CAAC;iBACnF;YACH,CAAC,CAAC,CAAC;SACJ;QAED,OAAO;QACL,mFAAmF;QACnF,aAAa;QACb,8BAAC,SAAS,eAAK,QAAQ,IAAE,GAAG,EAAE,GAAG,KAC9B,QAAQ,CACC,CACb,CAAC;IACJ,CAAC,CACF,CAAC;IAED,GAAW,CAAC,cAAc,GAAG;QAC5B,eAAe,EAAE,IAAI;KACtB,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AArCW,QAAA,YAAY,gBAqCvB"}
@@ -0,0 +1 @@
1
+ export declare const shouldForceBrowserRuntimeInNode: () => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/react",
3
- "version": "3.2.0",
3
+ "version": "3.2.1",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/builder-react.cjs.js",
@@ -124,7 +124,7 @@
124
124
  "react-dom": ">=16.8.0"
125
125
  },
126
126
  "dependencies": {
127
- "@builder.io/sdk": "2.2.0",
127
+ "@builder.io/sdk": "2.2.1",
128
128
  "@emotion/core": "^10.0.17",
129
129
  "hash-sum": "^2.0.0",
130
130
  "isolated-vm": "^4.5.0",
@@ -0,0 +1,14 @@
1
+ {
2
+ "folders": [
3
+ {
4
+ "path": "../.."
5
+ },
6
+ {
7
+ "path": "../../../core"
8
+ },
9
+ {
10
+ "path": "../../../../examples/next-js-simple"
11
+ }
12
+ ],
13
+ "settings": {}
14
+ }
@@ -0,0 +1,23 @@
1
+ function isNodeRuntime(): boolean {
2
+ return typeof process !== 'undefined' && Boolean(process?.versions?.node);
3
+ }
4
+
5
+ export const shouldForceBrowserRuntimeInNode = () => {
6
+ if (!isNodeRuntime()) return false;
7
+
8
+ const isArm64 = process.arch === 'arm64';
9
+ const isNode20 = process.version.startsWith('v20');
10
+
11
+ const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes('--no-node-snapshot');
12
+
13
+ if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
14
+ console.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
15
+ If you would like to use the \`isolated-vm\` package on this machine, please provide the \`NODE_OPTIONS=--no-node-snapshot\` config to your Node process.
16
+ See https://github.com/BuilderIO/builder/blob/main/packages/react/README.md#node-v20--m1-macs-apple-silicon-support for more information.
17
+ `);
18
+
19
+ return true;
20
+ }
21
+
22
+ return false;
23
+ };
@@ -1,6 +1,7 @@
1
1
  import { Builder, builder } from '@builder.io/sdk';
2
2
  import { safeDynamicRequire } from './safe-dynamic-require';
3
3
  import { isDebug } from './is-debug';
4
+ import { shouldForceBrowserRuntimeInNode } from './should-force-browser-runtime-in-node';
4
5
 
5
6
  const fnCache: { [key: string]: BuilderEvanFunction | undefined } = {};
6
7
 
@@ -108,7 +109,7 @@ export function stringToFunction(
108
109
 
109
110
  const final = (...args: any[]) => {
110
111
  try {
111
- if (Builder.isBrowser) {
112
+ if (Builder.isBrowser || shouldForceBrowserRuntimeInNode()) {
112
113
  return fn(...args);
113
114
  } else {
114
115
  // TODO: memoize on server
@@ -3,6 +3,7 @@ import { Builder } from '@builder.io/sdk';
3
3
  import { safeDynamicRequire } from './safe-dynamic-require';
4
4
  import { isDebug } from './is-debug';
5
5
  import { getIsolateContext, makeFn } from './string-to-function';
6
+ import { shouldForceBrowserRuntimeInNode } from './should-force-browser-runtime-in-node';
6
7
 
7
8
  export const tryEval = (str?: string, data: any = {}, errors?: Error[]): any => {
8
9
  const value = str;
@@ -47,7 +48,7 @@ export const tryEval = (str?: string, data: any = {}, errors?: Error[]): any =>
47
48
  }
48
49
  }
49
50
  try {
50
- if (Builder.isBrowser) {
51
+ if (Builder.isBrowser || shouldForceBrowserRuntimeInNode()) {
51
52
  return fn(data || {});
52
53
  } else {
53
54
  // Below is a hack to get certain code to *only* load in the server build, to not screw with
@@ -3,6 +3,10 @@ import React from 'react';
3
3
  import { BuilderElement } from '@builder.io/sdk';
4
4
  import { BuilderBlock } from '../components/builder-block.component';
5
5
 
6
+ const isBuilderElement = (item: unknown): item is BuilderElement => {
7
+ return Boolean((item as any)?.['@type'] === '@builder.io/sdk:Element');
8
+ };
9
+
6
10
  /**
7
11
  * Higher order component for passing Builder.io children as React children
8
12
  *
@@ -28,16 +32,29 @@ import { BuilderBlock } from '../components/builder-block.component';
28
32
  export const withChildren = <P extends object>(Component: React.ComponentType<P>) => {
29
33
  const HOC = React.forwardRef<any, React.PropsWithChildren<P> & { builderBlock?: BuilderElement }>(
30
34
  (props, ref) => {
35
+ const useProps = { ...props };
31
36
  const children =
32
37
  props.children ||
33
38
  (props.builderBlock &&
34
39
  props.builderBlock.children &&
35
40
  props.builderBlock.children.map(child => <BuilderBlock key={child.id} block={child} />));
36
41
 
42
+ const componentOptions = props.builderBlock?.component?.options;
43
+ if (!!componentOptions) {
44
+ Object.keys(componentOptions).forEach(key => {
45
+ const value = componentOptions[key];
46
+ const valueIsArrayOfBuilderElements =
47
+ Array.isArray(value) && value.every(isBuilderElement);
48
+ if (valueIsArrayOfBuilderElements) {
49
+ useProps[key] = value.map(child => <BuilderBlock key={child.id} block={child} />);
50
+ }
51
+ });
52
+ }
53
+
37
54
  return (
38
55
  // getting type errors due to `@types/react` version mismatches. Can safely ignore.
39
56
  // @ts-ignore
40
- <Component {...props} ref={ref}>
57
+ <Component {...useProps} ref={ref}>
41
58
  {children}
42
59
  </Component>
43
60
  );