solid-js 1.9.3 → 2.0.0-experimental.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/dev.cjs +213 -1603
  2. package/dist/dev.js +159 -1749
  3. package/dist/server.cjs +88 -11
  4. package/dist/server.js +91 -11
  5. package/dist/solid.cjs +196 -1558
  6. package/dist/solid.js +139 -1682
  7. package/package.json +8 -154
  8. package/types/{render → client}/component.d.ts +0 -61
  9. package/types/client/core.d.ts +75 -0
  10. package/types/client/flow.d.ts +114 -0
  11. package/types/{render → client}/hydration.d.ts +0 -2
  12. package/types/{reactive → client}/observable.d.ts +1 -1
  13. package/types/index.d.ts +44 -55
  14. package/types/jsx.d.ts +1944 -174
  15. package/types/server/index.d.ts +1 -1
  16. package/types/server/reactive.d.ts +6 -1
  17. package/types/server/store.d.ts +6 -0
  18. package/h/dist/h.cjs +0 -115
  19. package/h/dist/h.js +0 -144
  20. package/h/jsx-dev-runtime/package.json +0 -8
  21. package/h/jsx-runtime/dist/jsx.cjs +0 -15
  22. package/h/jsx-runtime/dist/jsx.js +0 -10
  23. package/h/jsx-runtime/package.json +0 -8
  24. package/h/jsx-runtime/types/index.d.ts +0 -14
  25. package/h/jsx-runtime/types/jsx.d.ts +0 -2276
  26. package/h/package.json +0 -8
  27. package/h/types/hyperscript.d.ts +0 -20
  28. package/h/types/index.d.ts +0 -3
  29. package/html/dist/html.cjs +0 -583
  30. package/html/dist/html.js +0 -706
  31. package/html/package.json +0 -8
  32. package/html/types/index.d.ts +0 -3
  33. package/html/types/lit.d.ts +0 -60
  34. package/store/dist/dev.cjs +0 -454
  35. package/store/dist/dev.js +0 -525
  36. package/store/dist/server.cjs +0 -126
  37. package/store/dist/server.js +0 -126
  38. package/store/dist/store.cjs +0 -434
  39. package/store/dist/store.js +0 -499
  40. package/store/package.json +0 -46
  41. package/store/types/index.d.ts +0 -26
  42. package/store/types/modifiers.d.ts +0 -9
  43. package/store/types/mutable.d.ts +0 -8
  44. package/store/types/server.d.ts +0 -37
  45. package/store/types/store.d.ts +0 -263
  46. package/types/reactive/array.d.ts +0 -52
  47. package/types/reactive/scheduler.d.ts +0 -13
  48. package/types/reactive/signal.d.ts +0 -664
  49. package/types/render/Suspense.d.ts +0 -26
  50. package/types/render/flow.d.ts +0 -130
  51. package/types/render/index.d.ts +0 -4
  52. package/universal/dist/dev.cjs +0 -243
  53. package/universal/dist/dev.js +0 -257
  54. package/universal/dist/universal.cjs +0 -243
  55. package/universal/dist/universal.js +0 -257
  56. package/universal/package.json +0 -20
  57. package/universal/types/index.d.ts +0 -4
  58. package/universal/types/universal.d.ts +0 -29
  59. package/web/dist/dev.cjs +0 -804
  60. package/web/dist/dev.js +0 -1241
  61. package/web/dist/server.cjs +0 -793
  62. package/web/dist/server.js +0 -1214
  63. package/web/dist/web.cjs +0 -793
  64. package/web/dist/web.js +0 -1220
  65. package/web/package.json +0 -46
  66. package/web/storage/dist/storage.cjs +0 -12
  67. package/web/storage/dist/storage.js +0 -10
  68. package/web/storage/package.json +0 -15
  69. package/web/storage/types/index.d.ts +0 -2
  70. package/web/storage/types/index.js +0 -13
  71. package/web/types/client.d.ts +0 -79
  72. package/web/types/core.d.ts +0 -10
  73. package/web/types/index.d.ts +0 -54
  74. package/web/types/jsx.d.ts +0 -1
  75. package/web/types/server-mock.d.ts +0 -80
  76. package/web/types/server.d.ts +0 -177
package/dist/server.cjs CHANGED
@@ -302,6 +302,51 @@ function mutateContext(o, key, value) {
302
302
  }
303
303
  }
304
304
 
305
+ function escape(s, attr) {
306
+ const t = typeof s;
307
+ if (t !== "string") {
308
+ if (t === "function") return escape(s());
309
+ if (Array.isArray(s)) {
310
+ for (let i = 0; i < s.length; i++) s[i] = escape(s[i]);
311
+ return s;
312
+ }
313
+ return s;
314
+ }
315
+ const delim = "<";
316
+ const escDelim = "&lt;";
317
+ let iDelim = s.indexOf(delim);
318
+ let iAmp = s.indexOf("&");
319
+ if (iDelim < 0 && iAmp < 0) return s;
320
+ let left = 0,
321
+ out = "";
322
+ while (iDelim >= 0 && iAmp >= 0) {
323
+ if (iDelim < iAmp) {
324
+ if (left < iDelim) out += s.substring(left, iDelim);
325
+ out += escDelim;
326
+ left = iDelim + 1;
327
+ iDelim = s.indexOf(delim, left);
328
+ } else {
329
+ if (left < iAmp) out += s.substring(left, iAmp);
330
+ out += "&amp;";
331
+ left = iAmp + 1;
332
+ iAmp = s.indexOf("&", left);
333
+ }
334
+ }
335
+ if (iDelim >= 0) {
336
+ do {
337
+ if (left < iDelim) out += s.substring(left, iDelim);
338
+ out += escDelim;
339
+ left = iDelim + 1;
340
+ iDelim = s.indexOf(delim, left);
341
+ } while (iDelim >= 0);
342
+ } else while (iAmp >= 0) {
343
+ if (left < iAmp) out += s.substring(left, iAmp);
344
+ out += "&amp;";
345
+ left = iAmp + 1;
346
+ iAmp = s.indexOf("&", left);
347
+ }
348
+ return left < s.length ? out + s.substring(left) : out;
349
+ }
305
350
  function resolveSSRNode(node) {
306
351
  const t = typeof node;
307
352
  if (t === "string") return node;
@@ -464,19 +509,14 @@ function ErrorBoundary(props) {
464
509
  if (error) return displayFallback();
465
510
  sync = false;
466
511
  return {
467
- t: `<!--!$e${id}-->${resolveSSRNode(res)}<!--!$/e${id}-->`
512
+ t: `<!--!$e${id}-->${resolveSSRNode(escape(res))}<!--!$/e${id}-->`
468
513
  };
469
514
  }
470
515
  const SuspenseContext = createContext();
471
516
  let resourceContext = null;
472
517
  function createResource(source, fetcher, options = {}) {
473
- if (arguments.length === 2) {
474
- if (typeof fetcher === "object") {
475
- options = fetcher;
476
- fetcher = source;
477
- source = true;
478
- }
479
- } else if (arguments.length === 1) {
518
+ if (typeof fetcher !== "function") {
519
+ options = fetcher || {};
480
520
  fetcher = source;
481
521
  source = true;
482
522
  }
@@ -641,7 +681,7 @@ function Suspense(props) {
641
681
  completed: () => {
642
682
  const res = runSuspense();
643
683
  if (suspenseComplete(value)) {
644
- done(resolveSSRNode(res));
684
+ done(resolveSSRNode(escape(res)));
645
685
  }
646
686
  }
647
687
  });
@@ -680,7 +720,7 @@ function Suspense(props) {
680
720
  noHydrate: true
681
721
  });
682
722
  const res = {
683
- t: `<template id="pl-${id}"></template>${resolveSSRNode(props.fallback)}<!--pl-${id}-->`
723
+ t: `<template id="pl-${id}"></template>${resolveSSRNode(escape(props.fallback))}<!--pl-${id}-->`
684
724
  };
685
725
  setHydrateContext(ctx);
686
726
  return res;
@@ -695,6 +735,40 @@ function Suspense(props) {
695
735
  }, suspenseError);
696
736
  }
697
737
 
738
+ function isWrappable(obj) {
739
+ return obj != null && typeof obj === "object" && !Object.isFrozen(obj);
740
+ }
741
+ function unwrap(item) {
742
+ return item;
743
+ }
744
+ function setProperty(state, property, value) {
745
+ if (state[property] === value) return;
746
+ if (value === undefined) {
747
+ delete state[property];
748
+ } else state[property] = value;
749
+ }
750
+ function createStore(state) {
751
+ function setStore(fn) {
752
+ fn(state);
753
+ }
754
+ return [state, setStore];
755
+ }
756
+ function reconcile(value) {
757
+ return state => {
758
+ if (!isWrappable(state) || !isWrappable(value)) return value;
759
+ const targetKeys = Object.keys(value);
760
+ const previousKeys = Object.keys(state);
761
+ for (let i = 0, len = targetKeys.length; i < len; i++) {
762
+ const key = targetKeys[i];
763
+ setProperty(state, key, value[key]);
764
+ }
765
+ for (let i = 0, len = previousKeys.length; i < len; i++) {
766
+ if (value[previousKeys[i]] === undefined) setProperty(state, previousKeys[i], undefined);
767
+ }
768
+ return state;
769
+ };
770
+ }
771
+
698
772
  exports.$DEVCOMP = $DEVCOMP;
699
773
  exports.$PROXY = $PROXY;
700
774
  exports.$TRACK = $TRACK;
@@ -711,7 +785,6 @@ exports.batch = batch;
711
785
  exports.catchError = catchError;
712
786
  exports.children = children;
713
787
  exports.createComponent = createComponent;
714
- exports.createComputed = createComputed;
715
788
  exports.createContext = createContext;
716
789
  exports.createDeferred = createDeferred;
717
790
  exports.createEffect = createEffect;
@@ -722,6 +795,7 @@ exports.createResource = createResource;
722
795
  exports.createRoot = createRoot;
723
796
  exports.createSelector = createSelector;
724
797
  exports.createSignal = createSignal;
798
+ exports.createStore = createStore;
725
799
  exports.createUniqueId = createUniqueId;
726
800
  exports.enableExternalSource = enableExternalSource;
727
801
  exports.enableHydration = enableHydration;
@@ -731,6 +805,7 @@ exports.from = from;
731
805
  exports.getListener = getListener;
732
806
  exports.getOwner = getOwner;
733
807
  exports.indexArray = indexArray;
808
+ exports.isWrappable = isWrappable;
734
809
  exports.lazy = lazy;
735
810
  exports.mapArray = mapArray;
736
811
  exports.mergeProps = mergeProps;
@@ -739,6 +814,7 @@ exports.on = on;
739
814
  exports.onCleanup = onCleanup;
740
815
  exports.onError = onError;
741
816
  exports.onMount = onMount;
817
+ exports.reconcile = reconcile;
742
818
  exports.requestCallback = requestCallback;
743
819
  exports.resetErrorBoundaries = resetErrorBoundaries;
744
820
  exports.runWithOwner = runWithOwner;
@@ -746,5 +822,6 @@ exports.sharedConfig = sharedConfig;
746
822
  exports.splitProps = splitProps;
747
823
  exports.startTransition = startTransition;
748
824
  exports.untrack = untrack;
825
+ exports.unwrap = unwrap;
749
826
  exports.useContext = useContext;
750
827
  exports.useTransition = useTransition;
package/dist/server.js CHANGED
@@ -311,6 +311,52 @@ function mutateContext(o, key, value) {
311
311
  }
312
312
  }
313
313
 
314
+ function escape(s, attr) {
315
+ const t = typeof s;
316
+ if (t !== "string") {
317
+ if (t === "function") return escape(s());
318
+ if (Array.isArray(s)) {
319
+ for (let i = 0; i < s.length; i++) s[i] = escape(s[i]);
320
+ return s;
321
+ }
322
+ return s;
323
+ }
324
+ const delim = "<";
325
+ const escDelim = "&lt;";
326
+ let iDelim = s.indexOf(delim);
327
+ let iAmp = s.indexOf("&");
328
+ if (iDelim < 0 && iAmp < 0) return s;
329
+ let left = 0,
330
+ out = "";
331
+ while (iDelim >= 0 && iAmp >= 0) {
332
+ if (iDelim < iAmp) {
333
+ if (left < iDelim) out += s.substring(left, iDelim);
334
+ out += escDelim;
335
+ left = iDelim + 1;
336
+ iDelim = s.indexOf(delim, left);
337
+ } else {
338
+ if (left < iAmp) out += s.substring(left, iAmp);
339
+ out += "&amp;";
340
+ left = iAmp + 1;
341
+ iAmp = s.indexOf("&", left);
342
+ }
343
+ }
344
+ if (iDelim >= 0) {
345
+ do {
346
+ if (left < iDelim) out += s.substring(left, iDelim);
347
+ out += escDelim;
348
+ left = iDelim + 1;
349
+ iDelim = s.indexOf(delim, left);
350
+ } while (iDelim >= 0);
351
+ } else
352
+ while (iAmp >= 0) {
353
+ if (left < iAmp) out += s.substring(left, iAmp);
354
+ out += "&amp;";
355
+ left = iAmp + 1;
356
+ iAmp = s.indexOf("&", left);
357
+ }
358
+ return left < s.length ? out + s.substring(left) : out;
359
+ }
314
360
  function resolveSSRNode(node) {
315
361
  const t = typeof node;
316
362
  if (t === "string") return node;
@@ -483,19 +529,14 @@ function ErrorBoundary(props) {
483
529
  if (error) return displayFallback();
484
530
  sync = false;
485
531
  return {
486
- t: `<!--!$e${id}-->${resolveSSRNode(res)}<!--!$/e${id}-->`
532
+ t: `<!--!$e${id}-->${resolveSSRNode(escape(res))}<!--!$/e${id}-->`
487
533
  };
488
534
  }
489
535
  const SuspenseContext = createContext();
490
536
  let resourceContext = null;
491
537
  function createResource(source, fetcher, options = {}) {
492
- if (arguments.length === 2) {
493
- if (typeof fetcher === "object") {
494
- options = fetcher;
495
- fetcher = source;
496
- source = true;
497
- }
498
- } else if (arguments.length === 1) {
538
+ if (typeof fetcher !== "function") {
539
+ options = fetcher || {};
499
540
  fetcher = source;
500
541
  source = true;
501
542
  }
@@ -677,7 +718,7 @@ function Suspense(props) {
677
718
  completed: () => {
678
719
  const res = runSuspense();
679
720
  if (suspenseComplete(value)) {
680
- done(resolveSSRNode(res));
721
+ done(resolveSSRNode(escape(res)));
681
722
  }
682
723
  }
683
724
  });
@@ -718,7 +759,9 @@ function Suspense(props) {
718
759
  noHydrate: true
719
760
  });
720
761
  const res = {
721
- t: `<template id="pl-${id}"></template>${resolveSSRNode(props.fallback)}<!--pl-${id}-->`
762
+ t: `<template id="pl-${id}"></template>${resolveSSRNode(
763
+ escape(props.fallback)
764
+ )}<!--pl-${id}-->`
722
765
  };
723
766
  setHydrateContext(ctx);
724
767
  return res;
@@ -733,6 +776,40 @@ function Suspense(props) {
733
776
  }, suspenseError);
734
777
  }
735
778
 
779
+ function isWrappable(obj) {
780
+ return obj != null && typeof obj === "object" && !Object.isFrozen(obj);
781
+ }
782
+ function unwrap(item) {
783
+ return item;
784
+ }
785
+ function setProperty(state, property, value) {
786
+ if (state[property] === value) return;
787
+ if (value === undefined) {
788
+ delete state[property];
789
+ } else state[property] = value;
790
+ }
791
+ function createStore(state) {
792
+ function setStore(fn) {
793
+ fn(state);
794
+ }
795
+ return [state, setStore];
796
+ }
797
+ function reconcile(value) {
798
+ return state => {
799
+ if (!isWrappable(state) || !isWrappable(value)) return value;
800
+ const targetKeys = Object.keys(value);
801
+ const previousKeys = Object.keys(state);
802
+ for (let i = 0, len = targetKeys.length; i < len; i++) {
803
+ const key = targetKeys[i];
804
+ setProperty(state, key, value[key]);
805
+ }
806
+ for (let i = 0, len = previousKeys.length; i < len; i++) {
807
+ if (value[previousKeys[i]] === undefined) setProperty(state, previousKeys[i], undefined);
808
+ }
809
+ return state;
810
+ };
811
+ }
812
+
736
813
  export {
737
814
  $DEVCOMP,
738
815
  $PROXY,
@@ -750,7 +827,6 @@ export {
750
827
  catchError,
751
828
  children,
752
829
  createComponent,
753
- createComputed,
754
830
  createContext,
755
831
  createDeferred,
756
832
  createEffect,
@@ -761,6 +837,7 @@ export {
761
837
  createRoot,
762
838
  createSelector,
763
839
  createSignal,
840
+ createStore,
764
841
  createUniqueId,
765
842
  enableExternalSource,
766
843
  enableHydration,
@@ -770,6 +847,7 @@ export {
770
847
  getListener,
771
848
  getOwner,
772
849
  indexArray,
850
+ isWrappable,
773
851
  lazy,
774
852
  mapArray,
775
853
  mergeProps,
@@ -778,6 +856,7 @@ export {
778
856
  onCleanup,
779
857
  onError,
780
858
  onMount,
859
+ reconcile,
781
860
  requestCallback,
782
861
  resetErrorBoundaries,
783
862
  runWithOwner,
@@ -785,6 +864,7 @@ export {
785
864
  splitProps,
786
865
  startTransition,
787
866
  untrack,
867
+ unwrap,
788
868
  useContext,
789
869
  useTransition
790
870
  };