@builder.io/sdk-solid 0.12.5 → 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.
@@ -244,27 +244,43 @@ var runInBrowser = ({
244
244
  builder,
245
245
  context,
246
246
  event,
247
- state: flattenState(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
252
- if (rootState === localState) {
253
- throw new Error("rootState === localState");
254
- }
255
+ function flattenState({
256
+ rootState,
257
+ localState,
258
+ rootSetState
259
+ }) {
255
260
  return new Proxy(rootState, {
256
- get: (_, prop) => {
261
+ get: (target, prop) => {
257
262
  if (localState && prop in localState) {
258
263
  return localState[prop];
259
264
  }
260
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
267
- rootSetState?.(rootState);
282
+ target[prop] = value;
283
+ rootSetState?.(target);
268
284
  return true;
269
285
  }
270
286
  });
@@ -3394,7 +3410,7 @@ var getInteractionPropertiesForEvent = (event) => {
3394
3410
  };
3395
3411
 
3396
3412
  // src/constants/sdk-version.ts
3397
- var SDK_VERSION = "0.12.5";
3413
+ var SDK_VERSION = "0.12.6";
3398
3414
 
3399
3415
  // src/functions/register.ts
3400
3416
  var registry = {};
@@ -3771,7 +3787,7 @@ function EnableEditor(props) {
3771
3787
  function onUpdateFn_2() {
3772
3788
  evaluateJsCode();
3773
3789
  }
3774
- createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode, props.builderContextSignal.rootState], onUpdateFn_2));
3790
+ createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
3775
3791
  function onUpdateFn_3() {
3776
3792
  runHttpRequests();
3777
3793
  }
@@ -231,27 +231,43 @@ var runInBrowser = ({
231
231
  builder,
232
232
  context,
233
233
  event,
234
- state: flattenState(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
239
- if (rootState === localState) {
240
- throw new Error("rootState === localState");
241
- }
242
+ function flattenState({
243
+ rootState,
244
+ localState,
245
+ rootSetState
246
+ }) {
242
247
  return new Proxy(rootState, {
243
- get: (_, prop) => {
248
+ get: (target, prop) => {
244
249
  if (localState && prop in localState) {
245
250
  return localState[prop];
246
251
  }
247
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
254
- rootSetState?.(rootState);
269
+ target[prop] = value;
270
+ rootSetState?.(target);
255
271
  return true;
256
272
  }
257
273
  });
@@ -3066,7 +3082,7 @@ var getInteractionPropertiesForEvent = (event) => {
3066
3082
  };
3067
3083
 
3068
3084
  // src/constants/sdk-version.ts
3069
- var SDK_VERSION = "0.12.5";
3085
+ var SDK_VERSION = "0.12.6";
3070
3086
 
3071
3087
  // src/functions/register.ts
3072
3088
  var registry = {};
@@ -3455,13 +3471,7 @@ function EnableEditor(props) {
3455
3471
  evaluateJsCode();
3456
3472
  }
3457
3473
  createEffect2(
3458
- on2(
3459
- () => [
3460
- props.builderContextSignal.content?.data?.jsCode,
3461
- props.builderContextSignal.rootState
3462
- ],
3463
- onUpdateFn_2
3464
- )
3474
+ on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
3465
3475
  );
3466
3476
  function onUpdateFn_3() {
3467
3477
  runHttpRequests();
@@ -242,27 +242,43 @@ var runInBrowser = ({
242
242
  builder,
243
243
  context,
244
244
  event,
245
- state: flattenState(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
250
- if (rootState === localState) {
251
- throw new Error("rootState === localState");
252
- }
253
+ function flattenState({
254
+ rootState,
255
+ localState,
256
+ rootSetState
257
+ }) {
253
258
  return new Proxy(rootState, {
254
- get: (_, prop) => {
259
+ get: (target, prop) => {
255
260
  if (localState && prop in localState) {
256
261
  return localState[prop];
257
262
  }
258
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
265
- rootSetState?.(rootState);
280
+ target[prop] = value;
281
+ rootSetState?.(target);
266
282
  return true;
267
283
  }
268
284
  });
@@ -3380,7 +3396,7 @@ var getInteractionPropertiesForEvent = (event) => {
3380
3396
  };
3381
3397
 
3382
3398
  // src/constants/sdk-version.ts
3383
- var SDK_VERSION = "0.12.5";
3399
+ var SDK_VERSION = "0.12.6";
3384
3400
 
3385
3401
  // src/functions/register.ts
3386
3402
  var registry = {};
@@ -3755,7 +3771,7 @@ function EnableEditor(props) {
3755
3771
  function onUpdateFn_2() {
3756
3772
  evaluateJsCode();
3757
3773
  }
3758
- createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode, props.builderContextSignal.rootState], onUpdateFn_2));
3774
+ createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
3759
3775
  function onUpdateFn_3() {
3760
3776
  runHttpRequests();
3761
3777
  }
@@ -229,27 +229,43 @@ var runInBrowser = ({
229
229
  builder,
230
230
  context,
231
231
  event,
232
- state: flattenState(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
237
- if (rootState === localState) {
238
- throw new Error("rootState === localState");
239
- }
240
+ function flattenState({
241
+ rootState,
242
+ localState,
243
+ rootSetState
244
+ }) {
240
245
  return new Proxy(rootState, {
241
- get: (_, prop) => {
246
+ get: (target, prop) => {
242
247
  if (localState && prop in localState) {
243
248
  return localState[prop];
244
249
  }
245
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
252
- rootSetState?.(rootState);
267
+ target[prop] = value;
268
+ rootSetState?.(target);
253
269
  return true;
254
270
  }
255
271
  });
@@ -3052,7 +3068,7 @@ var getInteractionPropertiesForEvent = (event) => {
3052
3068
  };
3053
3069
 
3054
3070
  // src/constants/sdk-version.ts
3055
- var SDK_VERSION = "0.12.5";
3071
+ var SDK_VERSION = "0.12.6";
3056
3072
 
3057
3073
  // src/functions/register.ts
3058
3074
  var registry = {};
@@ -3439,13 +3455,7 @@ function EnableEditor(props) {
3439
3455
  evaluateJsCode();
3440
3456
  }
3441
3457
  createEffect2(
3442
- on2(
3443
- () => [
3444
- props.builderContextSignal.content?.data?.jsCode,
3445
- props.builderContextSignal.rootState
3446
- ],
3447
- onUpdateFn_2
3448
- )
3458
+ on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
3449
3459
  );
3450
3460
  function onUpdateFn_3() {
3451
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(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
258
- if (rootState === localState) {
259
- throw new Error("rootState === localState");
260
- }
261
+ function flattenState({
262
+ rootState,
263
+ localState,
264
+ rootSetState
265
+ }) {
261
266
  return new Proxy(rootState, {
262
- get: (_, prop) => {
267
+ get: (target, prop) => {
263
268
  if (localState && prop in localState) {
264
269
  return localState[prop];
265
270
  }
266
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
273
- rootSetState?.(rootState);
288
+ target[prop] = value;
289
+ rootSetState?.(target);
274
290
  return true;
275
291
  }
276
292
  });
@@ -6547,7 +6563,7 @@ var getInteractionPropertiesForEvent = (event) => {
6547
6563
  };
6548
6564
 
6549
6565
  // src/constants/sdk-version.ts
6550
- var SDK_VERSION = "0.12.5";
6566
+ var SDK_VERSION = "0.12.6";
6551
6567
 
6552
6568
  // src/functions/register.ts
6553
6569
  var registry = {};
@@ -6924,7 +6940,7 @@ function EnableEditor(props) {
6924
6940
  function onUpdateFn_2() {
6925
6941
  evaluateJsCode();
6926
6942
  }
6927
- createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode, props.builderContextSignal.rootState], onUpdateFn_2));
6943
+ createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
6928
6944
  function onUpdateFn_3() {
6929
6945
  runHttpRequests();
6930
6946
  }
package/lib/edge/dev.jsx CHANGED
@@ -239,27 +239,43 @@ var runInBrowser = ({
239
239
  builder,
240
240
  context,
241
241
  event,
242
- state: flattenState(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
247
- if (rootState === localState) {
248
- throw new Error("rootState === localState");
249
- }
250
+ function flattenState({
251
+ rootState,
252
+ localState,
253
+ rootSetState
254
+ }) {
250
255
  return new Proxy(rootState, {
251
- get: (_, prop) => {
256
+ get: (target, prop) => {
252
257
  if (localState && prop in localState) {
253
258
  return localState[prop];
254
259
  }
255
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
262
- rootSetState?.(rootState);
277
+ target[prop] = value;
278
+ rootSetState?.(target);
263
279
  return true;
264
280
  }
265
281
  });
@@ -6221,7 +6237,7 @@ var getInteractionPropertiesForEvent = (event) => {
6221
6237
  };
6222
6238
 
6223
6239
  // src/constants/sdk-version.ts
6224
- var SDK_VERSION = "0.12.5";
6240
+ var SDK_VERSION = "0.12.6";
6225
6241
 
6226
6242
  // src/functions/register.ts
6227
6243
  var registry = {};
@@ -6610,13 +6626,7 @@ function EnableEditor(props) {
6610
6626
  evaluateJsCode();
6611
6627
  }
6612
6628
  createEffect2(
6613
- on2(
6614
- () => [
6615
- props.builderContextSignal.content?.data?.jsCode,
6616
- props.builderContextSignal.rootState
6617
- ],
6618
- onUpdateFn_2
6619
- )
6629
+ on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
6620
6630
  );
6621
6631
  function onUpdateFn_3() {
6622
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(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
256
- if (rootState === localState) {
257
- throw new Error("rootState === localState");
258
- }
259
+ function flattenState({
260
+ rootState,
261
+ localState,
262
+ rootSetState
263
+ }) {
259
264
  return new Proxy(rootState, {
260
- get: (_, prop) => {
265
+ get: (target, prop) => {
261
266
  if (localState && prop in localState) {
262
267
  return localState[prop];
263
268
  }
264
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
271
- rootSetState?.(rootState);
286
+ target[prop] = value;
287
+ rootSetState?.(target);
272
288
  return true;
273
289
  }
274
290
  });
@@ -6533,7 +6549,7 @@ var getInteractionPropertiesForEvent = (event) => {
6533
6549
  };
6534
6550
 
6535
6551
  // src/constants/sdk-version.ts
6536
- var SDK_VERSION = "0.12.5";
6552
+ var SDK_VERSION = "0.12.6";
6537
6553
 
6538
6554
  // src/functions/register.ts
6539
6555
  var registry = {};
@@ -6908,7 +6924,7 @@ function EnableEditor(props) {
6908
6924
  function onUpdateFn_2() {
6909
6925
  evaluateJsCode();
6910
6926
  }
6911
- createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode, props.builderContextSignal.rootState], onUpdateFn_2));
6927
+ createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
6912
6928
  function onUpdateFn_3() {
6913
6929
  runHttpRequests();
6914
6930
  }
@@ -237,27 +237,43 @@ var runInBrowser = ({
237
237
  builder,
238
238
  context,
239
239
  event,
240
- state: flattenState(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
245
- if (rootState === localState) {
246
- throw new Error("rootState === localState");
247
- }
248
+ function flattenState({
249
+ rootState,
250
+ localState,
251
+ rootSetState
252
+ }) {
248
253
  return new Proxy(rootState, {
249
- get: (_, prop) => {
254
+ get: (target, prop) => {
250
255
  if (localState && prop in localState) {
251
256
  return localState[prop];
252
257
  }
253
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
260
- rootSetState?.(rootState);
275
+ target[prop] = value;
276
+ rootSetState?.(target);
261
277
  return true;
262
278
  }
263
279
  });
@@ -6207,7 +6223,7 @@ var getInteractionPropertiesForEvent = (event) => {
6207
6223
  };
6208
6224
 
6209
6225
  // src/constants/sdk-version.ts
6210
- var SDK_VERSION = "0.12.5";
6226
+ var SDK_VERSION = "0.12.6";
6211
6227
 
6212
6228
  // src/functions/register.ts
6213
6229
  var registry = {};
@@ -6594,13 +6610,7 @@ function EnableEditor(props) {
6594
6610
  evaluateJsCode();
6595
6611
  }
6596
6612
  createEffect2(
6597
- on2(
6598
- () => [
6599
- props.builderContextSignal.content?.data?.jsCode,
6600
- props.builderContextSignal.rootState
6601
- ],
6602
- onUpdateFn_2
6603
- )
6613
+ on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
6604
6614
  );
6605
6615
  function onUpdateFn_3() {
6606
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(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
253
- if (rootState === localState) {
254
- throw new Error("rootState === localState");
255
- }
256
+ function flattenState({
257
+ rootState,
258
+ localState,
259
+ rootSetState
260
+ }) {
256
261
  return new Proxy(rootState, {
257
- get: (_, prop) => {
262
+ get: (target, prop) => {
258
263
  if (localState && prop in localState) {
259
264
  return localState[prop];
260
265
  }
261
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
268
- rootSetState?.(rootState);
283
+ target[prop] = value;
284
+ rootSetState?.(target);
269
285
  return true;
270
286
  }
271
287
  });
@@ -3518,7 +3534,7 @@ var getInteractionPropertiesForEvent = (event) => {
3518
3534
  };
3519
3535
 
3520
3536
  // src/constants/sdk-version.ts
3521
- var SDK_VERSION = "0.12.5";
3537
+ var SDK_VERSION = "0.12.6";
3522
3538
 
3523
3539
  // src/functions/register.ts
3524
3540
  var registry = {};
@@ -3895,7 +3911,7 @@ function EnableEditor(props) {
3895
3911
  function onUpdateFn_2() {
3896
3912
  evaluateJsCode();
3897
3913
  }
3898
- createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode, props.builderContextSignal.rootState], onUpdateFn_2));
3914
+ createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
3899
3915
  function onUpdateFn_3() {
3900
3916
  runHttpRequests();
3901
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(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
239
- if (rootState === localState) {
240
- throw new Error("rootState === localState");
241
- }
242
+ function flattenState({
243
+ rootState,
244
+ localState,
245
+ rootSetState
246
+ }) {
242
247
  return new Proxy(rootState, {
243
- get: (_, prop) => {
248
+ get: (target, prop) => {
244
249
  if (localState && prop in localState) {
245
250
  return localState[prop];
246
251
  }
247
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
254
- rootSetState?.(rootState);
269
+ target[prop] = value;
270
+ rootSetState?.(target);
255
271
  return true;
256
272
  }
257
273
  });
@@ -3192,7 +3208,7 @@ var getInteractionPropertiesForEvent = (event) => {
3192
3208
  };
3193
3209
 
3194
3210
  // src/constants/sdk-version.ts
3195
- var SDK_VERSION = "0.12.5";
3211
+ var SDK_VERSION = "0.12.6";
3196
3212
 
3197
3213
  // src/functions/register.ts
3198
3214
  var registry = {};
@@ -3581,13 +3597,7 @@ function EnableEditor(props) {
3581
3597
  evaluateJsCode();
3582
3598
  }
3583
3599
  createEffect2(
3584
- on2(
3585
- () => [
3586
- props.builderContextSignal.content?.data?.jsCode,
3587
- props.builderContextSignal.rootState
3588
- ],
3589
- onUpdateFn_2
3590
- )
3600
+ on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
3591
3601
  );
3592
3602
  function onUpdateFn_3() {
3593
3603
  runHttpRequests();
package/lib/node/index.js CHANGED
@@ -243,27 +243,43 @@ var runInBrowser = ({
243
243
  builder,
244
244
  context,
245
245
  event,
246
- state: flattenState(rootState, localState, rootSetState)
246
+ state: flattenState({
247
+ rootState,
248
+ localState,
249
+ rootSetState
250
+ })
247
251
  });
248
252
  return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
249
253
  };
250
- function flattenState(rootState, localState, rootSetState) {
251
- if (rootState === localState) {
252
- throw new Error("rootState === localState");
253
- }
254
+ function flattenState({
255
+ rootState,
256
+ localState,
257
+ rootSetState
258
+ }) {
254
259
  return new Proxy(rootState, {
255
- get: (_, prop) => {
260
+ get: (target, prop) => {
256
261
  if (localState && prop in localState) {
257
262
  return localState[prop];
258
263
  }
259
- return rootState[prop];
264
+ const val = target[prop];
265
+ if (typeof val === "object") {
266
+ return flattenState({
267
+ rootState: val,
268
+ localState: void 0,
269
+ rootSetState: rootSetState ? (subState) => {
270
+ target[prop] = subState;
271
+ rootSetState(target);
272
+ } : void 0
273
+ });
274
+ }
275
+ return val;
260
276
  },
261
- set: (_, prop, value) => {
277
+ set: (target, prop, value) => {
262
278
  if (localState && prop in localState) {
263
279
  throw new Error("Writing to local state is not allowed as it is read-only.");
264
280
  }
265
- rootState[prop] = value;
266
- rootSetState?.(rootState);
281
+ target[prop] = value;
282
+ rootSetState?.(target);
267
283
  return true;
268
284
  }
269
285
  });
@@ -3503,7 +3519,7 @@ var getInteractionPropertiesForEvent = (event) => {
3503
3519
  };
3504
3520
 
3505
3521
  // src/constants/sdk-version.ts
3506
- var SDK_VERSION = "0.12.5";
3522
+ var SDK_VERSION = "0.12.6";
3507
3523
 
3508
3524
  // src/functions/register.ts
3509
3525
  var registry = {};
@@ -3878,7 +3894,7 @@ function EnableEditor(props) {
3878
3894
  function onUpdateFn_2() {
3879
3895
  evaluateJsCode();
3880
3896
  }
3881
- createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode, props.builderContextSignal.rootState], onUpdateFn_2));
3897
+ createEffect(on(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2));
3882
3898
  function onUpdateFn_3() {
3883
3899
  runHttpRequests();
3884
3900
  }
@@ -229,27 +229,43 @@ var runInBrowser = ({
229
229
  builder,
230
230
  context,
231
231
  event,
232
- state: flattenState(rootState, localState, rootSetState)
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(rootState, localState, rootSetState) {
237
- if (rootState === localState) {
238
- throw new Error("rootState === localState");
239
- }
240
+ function flattenState({
241
+ rootState,
242
+ localState,
243
+ rootSetState
244
+ }) {
240
245
  return new Proxy(rootState, {
241
- get: (_, prop) => {
246
+ get: (target, prop) => {
242
247
  if (localState && prop in localState) {
243
248
  return localState[prop];
244
249
  }
245
- return rootState[prop];
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: (_, prop, value) => {
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
- rootState[prop] = value;
252
- rootSetState?.(rootState);
267
+ target[prop] = value;
268
+ rootSetState?.(target);
253
269
  return true;
254
270
  }
255
271
  });
@@ -3177,7 +3193,7 @@ var getInteractionPropertiesForEvent = (event) => {
3177
3193
  };
3178
3194
 
3179
3195
  // src/constants/sdk-version.ts
3180
- var SDK_VERSION = "0.12.5";
3196
+ var SDK_VERSION = "0.12.6";
3181
3197
 
3182
3198
  // src/functions/register.ts
3183
3199
  var registry = {};
@@ -3564,13 +3580,7 @@ function EnableEditor(props) {
3564
3580
  evaluateJsCode();
3565
3581
  }
3566
3582
  createEffect2(
3567
- on2(
3568
- () => [
3569
- props.builderContextSignal.content?.data?.jsCode,
3570
- props.builderContextSignal.rootState
3571
- ],
3572
- onUpdateFn_2
3573
- )
3583
+ on2(() => [props.builderContextSignal.content?.data?.jsCode], onUpdateFn_2)
3574
3584
  );
3575
3585
  function onUpdateFn_3() {
3576
3586
  runHttpRequests();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/sdk-solid",
3
- "version": "0.12.5",
3
+ "version": "0.12.6",
4
4
  "description": "",
5
5
  "files": [
6
6
  "dist",