@builder.io/sdk-solid 0.12.4 → 0.12.6
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/lib/browser/dev.js +54 -16
- package/lib/browser/dev.jsx +54 -22
- package/lib/browser/index.js +54 -16
- package/lib/browser/index.jsx +54 -22
- package/lib/edge/dev.js +54 -16
- package/lib/edge/dev.jsx +54 -22
- package/lib/edge/index.js +54 -16
- package/lib/edge/index.jsx +54 -22
- package/lib/node/dev.js +54 -16
- package/lib/node/dev.jsx +54 -22
- package/lib/node/index.js +54 -16
- package/lib/node/index.jsx +54 -22
- package/package.json +1 -1
package/lib/edge/dev.jsx
CHANGED
|
@@ -239,27 +239,43 @@ var runInBrowser = ({
|
|
|
239
239
|
builder,
|
|
240
240
|
context,
|
|
241
241
|
event,
|
|
242
|
-
state: flattenState(
|
|
242
|
+
state: flattenState({
|
|
243
|
+
rootState,
|
|
244
|
+
localState,
|
|
245
|
+
rootSetState
|
|
246
|
+
})
|
|
243
247
|
});
|
|
244
248
|
return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
|
|
245
249
|
};
|
|
246
|
-
function flattenState(
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
+
function flattenState({
|
|
251
|
+
rootState,
|
|
252
|
+
localState,
|
|
253
|
+
rootSetState
|
|
254
|
+
}) {
|
|
250
255
|
return new Proxy(rootState, {
|
|
251
|
-
get: (
|
|
256
|
+
get: (target, prop) => {
|
|
252
257
|
if (localState && prop in localState) {
|
|
253
258
|
return localState[prop];
|
|
254
259
|
}
|
|
255
|
-
|
|
260
|
+
const val = target[prop];
|
|
261
|
+
if (typeof val === "object") {
|
|
262
|
+
return flattenState({
|
|
263
|
+
rootState: val,
|
|
264
|
+
localState: void 0,
|
|
265
|
+
rootSetState: rootSetState ? (subState) => {
|
|
266
|
+
target[prop] = subState;
|
|
267
|
+
rootSetState(target);
|
|
268
|
+
} : void 0
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
return val;
|
|
256
272
|
},
|
|
257
|
-
set: (
|
|
273
|
+
set: (target, prop, value) => {
|
|
258
274
|
if (localState && prop in localState) {
|
|
259
275
|
throw new Error("Writing to local state is not allowed as it is read-only.");
|
|
260
276
|
}
|
|
261
|
-
|
|
262
|
-
rootSetState?.(
|
|
277
|
+
target[prop] = value;
|
|
278
|
+
rootSetState?.(target);
|
|
263
279
|
return true;
|
|
264
280
|
}
|
|
265
281
|
});
|
|
@@ -3422,8 +3438,33 @@ theFunction();
|
|
|
3422
3438
|
}
|
|
3423
3439
|
};
|
|
3424
3440
|
|
|
3441
|
+
// src/helpers/nullable.ts
|
|
3442
|
+
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
3443
|
+
|
|
3444
|
+
// src/functions/is-node-runtime.ts
|
|
3445
|
+
function isNodeRuntime() {
|
|
3446
|
+
return typeof process !== "undefined" && checkIsDefined(process?.versions?.node);
|
|
3447
|
+
}
|
|
3448
|
+
|
|
3449
|
+
// src/functions/evaluate/should-force-browser-runtime-in-node.ts
|
|
3450
|
+
var shouldForceBrowserRuntimeInNode = () => {
|
|
3451
|
+
if (!isNodeRuntime())
|
|
3452
|
+
return false;
|
|
3453
|
+
const isArm64 = process.arch === "arm64";
|
|
3454
|
+
const isNode20 = process.version.startsWith("v20");
|
|
3455
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes("--no-node-snapshot");
|
|
3456
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
3457
|
+
logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
3458
|
+
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.
|
|
3459
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
3460
|
+
`);
|
|
3461
|
+
return true;
|
|
3462
|
+
}
|
|
3463
|
+
return false;
|
|
3464
|
+
};
|
|
3465
|
+
|
|
3425
3466
|
// src/functions/evaluate/choose-eval.ts
|
|
3426
|
-
var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInEdge(args);
|
|
3467
|
+
var chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInEdge(args);
|
|
3427
3468
|
|
|
3428
3469
|
// src/functions/evaluate/evaluate.ts
|
|
3429
3470
|
function evaluate({
|
|
@@ -3645,9 +3686,6 @@ var getSizesForBreakpoints = ({
|
|
|
3645
3686
|
// src/functions/camel-to-kebab-case.ts
|
|
3646
3687
|
var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
3647
3688
|
|
|
3648
|
-
// src/helpers/nullable.ts
|
|
3649
|
-
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
3650
|
-
|
|
3651
3689
|
// src/helpers/css.ts
|
|
3652
3690
|
var convertStyleMapToCSSArray = (style) => {
|
|
3653
3691
|
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
@@ -6199,7 +6237,7 @@ var getInteractionPropertiesForEvent = (event) => {
|
|
|
6199
6237
|
};
|
|
6200
6238
|
|
|
6201
6239
|
// src/constants/sdk-version.ts
|
|
6202
|
-
var SDK_VERSION = "0.12.
|
|
6240
|
+
var SDK_VERSION = "0.12.6";
|
|
6203
6241
|
|
|
6204
6242
|
// src/functions/register.ts
|
|
6205
6243
|
var registry = {};
|
|
@@ -6588,13 +6626,7 @@ function EnableEditor(props) {
|
|
|
6588
6626
|
evaluateJsCode();
|
|
6589
6627
|
}
|
|
6590
6628
|
createEffect2(
|
|
6591
|
-
on2(
|
|
6592
|
-
() => [
|
|
6593
|
-
props.builderContextSignal.content?.data?.jsCode,
|
|
6594
|
-
props.builderContextSignal.rootState
|
|
6595
|
-
],
|
|
6596
|
-
onUpdateFn_2
|
|
6597
|
-
)
|
|
6629
|
+
on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
|
|
6598
6630
|
);
|
|
6599
6631
|
function onUpdateFn_3() {
|
|
6600
6632
|
runHttpRequests();
|
package/lib/edge/index.js
CHANGED
|
@@ -248,27 +248,43 @@ var runInBrowser = ({
|
|
|
248
248
|
builder,
|
|
249
249
|
context,
|
|
250
250
|
event,
|
|
251
|
-
state: flattenState(
|
|
251
|
+
state: flattenState({
|
|
252
|
+
rootState,
|
|
253
|
+
localState,
|
|
254
|
+
rootSetState
|
|
255
|
+
})
|
|
252
256
|
});
|
|
253
257
|
return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
|
|
254
258
|
};
|
|
255
|
-
function flattenState(
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
+
function flattenState({
|
|
260
|
+
rootState,
|
|
261
|
+
localState,
|
|
262
|
+
rootSetState
|
|
263
|
+
}) {
|
|
259
264
|
return new Proxy(rootState, {
|
|
260
|
-
get: (
|
|
265
|
+
get: (target, prop) => {
|
|
261
266
|
if (localState && prop in localState) {
|
|
262
267
|
return localState[prop];
|
|
263
268
|
}
|
|
264
|
-
|
|
269
|
+
const val = target[prop];
|
|
270
|
+
if (typeof val === "object") {
|
|
271
|
+
return flattenState({
|
|
272
|
+
rootState: val,
|
|
273
|
+
localState: void 0,
|
|
274
|
+
rootSetState: rootSetState ? (subState) => {
|
|
275
|
+
target[prop] = subState;
|
|
276
|
+
rootSetState(target);
|
|
277
|
+
} : void 0
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
return val;
|
|
265
281
|
},
|
|
266
|
-
set: (
|
|
282
|
+
set: (target, prop, value) => {
|
|
267
283
|
if (localState && prop in localState) {
|
|
268
284
|
throw new Error("Writing to local state is not allowed as it is read-only.");
|
|
269
285
|
}
|
|
270
|
-
|
|
271
|
-
rootSetState?.(
|
|
286
|
+
target[prop] = value;
|
|
287
|
+
rootSetState?.(target);
|
|
272
288
|
return true;
|
|
273
289
|
}
|
|
274
290
|
});
|
|
@@ -3431,8 +3447,33 @@ theFunction();
|
|
|
3431
3447
|
}
|
|
3432
3448
|
};
|
|
3433
3449
|
|
|
3450
|
+
// src/helpers/nullable.ts
|
|
3451
|
+
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
3452
|
+
|
|
3453
|
+
// src/functions/is-node-runtime.ts
|
|
3454
|
+
function isNodeRuntime() {
|
|
3455
|
+
return typeof process !== "undefined" && checkIsDefined(process?.versions?.node);
|
|
3456
|
+
}
|
|
3457
|
+
|
|
3458
|
+
// src/functions/evaluate/should-force-browser-runtime-in-node.ts
|
|
3459
|
+
var shouldForceBrowserRuntimeInNode = () => {
|
|
3460
|
+
if (!isNodeRuntime())
|
|
3461
|
+
return false;
|
|
3462
|
+
const isArm64 = process.arch === "arm64";
|
|
3463
|
+
const isNode20 = process.version.startsWith("v20");
|
|
3464
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes("--no-node-snapshot");
|
|
3465
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
3466
|
+
logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
3467
|
+
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.
|
|
3468
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
3469
|
+
`);
|
|
3470
|
+
return true;
|
|
3471
|
+
}
|
|
3472
|
+
return false;
|
|
3473
|
+
};
|
|
3474
|
+
|
|
3434
3475
|
// src/functions/evaluate/choose-eval.ts
|
|
3435
|
-
var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInEdge(args);
|
|
3476
|
+
var chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInEdge(args);
|
|
3436
3477
|
|
|
3437
3478
|
// src/functions/evaluate/evaluate.ts
|
|
3438
3479
|
function evaluate({
|
|
@@ -3648,9 +3689,6 @@ var getSizesForBreakpoints = ({
|
|
|
3648
3689
|
// src/functions/camel-to-kebab-case.ts
|
|
3649
3690
|
var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
3650
3691
|
|
|
3651
|
-
// src/helpers/nullable.ts
|
|
3652
|
-
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
3653
|
-
|
|
3654
3692
|
// src/helpers/css.ts
|
|
3655
3693
|
var convertStyleMapToCSSArray = (style) => {
|
|
3656
3694
|
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
@@ -6511,7 +6549,7 @@ var getInteractionPropertiesForEvent = (event) => {
|
|
|
6511
6549
|
};
|
|
6512
6550
|
|
|
6513
6551
|
// src/constants/sdk-version.ts
|
|
6514
|
-
var SDK_VERSION = "0.12.
|
|
6552
|
+
var SDK_VERSION = "0.12.6";
|
|
6515
6553
|
|
|
6516
6554
|
// src/functions/register.ts
|
|
6517
6555
|
var registry = {};
|
|
@@ -6886,7 +6924,7 @@ function EnableEditor(props) {
|
|
|
6886
6924
|
function onUpdateFn_2() {
|
|
6887
6925
|
evaluateJsCode();
|
|
6888
6926
|
}
|
|
6889
|
-
createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode
|
|
6927
|
+
createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
|
|
6890
6928
|
function onUpdateFn_3() {
|
|
6891
6929
|
runHttpRequests();
|
|
6892
6930
|
}
|
package/lib/edge/index.jsx
CHANGED
|
@@ -237,27 +237,43 @@ var runInBrowser = ({
|
|
|
237
237
|
builder,
|
|
238
238
|
context,
|
|
239
239
|
event,
|
|
240
|
-
state: flattenState(
|
|
240
|
+
state: flattenState({
|
|
241
|
+
rootState,
|
|
242
|
+
localState,
|
|
243
|
+
rootSetState
|
|
244
|
+
})
|
|
241
245
|
});
|
|
242
246
|
return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
|
|
243
247
|
};
|
|
244
|
-
function flattenState(
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
+
function flattenState({
|
|
249
|
+
rootState,
|
|
250
|
+
localState,
|
|
251
|
+
rootSetState
|
|
252
|
+
}) {
|
|
248
253
|
return new Proxy(rootState, {
|
|
249
|
-
get: (
|
|
254
|
+
get: (target, prop) => {
|
|
250
255
|
if (localState && prop in localState) {
|
|
251
256
|
return localState[prop];
|
|
252
257
|
}
|
|
253
|
-
|
|
258
|
+
const val = target[prop];
|
|
259
|
+
if (typeof val === "object") {
|
|
260
|
+
return flattenState({
|
|
261
|
+
rootState: val,
|
|
262
|
+
localState: void 0,
|
|
263
|
+
rootSetState: rootSetState ? (subState) => {
|
|
264
|
+
target[prop] = subState;
|
|
265
|
+
rootSetState(target);
|
|
266
|
+
} : void 0
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
return val;
|
|
254
270
|
},
|
|
255
|
-
set: (
|
|
271
|
+
set: (target, prop, value) => {
|
|
256
272
|
if (localState && prop in localState) {
|
|
257
273
|
throw new Error("Writing to local state is not allowed as it is read-only.");
|
|
258
274
|
}
|
|
259
|
-
|
|
260
|
-
rootSetState?.(
|
|
275
|
+
target[prop] = value;
|
|
276
|
+
rootSetState?.(target);
|
|
261
277
|
return true;
|
|
262
278
|
}
|
|
263
279
|
});
|
|
@@ -3420,8 +3436,33 @@ theFunction();
|
|
|
3420
3436
|
}
|
|
3421
3437
|
};
|
|
3422
3438
|
|
|
3439
|
+
// src/helpers/nullable.ts
|
|
3440
|
+
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
3441
|
+
|
|
3442
|
+
// src/functions/is-node-runtime.ts
|
|
3443
|
+
function isNodeRuntime() {
|
|
3444
|
+
return typeof process !== "undefined" && checkIsDefined(process?.versions?.node);
|
|
3445
|
+
}
|
|
3446
|
+
|
|
3447
|
+
// src/functions/evaluate/should-force-browser-runtime-in-node.ts
|
|
3448
|
+
var shouldForceBrowserRuntimeInNode = () => {
|
|
3449
|
+
if (!isNodeRuntime())
|
|
3450
|
+
return false;
|
|
3451
|
+
const isArm64 = process.arch === "arm64";
|
|
3452
|
+
const isNode20 = process.version.startsWith("v20");
|
|
3453
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes("--no-node-snapshot");
|
|
3454
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
3455
|
+
logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
3456
|
+
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.
|
|
3457
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
3458
|
+
`);
|
|
3459
|
+
return true;
|
|
3460
|
+
}
|
|
3461
|
+
return false;
|
|
3462
|
+
};
|
|
3463
|
+
|
|
3423
3464
|
// src/functions/evaluate/choose-eval.ts
|
|
3424
|
-
var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInEdge(args);
|
|
3465
|
+
var chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInEdge(args);
|
|
3425
3466
|
|
|
3426
3467
|
// src/functions/evaluate/evaluate.ts
|
|
3427
3468
|
function evaluate({
|
|
@@ -3640,9 +3681,6 @@ var getSizesForBreakpoints = ({
|
|
|
3640
3681
|
// src/functions/camel-to-kebab-case.ts
|
|
3641
3682
|
var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
3642
3683
|
|
|
3643
|
-
// src/helpers/nullable.ts
|
|
3644
|
-
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
3645
|
-
|
|
3646
3684
|
// src/helpers/css.ts
|
|
3647
3685
|
var convertStyleMapToCSSArray = (style) => {
|
|
3648
3686
|
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
@@ -6185,7 +6223,7 @@ var getInteractionPropertiesForEvent = (event) => {
|
|
|
6185
6223
|
};
|
|
6186
6224
|
|
|
6187
6225
|
// src/constants/sdk-version.ts
|
|
6188
|
-
var SDK_VERSION = "0.12.
|
|
6226
|
+
var SDK_VERSION = "0.12.6";
|
|
6189
6227
|
|
|
6190
6228
|
// src/functions/register.ts
|
|
6191
6229
|
var registry = {};
|
|
@@ -6572,13 +6610,7 @@ function EnableEditor(props) {
|
|
|
6572
6610
|
evaluateJsCode();
|
|
6573
6611
|
}
|
|
6574
6612
|
createEffect2(
|
|
6575
|
-
on2(
|
|
6576
|
-
() => [
|
|
6577
|
-
props.builderContextSignal.content?.data?.jsCode,
|
|
6578
|
-
props.builderContextSignal.rootState
|
|
6579
|
-
],
|
|
6580
|
-
onUpdateFn_2
|
|
6581
|
-
)
|
|
6613
|
+
on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
|
|
6582
6614
|
);
|
|
6583
6615
|
function onUpdateFn_3() {
|
|
6584
6616
|
runHttpRequests();
|
package/lib/node/dev.js
CHANGED
|
@@ -245,27 +245,43 @@ var runInBrowser = ({
|
|
|
245
245
|
builder,
|
|
246
246
|
context,
|
|
247
247
|
event,
|
|
248
|
-
state: flattenState(
|
|
248
|
+
state: flattenState({
|
|
249
|
+
rootState,
|
|
250
|
+
localState,
|
|
251
|
+
rootSetState
|
|
252
|
+
})
|
|
249
253
|
});
|
|
250
254
|
return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
|
|
251
255
|
};
|
|
252
|
-
function flattenState(
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
+
function flattenState({
|
|
257
|
+
rootState,
|
|
258
|
+
localState,
|
|
259
|
+
rootSetState
|
|
260
|
+
}) {
|
|
256
261
|
return new Proxy(rootState, {
|
|
257
|
-
get: (
|
|
262
|
+
get: (target, prop) => {
|
|
258
263
|
if (localState && prop in localState) {
|
|
259
264
|
return localState[prop];
|
|
260
265
|
}
|
|
261
|
-
|
|
266
|
+
const val = target[prop];
|
|
267
|
+
if (typeof val === "object") {
|
|
268
|
+
return flattenState({
|
|
269
|
+
rootState: val,
|
|
270
|
+
localState: void 0,
|
|
271
|
+
rootSetState: rootSetState ? (subState) => {
|
|
272
|
+
target[prop] = subState;
|
|
273
|
+
rootSetState(target);
|
|
274
|
+
} : void 0
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
return val;
|
|
262
278
|
},
|
|
263
|
-
set: (
|
|
279
|
+
set: (target, prop, value) => {
|
|
264
280
|
if (localState && prop in localState) {
|
|
265
281
|
throw new Error("Writing to local state is not allowed as it is read-only.");
|
|
266
282
|
}
|
|
267
|
-
|
|
268
|
-
rootSetState?.(
|
|
283
|
+
target[prop] = value;
|
|
284
|
+
rootSetState?.(target);
|
|
269
285
|
return true;
|
|
270
286
|
}
|
|
271
287
|
});
|
|
@@ -407,8 +423,33 @@ var runInNode = ({
|
|
|
407
423
|
}
|
|
408
424
|
};
|
|
409
425
|
|
|
426
|
+
// src/helpers/nullable.ts
|
|
427
|
+
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
428
|
+
|
|
429
|
+
// src/functions/is-node-runtime.ts
|
|
430
|
+
function isNodeRuntime() {
|
|
431
|
+
return typeof process !== "undefined" && checkIsDefined(process?.versions?.node);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
// src/functions/evaluate/should-force-browser-runtime-in-node.ts
|
|
435
|
+
var shouldForceBrowserRuntimeInNode = () => {
|
|
436
|
+
if (!isNodeRuntime())
|
|
437
|
+
return false;
|
|
438
|
+
const isArm64 = process.arch === "arm64";
|
|
439
|
+
const isNode20 = process.version.startsWith("v20");
|
|
440
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes("--no-node-snapshot");
|
|
441
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
442
|
+
logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
443
|
+
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.
|
|
444
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
445
|
+
`);
|
|
446
|
+
return true;
|
|
447
|
+
}
|
|
448
|
+
return false;
|
|
449
|
+
};
|
|
450
|
+
|
|
410
451
|
// src/functions/evaluate/choose-eval.ts
|
|
411
|
-
var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInNode(args);
|
|
452
|
+
var chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInNode(args);
|
|
412
453
|
|
|
413
454
|
// src/functions/evaluate/evaluate.ts
|
|
414
455
|
function evaluate({
|
|
@@ -624,9 +665,6 @@ var getSizesForBreakpoints = ({
|
|
|
624
665
|
// src/functions/camel-to-kebab-case.ts
|
|
625
666
|
var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
626
667
|
|
|
627
|
-
// src/helpers/nullable.ts
|
|
628
|
-
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
629
|
-
|
|
630
668
|
// src/helpers/css.ts
|
|
631
669
|
var convertStyleMapToCSSArray = (style) => {
|
|
632
670
|
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
@@ -3496,7 +3534,7 @@ var getInteractionPropertiesForEvent = (event) => {
|
|
|
3496
3534
|
};
|
|
3497
3535
|
|
|
3498
3536
|
// src/constants/sdk-version.ts
|
|
3499
|
-
var SDK_VERSION = "0.12.
|
|
3537
|
+
var SDK_VERSION = "0.12.6";
|
|
3500
3538
|
|
|
3501
3539
|
// src/functions/register.ts
|
|
3502
3540
|
var registry = {};
|
|
@@ -3873,7 +3911,7 @@ function EnableEditor(props) {
|
|
|
3873
3911
|
function onUpdateFn_2() {
|
|
3874
3912
|
evaluateJsCode();
|
|
3875
3913
|
}
|
|
3876
|
-
createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode
|
|
3914
|
+
createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
|
|
3877
3915
|
function onUpdateFn_3() {
|
|
3878
3916
|
runHttpRequests();
|
|
3879
3917
|
}
|
package/lib/node/dev.jsx
CHANGED
|
@@ -231,27 +231,43 @@ var runInBrowser = ({
|
|
|
231
231
|
builder,
|
|
232
232
|
context,
|
|
233
233
|
event,
|
|
234
|
-
state: flattenState(
|
|
234
|
+
state: flattenState({
|
|
235
|
+
rootState,
|
|
236
|
+
localState,
|
|
237
|
+
rootSetState
|
|
238
|
+
})
|
|
235
239
|
});
|
|
236
240
|
return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
|
|
237
241
|
};
|
|
238
|
-
function flattenState(
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
+
function flattenState({
|
|
243
|
+
rootState,
|
|
244
|
+
localState,
|
|
245
|
+
rootSetState
|
|
246
|
+
}) {
|
|
242
247
|
return new Proxy(rootState, {
|
|
243
|
-
get: (
|
|
248
|
+
get: (target, prop) => {
|
|
244
249
|
if (localState && prop in localState) {
|
|
245
250
|
return localState[prop];
|
|
246
251
|
}
|
|
247
|
-
|
|
252
|
+
const val = target[prop];
|
|
253
|
+
if (typeof val === "object") {
|
|
254
|
+
return flattenState({
|
|
255
|
+
rootState: val,
|
|
256
|
+
localState: void 0,
|
|
257
|
+
rootSetState: rootSetState ? (subState) => {
|
|
258
|
+
target[prop] = subState;
|
|
259
|
+
rootSetState(target);
|
|
260
|
+
} : void 0
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
return val;
|
|
248
264
|
},
|
|
249
|
-
set: (
|
|
265
|
+
set: (target, prop, value) => {
|
|
250
266
|
if (localState && prop in localState) {
|
|
251
267
|
throw new Error("Writing to local state is not allowed as it is read-only.");
|
|
252
268
|
}
|
|
253
|
-
|
|
254
|
-
rootSetState?.(
|
|
269
|
+
target[prop] = value;
|
|
270
|
+
rootSetState?.(target);
|
|
255
271
|
return true;
|
|
256
272
|
}
|
|
257
273
|
});
|
|
@@ -396,8 +412,33 @@ var runInNode = ({
|
|
|
396
412
|
}
|
|
397
413
|
};
|
|
398
414
|
|
|
415
|
+
// src/helpers/nullable.ts
|
|
416
|
+
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
417
|
+
|
|
418
|
+
// src/functions/is-node-runtime.ts
|
|
419
|
+
function isNodeRuntime() {
|
|
420
|
+
return typeof process !== "undefined" && checkIsDefined(process?.versions?.node);
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
// src/functions/evaluate/should-force-browser-runtime-in-node.ts
|
|
424
|
+
var shouldForceBrowserRuntimeInNode = () => {
|
|
425
|
+
if (!isNodeRuntime())
|
|
426
|
+
return false;
|
|
427
|
+
const isArm64 = process.arch === "arm64";
|
|
428
|
+
const isNode20 = process.version.startsWith("v20");
|
|
429
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes("--no-node-snapshot");
|
|
430
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
431
|
+
logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
432
|
+
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.
|
|
433
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
434
|
+
`);
|
|
435
|
+
return true;
|
|
436
|
+
}
|
|
437
|
+
return false;
|
|
438
|
+
};
|
|
439
|
+
|
|
399
440
|
// src/functions/evaluate/choose-eval.ts
|
|
400
|
-
var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInNode(args);
|
|
441
|
+
var chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInNode(args);
|
|
401
442
|
|
|
402
443
|
// src/functions/evaluate/evaluate.ts
|
|
403
444
|
function evaluate({
|
|
@@ -616,9 +657,6 @@ var getSizesForBreakpoints = ({
|
|
|
616
657
|
// src/functions/camel-to-kebab-case.ts
|
|
617
658
|
var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
618
659
|
|
|
619
|
-
// src/helpers/nullable.ts
|
|
620
|
-
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
621
|
-
|
|
622
660
|
// src/helpers/css.ts
|
|
623
661
|
var convertStyleMapToCSSArray = (style) => {
|
|
624
662
|
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
@@ -3170,7 +3208,7 @@ var getInteractionPropertiesForEvent = (event) => {
|
|
|
3170
3208
|
};
|
|
3171
3209
|
|
|
3172
3210
|
// src/constants/sdk-version.ts
|
|
3173
|
-
var SDK_VERSION = "0.12.
|
|
3211
|
+
var SDK_VERSION = "0.12.6";
|
|
3174
3212
|
|
|
3175
3213
|
// src/functions/register.ts
|
|
3176
3214
|
var registry = {};
|
|
@@ -3559,13 +3597,7 @@ function EnableEditor(props) {
|
|
|
3559
3597
|
evaluateJsCode();
|
|
3560
3598
|
}
|
|
3561
3599
|
createEffect2(
|
|
3562
|
-
on2(
|
|
3563
|
-
() => [
|
|
3564
|
-
props.builderContextSignal.content?.data?.jsCode,
|
|
3565
|
-
props.builderContextSignal.rootState
|
|
3566
|
-
],
|
|
3567
|
-
onUpdateFn_2
|
|
3568
|
-
)
|
|
3600
|
+
on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
|
|
3569
3601
|
);
|
|
3570
3602
|
function onUpdateFn_3() {
|
|
3571
3603
|
runHttpRequests();
|