@builder.io/react 3.0.8 → 3.0.9-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/CHANGELOG.md +4 -0
- package/dist/builder-react-lite.cjs.js +1 -1
- package/dist/builder-react-lite.cjs.js.map +1 -1
- package/dist/builder-react-lite.esm.js +1 -1
- package/dist/builder-react-lite.esm.js.map +1 -1
- package/dist/builder-react.browser.js +2 -2
- package/dist/builder-react.browser.js.map +1 -1
- package/dist/builder-react.cjs.js +1 -1
- package/dist/builder-react.cjs.js.map +1 -1
- package/dist/builder-react.es5.js +1 -1
- package/dist/builder-react.es5.js.map +1 -1
- package/dist/builder-react.unpkg.js +2 -2
- package/dist/builder-react.unpkg.js.map +1 -1
- package/dist/lib/package.json +2 -3
- package/dist/lib/src/functions/string-to-function.js +9 -2
- package/dist/lib/src/functions/string-to-function.js.map +1 -1
- package/dist/lib/src/scripts/iso-vm.js +71 -0
- package/dist/lib/src/scripts/iso-vm.js.map +1 -0
- package/dist/types/src/scripts/iso-vm.d.ts +1 -0
- package/package.json +3 -2
- package/src/functions/string-to-function.ts +14 -2
- package/src/scripts/iso-vm.js +53 -0
- package/src/components/core-react.code-workspace +0 -14
package/dist/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@builder.io/react",
|
|
3
|
-
"version": "3.0.8
|
|
3
|
+
"version": "3.0.8",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"main": "dist/builder-react.cjs.js",
|
|
@@ -131,6 +131,5 @@
|
|
|
131
131
|
"installConfig": {
|
|
132
132
|
"hoistingLimits": "workspaces"
|
|
133
133
|
},
|
|
134
|
-
"gitHead": "4d96fbc32864698afbb355ab991c6d90be991951"
|
|
135
|
-
"stableVersion": "3.0.8-0"
|
|
134
|
+
"gitHead": "4d96fbc32864698afbb355ab991c6d90be991951"
|
|
136
135
|
}
|
|
@@ -93,12 +93,19 @@ function stringToFunction(str, expression, errors, logs) {
|
|
|
93
93
|
}
|
|
94
94
|
});
|
|
95
95
|
var ivm_1 = (0, safe_dynamic_require_1.safeDynamicRequire)('isolated-vm');
|
|
96
|
-
|
|
96
|
+
var resultStr = isolateContext.evalClosureSync(makeFn(str, useReturn), args.map(function (arg, index) {
|
|
97
97
|
return typeof arg === 'object'
|
|
98
98
|
? new ivm_1.Reference(index === indexOfBuilderInstance
|
|
99
99
|
? __assign(__assign({}, arg), { getUserAttributes: function () { return arg.getUserAttributes(''); } }) : arg)
|
|
100
100
|
: null;
|
|
101
101
|
}));
|
|
102
|
+
try {
|
|
103
|
+
var res = JSON.parse(resultStr);
|
|
104
|
+
return res;
|
|
105
|
+
}
|
|
106
|
+
catch (_error) {
|
|
107
|
+
return resultStr;
|
|
108
|
+
}
|
|
102
109
|
}
|
|
103
110
|
}
|
|
104
111
|
catch (error) {
|
|
@@ -126,7 +133,7 @@ var indexOfBuilderInstance = 3;
|
|
|
126
133
|
var makeFn = function (code, useReturn) {
|
|
127
134
|
// Order must match the order of the arguments to the function
|
|
128
135
|
var names = ['state', 'event', 'block', 'builder', 'Device', 'update', 'Builder', 'context'];
|
|
129
|
-
return "\n const refToProxy = (obj) => {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n return new Proxy({}, {\n get(target, key) {\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".concat(names.map(function (arg, index) { return "var ".concat(arg, " = refToProxy($").concat(index, ");"); }).join('\n')).concat("\nvar ctx = context;\n".concat(useReturn ? "return (".concat(code, ");") : code, ";\n"));
|
|
136
|
+
return "\n const refToProxy = (obj) => {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n return new Proxy({}, {\n get(target, key) {\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".concat(names.map(function (arg, index) { return "var ".concat(arg, " = refToProxy($").concat(index, ");"); }).join('\n')).concat("\nvar ctx = context;\nvar stringify = (val) => {\n if (typeof val === 'object' && val !== null) {\n return JSON.stringify(val);\n }\n return val;\n}\n".concat(useReturn ? "return stringify(".concat(code, ");") : code, ";\n"));
|
|
130
137
|
};
|
|
131
138
|
var getIsolateContext = function () {
|
|
132
139
|
if (sdk_1.Builder.serverContext) {
|
|
@@ -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":";;;;;;;;;;;;;;AAAA,uCAAmD;AACnD,+DAA4D;AAC5D,uCAAqC;AAErC,IAAM,OAAO,GAAuD,EAAE,CAAC;AAahE,IAAM,GAAG,GAAG,UAAC,KAAU,IAAK,OAAA,aAAO,EAAP,CAAO,CAAC;AAA9B,QAAA,GAAG,OAA2B;AAE3C,SAAgB,gBAAgB,CAC9B,GAAW,EACX,UAAiB,EACjB,MAAgB,EAChB,IAAe;IAFf,2BAAA,EAAA,iBAAiB;IAIjB,mBAAmB;IACnB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;QACvB,OAAO,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC;KACxB;IAED,IAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC;IACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;QACrB,OAAO,OAAO,CAAC,QAAQ,CAAE,CAAC;KAC3B;IAED,oBAAoB;IACpB,IAAM,SAAS,GACb,CAAC,UAAU;QACT,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACvF,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACvC,IAAI,EAAE,GAAa;QACjB,yBAAyB;IAC3B,CAAC,CAAC;IAEF,IAAI;QACF,oEAAoE;QACpE,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,4BAA4B;YAC5B,EAAE,GAAG,IAAI,QAAQ,CACf,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS;YACT,qEAAqE;YACrE,kDAAkD;YAClD,kzBA6BM,SAAS,CAAC,CAAC,CAAC,kBAAW,GAAG,OAAI,CAAC,CAAC,CAAC,GAAG,6BAEzC,CACF,CAAC;SACH;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;QACD,IAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;QACvC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACpB;SACF;QACD,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,oCAA6B,GAAG,CAAE,EAAE,KAAK,CAAC,CAAC;SACzD;KACF;IAED,IAAM,KAAK,GAAG;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAC3B,IAAI;YACF,IAAI,aAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,EAAE,eAAI,IAAI,EAAE;aACpB;iBAAM;gBACL,0BAA0B;gBAC1B,iGAAiG;gBACjG,4CAA4C;gBAC5C,6HAA6H;gBAC7H,4FAA4F;gBAC5F,0FAA0F;gBAC1F,uBAAuB;gBACvB,6DAA6D;gBAC7D,IAAM,cAAc,GAAkC,iBAAiB,EAAE,CAAC;gBAC1E,IAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC;gBACnC,+FAA+F;gBAC/F,wFAAwF;gBACxF,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAEzC,oEAAoE;gBACpE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBAAU,cAAc;yBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;wBAAd,yBAAc;;oBAC1C,IAAI,IAAA,kBAAO,GAAE,EAAE;wBACb,OAAO,CAAC,GAAG,OAAX,OAAO,EAAQ,IAAI,EAAE;qBACtB;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAM,KAAG,GAAG,IAAA,yCAAkB,EAAC,aAAa,CAAiC,CAAC;gBAC9E,IAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAC9C,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EACtB,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,KAAK;oBAClB,OAAA,OAAO,GAAG,KAAK,QAAQ;wBACrB,CAAC,CAAC,IAAI,KAAG,CAAC,SAAS,CACf,KAAK,KAAK,sBAAsB;4BAC9B,CAAC,uBAEM,GAAG,KACN,iBAAiB,EAAE,cAAM,OAAA,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAzB,CAAyB,IAEtD,CAAC,CAAC,GAAG,CACR;wBACH,CAAC,CAAC,IAAI;gBAVR,CAUQ,CACT,CACF,CAAC;gBACF,IAAI;oBACF,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAClC,OAAO,GAAG,CAAC;iBACZ;gBAAC,OAAO,MAAW,EAAE;oBACpB,OAAO,SAAS,CAAC;iBAClB;aACF;SACF;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,aAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,CAAC,IAAI,CACV,4BAA4B,EAC5B,KAAK,CAAC,OAAO,IAAI,KAAK,EACtB,IAAI,EACJ,GAAG,EACH,KAAK,CAAC,KAAK,IAAI,KAAK,CACrB,CAAC;aACH;iBAAM;gBACL,IAAI,IAAA,kBAAO,GAAE,EAAE;oBACb,OAAO,CAAC,KAAK,CACX,4BAA4B,EAC5B,KAAK,CAAC,OAAO,IAAI,KAAK,EACtB,IAAI,EACJ,GAAG,EACH,KAAK,CAAC,KAAK,IAAI,KAAK,CACrB,CAAC;iBACH;aACF;YACD,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;YACD,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC;IAEF,IAAI,aAAO,CAAC,SAAS,EAAE;QACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;KAC3B;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AA3KD,4CA2KC;AAED,IAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,IAAM,MAAM,GAAG,UAAC,IAAY,EAAE,SAAkB;IAC9C,8DAA8D;IAC9D,IAAM,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/F,OAAO,4fAqBR,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,KAAK,IAAK,OAAA,cAAO,GAAG,4BAAkB,KAAK,OAAI,EAArC,CAAqC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,sKAQ3F,SAAS,CAAC,CAAC,CAAC,2BAAoB,IAAI,OAAI,CAAC,CAAC,CAAC,IAAI,QAChD,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,iBAAiB,GAAG;IACxB,IAAI,aAAO,CAAC,aAAa,EAAE;QACzB,OAAO,aAAO,CAAC,aAAa,CAAC;KAC9B;IACD,IAAM,GAAG,GAAG,IAAA,yCAAkB,EAAC,aAAa,CAAiC,CAAC;IAC9E,IAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;IACtD,aAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACtD,OAAO,aAAO,CAAC,aAAa,CAAC;AAC/B,CAAC,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
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;
|
|
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
|
+
state.articles = json;
|
|
56
|
+
context.evalClosureSync("\n const refToProxy = (obj) => {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n return new Proxy({}, {\n get(target, key) {\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 log(state.articles.results[0].id);\n return JSON.stringify(state.articles.results);\n ", [new ivm.Reference(state)]);
|
|
57
|
+
return [2 /*return*/];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}); };
|
|
61
|
+
jail.setSync('global', jail.derefInto());
|
|
62
|
+
// We will create a basic `log` function for the new isolate to use.
|
|
63
|
+
jail.setSync('log', function () {
|
|
64
|
+
var args = [];
|
|
65
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
66
|
+
args[_i] = arguments[_i];
|
|
67
|
+
}
|
|
68
|
+
console.log.apply(console, args);
|
|
69
|
+
});
|
|
70
|
+
fetching();
|
|
71
|
+
//# sourceMappingURL=iso-vm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;gBAClB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,OAAO,CAAC,eAAe,CACrB,urBAyBF,EACE,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAC3B,CAAC;;;;KACH,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@builder.io/react",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.9-0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"main": "dist/builder-react.cjs.js",
|
|
@@ -131,5 +131,6 @@
|
|
|
131
131
|
"installConfig": {
|
|
132
132
|
"hoistingLimits": "workspaces"
|
|
133
133
|
},
|
|
134
|
-
"gitHead": "4d96fbc32864698afbb355ab991c6d90be991951"
|
|
134
|
+
"gitHead": "4d96fbc32864698afbb355ab991c6d90be991951",
|
|
135
|
+
"stableVersion": "3.0.8"
|
|
135
136
|
}
|
|
@@ -133,7 +133,7 @@ export function stringToFunction(
|
|
|
133
133
|
});
|
|
134
134
|
|
|
135
135
|
const ivm = safeDynamicRequire('isolated-vm') as typeof import('isolated-vm');
|
|
136
|
-
|
|
136
|
+
const resultStr = isolateContext.evalClosureSync(
|
|
137
137
|
makeFn(str, useReturn),
|
|
138
138
|
args.map((arg, index) =>
|
|
139
139
|
typeof arg === 'object'
|
|
@@ -149,6 +149,12 @@ export function stringToFunction(
|
|
|
149
149
|
: null
|
|
150
150
|
)
|
|
151
151
|
);
|
|
152
|
+
try {
|
|
153
|
+
const res = JSON.parse(resultStr);
|
|
154
|
+
return res;
|
|
155
|
+
} catch (_error: any) {
|
|
156
|
+
return resultStr;
|
|
157
|
+
}
|
|
152
158
|
}
|
|
153
159
|
} catch (error: any) {
|
|
154
160
|
if (Builder.isBrowser) {
|
|
@@ -211,7 +217,13 @@ const makeFn = (code: string, useReturn: boolean) => {
|
|
|
211
217
|
}
|
|
212
218
|
`.concat(names.map((arg, index) => `var ${arg} = refToProxy($${index});`).join('\n')).concat(`
|
|
213
219
|
var ctx = context;
|
|
214
|
-
|
|
220
|
+
var stringify = (val) => {
|
|
221
|
+
if (typeof val === 'object' && val !== null) {
|
|
222
|
+
return JSON.stringify(val);
|
|
223
|
+
}
|
|
224
|
+
return val;
|
|
225
|
+
}
|
|
226
|
+
${useReturn ? `return stringify(${code});` : code};
|
|
215
227
|
`);
|
|
216
228
|
};
|
|
217
229
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const ivm = require('isolated-vm');
|
|
2
|
+
|
|
3
|
+
const isolate = new ivm.Isolate({ memoryLimit: 128 });
|
|
4
|
+
|
|
5
|
+
const context = isolate.createContextSync();
|
|
6
|
+
const jail = context.global;
|
|
7
|
+
const state = { articles: { bar: [{ a: 1 }] } };
|
|
8
|
+
const fetch = require('node-fetch');
|
|
9
|
+
const fetching = async () => {
|
|
10
|
+
const result = await fetch(
|
|
11
|
+
`https://cdn.builder.io/api/v3/content/page?apiKey=c3e3257ff5594facbf478a68d37f766d&limit=1&fields=id`
|
|
12
|
+
);
|
|
13
|
+
const json = await result.json();
|
|
14
|
+
console.log(json);
|
|
15
|
+
state.articles = json;
|
|
16
|
+
context.evalClosureSync(
|
|
17
|
+
`
|
|
18
|
+
const refToProxy = (obj) => {
|
|
19
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
20
|
+
return obj;
|
|
21
|
+
}
|
|
22
|
+
return new Proxy({}, {
|
|
23
|
+
get(target, key) {
|
|
24
|
+
const val = obj.getSync(key);
|
|
25
|
+
if (typeof val?.getSync === 'function') {
|
|
26
|
+
return refToProxy(val);
|
|
27
|
+
}
|
|
28
|
+
return val;
|
|
29
|
+
},
|
|
30
|
+
set(target, key, value) {
|
|
31
|
+
obj.setSync(key, value);
|
|
32
|
+
},
|
|
33
|
+
deleteProperty(target, key) {
|
|
34
|
+
obj.deleteSync(key);
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
const state = refToProxy($0);
|
|
39
|
+
|
|
40
|
+
log(state.articles.results[0].id);
|
|
41
|
+
return JSON.stringify(state.articles.results);
|
|
42
|
+
`,
|
|
43
|
+
[new ivm.Reference(state)]
|
|
44
|
+
);
|
|
45
|
+
};
|
|
46
|
+
jail.setSync('global', jail.derefInto());
|
|
47
|
+
|
|
48
|
+
// We will create a basic `log` function for the new isolate to use.
|
|
49
|
+
jail.setSync('log', function (...args) {
|
|
50
|
+
console.log(...args);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
fetching();
|