@builder.io/react 3.1.2 → 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 (33) hide show
  1. package/CHANGELOG.md +8 -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
  31. package/dist/lib/src/scripts/iso-vm.js +0 -74
  32. package/dist/lib/src/scripts/iso-vm.js.map +0 -1
  33. package/dist/types/src/scripts/iso-vm.d.ts +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/react",
3
- "version": "3.1.1",
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.1.2",
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.1.2",
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
  );
@@ -1,74 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var ivm = require('isolated-vm');
39
- var isolate = new ivm.Isolate({ memoryLimit: 128 });
40
- var context = isolate.createContextSync();
41
- var jail = context.global;
42
- var state = { articles: { bar: [{ a: 1 }] } };
43
- var fetch = require('node-fetch');
44
- var fetching = function () { return __awaiter(void 0, void 0, void 0, function () {
45
- var result, json, b;
46
- return __generator(this, function (_a) {
47
- switch (_a.label) {
48
- case 0: return [4 /*yield*/, fetch("https://cdn.builder.io/api/v3/content/page?apiKey=c3e3257ff5594facbf478a68d37f766d&limit=1&fields=id")];
49
- case 1:
50
- result = _a.sent();
51
- return [4 /*yield*/, result.json()];
52
- case 2:
53
- json = _a.sent();
54
- console.log(json);
55
- b = undefined;
56
- jail.setSync('returnValue', function (val) { return (b = val); });
57
- state.articles = json;
58
- context.evalClosureSync("\n const refToProxy = (obj) => {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n return new Proxy(obj, {\n get(target, key) {\n if(key === 'toJS') {\n return () => obj.copySync();\n }\n const val = obj.getSync(key);\n if (typeof val?.getSync === 'function') {\n return refToProxy(val);\n }\n return val;\n },\n set(target, key, value) {\n obj.setSync(key, value);\n },\n deleteProperty(target, key) {\n obj.deleteSync(key);\n },\n })\n }\n const state = refToProxy($0);\n \n returnValue(state.toJS());\n return state.articles.results.toJS();\n ", [new ivm.Reference(state)]);
59
- console.log(b.articles.results);
60
- return [2 /*return*/];
61
- }
62
- });
63
- }); };
64
- jail.setSync('global', jail.derefInto());
65
- // We will create a basic `log` function for the new isolate to use.
66
- jail.setSync('log', function () {
67
- var args = [];
68
- for (var _i = 0; _i < arguments.length; _i++) {
69
- args[_i] = arguments[_i];
70
- }
71
- console.log.apply(console, args);
72
- });
73
- fetching();
74
- //# sourceMappingURL=iso-vm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"iso-vm.js","sourceRoot":"","sources":["../../../../src/scripts/iso-vm.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEnC,IAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;AAEtD,IAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAC5C,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;AAC5B,IAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAChD,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACpC,IAAM,QAAQ,GAAG;;;;oBACA,qBAAM,KAAK,CACxB,sGAAsG,CACvG,EAAA;;gBAFK,MAAM,GAAG,SAEd;gBACY,qBAAM,MAAM,CAAC,IAAI,EAAE,EAAA;;gBAA1B,IAAI,GAAG,SAAmB;gBAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACd,CAAC,GAAG,SAAS,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAA,GAAG,IAAI,OAAA,CAAC,CAAC,GAAG,GAAG,CAAC,EAAT,CAAS,CAAC,CAAC;gBAC9C,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,OAAO,CAAC,eAAe,CACrB,qwBA4BF,EACE,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAC3B,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;;;;KACjC,CAAC;AACF,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AAEzC,oEAAoE;AACpE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;IAAU,cAAO;SAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;QAAP,yBAAO;;IACnC,OAAO,CAAC,GAAG,OAAX,OAAO,EAAQ,IAAI,EAAE;AACvB,CAAC,CAAC,CAAC;AAEH,QAAQ,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- export {};