@builder.io/react 8.1.2-1 → 8.1.2
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/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 +1 -1
- package/dist/lib/src/functions/string-to-function.js +1 -4
- package/dist/lib/src/functions/string-to-function.js.map +1 -1
- package/dist/lib/src/sdk-version.js +1 -1
- package/dist/types/src/sdk-version.d.ts +1 -1
- package/package.json +2 -2
- package/src/functions/string-to-function.ts +0 -8
- package/dist/lib/src/functions/should-force-browser-runtime-in-node.test.js +0 -59
- package/dist/lib/src/functions/should-force-browser-runtime-in-node.test.js.map +0 -1
- package/dist/lib/src/functions/string-to-function.test.js +0 -289
- package/dist/lib/src/functions/string-to-function.test.js.map +0 -1
- package/dist/types/src/functions/should-force-browser-runtime-in-node.test.d.ts +0 -1
- package/dist/types/src/functions/string-to-function.test.d.ts +0 -1
- package/src/functions/should-force-browser-runtime-in-node.test.ts +0 -67
- package/src/functions/string-to-function.test.ts +0 -335
package/dist/lib/package.json
CHANGED
|
@@ -108,9 +108,6 @@ function stringToFunction(str, expression, errors, logs) {
|
|
|
108
108
|
if (errors) {
|
|
109
109
|
errors.push(error);
|
|
110
110
|
}
|
|
111
|
-
if (logs && error.message && typeof error.message === 'string') {
|
|
112
|
-
logs.push(error.message);
|
|
113
|
-
}
|
|
114
111
|
return null;
|
|
115
112
|
}
|
|
116
113
|
};
|
|
@@ -135,7 +132,7 @@ var makeFn = function (code, useReturn, args) {
|
|
|
135
132
|
];
|
|
136
133
|
// Convert all argument references to proxies, and pass `copySync` method to target object, to return a copy of the original JS object
|
|
137
134
|
// https://github.com/laverdet/isolated-vm#referencecopysync
|
|
138
|
-
var refToProxyFn = "\n var refToProxy = (obj) => {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n return new Proxy({}, {\n get(target, key) {\n if (key === 'copySync') {\n return () => obj.copySync();\n }\n const val = obj.getSync(key);\n if (typeof val?.copySync === 'function') {\n
|
|
135
|
+
var refToProxyFn = "\n var refToProxy = (obj) => {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n return new Proxy({}, {\n get(target, key) {\n if (key === 'copySync') {\n return () => obj.copySync();\n }\n const val = obj.getSync(key);\n if (typeof val?.copySync === 'function') {\n return JSON.parse(stringify(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";
|
|
139
136
|
// Returned object will be stringified and parsed back to the parent isolate
|
|
140
137
|
var strinfigyFn = "\n var stringify = (val) => {\n if (typeof val === 'object' && val !== null) {\n return JSON.stringify(val.copySync ? val.copySync() : val);\n }\n return val;\n }\n ";
|
|
141
138
|
return "\n".concat(refToProxyFn, "\n").concat(strinfigyFn, "\n").concat(names.map(function (arg, index) { return "var ".concat(arg, " = refToProxy($").concat(index, ");"); }).join('\n')).concat("\n".concat(names.includes('context') ? 'var ctx = context;' : '', "\nvar endResult = function() {\n ").concat(useReturn ? "return (".concat(code, ");") : code, ";\n};\n\nreturn stringify(endResult());\n"));
|
|
@@ -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;AACrC,+FAAyF;AAEzF,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,IAAI,IAAA,sEAA+B,GAAE,EAAE;gBAC1D,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,IAAA,yBAAiB,GAAE,CAAC;gBAC1E,IAAM,KAAG,GAAG,IAAA,yCAAkB,EAAC,aAAa,CAAiC,CAAC;gBAC9E,IAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAC9C,IAAA,cAAM,EAAC,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,sFAAsF;oBACtF,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;AAhKD,4CAgKC;AAED,IAAM,sBAAsB,GAAG,CAAC,CAAC;AAE1B,IAAM,MAAM,GAAG,UAAC,IAAY,EAAE,SAAkB,EAAE,IAAe;IACtE,8DAA8D;IAC9D,IAAM,KAAK,GAAG,IAAI,IAAI;QACpB,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;KACV,CAAC;IAEF,sIAAsI;IACtI,4DAA4D;IAC5D,IAAM,YAAY,GAAG,8oBAwBtB,CAAC;IACA,6EAA6E;IAC7E,IAAM,WAAW,GAAG,oMAOnB,CAAC;IAEF,OAAO,YACP,YAAY,eACZ,WAAW,OACZ,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,YAC3F,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,+CAEnD,SAAS,CAAC,CAAC,CAAC,kBAAW,IAAI,OAAI,CAAC,CAAC,CAAC,IAAI,8CAIzC,CAAC,CAAC;AACH,CAAC,CAAC;AA7DW,QAAA,MAAM,UA6DjB;AAEK,IAAM,iBAAiB,GAAG;IAC/B,IAAI,eAAe,GAAG,aAAO,CAAC,aAAa,CAAC;IAE5C,IAAI,CAAC,eAAe,EAAE;QACpB,IAAM,GAAG,GAAG,IAAA,yCAAkB,EAAC,aAAa,CAAiC,CAAC;QAC9E,IAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9C,aAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;KAC3C;IACD,IAAM,IAAI,GAAG,eAAgB,CAAC,MAAM,CAAC;IACrC,+FAA+F;IAC/F,wFAAwF;IACxF,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACzC,oEAAoE;IACpE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAAU,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAC1C,IAAI,IAAA,kBAAO,GAAE,EAAE;YACb,OAAO,CAAC,GAAG,OAAX,OAAO,EAAQ,IAAI,EAAE;SACtB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AApBW,QAAA,iBAAiB,qBAoB5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "8.1.2
|
|
1
|
+
export declare const SDK_VERSION = "8.1.2";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@builder.io/react",
|
|
3
|
-
"version": "8.1.2
|
|
3
|
+
"version": "8.1.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"main": "dist/builder-react.cjs.js",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"react-dom": ">=16.8.0 || ^19.0.0-rc"
|
|
98
98
|
},
|
|
99
99
|
"dependencies": {
|
|
100
|
-
"@builder.io/sdk": "
|
|
100
|
+
"@builder.io/sdk": "6.0.9",
|
|
101
101
|
"@emotion/core": "^10.0.17",
|
|
102
102
|
"hash-sum": "^2.0.0",
|
|
103
103
|
"isolated-vm": "^5.0.0",
|
|
@@ -169,9 +169,6 @@ export function stringToFunction(
|
|
|
169
169
|
if (errors) {
|
|
170
170
|
errors.push(error);
|
|
171
171
|
}
|
|
172
|
-
if (logs && error.message && typeof error.message === 'string') {
|
|
173
|
-
logs.push(error.message);
|
|
174
|
-
}
|
|
175
172
|
return null;
|
|
176
173
|
}
|
|
177
174
|
};
|
|
@@ -212,12 +209,7 @@ export const makeFn = (code: string, useReturn: boolean, args?: string[]) => {
|
|
|
212
209
|
}
|
|
213
210
|
const val = obj.getSync(key);
|
|
214
211
|
if (typeof val?.copySync === 'function') {
|
|
215
|
-
try {
|
|
216
212
|
return JSON.parse(stringify(val));
|
|
217
|
-
} catch (e) {
|
|
218
|
-
log('Error:', e);
|
|
219
|
-
return refToProxy(val);
|
|
220
|
-
}
|
|
221
213
|
}
|
|
222
214
|
return val;
|
|
223
215
|
},
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var should_force_browser_runtime_in_node_1 = require("./should-force-browser-runtime-in-node");
|
|
4
|
-
describe('shouldForceBrowserRuntimeInNode', function () {
|
|
5
|
-
var originalArch = process.arch;
|
|
6
|
-
var originalVersion = process.version;
|
|
7
|
-
var originalNodeOptions = process.env.NODE_OPTIONS;
|
|
8
|
-
var originalConsoleLog = console.log;
|
|
9
|
-
beforeEach(function () {
|
|
10
|
-
// Mock console.log to prevent actual logging during tests
|
|
11
|
-
console.log = jest.fn();
|
|
12
|
-
});
|
|
13
|
-
afterEach(function () {
|
|
14
|
-
// Restore original process properties
|
|
15
|
-
Object.defineProperty(process, 'arch', { value: originalArch });
|
|
16
|
-
Object.defineProperty(process, 'version', { value: originalVersion });
|
|
17
|
-
process.env.NODE_OPTIONS = originalNodeOptions;
|
|
18
|
-
console.log = originalConsoleLog;
|
|
19
|
-
});
|
|
20
|
-
it('should return false when not in Node runtime', function () {
|
|
21
|
-
// Save original process
|
|
22
|
-
var originalProcess = global.process;
|
|
23
|
-
try {
|
|
24
|
-
// Mock not being in Node runtime
|
|
25
|
-
// @ts-ignore - Intentionally modifying global.process for test
|
|
26
|
-
global.process = undefined;
|
|
27
|
-
expect((0, should_force_browser_runtime_in_node_1.shouldForceBrowserRuntimeInNode)()).toBe(false);
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
// Restore original process
|
|
31
|
-
global.process = originalProcess;
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
it('should return false when not on arm64 architecture', function () {
|
|
35
|
-
Object.defineProperty(process, 'arch', { value: 'x64' });
|
|
36
|
-
Object.defineProperty(process, 'version', { value: 'v20.0.0' });
|
|
37
|
-
expect((0, should_force_browser_runtime_in_node_1.shouldForceBrowserRuntimeInNode)()).toBe(false);
|
|
38
|
-
});
|
|
39
|
-
it('should return false when not on Node 20', function () {
|
|
40
|
-
Object.defineProperty(process, 'arch', { value: 'arm64' });
|
|
41
|
-
Object.defineProperty(process, 'version', { value: 'v18.0.0' });
|
|
42
|
-
expect((0, should_force_browser_runtime_in_node_1.shouldForceBrowserRuntimeInNode)()).toBe(false);
|
|
43
|
-
});
|
|
44
|
-
it('should return false when on arm64 and Node 20 but has no-node-snapshot option', function () {
|
|
45
|
-
Object.defineProperty(process, 'arch', { value: 'arm64' });
|
|
46
|
-
Object.defineProperty(process, 'version', { value: 'v20.0.0' });
|
|
47
|
-
process.env.NODE_OPTIONS = '--no-node-snapshot';
|
|
48
|
-
expect((0, should_force_browser_runtime_in_node_1.shouldForceBrowserRuntimeInNode)()).toBe(false);
|
|
49
|
-
});
|
|
50
|
-
it('should return true and log warning when on arm64, Node 20, and no snapshot option flag', function () {
|
|
51
|
-
Object.defineProperty(process, 'arch', { value: 'arm64' });
|
|
52
|
-
Object.defineProperty(process, 'version', { value: 'v20.0.0' });
|
|
53
|
-
process.env.NODE_OPTIONS = '';
|
|
54
|
-
var result = (0, should_force_browser_runtime_in_node_1.shouldForceBrowserRuntimeInNode)();
|
|
55
|
-
expect(result).toBe(true);
|
|
56
|
-
expect(console.log).toHaveBeenCalled();
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=should-force-browser-runtime-in-node.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"should-force-browser-runtime-in-node.test.js","sourceRoot":"","sources":["../../../../src/functions/should-force-browser-runtime-in-node.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
var sdk_1 = require("@builder.io/sdk");
|
|
27
|
-
var string_to_function_1 = require("./string-to-function");
|
|
28
|
-
var shouldForceModule = __importStar(require("./should-force-browser-runtime-in-node"));
|
|
29
|
-
jest.mock('./is-debug', function () { return ({
|
|
30
|
-
isDebug: jest.fn().mockReturnValue(true),
|
|
31
|
-
}); });
|
|
32
|
-
var mockEvalClosureSync = jest.fn().mockReturnValue('"test"');
|
|
33
|
-
jest.mock('./safe-dynamic-require', function () { return ({
|
|
34
|
-
safeDynamicRequire: jest.fn().mockImplementation(function () { return ({
|
|
35
|
-
Isolate: /** @class */ (function () {
|
|
36
|
-
function Isolate() {
|
|
37
|
-
}
|
|
38
|
-
Isolate.prototype.createContextSync = function () {
|
|
39
|
-
return {
|
|
40
|
-
global: {
|
|
41
|
-
setSync: jest.fn(),
|
|
42
|
-
derefInto: jest.fn(),
|
|
43
|
-
},
|
|
44
|
-
evalClosureSync: mockEvalClosureSync,
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
return Isolate;
|
|
48
|
-
}()),
|
|
49
|
-
Reference: /** @class */ (function () {
|
|
50
|
-
function class_1(val) {
|
|
51
|
-
this.value = val;
|
|
52
|
-
}
|
|
53
|
-
return class_1;
|
|
54
|
-
}()),
|
|
55
|
-
}); }),
|
|
56
|
-
}); });
|
|
57
|
-
describe('makeFn', function () {
|
|
58
|
-
it('should create a function string with default arguments', function () {
|
|
59
|
-
var result = (0, string_to_function_1.makeFn)('state.value', true);
|
|
60
|
-
expect(result).toContain('var state = refToProxy($0);');
|
|
61
|
-
expect(result).toContain('var event = refToProxy($1);');
|
|
62
|
-
expect(result).toContain('var block = refToProxy($2);');
|
|
63
|
-
expect(result).toContain('var builder = refToProxy($3);');
|
|
64
|
-
expect(result).toContain('var Device = refToProxy($4);');
|
|
65
|
-
expect(result).toContain('var update = refToProxy($5);');
|
|
66
|
-
expect(result).toContain('var Builder = refToProxy($6);');
|
|
67
|
-
expect(result).toContain('var context = refToProxy($7);');
|
|
68
|
-
expect(result).toContain('var ctx = context;');
|
|
69
|
-
expect(result).toContain('return (state.value);');
|
|
70
|
-
});
|
|
71
|
-
it('should create a function string with custom arguments', function () {
|
|
72
|
-
var result = (0, string_to_function_1.makeFn)('custom.value', true, ['custom']);
|
|
73
|
-
expect(result).toContain('var custom = refToProxy($0);');
|
|
74
|
-
expect(result).not.toContain('var state = refToProxy($0);');
|
|
75
|
-
expect(result).toContain('return (custom.value);');
|
|
76
|
-
});
|
|
77
|
-
it('should handle non-return expressions', function () {
|
|
78
|
-
var result = (0, string_to_function_1.makeFn)('state.value', false);
|
|
79
|
-
expect(result).toContain('state.value');
|
|
80
|
-
expect(result).not.toContain('return (state.value);');
|
|
81
|
-
});
|
|
82
|
-
it('should include refToProxy function definition', function () {
|
|
83
|
-
var result = (0, string_to_function_1.makeFn)('state.value', true);
|
|
84
|
-
expect(result).toContain('var refToProxy = (obj) => {');
|
|
85
|
-
expect(result).toContain("if (typeof obj !== 'object' || obj === null) {");
|
|
86
|
-
expect(result).toContain('return obj;');
|
|
87
|
-
expect(result).toContain('return new Proxy({}, {');
|
|
88
|
-
});
|
|
89
|
-
it('should include stringify function definition', function () {
|
|
90
|
-
var result = (0, string_to_function_1.makeFn)('state.value', true);
|
|
91
|
-
expect(result).toContain('var stringify = (val) => {');
|
|
92
|
-
expect(result).toContain("if (typeof val === 'object' && val !== null) {");
|
|
93
|
-
expect(result).toContain('return JSON.stringify(val.copySync ? val.copySync() : val);');
|
|
94
|
-
});
|
|
95
|
-
it('should handle context alias correctly', function () {
|
|
96
|
-
var result = (0, string_to_function_1.makeFn)('ctx.value', true, ['state', 'context']);
|
|
97
|
-
expect(result).toContain('var ctx = context;');
|
|
98
|
-
});
|
|
99
|
-
it('should not include context alias when context is not in arguments', function () {
|
|
100
|
-
var result = (0, string_to_function_1.makeFn)('state.value', true, ['state']);
|
|
101
|
-
expect(result).not.toContain('var ctx = context;');
|
|
102
|
-
});
|
|
103
|
-
it('should properly wrap the code in endResult function', function () {
|
|
104
|
-
var result = (0, string_to_function_1.makeFn)('state.value', true);
|
|
105
|
-
expect(result).toContain('var endResult = function() {');
|
|
106
|
-
expect(result).toContain('return stringify(endResult());');
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
describe('getIsolateContext', function () {
|
|
110
|
-
beforeEach(function () {
|
|
111
|
-
sdk_1.Builder.serverContext = undefined;
|
|
112
|
-
});
|
|
113
|
-
it('should create a new context if none exists', function () {
|
|
114
|
-
var context = (0, string_to_function_1.getIsolateContext)();
|
|
115
|
-
expect(context).toBeDefined();
|
|
116
|
-
expect(sdk_1.Builder.serverContext).toBe(context);
|
|
117
|
-
});
|
|
118
|
-
it('should reuse existing context', function () {
|
|
119
|
-
var firstContext = (0, string_to_function_1.getIsolateContext)();
|
|
120
|
-
var secondContext = (0, string_to_function_1.getIsolateContext)();
|
|
121
|
-
expect(secondContext).toBe(firstContext);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
describe('stringToFunction', function () {
|
|
125
|
-
beforeEach(function () {
|
|
126
|
-
// Reset Builder.isBrowser before each test
|
|
127
|
-
sdk_1.Builder.isBrowser = true;
|
|
128
|
-
jest.clearAllMocks();
|
|
129
|
-
});
|
|
130
|
-
it('should return undefined for empty string', function () {
|
|
131
|
-
var fn = (0, string_to_function_1.stringToFunction)('');
|
|
132
|
-
expect(fn({})).toBeUndefined();
|
|
133
|
-
});
|
|
134
|
-
it('should handle basic expressions', function () {
|
|
135
|
-
var fn = (0, string_to_function_1.stringToFunction)('state.value + 1');
|
|
136
|
-
expect(fn({ value: 1 })).toBe(2);
|
|
137
|
-
});
|
|
138
|
-
it('should handle statements', function () {
|
|
139
|
-
var fn = (0, string_to_function_1.stringToFunction)('let x = state.value; return x + 1;');
|
|
140
|
-
expect(fn({ value: 1 })).toBe(2);
|
|
141
|
-
});
|
|
142
|
-
it('should handle return statements', function () {
|
|
143
|
-
var fn = (0, string_to_function_1.stringToFunction)('return state.value + 1;');
|
|
144
|
-
expect(fn({ value: 1 })).toBe(2);
|
|
145
|
-
});
|
|
146
|
-
it('should handle functions that start with builder.run', function () {
|
|
147
|
-
var mockBuilderObj = {
|
|
148
|
-
getUserAttributes: jest.fn(),
|
|
149
|
-
run: jest.fn().mockReturnValue('ran'),
|
|
150
|
-
};
|
|
151
|
-
var fn = (0, string_to_function_1.stringToFunction)('builder.run()');
|
|
152
|
-
expect(fn({}, undefined, undefined, mockBuilderObj)).toBe('ran');
|
|
153
|
-
});
|
|
154
|
-
it('should handle event parameter', function () {
|
|
155
|
-
var fn = (0, string_to_function_1.stringToFunction)('event.target.value');
|
|
156
|
-
var mockEvent = { target: { value: 'test' } };
|
|
157
|
-
expect(fn({}, mockEvent)).toBe('test');
|
|
158
|
-
});
|
|
159
|
-
it('should handle builder parameter', function () {
|
|
160
|
-
var fn = (0, string_to_function_1.stringToFunction)('builder.getUserAttributes()');
|
|
161
|
-
var mockBuilder = { getUserAttributes: function () { return ({ name: 'test' }); } };
|
|
162
|
-
expect(fn({}, undefined, undefined, mockBuilder)).toEqual({ name: 'test' });
|
|
163
|
-
});
|
|
164
|
-
it('should handle context parameter', function () {
|
|
165
|
-
var fn = (0, string_to_function_1.stringToFunction)('ctx.value');
|
|
166
|
-
expect(fn({}, undefined, undefined, undefined, undefined, undefined, undefined, { value: 'test' })).toBe('test');
|
|
167
|
-
});
|
|
168
|
-
it('should cache function results', function () {
|
|
169
|
-
var str = 'state.value + 1';
|
|
170
|
-
var fn1 = (0, string_to_function_1.stringToFunction)(str);
|
|
171
|
-
var fn2 = (0, string_to_function_1.stringToFunction)(str);
|
|
172
|
-
expect(fn1).toBe(fn2);
|
|
173
|
-
});
|
|
174
|
-
it('should handle errors gracefully', function () {
|
|
175
|
-
var errors = [];
|
|
176
|
-
var fn = (0, string_to_function_1.stringToFunction)('invalid code', true, errors);
|
|
177
|
-
fn({});
|
|
178
|
-
expect(errors.length).toBeGreaterThan(0);
|
|
179
|
-
});
|
|
180
|
-
it('should push error messages to logs array', function () {
|
|
181
|
-
var logs = [];
|
|
182
|
-
var errors = [];
|
|
183
|
-
// Creating a runtime error by accessing an undefined property
|
|
184
|
-
var fn = (0, string_to_function_1.stringToFunction)('state.undefinedProp.accessSomething', true, errors, logs);
|
|
185
|
-
fn({});
|
|
186
|
-
expect(logs.length).toBeGreaterThan(0);
|
|
187
|
-
});
|
|
188
|
-
it('should handle compilation errors', function () {
|
|
189
|
-
var errors = [];
|
|
190
|
-
// Invalid JavaScript that will cause a compilation error
|
|
191
|
-
var fn = (0, string_to_function_1.stringToFunction)('for() {}', true, errors);
|
|
192
|
-
expect(errors.length).toBeGreaterThan(0);
|
|
193
|
-
});
|
|
194
|
-
it('should handle functions in contentData', function () {
|
|
195
|
-
var fn = (0, string_to_function_1.stringToFunction)('state.contentData.exampleFunction()');
|
|
196
|
-
expect(fn({
|
|
197
|
-
contentData: {
|
|
198
|
-
someString: 'test',
|
|
199
|
-
exampleFunction: function () { return 'exampleFunctionInvoked'; },
|
|
200
|
-
},
|
|
201
|
-
})).toBe('exampleFunctionInvoked');
|
|
202
|
-
});
|
|
203
|
-
it('should pass all parameters correctly to the function', function () {
|
|
204
|
-
var fn = (0, string_to_function_1.stringToFunction)('state.value + (event ? 1 : 0) + (block ? 1 : 0) + (builder ? 1 : 0) + (Device ? 1 : 0) + (update ? 1 : 0) + (Builder ? 1 : 0) + (context ? 1 : 0)');
|
|
205
|
-
var mockUpdate = jest.fn();
|
|
206
|
-
var mockDevice = { isMobile: true };
|
|
207
|
-
var mockBlock = { id: 'test-block' };
|
|
208
|
-
var mockEvent = { type: 'click' };
|
|
209
|
-
var mockContext = { foo: 'bar' };
|
|
210
|
-
var result = fn({ value: 1 }, mockEvent, mockBlock, {}, mockDevice, mockUpdate, sdk_1.Builder, mockContext);
|
|
211
|
-
// All parameters present = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 8
|
|
212
|
-
expect(result).toBe(8);
|
|
213
|
-
});
|
|
214
|
-
it('should handle the getIsolateContext with existing context', function () {
|
|
215
|
-
// Setup a fake serverContext
|
|
216
|
-
var mockContext = {
|
|
217
|
-
global: {
|
|
218
|
-
setSync: jest.fn(),
|
|
219
|
-
derefInto: jest.fn(),
|
|
220
|
-
},
|
|
221
|
-
};
|
|
222
|
-
sdk_1.Builder.serverContext = mockContext;
|
|
223
|
-
// Get the context
|
|
224
|
-
var context = (0, string_to_function_1.getIsolateContext)();
|
|
225
|
-
// Should return the existing context
|
|
226
|
-
expect(context).toBe(mockContext);
|
|
227
|
-
// Reset the context
|
|
228
|
-
sdk_1.Builder.serverContext = undefined;
|
|
229
|
-
});
|
|
230
|
-
it('should handle complex isolated VM execution', function () {
|
|
231
|
-
// Setup a customized mock for evalClosureSync
|
|
232
|
-
mockEvalClosureSync.mockImplementationOnce(function (code, args) {
|
|
233
|
-
// Verify that makeFn was called with correct parameters
|
|
234
|
-
expect(code).toContain('refToProxy');
|
|
235
|
-
expect(args.length).toBeGreaterThan(0);
|
|
236
|
-
// Return a valid JSON string to test the JSON.parse path
|
|
237
|
-
return '{"value":"test"}';
|
|
238
|
-
});
|
|
239
|
-
var fn = (0, string_to_function_1.stringToFunction)('state');
|
|
240
|
-
var result = fn({ value: 'test' });
|
|
241
|
-
expect(result).toEqual({ value: 'test' });
|
|
242
|
-
});
|
|
243
|
-
describe('server-side execution', function () {
|
|
244
|
-
beforeEach(function () {
|
|
245
|
-
sdk_1.Builder.isBrowser = false;
|
|
246
|
-
jest.spyOn(shouldForceModule, 'shouldForceBrowserRuntimeInNode').mockReturnValue(false);
|
|
247
|
-
mockEvalClosureSync.mockReset();
|
|
248
|
-
mockEvalClosureSync.mockReturnValue('"test"');
|
|
249
|
-
});
|
|
250
|
-
afterEach(function () {
|
|
251
|
-
jest.restoreAllMocks();
|
|
252
|
-
});
|
|
253
|
-
it('should use isolated VM when not in browser', function () {
|
|
254
|
-
var fn = (0, string_to_function_1.stringToFunction)('state.value');
|
|
255
|
-
expect(fn({ value: 'test' })).toBe('test');
|
|
256
|
-
});
|
|
257
|
-
it('should handle JSON parse errors in server context', function () {
|
|
258
|
-
mockEvalClosureSync.mockReturnValue('not valid json');
|
|
259
|
-
var fn = (0, string_to_function_1.stringToFunction)('state.value');
|
|
260
|
-
expect(fn({ value: 'test' })).toBe('not valid json');
|
|
261
|
-
});
|
|
262
|
-
it('should handle error in server-side execution', function () {
|
|
263
|
-
// Mock the evalClosureSync to throw an error
|
|
264
|
-
var testError = new Error('Server error');
|
|
265
|
-
mockEvalClosureSync.mockImplementation(function () {
|
|
266
|
-
throw testError;
|
|
267
|
-
});
|
|
268
|
-
var consoleSpy = jest.spyOn(console, 'debug').mockImplementation(function () { });
|
|
269
|
-
var errors = [];
|
|
270
|
-
var fn = (0, string_to_function_1.stringToFunction)('state.value', true, errors);
|
|
271
|
-
var result = fn({ value: 'test' });
|
|
272
|
-
expect(result).toBeNull();
|
|
273
|
-
expect(errors).toContain(testError);
|
|
274
|
-
expect(consoleSpy).toHaveBeenCalled();
|
|
275
|
-
consoleSpy.mockReset();
|
|
276
|
-
});
|
|
277
|
-
it('should use browser runtime when shouldForceBrowserRuntimeInNode returns true', function () {
|
|
278
|
-
// Instead of testing the warn functionality which is hard to mock properly,
|
|
279
|
-
// let's verify the code path by checking that the browser runtime path works
|
|
280
|
-
// when shouldForceBrowserRuntimeInNode returns true
|
|
281
|
-
jest.spyOn(shouldForceModule, 'shouldForceBrowserRuntimeInNode').mockReturnValue(true);
|
|
282
|
-
sdk_1.Builder.isBrowser = false; // Ensure we're in "server" mode
|
|
283
|
-
// Simple expression that will work in browser mode
|
|
284
|
-
var fn = (0, string_to_function_1.stringToFunction)('state.value + 1');
|
|
285
|
-
expect(fn({ value: 1 })).toBe(2);
|
|
286
|
-
});
|
|
287
|
-
});
|
|
288
|
-
});
|
|
289
|
-
//# sourceMappingURL=string-to-function.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string-to-function.test.js","sourceRoot":"","sources":["../../../../src/functions/string-to-function.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { shouldForceBrowserRuntimeInNode } from './should-force-browser-runtime-in-node';
|
|
2
|
-
|
|
3
|
-
describe('shouldForceBrowserRuntimeInNode', () => {
|
|
4
|
-
const originalArch = process.arch;
|
|
5
|
-
const originalVersion = process.version;
|
|
6
|
-
const originalNodeOptions = process.env.NODE_OPTIONS;
|
|
7
|
-
const originalConsoleLog = console.log;
|
|
8
|
-
|
|
9
|
-
beforeEach(() => {
|
|
10
|
-
// Mock console.log to prevent actual logging during tests
|
|
11
|
-
console.log = jest.fn();
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
afterEach(() => {
|
|
15
|
-
// Restore original process properties
|
|
16
|
-
Object.defineProperty(process, 'arch', { value: originalArch });
|
|
17
|
-
Object.defineProperty(process, 'version', { value: originalVersion });
|
|
18
|
-
process.env.NODE_OPTIONS = originalNodeOptions;
|
|
19
|
-
console.log = originalConsoleLog;
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
it('should return false when not in Node runtime', () => {
|
|
23
|
-
// Save original process
|
|
24
|
-
const originalProcess = global.process;
|
|
25
|
-
|
|
26
|
-
try {
|
|
27
|
-
// Mock not being in Node runtime
|
|
28
|
-
// @ts-ignore - Intentionally modifying global.process for test
|
|
29
|
-
global.process = undefined;
|
|
30
|
-
|
|
31
|
-
expect(shouldForceBrowserRuntimeInNode()).toBe(false);
|
|
32
|
-
} finally {
|
|
33
|
-
// Restore original process
|
|
34
|
-
global.process = originalProcess;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('should return false when not on arm64 architecture', () => {
|
|
39
|
-
Object.defineProperty(process, 'arch', { value: 'x64' });
|
|
40
|
-
Object.defineProperty(process, 'version', { value: 'v20.0.0' });
|
|
41
|
-
expect(shouldForceBrowserRuntimeInNode()).toBe(false);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it('should return false when not on Node 20', () => {
|
|
45
|
-
Object.defineProperty(process, 'arch', { value: 'arm64' });
|
|
46
|
-
Object.defineProperty(process, 'version', { value: 'v18.0.0' });
|
|
47
|
-
expect(shouldForceBrowserRuntimeInNode()).toBe(false);
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
it('should return false when on arm64 and Node 20 but has no-node-snapshot option', () => {
|
|
51
|
-
Object.defineProperty(process, 'arch', { value: 'arm64' });
|
|
52
|
-
Object.defineProperty(process, 'version', { value: 'v20.0.0' });
|
|
53
|
-
process.env.NODE_OPTIONS = '--no-node-snapshot';
|
|
54
|
-
expect(shouldForceBrowserRuntimeInNode()).toBe(false);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it('should return true and log warning when on arm64, Node 20, and no snapshot option flag', () => {
|
|
58
|
-
Object.defineProperty(process, 'arch', { value: 'arm64' });
|
|
59
|
-
Object.defineProperty(process, 'version', { value: 'v20.0.0' });
|
|
60
|
-
process.env.NODE_OPTIONS = '';
|
|
61
|
-
|
|
62
|
-
const result = shouldForceBrowserRuntimeInNode();
|
|
63
|
-
|
|
64
|
-
expect(result).toBe(true);
|
|
65
|
-
expect(console.log).toHaveBeenCalled();
|
|
66
|
-
});
|
|
67
|
-
});
|