🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

solid-js

Package Overview
Dependencies
Maintainers
1
Versions
507
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

solid-js - npm Package Compare versions

Comparing version
2.0.0-beta.14
to
2.0.0-beta.15
+7
-8
CHEATSHEET.md

@@ -217,6 +217,7 @@ # Solid 2.0 — Cheatsheet

const user = createMemo(() => fetchUser(id()));
// Reading user() suspends until ready; wrap in <Loading>.
// Reading user() is not ready at first; wrap in <Loading>.
// Pending indicator for this read; participates in Loading like the read itself.
isPending(() => user());
// Pending indicator for this async read; place under the Loading boundary that owns it.
<Loading fallback={<Spinner />}>{isPending(() => user()) ? "Refreshing..." : user()}</Loading>;
// isPending can live outside Loading when it only reads upstream state that cannot be not ready.

@@ -227,4 +228,4 @@ // Peek at the in-flight value during a transition

// Force recompute of a derived read after a server write
// Action: call from handlers/effects/actions, not pure reads.
refresh(user);
refresh(() => query.user(id()));
```

@@ -244,3 +245,3 @@

yield api.add(todo); // async work
refresh(todos); // re-derive
refresh(todos); // reconcile with source of truth
});

@@ -296,2 +297,3 @@

// Error boundary (replaces <ErrorBoundary>)
// reset is an action for retrying the errored branch.
<Errored fallback={(err, reset) => <button onClick={reset}>retry {String(err())}</button>}>

@@ -566,5 +568,2 @@ <Page />

// Are we inside a refresh() cycle? Almost never needed in app code.
isRefreshing();
// Throw to signal "not ready" through the reactive graph (library authors).

@@ -571,0 +570,0 @@ throw new NotReadyError();

@@ -157,6 +157,6 @@ 'use strict';

function readSerializedOrCompute(compute, prev) {
if (!sharedConfig.hydrating) return compute(prev);
const o = signals.getOwner();
let initP;
if (sharedConfig.has(o.id)) initP = sharedConfig.load(o.id);
const hasSerialized = !sharedConfig.done && sharedConfig.has(o.id);
if (!sharedConfig.hydrating && !hasSerialized) return compute(prev);
const initP = hasSerialized ? sharedConfig.load(o.id) : undefined;
const init = readHydratedValue(initP, () => subFetch(compute, prev));

@@ -605,2 +605,5 @@ return init !== NO_HYDRATED_VALUE ? init : compute(prev);

const createErrorBoundary = (...args) => (_createErrorBoundary || signals.createErrorBoundary)(...args);
function createRevealOrder(fn, options) {
return signals.createRevealOrder(fn, options);
}
const createOptimistic = (...args) => (_createOptimistic || signals.createOptimistic)(...args);

@@ -621,3 +624,3 @@ const createProjection = (...args) => (_createProjection || signals.createProjection)(...args);

}
function resumeBoundaryHydration(o, id, set) {
function resumeBoundaryHydration(o, id, set, shouldHydrate = true) {
_pendingBoundaries--;

@@ -628,11 +631,13 @@ if (signals.isDisposed(o)) {

}
sharedConfig.gather?.(id);
_hydratingValue = true;
signals.markSnapshotScope(o);
_snapshotRootOwner = o;
if (shouldHydrate) sharedConfig.gather?.(id);
_hydratingValue = shouldHydrate;
if (shouldHydrate) {
signals.markSnapshotScope(o);
_snapshotRootOwner = o;
}
set();
signals.flush();
_snapshotRootOwner = null;
if (shouldHydrate) _snapshotRootOwner = null;
_hydratingValue = false;
signals.releaseSnapshotScope(o);
if (shouldHydrate) signals.releaseSnapshotScope(o);
signals.flush();

@@ -648,5 +653,5 @@ checkHydrationComplete();

const set = createBoundaryTrigger();
return [set, () => resumeBoundaryHydration(o, id, set)];
return [set, shouldHydrate => resumeBoundaryHydration(o, id, set, shouldHydrate)];
}
function waitAndResume(p, resume, assetPromise) {
function waitAndResume(p, resume, assetPromise, hydrateRejected = true) {
const waitFor = assetPromise ? Promise.all([p, assetPromise]) : p;

@@ -661,3 +666,3 @@ waitFor.then(() => {

}
resume();
resume(hydrateRejected);
});

@@ -718,6 +723,11 @@ }

if (fr && typeof fr === "object" && (fr.s === 1 || fr.s === 2)) {
if (fr.s === 2) {
const resumeRejected = () => resume(false);
if (assetPromise) assetPromise.then(() => queueMicrotask(resumeRejected));else queueMicrotask(resumeRejected);
return undefined;
}
if (scheduleResumeAfterAssets(id, resume, assetPromise)) return undefined;
return fallback();
}
waitAndResume(fr, resume, assetPromise);
waitAndResume(fr, resume, assetPromise, false);
return fallback();

@@ -727,3 +737,3 @@ }

const [, resume] = initBoundaryResume(o, id);
assetPromise.then(resume);
assetPromise.then(() => resume());
return undefined;

@@ -931,6 +941,2 @@ }

});
Object.defineProperty(exports, "createRevealOrder", {
enumerable: true,
get: function () { return signals.createRevealOrder; }
});
Object.defineProperty(exports, "createRoot", {

@@ -988,6 +994,2 @@ enumerable: true,

});
Object.defineProperty(exports, "isRefreshing", {
enumerable: true,
get: function () { return signals.isRefreshing; }
});
Object.defineProperty(exports, "isWrappable", {

@@ -1077,2 +1079,3 @@ enumerable: true,

exports.createRenderEffect = createRenderEffect;
exports.createRevealOrder = createRevealOrder;
exports.createSignal = createSignal;

@@ -1079,0 +1082,0 @@ exports.createStore = createStore;

@@ -1,3 +0,3 @@

import { getContext, createMemo as createMemo$1, flatten, createRoot, setContext, getOwner, untrack, createOwner, runWithOwner, createEffect as createEffect$1, createErrorBoundary as createErrorBoundary$1, createLoadingBoundary as createLoadingBoundary$1, createOptimistic as createOptimistic$1, createOptimisticStore as createOptimisticStore$1, createProjection as createProjection$1, createRenderEffect as createRenderEffect$1, createSignal as createSignal$1, createStore as createStore$1, setSnapshotCapture, releaseSnapshotScope, getNextChildId, onCleanup, isDisposed, peekNextChildId, clearSnapshots, flush, markSnapshotScope, mapArray, repeat, createRevealOrder, DEV as DEV$1 } from '@solidjs/signals';
export { $PROXY, $REFRESH, $TRACK, NotReadyError, action, createOwner, createReaction, createRevealOrder, createRoot, createTrackedEffect, deep, enableExternalSource, enforceLoadingBoundary, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isPending, isRefreshing, isWrappable, latest, mapArray, merge, omit, onCleanup, onSettled, reconcile, refresh, repeat, resolve, runWithOwner, snapshot, storePath, untrack } from '@solidjs/signals';
import { getContext, createMemo as createMemo$1, flatten, createRoot, setContext, getOwner, untrack, createOwner, runWithOwner, createEffect as createEffect$1, createErrorBoundary as createErrorBoundary$1, createLoadingBoundary as createLoadingBoundary$1, createOptimistic as createOptimistic$1, createOptimisticStore as createOptimisticStore$1, createProjection as createProjection$1, createRenderEffect as createRenderEffect$1, createRevealOrder as createRevealOrder$1, createSignal as createSignal$1, createStore as createStore$1, setSnapshotCapture, releaseSnapshotScope, getNextChildId, onCleanup, isDisposed, peekNextChildId, clearSnapshots, flush, markSnapshotScope, mapArray, repeat, DEV as DEV$1 } from '@solidjs/signals';
export { $PROXY, $REFRESH, $TRACK, NotReadyError, action, createOwner, createReaction, createRoot, createTrackedEffect, deep, enableExternalSource, enforceLoadingBoundary, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isPending, isWrappable, latest, mapArray, merge, omit, onCleanup, onSettled, reconcile, refresh, repeat, resolve, runWithOwner, snapshot, storePath, untrack } from '@solidjs/signals';

@@ -156,6 +156,6 @@ const $DEVCOMP = Symbol("COMPONENT_DEV" );

function readSerializedOrCompute(compute, prev) {
if (!sharedConfig.hydrating) return compute(prev);
const o = getOwner();
let initP;
if (sharedConfig.has(o.id)) initP = sharedConfig.load(o.id);
const hasSerialized = !sharedConfig.done && sharedConfig.has(o.id);
if (!sharedConfig.hydrating && !hasSerialized) return compute(prev);
const initP = hasSerialized ? sharedConfig.load(o.id) : undefined;
const init = readHydratedValue(initP, () => subFetch(compute, prev));

@@ -604,2 +604,5 @@ return init !== NO_HYDRATED_VALUE ? init : compute(prev);

const createErrorBoundary = (...args) => (_createErrorBoundary || createErrorBoundary$1)(...args);
function createRevealOrder(fn, options) {
return createRevealOrder$1(fn, options);
}
const createOptimistic = (...args) => (_createOptimistic || createOptimistic$1)(...args);

@@ -620,3 +623,3 @@ const createProjection = (...args) => (_createProjection || createProjection$1)(...args);

}
function resumeBoundaryHydration(o, id, set) {
function resumeBoundaryHydration(o, id, set, shouldHydrate = true) {
_pendingBoundaries--;

@@ -627,11 +630,13 @@ if (isDisposed(o)) {

}
sharedConfig.gather?.(id);
_hydratingValue = true;
markSnapshotScope(o);
_snapshotRootOwner = o;
if (shouldHydrate) sharedConfig.gather?.(id);
_hydratingValue = shouldHydrate;
if (shouldHydrate) {
markSnapshotScope(o);
_snapshotRootOwner = o;
}
set();
flush();
_snapshotRootOwner = null;
if (shouldHydrate) _snapshotRootOwner = null;
_hydratingValue = false;
releaseSnapshotScope(o);
if (shouldHydrate) releaseSnapshotScope(o);
flush();

@@ -647,5 +652,5 @@ checkHydrationComplete();

const set = createBoundaryTrigger();
return [set, () => resumeBoundaryHydration(o, id, set)];
return [set, shouldHydrate => resumeBoundaryHydration(o, id, set, shouldHydrate)];
}
function waitAndResume(p, resume, assetPromise) {
function waitAndResume(p, resume, assetPromise, hydrateRejected = true) {
const waitFor = assetPromise ? Promise.all([p, assetPromise]) : p;

@@ -660,3 +665,3 @@ waitFor.then(() => {

}
resume();
resume(hydrateRejected);
});

@@ -717,6 +722,11 @@ }

if (fr && typeof fr === "object" && (fr.s === 1 || fr.s === 2)) {
if (fr.s === 2) {
const resumeRejected = () => resume(false);
if (assetPromise) assetPromise.then(() => queueMicrotask(resumeRejected));else queueMicrotask(resumeRejected);
return undefined;
}
if (scheduleResumeAfterAssets(id, resume, assetPromise)) return undefined;
return fallback();
}
waitAndResume(fr, resume, assetPromise);
waitAndResume(fr, resume, assetPromise, false);
return fallback();

@@ -726,3 +736,3 @@ }

const [, resume] = initBoundaryResume(o, id);
assetPromise.then(resume);
assetPromise.then(() => resume());
return undefined;

@@ -890,3 +900,3 @@ }

function Reveal(props) {
return createRevealOrder(() => props.children, {
return createRevealOrder$1(() => props.children, {
order: () => props.order ?? "sequential",

@@ -903,2 +913,2 @@ collapsed: () => !!props.collapsed

export { $DEVCOMP, DEV, Errored, For, Hydration, Loading, Match, NoHydrateContext, NoHydration, Repeat, Reveal, Show, Switch, children, createComponent, createContext, createEffect, createErrorBoundary, createLoadingBoundary, createMemo, createOptimistic, createOptimisticStore, createProjection, createRenderEffect, createSignal, createStore, createUniqueId, enableHydration, lazy, sharedConfig, ssrHandleError, useContext };
export { $DEVCOMP, DEV, Errored, For, Hydration, Loading, Match, NoHydrateContext, NoHydration, Repeat, Reveal, Show, Switch, children, createComponent, createContext, createEffect, createErrorBoundary, createLoadingBoundary, createMemo, createOptimistic, createOptimisticStore, createProjection, createRenderEffect, createRevealOrder, createSignal, createStore, createUniqueId, enableHydration, lazy, sharedConfig, ssrHandleError, useContext };

@@ -536,2 +536,5 @@ 'use strict';

} catch (err) {
if (err instanceof signals.NotReadyError) throw err;
comp.error = err;
throw err;
}

@@ -604,3 +607,21 @@ }

const runProjection = () => runWithOwner(owner, () => fn(draft));
const result = runProjection();
let result;
try {
result = runProjection();
} catch (error) {
if (!(error instanceof signals.NotReadyError)) throw error;
const deferred = createDeferredPromise();
const [pending, markReady] = createPendingProxy(state, deferred.promise);
settleServerAsync(Promise.reject(error), () => runProjection(), deferred, value => {
if (value !== undefined && value !== state && value !== draft) {
Object.assign(state, value);
}
markReady();
return state;
}, _error => {
markReady();
}, () => disposed);
if (ctx?.async && !getContext(NoHydrateContext) && owner.id) ctx.serialize(owner.id, deferred.promise, options?.deferStream);
return pending;
}
const iteratorFn = result?.[Symbol.asyncIterator];

@@ -881,2 +902,3 @@ if (typeof iteratorFn === "function") {

const owner = createOwner();
const outputOwner = ctx ? createOwner() : undefined;
const resolve = () => {

@@ -888,4 +910,3 @@ const resolved = ctx.resolve(runWithOwner(createOwner(), fn));

const renderFallback = err => ctx ? runWithOwner(parent, () => {
const fallbackOwner = createOwner();
return runWithOwner(fallbackOwner, () => fallback(() => err, () => {}));
return runWithOwner(outputOwner, () => fallback(() => err, () => {}));
}) : fallback(() => err, () => {});

@@ -953,5 +974,2 @@ const serializeError = err => {

}
function isRefreshing() {
return false;
}
function refresh(_target) {

@@ -1010,2 +1028,4 @@ return undefined;

p.v = mod.default;
}, err => {
p.error = err;
});

@@ -1037,5 +1057,7 @@ }

p.s = "success";
}, () => {
}));
}
return createMemo(() => {
if (p.error) throw p.error;
if (!p.v) throw new signals.NotReadyError(p);

@@ -1543,3 +1565,2 @@ return p.v(props);

exports.isPending = isPending;
exports.isRefreshing = isRefreshing;
exports.latest = latest;

@@ -1546,0 +1567,0 @@ exports.lazy = lazy;

@@ -535,2 +535,5 @@ import { NotReadyError, $REFRESH, merge as merge$1, isWrappable, NoOwnerError, ContextNotFoundError, $PROXY, flatten } from '@solidjs/signals';

} catch (err) {
if (err instanceof NotReadyError) throw err;
comp.error = err;
throw err;
}

@@ -603,3 +606,21 @@ }

const runProjection = () => runWithOwner(owner, () => fn(draft));
const result = runProjection();
let result;
try {
result = runProjection();
} catch (error) {
if (!(error instanceof NotReadyError)) throw error;
const deferred = createDeferredPromise();
const [pending, markReady] = createPendingProxy(state, deferred.promise);
settleServerAsync(Promise.reject(error), () => runProjection(), deferred, value => {
if (value !== undefined && value !== state && value !== draft) {
Object.assign(state, value);
}
markReady();
return state;
}, _error => {
markReady();
}, () => disposed);
if (ctx?.async && !getContext(NoHydrateContext) && owner.id) ctx.serialize(owner.id, deferred.promise, options?.deferStream);
return pending;
}
const iteratorFn = result?.[Symbol.asyncIterator];

@@ -880,2 +901,3 @@ if (typeof iteratorFn === "function") {

const owner = createOwner();
const outputOwner = ctx ? createOwner() : undefined;
const resolve = () => {

@@ -887,4 +909,3 @@ const resolved = ctx.resolve(runWithOwner(createOwner(), fn));

const renderFallback = err => ctx ? runWithOwner(parent, () => {
const fallbackOwner = createOwner();
return runWithOwner(fallbackOwner, () => fallback(() => err, () => {}));
return runWithOwner(outputOwner, () => fallback(() => err, () => {}));
}) : fallback(() => err, () => {});

@@ -952,5 +973,2 @@ const serializeError = err => {

}
function isRefreshing() {
return false;
}
function refresh(_target) {

@@ -1009,2 +1027,4 @@ return undefined;

p.v = mod.default;
}, err => {
p.error = err;
});

@@ -1036,5 +1056,7 @@ }

p.s = "success";
}, () => {
}));
}
return createMemo(() => {
if (p.error) throw p.error;
if (!p.v) throw new NotReadyError(p);

@@ -1452,2 +1474,2 @@ return p.v(props);

export { $DEVCOMP, DEV, Errored, For, Hydration, Loading, Match, NoHydrateContext, NoHydration, Repeat, Reveal, Show, Switch, action, children, createComponent, createContext, createDeepProxy, createEffect, createErrorBoundary, createLoadingBoundary, createMemo, createOptimistic, createOptimisticStore, createOwner, createProjection, createReaction, createRenderEffect, createRevealOrder, createRoot, createSignal, createStore, createTrackedEffect, createUniqueId, deep, enableHydration, flush, getNextChildId, getObserver, getOwner, isDisposed, isPending, isRefreshing, latest, lazy, mapArray, merge, onCleanup, onSettled, reconcile, refresh, repeat, resolve, runWithOwner, sharedConfig, ssrHandleError, untrack, useContext };
export { $DEVCOMP, DEV, Errored, For, Hydration, Loading, Match, NoHydrateContext, NoHydration, Repeat, Reveal, Show, Switch, action, children, createComponent, createContext, createDeepProxy, createEffect, createErrorBoundary, createLoadingBoundary, createMemo, createOptimistic, createOptimisticStore, createOwner, createProjection, createReaction, createRenderEffect, createRevealOrder, createRoot, createSignal, createStore, createTrackedEffect, createUniqueId, deep, enableHydration, flush, getNextChildId, getObserver, getOwner, isDisposed, isPending, latest, lazy, mapArray, merge, onCleanup, onSettled, reconcile, refresh, repeat, resolve, runWithOwner, sharedConfig, ssrHandleError, untrack, useContext };

@@ -140,6 +140,6 @@ 'use strict';

function readSerializedOrCompute(compute, prev) {
if (!sharedConfig.hydrating) return compute(prev);
const o = signals.getOwner();
let initP;
if (sharedConfig.has(o.id)) initP = sharedConfig.load(o.id);
const hasSerialized = !sharedConfig.done && sharedConfig.has(o.id);
if (!sharedConfig.hydrating && !hasSerialized) return compute(prev);
const initP = hasSerialized ? sharedConfig.load(o.id) : undefined;
const init = readHydratedValue(initP, () => subFetch(compute, prev));

@@ -588,2 +588,5 @@ return init !== NO_HYDRATED_VALUE ? init : compute(prev);

const createErrorBoundary = (...args) => (_createErrorBoundary || signals.createErrorBoundary)(...args);
function createRevealOrder(fn, options) {
return signals.createRevealOrder(fn, options);
}
const createOptimistic = (...args) => (_createOptimistic || signals.createOptimistic)(...args);

@@ -604,3 +607,3 @@ const createProjection = (...args) => (_createProjection || signals.createProjection)(...args);

}
function resumeBoundaryHydration(o, id, set) {
function resumeBoundaryHydration(o, id, set, shouldHydrate = true) {
_pendingBoundaries--;

@@ -611,11 +614,13 @@ if (signals.isDisposed(o)) {

}
sharedConfig.gather?.(id);
_hydratingValue = true;
signals.markSnapshotScope(o);
_snapshotRootOwner = o;
if (shouldHydrate) sharedConfig.gather?.(id);
_hydratingValue = shouldHydrate;
if (shouldHydrate) {
signals.markSnapshotScope(o);
_snapshotRootOwner = o;
}
set();
signals.flush();
_snapshotRootOwner = null;
if (shouldHydrate) _snapshotRootOwner = null;
_hydratingValue = false;
signals.releaseSnapshotScope(o);
if (shouldHydrate) signals.releaseSnapshotScope(o);
signals.flush();

@@ -631,5 +636,5 @@ checkHydrationComplete();

const set = createBoundaryTrigger();
return [set, () => resumeBoundaryHydration(o, id, set)];
return [set, shouldHydrate => resumeBoundaryHydration(o, id, set, shouldHydrate)];
}
function waitAndResume(p, resume, assetPromise) {
function waitAndResume(p, resume, assetPromise, hydrateRejected = true) {
const waitFor = assetPromise ? Promise.all([p, assetPromise]) : p;

@@ -644,3 +649,3 @@ waitFor.then(() => {

}
resume();
resume(hydrateRejected);
});

@@ -701,6 +706,11 @@ }

if (fr && typeof fr === "object" && (fr.s === 1 || fr.s === 2)) {
if (fr.s === 2) {
const resumeRejected = () => resume(false);
if (assetPromise) assetPromise.then(() => queueMicrotask(resumeRejected));else queueMicrotask(resumeRejected);
return undefined;
}
if (scheduleResumeAfterAssets(id, resume, assetPromise)) return undefined;
return fallback();
}
waitAndResume(fr, resume, assetPromise);
waitAndResume(fr, resume, assetPromise, false);
return fallback();

@@ -710,3 +720,3 @@ }

const [, resume] = initBoundaryResume(o, id);
assetPromise.then(resume);
assetPromise.then(() => resume());
return undefined;

@@ -897,6 +907,2 @@ }

});
Object.defineProperty(exports, "createRevealOrder", {
enumerable: true,
get: function () { return signals.createRevealOrder; }
});
Object.defineProperty(exports, "createRoot", {

@@ -954,6 +960,2 @@ enumerable: true,

});
Object.defineProperty(exports, "isRefreshing", {
enumerable: true,
get: function () { return signals.isRefreshing; }
});
Object.defineProperty(exports, "isWrappable", {

@@ -1043,2 +1045,3 @@ enumerable: true,

exports.createRenderEffect = createRenderEffect;
exports.createRevealOrder = createRevealOrder;
exports.createSignal = createSignal;

@@ -1045,0 +1048,0 @@ exports.createStore = createStore;

@@ -1,3 +0,3 @@

import { getContext, createMemo as createMemo$1, flatten, createRoot, setContext, createOwner, runWithOwner, createEffect as createEffect$1, createErrorBoundary as createErrorBoundary$1, createLoadingBoundary as createLoadingBoundary$1, getOwner, createOptimistic as createOptimistic$1, createOptimisticStore as createOptimisticStore$1, createProjection as createProjection$1, createRenderEffect as createRenderEffect$1, createSignal as createSignal$1, createStore as createStore$1, setSnapshotCapture, releaseSnapshotScope, getNextChildId, onCleanup, isDisposed, peekNextChildId, clearSnapshots, flush, markSnapshotScope, untrack, mapArray, repeat, createRevealOrder } from '@solidjs/signals';
export { $PROXY, $REFRESH, $TRACK, NotReadyError, action, createOwner, createReaction, createRevealOrder, createRoot, createTrackedEffect, deep, enableExternalSource, enforceLoadingBoundary, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isPending, isRefreshing, isWrappable, latest, mapArray, merge, omit, onCleanup, onSettled, reconcile, refresh, repeat, resolve, runWithOwner, snapshot, storePath, untrack } from '@solidjs/signals';
import { getContext, createMemo as createMemo$1, flatten, createRoot, setContext, createOwner, runWithOwner, createEffect as createEffect$1, createErrorBoundary as createErrorBoundary$1, createLoadingBoundary as createLoadingBoundary$1, getOwner, createOptimistic as createOptimistic$1, createOptimisticStore as createOptimisticStore$1, createProjection as createProjection$1, createRenderEffect as createRenderEffect$1, createRevealOrder as createRevealOrder$1, createSignal as createSignal$1, createStore as createStore$1, setSnapshotCapture, releaseSnapshotScope, getNextChildId, onCleanup, isDisposed, peekNextChildId, clearSnapshots, flush, markSnapshotScope, untrack, mapArray, repeat } from '@solidjs/signals';
export { $PROXY, $REFRESH, $TRACK, NotReadyError, action, createOwner, createReaction, createRoot, createTrackedEffect, deep, enableExternalSource, enforceLoadingBoundary, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isPending, isWrappable, latest, mapArray, merge, omit, onCleanup, onSettled, reconcile, refresh, repeat, resolve, runWithOwner, snapshot, storePath, untrack } from '@solidjs/signals';

@@ -139,6 +139,6 @@ const IS_DEV = false;

function readSerializedOrCompute(compute, prev) {
if (!sharedConfig.hydrating) return compute(prev);
const o = getOwner();
let initP;
if (sharedConfig.has(o.id)) initP = sharedConfig.load(o.id);
const hasSerialized = !sharedConfig.done && sharedConfig.has(o.id);
if (!sharedConfig.hydrating && !hasSerialized) return compute(prev);
const initP = hasSerialized ? sharedConfig.load(o.id) : undefined;
const init = readHydratedValue(initP, () => subFetch(compute, prev));

@@ -587,2 +587,5 @@ return init !== NO_HYDRATED_VALUE ? init : compute(prev);

const createErrorBoundary = (...args) => (_createErrorBoundary || createErrorBoundary$1)(...args);
function createRevealOrder(fn, options) {
return createRevealOrder$1(fn, options);
}
const createOptimistic = (...args) => (_createOptimistic || createOptimistic$1)(...args);

@@ -603,3 +606,3 @@ const createProjection = (...args) => (_createProjection || createProjection$1)(...args);

}
function resumeBoundaryHydration(o, id, set) {
function resumeBoundaryHydration(o, id, set, shouldHydrate = true) {
_pendingBoundaries--;

@@ -610,11 +613,13 @@ if (isDisposed(o)) {

}
sharedConfig.gather?.(id);
_hydratingValue = true;
markSnapshotScope(o);
_snapshotRootOwner = o;
if (shouldHydrate) sharedConfig.gather?.(id);
_hydratingValue = shouldHydrate;
if (shouldHydrate) {
markSnapshotScope(o);
_snapshotRootOwner = o;
}
set();
flush();
_snapshotRootOwner = null;
if (shouldHydrate) _snapshotRootOwner = null;
_hydratingValue = false;
releaseSnapshotScope(o);
if (shouldHydrate) releaseSnapshotScope(o);
flush();

@@ -630,5 +635,5 @@ checkHydrationComplete();

const set = createBoundaryTrigger();
return [set, () => resumeBoundaryHydration(o, id, set)];
return [set, shouldHydrate => resumeBoundaryHydration(o, id, set, shouldHydrate)];
}
function waitAndResume(p, resume, assetPromise) {
function waitAndResume(p, resume, assetPromise, hydrateRejected = true) {
const waitFor = assetPromise ? Promise.all([p, assetPromise]) : p;

@@ -643,3 +648,3 @@ waitFor.then(() => {

}
resume();
resume(hydrateRejected);
});

@@ -700,6 +705,11 @@ }

if (fr && typeof fr === "object" && (fr.s === 1 || fr.s === 2)) {
if (fr.s === 2) {
const resumeRejected = () => resume(false);
if (assetPromise) assetPromise.then(() => queueMicrotask(resumeRejected));else queueMicrotask(resumeRejected);
return undefined;
}
if (scheduleResumeAfterAssets(id, resume, assetPromise)) return undefined;
return fallback();
}
waitAndResume(fr, resume, assetPromise);
waitAndResume(fr, resume, assetPromise, false);
return fallback();

@@ -709,3 +719,3 @@ }

const [, resume] = initBoundaryResume(o, id);
assetPromise.then(resume);
assetPromise.then(() => resume());
return undefined;

@@ -859,3 +869,3 @@ }

function Reveal(props) {
return createRevealOrder(() => props.children, {
return createRevealOrder$1(() => props.children, {
order: () => props.order ?? "sequential",

@@ -869,2 +879,2 @@ collapsed: () => !!props.collapsed

export { $DEVCOMP, DEV, Errored, For, Hydration, Loading, Match, NoHydrateContext, NoHydration, Repeat, Reveal, Show, Switch, children, createComponent, createContext, createEffect, createErrorBoundary, createLoadingBoundary, createMemo, createOptimistic, createOptimisticStore, createProjection, createRenderEffect, createSignal, createStore, createUniqueId, enableHydration, lazy, sharedConfig, ssrHandleError, useContext };
export { $DEVCOMP, DEV, Errored, For, Hydration, Loading, Match, NoHydrateContext, NoHydration, Repeat, Reveal, Show, Switch, children, createComponent, createContext, createEffect, createErrorBoundary, createLoadingBoundary, createMemo, createOptimistic, createOptimisticStore, createProjection, createRenderEffect, createRevealOrder, createSignal, createStore, createUniqueId, enableHydration, lazy, sharedConfig, ssrHandleError, useContext };
{
"name": "solid-js",
"description": "Reactive JavaScript library for building user interfaces. Compiles JSX to real DOM with fine-grained signal-based updates — no virtual DOM.",
"version": "2.0.0-beta.14",
"version": "2.0.0-beta.15",
"author": "Ryan Carniato",

@@ -110,3 +110,3 @@ "license": "MIT",

"dependencies": {
"@solidjs/signals": "^2.0.0-beta.14",
"@solidjs/signals": "^2.0.0-beta.15",
"csstype": "^3.1.0",

@@ -113,0 +113,0 @@ "seroval": "~1.5.0",

@@ -1,2 +0,2 @@

import { createRenderEffect as coreRenderEffect, createEffect as coreEffect, type Accessor, type ComputeFunction, type MemoOptions, type NoInfer, type ProjectionOptions, type Refreshable, type Signal, type SignalOptions, type SourceAccessor, type Store, type StoreSetter, type Context } from "@solidjs/signals";
import { createRenderEffect as coreRenderEffect, createEffect as coreEffect, type Accessor, type ComputeFunction, type MemoOptions, type NoInfer, type ProjectionOptions, type Refreshable, type Signal, type SignalOptions, type SourceAccessor, type Store, type StoreSetter, type RevealOrder, type Context } from "@solidjs/signals";
import type { Element as SolidElement } from "../types.cjs";

@@ -202,3 +202,3 @@ type HydrationSsrFields = {

/**
* Lower-level primitive that backs the `<Errored>` flow control.
* Internal primitive that backs the `<Errored>` flow control.
* Catches errors thrown inside `fn` and renders `fallback(error,

@@ -208,4 +208,5 @@ * reset)` instead. `error` is an accessor for the latest captured error;

*
* App code should use `<Errored fallback={...}>` directly — reach for
* this only when authoring a custom boundary component.
* App code should use `<Errored fallback={...}>` directly. This primitive is
* kept exported for renderer, test, and compatibility use, but it is not part
* of the recommended application authoring surface.
*

@@ -216,22 +217,16 @@ * **Hydration:** if the server serialized an error for this boundary,

*
* @example
* ```tsx
* // Custom boundary built on the primitive — adds telemetry around the
* // canonical `<Errored>` shape.
* function TracedErrored(props: {
* fallback: (e: () => unknown) => JSX.Element;
* children: JSX.Element;
* }): JSX.Element {
* return createErrorBoundary(
* () => props.children,
* (err, reset) => {
* reportError(err());
* return props.fallback(err);
* }
* ) as unknown as JSX.Element;
* }
* ```
* @internal
*/
export declare const createErrorBoundary: <U>(fn: () => any, fallback: (error: Accessor<unknown>, reset: () => void) => U) => () => unknown;
/**
* Internal primitive that backs `<Reveal>` coordination of sibling loading
* boundaries. App code should use `<Reveal>` directly.
*
* @internal
*/
export declare function createRevealOrder<T>(fn: () => T, options?: {
order?: () => RevealOrder;
collapsed?: () => boolean;
}): T;
/**
* Creates an optimistic signal — a `Signal<T>` whose writes are

@@ -512,18 +507,10 @@ * tentative inside an `action` transition: they show up immediately,

/**
* Lower-level primitive that backs the `<Loading>` component. Returns a
* Internal primitive that backs the `<Loading>` component. Returns a
* computation that yields `fallback()` while async reads inside `fn` are
* pending, and `fn()` once they have settled. Most callers should use
* `<Loading>` directly; this is exposed for renderers and library authors.
* pending, and `fn()` once they have settled. App code should use `<Loading>`
* directly. This primitive is kept exported for renderer, test, and
* compatibility use, but it is not part of the recommended application
* authoring surface.
*
* @example
* ```tsx
* // Custom boundary component built on the primitive. App code uses
* // `<Loading fallback={…}>` directly.
* function MyLoading(props: { fallback: JSX.Element; children: JSX.Element }): JSX.Element {
* return createLoadingBoundary(
* () => props.children,
* () => props.fallback
* ) as unknown as JSX.Element;
* }
* ```
* @internal
*/

@@ -530,0 +517,0 @@ export declare function createLoadingBoundary(fn: () => any, fallback: () => any, options?: {

@@ -1,2 +0,2 @@

export { $PROXY, $REFRESH, $TRACK, action, createOwner, createReaction, createRevealOrder, createRoot, createTrackedEffect, deep, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isRefreshing, isPending, isWrappable, mapArray, merge, omit, onCleanup, onSettled, latest, reconcile, refresh, repeat, resolve, NotReadyError, runWithOwner, enableExternalSource, enforceLoadingBoundary, snapshot, storePath, untrack } from "@solidjs/signals";
export { $PROXY, $REFRESH, $TRACK, action, createOwner, createReaction, createRoot, createTrackedEffect, deep, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isPending, isWrappable, mapArray, merge, omit, onCleanup, onSettled, latest, reconcile, refresh, repeat, resolve, NotReadyError, runWithOwner, enableExternalSource, enforceLoadingBoundary, snapshot, storePath, untrack } from "@solidjs/signals";
export type { Accessor, ComputeFunction, EffectBundle, EffectFunction, EffectOptions, ExternalSource, ExternalSourceConfig, ExternalSourceFactory, Merge, MemoOptions, NoInfer, NotWrappable, Omit, Owner, ProjectionOptions, Refreshable, Signal, SignalOptions, SourceAccessor, Setter, Store, StoreReturn, ProjectionStoreReturn, StoreOptions, SolidStore, StoreNode, StoreSetter, StorePathRange, ArrayFilterFn, CustomPartial, Part, PathSetter } from "@solidjs/signals";

@@ -8,3 +8,3 @@ export { $DEVCOMP, children, createContext, useContext } from "./client/core.cjs";

export type { ArrayElement, Element } from "./types.cjs";
export { sharedConfig, enableHydration, createErrorBoundary, createLoadingBoundary, createMemo, createSignal, createStore, createProjection, createOptimistic, createOptimisticStore, createRenderEffect, createEffect, NoHydration, Hydration, NoHydrateContext } from "./client/hydration.cjs";
export { sharedConfig, enableHydration, createErrorBoundary, createLoadingBoundary, createRevealOrder, createMemo, createSignal, createStore, createProjection, createOptimistic, createOptimisticStore, createRenderEffect, createEffect, NoHydration, Hydration, NoHydrateContext } from "./client/hydration.cjs";
/** @internal */

@@ -11,0 +11,0 @@ export declare function ssrHandleError(): void;

@@ -36,10 +36,2 @@ import type { Context } from "./signals.cjs";

export declare function ssrHandleError(err: any): Promise<any> | undefined;
/**
* Tracks all resources inside a component and renders a fallback until they are all resolved
*
* On the server, this is SSR-aware: it handles async mode (streaming) by registering
* fragments and resolving asynchronously, and sync mode by serializing fallback markers.
*
* @description https://docs.solidjs.com/reference/components/suspense
*/
export declare function createLoadingBoundary(fn: () => any, fallback: () => any, options?: {

@@ -46,0 +38,0 @@ on?: () => any;

@@ -1,2 +0,2 @@

export { $PROXY, $REFRESH, $TRACK, action, createEffect, createMemo, createOptimistic, createOptimisticStore, createErrorBoundary, createOwner, createProjection, createReaction, createRenderEffect, createRevealOrder, createRoot, createSignal, createStore, createTrackedEffect, deep, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isRefreshing, isPending, isWrappable, mapArray, merge, omit, onCleanup, onSettled, latest, reconcile, refresh, repeat, resolve, NotReadyError, runWithOwner, snapshot, storePath, createDeepProxy, enableExternalSource, enforceLoadingBoundary, untrack } from "./signals.cjs";
export { $PROXY, $REFRESH, $TRACK, action, createEffect, createMemo, createOptimistic, createOptimisticStore, createErrorBoundary, createOwner, createProjection, createReaction, createRenderEffect, createRevealOrder, createRoot, createSignal, createStore, createTrackedEffect, deep, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isPending, isWrappable, mapArray, merge, omit, onCleanup, onSettled, latest, reconcile, refresh, repeat, resolve, NotReadyError, runWithOwner, snapshot, storePath, createDeepProxy, enableExternalSource, enforceLoadingBoundary, untrack } from "./signals.cjs";
export type { Accessor, ComputeFunction, EffectFunction, EffectOptions, ExternalSource, ExternalSourceConfig, ExternalSourceFactory, Merge, NoInfer, NotWrappable, Omit, Owner, Refreshable, Signal, SignalOptions, Setter, Store, SolidStore, StoreNode, StoreSetter, StorePathRange, ArrayFilterFn, CustomPartial, Part, PathSetter, PatchOp } from "./signals.cjs";

@@ -3,0 +3,0 @@ export { $DEVCOMP, children, createContext, useContext } from "./core.cjs";

@@ -128,3 +128,2 @@ import { $REFRESH } from "@solidjs/signals";

export declare function latest<T>(fn: () => T): T;
export declare function isRefreshing(): boolean;
export declare function refresh<T>(_target: Refreshable<T>): void;

@@ -131,0 +130,0 @@ export declare function action<T extends (...args: any[]) => any>(fn: T): T;

@@ -1,2 +0,2 @@

import { createRenderEffect as coreRenderEffect, createEffect as coreEffect, type Accessor, type ComputeFunction, type MemoOptions, type NoInfer, type ProjectionOptions, type Refreshable, type Signal, type SignalOptions, type SourceAccessor, type Store, type StoreSetter, type Context } from "@solidjs/signals";
import { createRenderEffect as coreRenderEffect, createEffect as coreEffect, type Accessor, type ComputeFunction, type MemoOptions, type NoInfer, type ProjectionOptions, type Refreshable, type Signal, type SignalOptions, type SourceAccessor, type Store, type StoreSetter, type RevealOrder, type Context } from "@solidjs/signals";
import type { Element as SolidElement } from "../types.js";

@@ -202,3 +202,3 @@ type HydrationSsrFields = {

/**
* Lower-level primitive that backs the `<Errored>` flow control.
* Internal primitive that backs the `<Errored>` flow control.
* Catches errors thrown inside `fn` and renders `fallback(error,

@@ -208,4 +208,5 @@ * reset)` instead. `error` is an accessor for the latest captured error;

*
* App code should use `<Errored fallback={...}>` directly — reach for
* this only when authoring a custom boundary component.
* App code should use `<Errored fallback={...}>` directly. This primitive is
* kept exported for renderer, test, and compatibility use, but it is not part
* of the recommended application authoring surface.
*

@@ -216,22 +217,16 @@ * **Hydration:** if the server serialized an error for this boundary,

*
* @example
* ```tsx
* // Custom boundary built on the primitive — adds telemetry around the
* // canonical `<Errored>` shape.
* function TracedErrored(props: {
* fallback: (e: () => unknown) => JSX.Element;
* children: JSX.Element;
* }): JSX.Element {
* return createErrorBoundary(
* () => props.children,
* (err, reset) => {
* reportError(err());
* return props.fallback(err);
* }
* ) as unknown as JSX.Element;
* }
* ```
* @internal
*/
export declare const createErrorBoundary: <U>(fn: () => any, fallback: (error: Accessor<unknown>, reset: () => void) => U) => () => unknown;
/**
* Internal primitive that backs `<Reveal>` coordination of sibling loading
* boundaries. App code should use `<Reveal>` directly.
*
* @internal
*/
export declare function createRevealOrder<T>(fn: () => T, options?: {
order?: () => RevealOrder;
collapsed?: () => boolean;
}): T;
/**
* Creates an optimistic signal — a `Signal<T>` whose writes are

@@ -512,18 +507,10 @@ * tentative inside an `action` transition: they show up immediately,

/**
* Lower-level primitive that backs the `<Loading>` component. Returns a
* Internal primitive that backs the `<Loading>` component. Returns a
* computation that yields `fallback()` while async reads inside `fn` are
* pending, and `fn()` once they have settled. Most callers should use
* `<Loading>` directly; this is exposed for renderers and library authors.
* pending, and `fn()` once they have settled. App code should use `<Loading>`
* directly. This primitive is kept exported for renderer, test, and
* compatibility use, but it is not part of the recommended application
* authoring surface.
*
* @example
* ```tsx
* // Custom boundary component built on the primitive. App code uses
* // `<Loading fallback={…}>` directly.
* function MyLoading(props: { fallback: JSX.Element; children: JSX.Element }): JSX.Element {
* return createLoadingBoundary(
* () => props.children,
* () => props.fallback
* ) as unknown as JSX.Element;
* }
* ```
* @internal
*/

@@ -530,0 +517,0 @@ export declare function createLoadingBoundary(fn: () => any, fallback: () => any, options?: {

@@ -1,2 +0,2 @@

export { $PROXY, $REFRESH, $TRACK, action, createOwner, createReaction, createRevealOrder, createRoot, createTrackedEffect, deep, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isRefreshing, isPending, isWrappable, mapArray, merge, omit, onCleanup, onSettled, latest, reconcile, refresh, repeat, resolve, NotReadyError, runWithOwner, enableExternalSource, enforceLoadingBoundary, snapshot, storePath, untrack } from "@solidjs/signals";
export { $PROXY, $REFRESH, $TRACK, action, createOwner, createReaction, createRoot, createTrackedEffect, deep, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isPending, isWrappable, mapArray, merge, omit, onCleanup, onSettled, latest, reconcile, refresh, repeat, resolve, NotReadyError, runWithOwner, enableExternalSource, enforceLoadingBoundary, snapshot, storePath, untrack } from "@solidjs/signals";
export type { Accessor, ComputeFunction, EffectBundle, EffectFunction, EffectOptions, ExternalSource, ExternalSourceConfig, ExternalSourceFactory, Merge, MemoOptions, NoInfer, NotWrappable, Omit, Owner, ProjectionOptions, Refreshable, Signal, SignalOptions, SourceAccessor, Setter, Store, StoreReturn, ProjectionStoreReturn, StoreOptions, SolidStore, StoreNode, StoreSetter, StorePathRange, ArrayFilterFn, CustomPartial, Part, PathSetter } from "@solidjs/signals";

@@ -8,3 +8,3 @@ export { $DEVCOMP, children, createContext, useContext } from "./client/core.js";

export type { ArrayElement, Element } from "./types.js";
export { sharedConfig, enableHydration, createErrorBoundary, createLoadingBoundary, createMemo, createSignal, createStore, createProjection, createOptimistic, createOptimisticStore, createRenderEffect, createEffect, NoHydration, Hydration, NoHydrateContext } from "./client/hydration.js";
export { sharedConfig, enableHydration, createErrorBoundary, createLoadingBoundary, createRevealOrder, createMemo, createSignal, createStore, createProjection, createOptimistic, createOptimisticStore, createRenderEffect, createEffect, NoHydration, Hydration, NoHydrateContext } from "./client/hydration.js";
/** @internal */

@@ -11,0 +11,0 @@ export declare function ssrHandleError(): void;

@@ -36,10 +36,2 @@ import type { Context } from "./signals.js";

export declare function ssrHandleError(err: any): Promise<any> | undefined;
/**
* Tracks all resources inside a component and renders a fallback until they are all resolved
*
* On the server, this is SSR-aware: it handles async mode (streaming) by registering
* fragments and resolving asynchronously, and sync mode by serializing fallback markers.
*
* @description https://docs.solidjs.com/reference/components/suspense
*/
export declare function createLoadingBoundary(fn: () => any, fallback: () => any, options?: {

@@ -46,0 +38,0 @@ on?: () => any;

@@ -1,2 +0,2 @@

export { $PROXY, $REFRESH, $TRACK, action, createEffect, createMemo, createOptimistic, createOptimisticStore, createErrorBoundary, createOwner, createProjection, createReaction, createRenderEffect, createRevealOrder, createRoot, createSignal, createStore, createTrackedEffect, deep, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isRefreshing, isPending, isWrappable, mapArray, merge, omit, onCleanup, onSettled, latest, reconcile, refresh, repeat, resolve, NotReadyError, runWithOwner, snapshot, storePath, createDeepProxy, enableExternalSource, enforceLoadingBoundary, untrack } from "./signals.js";
export { $PROXY, $REFRESH, $TRACK, action, createEffect, createMemo, createOptimistic, createOptimisticStore, createErrorBoundary, createOwner, createProjection, createReaction, createRenderEffect, createRevealOrder, createRoot, createSignal, createStore, createTrackedEffect, deep, flatten, flush, getNextChildId, getObserver, getOwner, isDisposed, isEqual, isPending, isWrappable, mapArray, merge, omit, onCleanup, onSettled, latest, reconcile, refresh, repeat, resolve, NotReadyError, runWithOwner, snapshot, storePath, createDeepProxy, enableExternalSource, enforceLoadingBoundary, untrack } from "./signals.js";
export type { Accessor, ComputeFunction, EffectFunction, EffectOptions, ExternalSource, ExternalSourceConfig, ExternalSourceFactory, Merge, NoInfer, NotWrappable, Omit, Owner, Refreshable, Signal, SignalOptions, Setter, Store, SolidStore, StoreNode, StoreSetter, StorePathRange, ArrayFilterFn, CustomPartial, Part, PathSetter, PatchOp } from "./signals.js";

@@ -3,0 +3,0 @@ export { $DEVCOMP, children, createContext, useContext } from "./core.js";

@@ -128,3 +128,2 @@ import { $REFRESH } from "@solidjs/signals";

export declare function latest<T>(fn: () => T): T;
export declare function isRefreshing(): boolean;
export declare function refresh<T>(_target: Refreshable<T>): void;

@@ -131,0 +130,0 @@ export declare function action<T extends (...args: any[]) => any>(fn: T): T;