@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/browser/dev.js
CHANGED
|
@@ -244,34 +244,75 @@ var runInBrowser = ({
|
|
|
244
244
|
builder,
|
|
245
245
|
context,
|
|
246
246
|
event,
|
|
247
|
-
state: flattenState(
|
|
247
|
+
state: flattenState({
|
|
248
|
+
rootState,
|
|
249
|
+
localState,
|
|
250
|
+
rootSetState
|
|
251
|
+
})
|
|
248
252
|
});
|
|
249
253
|
return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
|
|
250
254
|
};
|
|
251
|
-
function flattenState(
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
+
function flattenState({
|
|
256
|
+
rootState,
|
|
257
|
+
localState,
|
|
258
|
+
rootSetState
|
|
259
|
+
}) {
|
|
255
260
|
return new Proxy(rootState, {
|
|
256
|
-
get: (
|
|
261
|
+
get: (target, prop) => {
|
|
257
262
|
if (localState && prop in localState) {
|
|
258
263
|
return localState[prop];
|
|
259
264
|
}
|
|
260
|
-
|
|
265
|
+
const val = target[prop];
|
|
266
|
+
if (typeof val === "object") {
|
|
267
|
+
return flattenState({
|
|
268
|
+
rootState: val,
|
|
269
|
+
localState: void 0,
|
|
270
|
+
rootSetState: rootSetState ? (subState) => {
|
|
271
|
+
target[prop] = subState;
|
|
272
|
+
rootSetState(target);
|
|
273
|
+
} : void 0
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
return val;
|
|
261
277
|
},
|
|
262
|
-
set: (
|
|
278
|
+
set: (target, prop, value) => {
|
|
263
279
|
if (localState && prop in localState) {
|
|
264
280
|
throw new Error("Writing to local state is not allowed as it is read-only.");
|
|
265
281
|
}
|
|
266
|
-
|
|
267
|
-
rootSetState?.(
|
|
282
|
+
target[prop] = value;
|
|
283
|
+
rootSetState?.(target);
|
|
268
284
|
return true;
|
|
269
285
|
}
|
|
270
286
|
});
|
|
271
287
|
}
|
|
272
288
|
|
|
289
|
+
// src/helpers/nullable.ts
|
|
290
|
+
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
291
|
+
|
|
292
|
+
// src/functions/is-node-runtime.ts
|
|
293
|
+
function isNodeRuntime() {
|
|
294
|
+
return typeof process !== "undefined" && checkIsDefined(process?.versions?.node);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// src/functions/evaluate/should-force-browser-runtime-in-node.ts
|
|
298
|
+
var shouldForceBrowserRuntimeInNode = () => {
|
|
299
|
+
if (!isNodeRuntime())
|
|
300
|
+
return false;
|
|
301
|
+
const isArm64 = process.arch === "arm64";
|
|
302
|
+
const isNode20 = process.version.startsWith("v20");
|
|
303
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes("--no-node-snapshot");
|
|
304
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
305
|
+
logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
306
|
+
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.
|
|
307
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
308
|
+
`);
|
|
309
|
+
return true;
|
|
310
|
+
}
|
|
311
|
+
return false;
|
|
312
|
+
};
|
|
313
|
+
|
|
273
314
|
// src/functions/evaluate/choose-eval.ts
|
|
274
|
-
var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInBrowser(args);
|
|
315
|
+
var chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInBrowser(args);
|
|
275
316
|
|
|
276
317
|
// src/functions/evaluate/evaluate.ts
|
|
277
318
|
function evaluate({
|
|
@@ -500,9 +541,6 @@ var getSizesForBreakpoints = ({
|
|
|
500
541
|
// src/functions/camel-to-kebab-case.ts
|
|
501
542
|
var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
502
543
|
|
|
503
|
-
// src/helpers/nullable.ts
|
|
504
|
-
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
505
|
-
|
|
506
544
|
// src/helpers/css.ts
|
|
507
545
|
var convertStyleMapToCSSArray = (style) => {
|
|
508
546
|
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
@@ -3372,7 +3410,7 @@ var getInteractionPropertiesForEvent = (event) => {
|
|
|
3372
3410
|
};
|
|
3373
3411
|
|
|
3374
3412
|
// src/constants/sdk-version.ts
|
|
3375
|
-
var SDK_VERSION = "0.12.
|
|
3413
|
+
var SDK_VERSION = "0.12.6";
|
|
3376
3414
|
|
|
3377
3415
|
// src/functions/register.ts
|
|
3378
3416
|
var registry = {};
|
|
@@ -3749,7 +3787,7 @@ function EnableEditor(props) {
|
|
|
3749
3787
|
function onUpdateFn_2() {
|
|
3750
3788
|
evaluateJsCode();
|
|
3751
3789
|
}
|
|
3752
|
-
createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode
|
|
3790
|
+
createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
|
|
3753
3791
|
function onUpdateFn_3() {
|
|
3754
3792
|
runHttpRequests();
|
|
3755
3793
|
}
|
package/lib/browser/dev.jsx
CHANGED
|
@@ -231,34 +231,75 @@ 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
|
});
|
|
258
274
|
}
|
|
259
275
|
|
|
276
|
+
// src/helpers/nullable.ts
|
|
277
|
+
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
278
|
+
|
|
279
|
+
// src/functions/is-node-runtime.ts
|
|
280
|
+
function isNodeRuntime() {
|
|
281
|
+
return typeof process !== "undefined" && checkIsDefined(process?.versions?.node);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// src/functions/evaluate/should-force-browser-runtime-in-node.ts
|
|
285
|
+
var shouldForceBrowserRuntimeInNode = () => {
|
|
286
|
+
if (!isNodeRuntime())
|
|
287
|
+
return false;
|
|
288
|
+
const isArm64 = process.arch === "arm64";
|
|
289
|
+
const isNode20 = process.version.startsWith("v20");
|
|
290
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes("--no-node-snapshot");
|
|
291
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
292
|
+
logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
293
|
+
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.
|
|
294
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
295
|
+
`);
|
|
296
|
+
return true;
|
|
297
|
+
}
|
|
298
|
+
return false;
|
|
299
|
+
};
|
|
300
|
+
|
|
260
301
|
// src/functions/evaluate/choose-eval.ts
|
|
261
|
-
var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInBrowser(args);
|
|
302
|
+
var chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInBrowser(args);
|
|
262
303
|
|
|
263
304
|
// src/functions/evaluate/evaluate.ts
|
|
264
305
|
function evaluate({
|
|
@@ -490,9 +531,6 @@ var getSizesForBreakpoints = ({
|
|
|
490
531
|
// src/functions/camel-to-kebab-case.ts
|
|
491
532
|
var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
492
533
|
|
|
493
|
-
// src/helpers/nullable.ts
|
|
494
|
-
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
495
|
-
|
|
496
534
|
// src/helpers/css.ts
|
|
497
535
|
var convertStyleMapToCSSArray = (style) => {
|
|
498
536
|
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
@@ -3044,7 +3082,7 @@ var getInteractionPropertiesForEvent = (event) => {
|
|
|
3044
3082
|
};
|
|
3045
3083
|
|
|
3046
3084
|
// src/constants/sdk-version.ts
|
|
3047
|
-
var SDK_VERSION = "0.12.
|
|
3085
|
+
var SDK_VERSION = "0.12.6";
|
|
3048
3086
|
|
|
3049
3087
|
// src/functions/register.ts
|
|
3050
3088
|
var registry = {};
|
|
@@ -3433,13 +3471,7 @@ function EnableEditor(props) {
|
|
|
3433
3471
|
evaluateJsCode();
|
|
3434
3472
|
}
|
|
3435
3473
|
createEffect2(
|
|
3436
|
-
on2(
|
|
3437
|
-
() => [
|
|
3438
|
-
props.builderContextSignal.content?.data?.jsCode,
|
|
3439
|
-
props.builderContextSignal.rootState
|
|
3440
|
-
],
|
|
3441
|
-
onUpdateFn_2
|
|
3442
|
-
)
|
|
3474
|
+
on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
|
|
3443
3475
|
);
|
|
3444
3476
|
function onUpdateFn_3() {
|
|
3445
3477
|
runHttpRequests();
|
package/lib/browser/index.js
CHANGED
|
@@ -242,34 +242,75 @@ var runInBrowser = ({
|
|
|
242
242
|
builder,
|
|
243
243
|
context,
|
|
244
244
|
event,
|
|
245
|
-
state: flattenState(
|
|
245
|
+
state: flattenState({
|
|
246
|
+
rootState,
|
|
247
|
+
localState,
|
|
248
|
+
rootSetState
|
|
249
|
+
})
|
|
246
250
|
});
|
|
247
251
|
return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
|
|
248
252
|
};
|
|
249
|
-
function flattenState(
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
+
function flattenState({
|
|
254
|
+
rootState,
|
|
255
|
+
localState,
|
|
256
|
+
rootSetState
|
|
257
|
+
}) {
|
|
253
258
|
return new Proxy(rootState, {
|
|
254
|
-
get: (
|
|
259
|
+
get: (target, prop) => {
|
|
255
260
|
if (localState && prop in localState) {
|
|
256
261
|
return localState[prop];
|
|
257
262
|
}
|
|
258
|
-
|
|
263
|
+
const val = target[prop];
|
|
264
|
+
if (typeof val === "object") {
|
|
265
|
+
return flattenState({
|
|
266
|
+
rootState: val,
|
|
267
|
+
localState: void 0,
|
|
268
|
+
rootSetState: rootSetState ? (subState) => {
|
|
269
|
+
target[prop] = subState;
|
|
270
|
+
rootSetState(target);
|
|
271
|
+
} : void 0
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
return val;
|
|
259
275
|
},
|
|
260
|
-
set: (
|
|
276
|
+
set: (target, prop, value) => {
|
|
261
277
|
if (localState && prop in localState) {
|
|
262
278
|
throw new Error("Writing to local state is not allowed as it is read-only.");
|
|
263
279
|
}
|
|
264
|
-
|
|
265
|
-
rootSetState?.(
|
|
280
|
+
target[prop] = value;
|
|
281
|
+
rootSetState?.(target);
|
|
266
282
|
return true;
|
|
267
283
|
}
|
|
268
284
|
});
|
|
269
285
|
}
|
|
270
286
|
|
|
287
|
+
// src/helpers/nullable.ts
|
|
288
|
+
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
289
|
+
|
|
290
|
+
// src/functions/is-node-runtime.ts
|
|
291
|
+
function isNodeRuntime() {
|
|
292
|
+
return typeof process !== "undefined" && checkIsDefined(process?.versions?.node);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// src/functions/evaluate/should-force-browser-runtime-in-node.ts
|
|
296
|
+
var shouldForceBrowserRuntimeInNode = () => {
|
|
297
|
+
if (!isNodeRuntime())
|
|
298
|
+
return false;
|
|
299
|
+
const isArm64 = process.arch === "arm64";
|
|
300
|
+
const isNode20 = process.version.startsWith("v20");
|
|
301
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes("--no-node-snapshot");
|
|
302
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
303
|
+
logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
304
|
+
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.
|
|
305
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
306
|
+
`);
|
|
307
|
+
return true;
|
|
308
|
+
}
|
|
309
|
+
return false;
|
|
310
|
+
};
|
|
311
|
+
|
|
271
312
|
// src/functions/evaluate/choose-eval.ts
|
|
272
|
-
var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInBrowser(args);
|
|
313
|
+
var chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInBrowser(args);
|
|
273
314
|
|
|
274
315
|
// src/functions/evaluate/evaluate.ts
|
|
275
316
|
function evaluate({
|
|
@@ -495,9 +536,6 @@ var getSizesForBreakpoints = ({
|
|
|
495
536
|
// src/functions/camel-to-kebab-case.ts
|
|
496
537
|
var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
497
538
|
|
|
498
|
-
// src/helpers/nullable.ts
|
|
499
|
-
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
500
|
-
|
|
501
539
|
// src/helpers/css.ts
|
|
502
540
|
var convertStyleMapToCSSArray = (style) => {
|
|
503
541
|
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
@@ -3358,7 +3396,7 @@ var getInteractionPropertiesForEvent = (event) => {
|
|
|
3358
3396
|
};
|
|
3359
3397
|
|
|
3360
3398
|
// src/constants/sdk-version.ts
|
|
3361
|
-
var SDK_VERSION = "0.12.
|
|
3399
|
+
var SDK_VERSION = "0.12.6";
|
|
3362
3400
|
|
|
3363
3401
|
// src/functions/register.ts
|
|
3364
3402
|
var registry = {};
|
|
@@ -3733,7 +3771,7 @@ function EnableEditor(props) {
|
|
|
3733
3771
|
function onUpdateFn_2() {
|
|
3734
3772
|
evaluateJsCode();
|
|
3735
3773
|
}
|
|
3736
|
-
createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode
|
|
3774
|
+
createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
|
|
3737
3775
|
function onUpdateFn_3() {
|
|
3738
3776
|
runHttpRequests();
|
|
3739
3777
|
}
|
package/lib/browser/index.jsx
CHANGED
|
@@ -229,34 +229,75 @@ var runInBrowser = ({
|
|
|
229
229
|
builder,
|
|
230
230
|
context,
|
|
231
231
|
event,
|
|
232
|
-
state: flattenState(
|
|
232
|
+
state: flattenState({
|
|
233
|
+
rootState,
|
|
234
|
+
localState,
|
|
235
|
+
rootSetState
|
|
236
|
+
})
|
|
233
237
|
});
|
|
234
238
|
return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
|
|
235
239
|
};
|
|
236
|
-
function flattenState(
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
+
function flattenState({
|
|
241
|
+
rootState,
|
|
242
|
+
localState,
|
|
243
|
+
rootSetState
|
|
244
|
+
}) {
|
|
240
245
|
return new Proxy(rootState, {
|
|
241
|
-
get: (
|
|
246
|
+
get: (target, prop) => {
|
|
242
247
|
if (localState && prop in localState) {
|
|
243
248
|
return localState[prop];
|
|
244
249
|
}
|
|
245
|
-
|
|
250
|
+
const val = target[prop];
|
|
251
|
+
if (typeof val === "object") {
|
|
252
|
+
return flattenState({
|
|
253
|
+
rootState: val,
|
|
254
|
+
localState: void 0,
|
|
255
|
+
rootSetState: rootSetState ? (subState) => {
|
|
256
|
+
target[prop] = subState;
|
|
257
|
+
rootSetState(target);
|
|
258
|
+
} : void 0
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
return val;
|
|
246
262
|
},
|
|
247
|
-
set: (
|
|
263
|
+
set: (target, prop, value) => {
|
|
248
264
|
if (localState && prop in localState) {
|
|
249
265
|
throw new Error("Writing to local state is not allowed as it is read-only.");
|
|
250
266
|
}
|
|
251
|
-
|
|
252
|
-
rootSetState?.(
|
|
267
|
+
target[prop] = value;
|
|
268
|
+
rootSetState?.(target);
|
|
253
269
|
return true;
|
|
254
270
|
}
|
|
255
271
|
});
|
|
256
272
|
}
|
|
257
273
|
|
|
274
|
+
// src/helpers/nullable.ts
|
|
275
|
+
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
276
|
+
|
|
277
|
+
// src/functions/is-node-runtime.ts
|
|
278
|
+
function isNodeRuntime() {
|
|
279
|
+
return typeof process !== "undefined" && checkIsDefined(process?.versions?.node);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
// src/functions/evaluate/should-force-browser-runtime-in-node.ts
|
|
283
|
+
var shouldForceBrowserRuntimeInNode = () => {
|
|
284
|
+
if (!isNodeRuntime())
|
|
285
|
+
return false;
|
|
286
|
+
const isArm64 = process.arch === "arm64";
|
|
287
|
+
const isNode20 = process.version.startsWith("v20");
|
|
288
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes("--no-node-snapshot");
|
|
289
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
290
|
+
logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
291
|
+
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.
|
|
292
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
293
|
+
`);
|
|
294
|
+
return true;
|
|
295
|
+
}
|
|
296
|
+
return false;
|
|
297
|
+
};
|
|
298
|
+
|
|
258
299
|
// src/functions/evaluate/choose-eval.ts
|
|
259
|
-
var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInBrowser(args);
|
|
300
|
+
var chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInBrowser(args);
|
|
260
301
|
|
|
261
302
|
// src/functions/evaluate/evaluate.ts
|
|
262
303
|
function evaluate({
|
|
@@ -485,9 +526,6 @@ var getSizesForBreakpoints = ({
|
|
|
485
526
|
// src/functions/camel-to-kebab-case.ts
|
|
486
527
|
var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
487
528
|
|
|
488
|
-
// src/helpers/nullable.ts
|
|
489
|
-
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
490
|
-
|
|
491
529
|
// src/helpers/css.ts
|
|
492
530
|
var convertStyleMapToCSSArray = (style) => {
|
|
493
531
|
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
@@ -3030,7 +3068,7 @@ var getInteractionPropertiesForEvent = (event) => {
|
|
|
3030
3068
|
};
|
|
3031
3069
|
|
|
3032
3070
|
// src/constants/sdk-version.ts
|
|
3033
|
-
var SDK_VERSION = "0.12.
|
|
3071
|
+
var SDK_VERSION = "0.12.6";
|
|
3034
3072
|
|
|
3035
3073
|
// src/functions/register.ts
|
|
3036
3074
|
var registry = {};
|
|
@@ -3417,13 +3455,7 @@ function EnableEditor(props) {
|
|
|
3417
3455
|
evaluateJsCode();
|
|
3418
3456
|
}
|
|
3419
3457
|
createEffect2(
|
|
3420
|
-
on2(
|
|
3421
|
-
() => [
|
|
3422
|
-
props.builderContextSignal.content?.data?.jsCode,
|
|
3423
|
-
props.builderContextSignal.rootState
|
|
3424
|
-
],
|
|
3425
|
-
onUpdateFn_2
|
|
3426
|
-
)
|
|
3458
|
+
on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
|
|
3427
3459
|
);
|
|
3428
3460
|
function onUpdateFn_3() {
|
|
3429
3461
|
runHttpRequests();
|
package/lib/edge/dev.js
CHANGED
|
@@ -250,27 +250,43 @@ var runInBrowser = ({
|
|
|
250
250
|
builder,
|
|
251
251
|
context,
|
|
252
252
|
event,
|
|
253
|
-
state: flattenState(
|
|
253
|
+
state: flattenState({
|
|
254
|
+
rootState,
|
|
255
|
+
localState,
|
|
256
|
+
rootSetState
|
|
257
|
+
})
|
|
254
258
|
});
|
|
255
259
|
return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
|
|
256
260
|
};
|
|
257
|
-
function flattenState(
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
+
function flattenState({
|
|
262
|
+
rootState,
|
|
263
|
+
localState,
|
|
264
|
+
rootSetState
|
|
265
|
+
}) {
|
|
261
266
|
return new Proxy(rootState, {
|
|
262
|
-
get: (
|
|
267
|
+
get: (target, prop) => {
|
|
263
268
|
if (localState && prop in localState) {
|
|
264
269
|
return localState[prop];
|
|
265
270
|
}
|
|
266
|
-
|
|
271
|
+
const val = target[prop];
|
|
272
|
+
if (typeof val === "object") {
|
|
273
|
+
return flattenState({
|
|
274
|
+
rootState: val,
|
|
275
|
+
localState: void 0,
|
|
276
|
+
rootSetState: rootSetState ? (subState) => {
|
|
277
|
+
target[prop] = subState;
|
|
278
|
+
rootSetState(target);
|
|
279
|
+
} : void 0
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
return val;
|
|
267
283
|
},
|
|
268
|
-
set: (
|
|
284
|
+
set: (target, prop, value) => {
|
|
269
285
|
if (localState && prop in localState) {
|
|
270
286
|
throw new Error("Writing to local state is not allowed as it is read-only.");
|
|
271
287
|
}
|
|
272
|
-
|
|
273
|
-
rootSetState?.(
|
|
288
|
+
target[prop] = value;
|
|
289
|
+
rootSetState?.(target);
|
|
274
290
|
return true;
|
|
275
291
|
}
|
|
276
292
|
});
|
|
@@ -3433,8 +3449,33 @@ theFunction();
|
|
|
3433
3449
|
}
|
|
3434
3450
|
};
|
|
3435
3451
|
|
|
3452
|
+
// src/helpers/nullable.ts
|
|
3453
|
+
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
3454
|
+
|
|
3455
|
+
// src/functions/is-node-runtime.ts
|
|
3456
|
+
function isNodeRuntime() {
|
|
3457
|
+
return typeof process !== "undefined" && checkIsDefined(process?.versions?.node);
|
|
3458
|
+
}
|
|
3459
|
+
|
|
3460
|
+
// src/functions/evaluate/should-force-browser-runtime-in-node.ts
|
|
3461
|
+
var shouldForceBrowserRuntimeInNode = () => {
|
|
3462
|
+
if (!isNodeRuntime())
|
|
3463
|
+
return false;
|
|
3464
|
+
const isArm64 = process.arch === "arm64";
|
|
3465
|
+
const isNode20 = process.version.startsWith("v20");
|
|
3466
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes("--no-node-snapshot");
|
|
3467
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
3468
|
+
logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
3469
|
+
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.
|
|
3470
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
3471
|
+
`);
|
|
3472
|
+
return true;
|
|
3473
|
+
}
|
|
3474
|
+
return false;
|
|
3475
|
+
};
|
|
3476
|
+
|
|
3436
3477
|
// src/functions/evaluate/choose-eval.ts
|
|
3437
|
-
var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInEdge(args);
|
|
3478
|
+
var chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInEdge(args);
|
|
3438
3479
|
|
|
3439
3480
|
// src/functions/evaluate/evaluate.ts
|
|
3440
3481
|
function evaluate({
|
|
@@ -3653,9 +3694,6 @@ var getSizesForBreakpoints = ({
|
|
|
3653
3694
|
// src/functions/camel-to-kebab-case.ts
|
|
3654
3695
|
var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
|
|
3655
3696
|
|
|
3656
|
-
// src/helpers/nullable.ts
|
|
3657
|
-
var checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
|
|
3658
|
-
|
|
3659
3697
|
// src/helpers/css.ts
|
|
3660
3698
|
var convertStyleMapToCSSArray = (style) => {
|
|
3661
3699
|
const cssProps = Object.entries(style).map(([key, value]) => {
|
|
@@ -6525,7 +6563,7 @@ var getInteractionPropertiesForEvent = (event) => {
|
|
|
6525
6563
|
};
|
|
6526
6564
|
|
|
6527
6565
|
// src/constants/sdk-version.ts
|
|
6528
|
-
var SDK_VERSION = "0.12.
|
|
6566
|
+
var SDK_VERSION = "0.12.6";
|
|
6529
6567
|
|
|
6530
6568
|
// src/functions/register.ts
|
|
6531
6569
|
var registry = {};
|
|
@@ -6902,7 +6940,7 @@ function EnableEditor(props) {
|
|
|
6902
6940
|
function onUpdateFn_2() {
|
|
6903
6941
|
evaluateJsCode();
|
|
6904
6942
|
}
|
|
6905
|
-
createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode
|
|
6943
|
+
createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
|
|
6906
6944
|
function onUpdateFn_3() {
|
|
6907
6945
|
runHttpRequests();
|
|
6908
6946
|
}
|