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.
- package/dist/dev.cjs +213 -1603
- package/dist/dev.js +159 -1749
- package/dist/server.cjs +88 -11
- package/dist/server.js +91 -11
- package/dist/solid.cjs +196 -1558
- package/dist/solid.js +139 -1682
- package/package.json +8 -154
- package/types/{render → client}/component.d.ts +0 -61
- package/types/client/core.d.ts +75 -0
- package/types/client/flow.d.ts +114 -0
- package/types/{render → client}/hydration.d.ts +0 -2
- package/types/{reactive → client}/observable.d.ts +1 -1
- package/types/index.d.ts +44 -55
- package/types/jsx.d.ts +1944 -174
- package/types/server/index.d.ts +1 -1
- package/types/server/reactive.d.ts +6 -1
- package/types/server/store.d.ts +6 -0
- package/h/dist/h.cjs +0 -115
- package/h/dist/h.js +0 -144
- package/h/jsx-dev-runtime/package.json +0 -8
- package/h/jsx-runtime/dist/jsx.cjs +0 -15
- package/h/jsx-runtime/dist/jsx.js +0 -10
- package/h/jsx-runtime/package.json +0 -8
- package/h/jsx-runtime/types/index.d.ts +0 -14
- package/h/jsx-runtime/types/jsx.d.ts +0 -2276
- package/h/package.json +0 -8
- package/h/types/hyperscript.d.ts +0 -20
- package/h/types/index.d.ts +0 -3
- package/html/dist/html.cjs +0 -583
- package/html/dist/html.js +0 -706
- package/html/package.json +0 -8
- package/html/types/index.d.ts +0 -3
- package/html/types/lit.d.ts +0 -60
- package/store/dist/dev.cjs +0 -454
- package/store/dist/dev.js +0 -525
- package/store/dist/server.cjs +0 -126
- package/store/dist/server.js +0 -126
- package/store/dist/store.cjs +0 -434
- package/store/dist/store.js +0 -499
- package/store/package.json +0 -46
- package/store/types/index.d.ts +0 -26
- package/store/types/modifiers.d.ts +0 -9
- package/store/types/mutable.d.ts +0 -8
- package/store/types/server.d.ts +0 -37
- package/store/types/store.d.ts +0 -263
- package/types/reactive/array.d.ts +0 -52
- package/types/reactive/scheduler.d.ts +0 -13
- package/types/reactive/signal.d.ts +0 -664
- package/types/render/Suspense.d.ts +0 -26
- package/types/render/flow.d.ts +0 -130
- package/types/render/index.d.ts +0 -4
- package/universal/dist/dev.cjs +0 -243
- package/universal/dist/dev.js +0 -257
- package/universal/dist/universal.cjs +0 -243
- package/universal/dist/universal.js +0 -257
- package/universal/package.json +0 -20
- package/universal/types/index.d.ts +0 -4
- package/universal/types/universal.d.ts +0 -29
- package/web/dist/dev.cjs +0 -804
- package/web/dist/dev.js +0 -1241
- package/web/dist/server.cjs +0 -793
- package/web/dist/server.js +0 -1214
- package/web/dist/web.cjs +0 -793
- package/web/dist/web.js +0 -1220
- package/web/package.json +0 -46
- package/web/storage/dist/storage.cjs +0 -12
- package/web/storage/dist/storage.js +0 -10
- package/web/storage/package.json +0 -15
- package/web/storage/types/index.d.ts +0 -2
- package/web/storage/types/index.js +0 -13
- package/web/types/client.d.ts +0 -79
- package/web/types/core.d.ts +0 -10
- package/web/types/index.d.ts +0 -54
- package/web/types/jsx.d.ts +0 -1
- package/web/types/server-mock.d.ts +0 -80
- 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 = "<";
|
|
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 += "&";
|
|
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 += "&";
|
|
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 (
|
|
474
|
-
|
|
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 = "<";
|
|
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 += "&";
|
|
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 += "&";
|
|
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 (
|
|
493
|
-
|
|
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(
|
|
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
|
};
|