signalium 2.3.2 → 3.0.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/CHANGELOG.md +230 -0
- package/dist/cjs/development/component-shared-Cug2Y5YZ.js +33 -0
- package/dist/cjs/development/component-shared-Cug2Y5YZ.js.map +1 -0
- package/dist/cjs/development/{debug-ouT0N0E4.js → debug-C46WDxhL.js} +47 -195
- package/dist/cjs/development/debug-C46WDxhL.js.map +1 -0
- package/dist/cjs/development/debug.js +1 -1
- package/dist/cjs/development/index.js +3 -2
- package/dist/cjs/development/index.js.map +1 -1
- package/dist/cjs/development/react/index.js +256 -87
- package/dist/cjs/development/react/index.js.map +1 -1
- package/dist/cjs/development/react/index.server.js +14 -0
- package/dist/cjs/development/react/index.server.js.map +1 -0
- package/dist/cjs/development/react/server.js +37 -0
- package/dist/cjs/development/react/server.js.map +1 -0
- package/dist/cjs/development/{snapshot-BPJ-qw6l.js → snapshot-48aGePMZ.js} +2 -2
- package/dist/cjs/development/{snapshot-BPJ-qw6l.js.map → snapshot-48aGePMZ.js.map} +1 -1
- package/dist/cjs/development/transform/index.js +196 -13
- package/dist/cjs/development/transform/index.js.map +1 -1
- package/dist/cjs/development/utils.js +6 -6
- package/dist/cjs/development/utils.js.map +1 -1
- package/dist/cjs/production/component-shared-D0J85PUi.js +33 -0
- package/dist/cjs/production/component-shared-D0J85PUi.js.map +1 -0
- package/dist/cjs/production/{contexts-DtQMtXO7.js → contexts-CM3QLfV8.js} +47 -198
- package/dist/cjs/production/contexts-CM3QLfV8.js.map +1 -0
- package/dist/cjs/production/debug.js +1 -1
- package/dist/cjs/production/index.js +3 -2
- package/dist/cjs/production/index.js.map +1 -1
- package/dist/cjs/production/react/index.js +242 -89
- package/dist/cjs/production/react/index.js.map +1 -1
- package/dist/cjs/production/react/index.server.js +14 -0
- package/dist/cjs/production/react/index.server.js.map +1 -0
- package/dist/cjs/production/react/server.js +37 -0
- package/dist/cjs/production/react/server.js.map +1 -0
- package/dist/cjs/production/{snapshot-Dw62eSpw.js → snapshot-BCESZVAP.js} +2 -2
- package/dist/cjs/production/{snapshot-Dw62eSpw.js.map → snapshot-BCESZVAP.js.map} +1 -1
- package/dist/cjs/production/transform/index.js +196 -13
- package/dist/cjs/production/transform/index.js.map +1 -1
- package/dist/cjs/production/utils.js +6 -6
- package/dist/cjs/production/utils.js.map +1 -1
- package/dist/esm/development/component-shared-CLSmdnGU.js +34 -0
- package/dist/esm/development/component-shared-CLSmdnGU.js.map +1 -0
- package/dist/esm/development/{debug-DaK9qsbI.js → debug-BTLbgTPK.js} +79 -227
- package/dist/esm/development/debug-BTLbgTPK.js.map +1 -0
- package/dist/esm/development/debug.js +9 -9
- package/dist/esm/development/index.js +14 -13
- package/dist/esm/development/react/index.js +232 -79
- package/dist/esm/development/react/index.js.map +1 -1
- package/dist/esm/development/react/index.server.js +14 -0
- package/dist/esm/development/react/index.server.js.map +1 -0
- package/dist/esm/development/react/server.js +20 -0
- package/dist/esm/development/react/server.js.map +1 -0
- package/dist/esm/development/{snapshot-D8ZJEbwO.js → snapshot-Ca_rQa4c.js} +2 -2
- package/dist/esm/development/{snapshot-D8ZJEbwO.js.map → snapshot-Ca_rQa4c.js.map} +1 -1
- package/dist/esm/development/transform/index.js +197 -14
- package/dist/esm/development/transform/index.js.map +1 -1
- package/dist/esm/development/utils.js +11 -11
- package/dist/esm/development/utils.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/internals/async.d.ts +3 -3
- package/dist/esm/internals/async.d.ts.map +1 -1
- package/dist/esm/internals/contexts.d.ts +10 -6
- package/dist/esm/internals/contexts.d.ts.map +1 -1
- package/dist/esm/internals/core-api.d.ts +2 -2
- package/dist/esm/internals/core-api.d.ts.map +1 -1
- package/dist/esm/internals/get.d.ts.map +1 -1
- package/dist/esm/internals/reactive.d.ts +3 -9
- package/dist/esm/internals/reactive.d.ts.map +1 -1
- package/dist/esm/internals/scheduling.d.ts +0 -2
- package/dist/esm/internals/scheduling.d.ts.map +1 -1
- package/dist/esm/internals/watch.d.ts +3 -4
- package/dist/esm/internals/watch.d.ts.map +1 -1
- package/dist/esm/production/component-shared-Dva0S5e3.js +34 -0
- package/dist/esm/production/component-shared-Dva0S5e3.js.map +1 -0
- package/dist/esm/production/{contexts-US_h2nBi.js → contexts-FxCndlvf.js} +71 -222
- package/dist/esm/production/contexts-FxCndlvf.js.map +1 -0
- package/dist/esm/production/debug.js +1 -1
- package/dist/esm/production/index.js +14 -13
- package/dist/esm/production/react/index.js +219 -82
- package/dist/esm/production/react/index.js.map +1 -1
- package/dist/esm/production/react/index.server.js +14 -0
- package/dist/esm/production/react/index.server.js.map +1 -0
- package/dist/esm/production/react/server.js +20 -0
- package/dist/esm/production/react/server.js.map +1 -0
- package/dist/esm/production/{snapshot-CfJGJCvW.js → snapshot-TYiTYPGB.js} +2 -2
- package/dist/esm/production/{snapshot-CfJGJCvW.js.map → snapshot-TYiTYPGB.js.map} +1 -1
- package/dist/esm/production/transform/index.js +197 -14
- package/dist/esm/production/transform/index.js.map +1 -1
- package/dist/esm/production/utils.js +11 -11
- package/dist/esm/production/utils.js.map +1 -1
- package/dist/esm/react/async-component.d.ts +42 -0
- package/dist/esm/react/async-component.d.ts.map +1 -0
- package/dist/esm/react/component-server.d.ts +4 -0
- package/dist/esm/react/component-server.d.ts.map +1 -0
- package/dist/esm/react/component-shared.d.ts +21 -0
- package/dist/esm/react/component-shared.d.ts.map +1 -0
- package/dist/esm/react/component.d.ts +5 -1
- package/dist/esm/react/component.d.ts.map +1 -1
- package/dist/esm/react/index.d.ts +3 -4
- package/dist/esm/react/index.d.ts.map +1 -1
- package/dist/esm/react/index.server.d.ts +8 -0
- package/dist/esm/react/index.server.d.ts.map +1 -0
- package/dist/esm/react/pause-signals-context.d.ts +18 -0
- package/dist/esm/react/pause-signals-context.d.ts.map +1 -0
- package/dist/esm/react/server.d.ts +12 -0
- package/dist/esm/react/server.d.ts.map +1 -0
- package/dist/esm/react/use-reactive.d.ts +36 -7
- package/dist/esm/react/use-reactive.d.ts.map +1 -1
- package/dist/esm/transform/async.d.ts.map +1 -1
- package/dist/esm/transform/callback.d.ts.map +1 -1
- package/dist/esm/transform/index.d.ts +1 -0
- package/dist/esm/transform/index.d.ts.map +1 -1
- package/dist/esm/transform/preset.d.ts +1 -0
- package/dist/esm/transform/preset.d.ts.map +1 -1
- package/dist/esm/transform/use-reactive.d.ts +9 -0
- package/dist/esm/transform/use-reactive.d.ts.map +1 -0
- package/dist/esm/types.d.ts +33 -10
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils.d.ts +2 -2
- package/dist/esm/utils.d.ts.map +1 -1
- package/package.json +35 -4
- package/react-server.js +15 -0
- package/dist/cjs/development/debug-ouT0N0E4.js.map +0 -1
- package/dist/cjs/production/contexts-DtQMtXO7.js.map +0 -1
- package/dist/esm/development/debug-DaK9qsbI.js.map +0 -1
- package/dist/esm/internals/weakref.d.ts +0 -3
- package/dist/esm/internals/weakref.d.ts.map +0 -1
- package/dist/esm/production/contexts-US_h2nBi.js.map +0 -1
- package/dist/esm/react/suspend-signals-context.d.ts +0 -3
- package/dist/esm/react/suspend-signals-context.d.ts.map +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type * as ReactTypes from 'react';
|
|
2
|
+
import { ReactiveSignal } from '../internals/reactive.js';
|
|
3
|
+
/** Marked on the outer wrapper returned by `component()` for async (generator) definitions. */
|
|
4
|
+
export declare const SIGNALIUM_ASYNC_COMPONENT: unique symbol;
|
|
5
|
+
/**
|
|
6
|
+
* Call from wrappers around `use()` if you might receive a Signalium async component by mistake.
|
|
7
|
+
* React's `use()` does not support Signalium async `component()` wrappers — render them under
|
|
8
|
+
* `<Suspense>` and use `await` inside the component (after the async transform) instead.
|
|
9
|
+
*/
|
|
10
|
+
export declare function throwIfSignaliumAsyncComponentPassedToUse(resource: unknown): void;
|
|
11
|
+
export { isGeneratorFunction, isAsyncFunctionWithoutTransform } from './component-shared.js';
|
|
12
|
+
/**
|
|
13
|
+
* Synchronous replay driver for async `component()` (authoring: `async`/`await`; Babel rewrites to a generator).
|
|
14
|
+
*
|
|
15
|
+
* Each React render starts a **new** iterator and walks it in a tight loop. Each `yield` (from
|
|
16
|
+
* the compiled generator, originally `await`) is treated like `use(promise)` / Suspense: pending
|
|
17
|
+
* thenables **throw** (interrupting the render); settled `ReactivePromise` values are injected via
|
|
18
|
+
* `next(value)` and the loop continues in the same turn.
|
|
19
|
+
*
|
|
20
|
+
* **Hooks after a suspending `await`:** Same family as React `use()` — the throw aborts before
|
|
21
|
+
* later code runs; the next attempt replays from the top. Do not use conditional hooks without
|
|
22
|
+
* Suspense on paths that skip them.
|
|
23
|
+
*
|
|
24
|
+
* **Plain `Promise` / other thenables:** First time pending, **throw** for Suspense and register
|
|
25
|
+
* the outcome in a `WeakMap` keyed by thenable identity. After settlement, the **same** object
|
|
26
|
+
* replays inject the value (or throw the rejection) synchronously. Keep **stable thenable
|
|
27
|
+
* identity** across replays (e.g. store in a ref). Thenables may expose React `use()`-style
|
|
28
|
+
* `status` / `value` / `reason` for synchronous reads when present.
|
|
29
|
+
*
|
|
30
|
+
* **Generator `let` / `const`:** Reset every replay; durable state should use React hooks, refs, or
|
|
31
|
+
* Signalium signals.
|
|
32
|
+
*
|
|
33
|
+
* `ownerSignal` is set as `CURRENT_CONSUMER` so reads inside the generator participate in the
|
|
34
|
+
* reactive graph like `compute` in `runSignal`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function runSyncReplayAsyncComponent<P extends object>(fn: (props: P) => Generator<any, ReactTypes.ReactNode | ReactTypes.ReactNode[] | null, unknown>, props: P, ownerSignal: ReactiveSignal<ReactTypes.ReactNode | ReactTypes.ReactNode[] | null, []>): ReactTypes.ReactNode | ReactTypes.ReactNode[] | null;
|
|
37
|
+
/**
|
|
38
|
+
* Async Signalium `component()`: one lazy reactive signal per **instance** (same as sync
|
|
39
|
+
* `component()`), outer `useMemo` keyed by `hashValue(props)`. No definition-scoped props map.
|
|
40
|
+
*/
|
|
41
|
+
export declare function createAsyncComponentWrapper<P extends object>(fn: (props: P) => Generator<any, ReactTypes.ReactNode | ReactTypes.ReactNode[] | null, unknown>): (props: P) => ReactTypes.ReactNode;
|
|
42
|
+
//# sourceMappingURL=async-component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-component.d.ts","sourceRoot":"","sources":["../../../src/react/async-component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,UAAU,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAwB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAiDhF,+FAA+F;AAC/F,eAAO,MAAM,yBAAyB,eAAyC,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,yCAAyC,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CASjF;AAED,OAAO,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAE7F;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,EAC1D,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,EAC/F,KAAK,EAAE,CAAC,EACR,WAAW,EAAE,cAAc,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,GACpF,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,IAAI,CAoCtD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,EAC1D,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,GAC9F,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC,SAAS,CAwDpC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ComponentRender } from './component-shared.js';
|
|
2
|
+
export default function component<Props extends object>(fn: (props: Props) => Promise<ComponentRender>): (props: Props) => Promise<ComponentRender>;
|
|
3
|
+
export default function component<Props extends object>(fn: (props: Props) => ComponentRender): (props: Props) => ComponentRender;
|
|
4
|
+
//# sourceMappingURL=component-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-server.d.ts","sourceRoot":"","sources":["../../../src/react/component-server.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,eAAe,EAKrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,SAAS,MAAM,EACpD,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,eAAe,CAAC,GAC7C,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,SAAS,MAAM,EACpD,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,eAAe,GACpC,CAAC,KAAK,EAAE,KAAK,KAAK,eAAe,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for `component()` — used by both the client entry (`component.tsx`)
|
|
3
|
+
* and the server entry (`component-server.ts`). No React hook imports so it's safe
|
|
4
|
+
* for the `react-server` bundle condition.
|
|
5
|
+
*/
|
|
6
|
+
import type { ReactNode } from 'react';
|
|
7
|
+
export type ComponentRender = ReactNode | ReactNode[] | null;
|
|
8
|
+
export declare function isGeneratorFunction(fn: unknown): fn is (props: never) => Generator<any, ComponentRender, unknown>;
|
|
9
|
+
export declare function isAsyncFunctionWithoutTransform(fn: unknown): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Wrap a Babel-transformed async generator in a real `async function` that drives it
|
|
12
|
+
* with {@link generatorResultToPromiseWithConsumer}. Used on the server (RSC + SSR)
|
|
13
|
+
* where hooks-based Suspense replay is not appropriate.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createServerAsyncComponentWrapper<P extends object>(fn: (props: P) => Generator<any, ComponentRender, unknown>): (props: P) => Promise<ComponentRender>;
|
|
16
|
+
/**
|
|
17
|
+
* Wrap a sync render function with consumer/scope tracking. Used by the server
|
|
18
|
+
* `component()` for non-generator definitions.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createServerSyncComponentWrapper<P extends object>(fn: (props: P) => ComponentRender): (props: P) => ComponentRender;
|
|
21
|
+
//# sourceMappingURL=component-shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-shared.d.ts","sourceRoot":"","sources":["../../../src/react/component-shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;AAE7D,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,CAIjH;AAED,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,SAAS,MAAM,EAChE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,GACzD,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAWxC;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,MAAM,EAC/D,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,eAAe,GAChC,CAAC,KAAK,EAAE,CAAC,KAAK,eAAe,CAiB/B"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type ComponentRender } from './component-shared.js';
|
|
3
|
+
export { isAsyncFunctionWithoutTransform, runSyncReplayAsyncComponent, SIGNALIUM_ASYNC_COMPONENT, throwIfSignaliumAsyncComponentPassedToUse, } from './async-component.js';
|
|
4
|
+
export default function component<Props extends object>(fn: (props: Props) => Promise<ComponentRender>): (props: Props) => ReactNode;
|
|
5
|
+
export default function component<Props extends object>(fn: (props: Props) => ComponentRender): (props: Props) => ReactNode;
|
|
2
6
|
//# sourceMappingURL=component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/react/component.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/react/component.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,yCAAyC,GAC1C,MAAM,sBAAsB,CAAC;AAuB9B,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,SAAS,MAAM,EACpD,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,eAAe,CAAC,GAC7C,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC;AAC/B,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,SAAS,MAAM,EACpD,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,eAAe,GACpC,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export { ContextProvider } from './provider.js';
|
|
2
|
-
export { default as component } from './component.js';
|
|
2
|
+
export { default as component, isAsyncFunctionWithoutTransform, runSyncReplayAsyncComponent, SIGNALIUM_ASYNC_COMPONENT, throwIfSignaliumAsyncComponentPassedToUse, } from './component.js';
|
|
3
3
|
export { useContext } from './context.js';
|
|
4
4
|
export { useSignal } from './use-signal.js';
|
|
5
|
-
export { useReactive, useReactiveDeep } from './use-reactive.js';
|
|
6
|
-
export {
|
|
7
|
-
export { useSignalsSuspended } from './suspend-signals-context.js';
|
|
5
|
+
export { useReactive, useReactiveShallow, useReactiveDeep } from './use-reactive.js';
|
|
6
|
+
export { PauseSignalsProvider } from './pause-signals-context.js';
|
|
8
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,yCAAyC,GAC1C,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-safe entry for `signalium/react` (activated by the `react-server` export condition).
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the server variant of `component()` which returns real async function components
|
|
5
|
+
* instead of hooks-based Suspense wrappers. No React hook imports — safe for RSC bundles.
|
|
6
|
+
*/
|
|
7
|
+
export { default as component } from './component-server.js';
|
|
8
|
+
//# sourceMappingURL=index.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.server.d.ts","sourceRoot":"","sources":["../../../src/react/index.server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ReactiveSignal } from '../internals/reactive.js';
|
|
3
|
+
declare class PauseSignalsManager {
|
|
4
|
+
private signals;
|
|
5
|
+
private _paused;
|
|
6
|
+
constructor(initialPaused: boolean);
|
|
7
|
+
get paused(): boolean;
|
|
8
|
+
register(signal: ReactiveSignal<any, any>): void;
|
|
9
|
+
unregister(signal: ReactiveSignal<any, any>): void;
|
|
10
|
+
setPaused(value: boolean): void;
|
|
11
|
+
}
|
|
12
|
+
export declare function PauseSignalsProvider({ value, children }: {
|
|
13
|
+
value: boolean;
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
}): React.FunctionComponentElement<React.ProviderProps<PauseSignalsManager | null>>;
|
|
16
|
+
export declare function usePauseSignalsManager(): PauseSignalsManager | null;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=pause-signals-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pause-signals-context.d.ts","sourceRoot":"","sources":["../../../src/react/pause-signals-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D,cAAM,mBAAmB;IACvB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,OAAO,CAAU;gBAEb,aAAa,EAAE,OAAO;IAIlC,IAAI,MAAM,YAET;IAED,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;IAIzC,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;IAI3C,SAAS,CAAC,KAAK,EAAE,OAAO;CAYzB;AAID,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,mFAatG;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,GAAG,IAAI,CAEnE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register a per-request {@link SignalScope} for server `reactive()` / `task()` / `relay()` using
|
|
3
|
+
* React's `cache` (same lifetime as other per-request memoization in RSC / Flight).
|
|
4
|
+
*
|
|
5
|
+
* Call **once** per server bundle before any server-side reactive work (e.g. top of root layout or
|
|
6
|
+
* `instrumentation.ts`). Safe to call multiple times; the last registration wins.
|
|
7
|
+
*
|
|
8
|
+
* Requires **React 19+** (`React.cache`). Does not run in the browser: import this module only from
|
|
9
|
+
* server code paths.
|
|
10
|
+
*/
|
|
11
|
+
export declare function setupRscRequestScope(): void;
|
|
12
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/react/server.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}
|
|
@@ -1,8 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { ReactiveValue } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Subscribe to a reactive thunk without structural cloning. The thunk's
|
|
4
|
+
* `ReactiveDefinition` is memoized by fn identity in a `WeakMap`, so a
|
|
5
|
+
* memoized thunk (via `useCallback` or the Signalium Babel preset) reuses the
|
|
6
|
+
* same scope-cached signal across renders.
|
|
7
|
+
*
|
|
8
|
+
* This is a minimal wrapper: the returned value is whatever the thunk
|
|
9
|
+
* returned, by reference. In particular, when the thunk returns a
|
|
10
|
+
* `ReactivePromise`, re-renders only fire when the underlying signal itself
|
|
11
|
+
* re-evaluates (e.g. a new promise replaces the old one) — not when the
|
|
12
|
+
* existing promise transitions from pending to resolved. If you need promise
|
|
13
|
+
* state transitions to drive React, read its fields inside the thunk (e.g.
|
|
14
|
+
* `useReactiveShallow(() => { const p = fetchThing(); return { value: p.value,
|
|
15
|
+
* isPending: p.isPending }; })`) or use {@link useReactive} for the
|
|
16
|
+
* structurally-shared snapshot that handles this automatically.
|
|
17
|
+
*/
|
|
18
|
+
export declare function useReactiveShallow<R>(fn: () => R): ReactiveValue<R>;
|
|
19
|
+
/**
|
|
20
|
+
* Subscribe to a reactive thunk and return a structurally-shared snapshot of
|
|
21
|
+
* its value. Nested objects/arrays/Maps/Sets are deep-cloned; unchanged
|
|
22
|
+
* subtrees keep the same reference, so React's referential equality works as
|
|
23
|
+
* expected. ReactivePromise values are flattened to plain objects.
|
|
24
|
+
*
|
|
25
|
+
* This is the default hook for reading reactive values inside a React
|
|
26
|
+
* component — it gives you safe equality semantics at the React boundary.
|
|
27
|
+
* Use {@link useReactiveShallow} if you know you don't need structural
|
|
28
|
+
* sharing.
|
|
29
|
+
*/
|
|
30
|
+
export declare function useReactive<R>(fn: () => R): ReactiveValue<R>;
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated Use {@link useReactive} instead. `useReactive` is now
|
|
33
|
+
* deep-by-default; `useReactiveDeep` is a thin alias kept for back-compat and
|
|
34
|
+
* will be removed in a future major release.
|
|
35
|
+
*/
|
|
36
|
+
export declare function useReactiveDeep<R>(fn: () => R): ReactiveValue<R>;
|
|
8
37
|
//# sourceMappingURL=use-reactive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-reactive.d.ts","sourceRoot":"","sources":["../../../src/react/use-reactive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-reactive.d.ts","sourceRoot":"","sources":["../../../src/react/use-reactive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA0B5C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAanE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CA4C5D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAKhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/transform/async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAc,MAAM,aAAa,CAAC;AAGnE,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CACnC;
|
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/transform/async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAc,MAAM,aAAa,CAAC;AAGnE,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CACnC;AAsGD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,8BAA8B,GAAG,SAAS,CAAC;AACpG,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,8BAA8B,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../src/transform/callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,SAAS,EAAc,MAAM,aAAa,CAAC;AAG9E,MAAM,WAAW,iCAAiC;IAChD,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../src/transform/callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,SAAS,EAAc,MAAM,aAAa,CAAC;AAG9E,MAAM,WAAW,iCAAiC;IAChD,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAoXD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,iCAAiC,GAAG,SAAS,CAAC;AAC1G,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,iCAAiC,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC"}
|
|
@@ -2,4 +2,5 @@ export { signaliumPreset } from './preset.js';
|
|
|
2
2
|
export { signaliumAsyncTransform } from './async.js';
|
|
3
3
|
export { signaliumCallbackTransform } from './callback.js';
|
|
4
4
|
export { signaliumPromiseMethodsTransform } from './promise.js';
|
|
5
|
+
export { signaliumUseReactiveTransform } from './use-reactive.js';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -3,6 +3,7 @@ export interface SignaliumTransformOptions {
|
|
|
3
3
|
importPaths?: (string | RegExp)[];
|
|
4
4
|
callbackImportPath?: string;
|
|
5
5
|
promiseImportPath?: string;
|
|
6
|
+
reactImportPath?: string;
|
|
6
7
|
}
|
|
7
8
|
export declare function signaliumPreset(api: any, opts?: SignaliumTransformOptions): any;
|
|
8
9
|
export declare function signaliumPreset(opts?: SignaliumTransformOptions): (api: any) => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../../src/transform/preset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../../src/transform/preset.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,yBAAyB;IACxC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACjD,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA2BD,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,yBAAyB,GAAG,GAAG,CAAC;AACjF,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PluginObj } from '@babel/core';
|
|
2
|
+
export interface SignaliumUseReactiveTransformOptions {
|
|
3
|
+
transformedImports: [string, string | RegExp][];
|
|
4
|
+
importPaths?: (string | RegExp)[];
|
|
5
|
+
reactImportPath?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function signaliumUseReactiveTransform(api: any, opts?: SignaliumUseReactiveTransformOptions): PluginObj;
|
|
8
|
+
export declare function signaliumUseReactiveTransform(opts?: SignaliumUseReactiveTransformOptions): (api: any) => PluginObj;
|
|
9
|
+
//# sourceMappingURL=use-reactive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-reactive.d.ts","sourceRoot":"","sources":["../../../src/transform/use-reactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAc,MAAM,aAAa,CAAC;AAGnE,MAAM,WAAW,oCAAoC;IACnD,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA8MD,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,oCAAoC,GAAG,SAAS,CAAC;AAChH,wBAAgB,6BAA6B,CAAC,IAAI,CAAC,EAAE,oCAAoC,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC"}
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -11,7 +11,6 @@ export interface Watcher<T> {
|
|
|
11
11
|
addListener(listener: () => void, opts?: {
|
|
12
12
|
skipInitial?: boolean;
|
|
13
13
|
}): () => void;
|
|
14
|
-
setSuspended(suspended: boolean): void;
|
|
15
14
|
}
|
|
16
15
|
export interface Notifier {
|
|
17
16
|
consume(): void;
|
|
@@ -38,28 +37,52 @@ export interface SignalOptions<T> {
|
|
|
38
37
|
export interface ReactiveOptions<T, Params extends unknown[]> extends SignalOptions<T> {
|
|
39
38
|
paramKey?: (...params: Params) => string | number;
|
|
40
39
|
}
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Internal shape shared by both branches of the {@link ReactivePromise} union.
|
|
42
|
+
* Not part of the public API — consumers should use {@link ReactivePromise},
|
|
43
|
+
* {@link PendingReactivePromise}, or {@link ReadyReactivePromise}.
|
|
44
|
+
*/
|
|
45
|
+
export interface BaseReactivePromise<T> extends Promise<T> {
|
|
43
46
|
readonly error: unknown;
|
|
44
47
|
readonly isPending: boolean;
|
|
45
48
|
readonly isRejected: boolean;
|
|
46
49
|
readonly isResolved: boolean;
|
|
47
50
|
readonly isSettled: boolean;
|
|
48
|
-
readonly isReady: boolean;
|
|
49
51
|
}
|
|
50
|
-
export interface PendingReactivePromise<T> extends
|
|
52
|
+
export interface PendingReactivePromise<T> extends BaseReactivePromise<T> {
|
|
51
53
|
readonly value: undefined;
|
|
52
54
|
readonly isReady: false;
|
|
53
55
|
}
|
|
54
|
-
export interface ReadyReactivePromise<T> extends
|
|
56
|
+
export interface ReadyReactivePromise<T> extends BaseReactivePromise<T> {
|
|
55
57
|
readonly value: T;
|
|
56
58
|
readonly isReady: true;
|
|
57
59
|
}
|
|
58
|
-
export type
|
|
59
|
-
export
|
|
60
|
-
|
|
60
|
+
export type ReactivePromise<T> = PendingReactivePromise<T> | ReadyReactivePromise<T>;
|
|
61
|
+
export interface ReactivePromiseConstructor {
|
|
62
|
+
readonly prototype: ReactivePromise<any>;
|
|
63
|
+
new <T>(executor?: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason: unknown) => void) => void): ReactivePromise<T>;
|
|
64
|
+
all<T extends readonly unknown[] | []>(values: T): ReactivePromise<{
|
|
65
|
+
-readonly [P in keyof T]: Awaited<T[P]>;
|
|
66
|
+
}>;
|
|
67
|
+
race<T extends readonly unknown[] | []>(values: T): ReactivePromise<Awaited<T[number]>>;
|
|
68
|
+
any<T>(values: Iterable<T | PromiseLike<T>>): ReactivePromise<Awaited<T>>;
|
|
69
|
+
any<T extends readonly unknown[] | []>(values: T): ReactivePromise<Awaited<T[number]>>;
|
|
70
|
+
allSettled<T>(values: Iterable<T | PromiseLike<T>>): Promise<PromiseSettledResult<Awaited<T>>[]>;
|
|
71
|
+
allSettled<T extends readonly unknown[] | []>(values: T): Promise<{
|
|
72
|
+
-readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>>;
|
|
73
|
+
}>;
|
|
74
|
+
resolve<T>(value: T): ReactivePromise<T>;
|
|
75
|
+
reject<T = never>(reason: any): ReactivePromise<T>;
|
|
76
|
+
withResolvers<T>(): {
|
|
77
|
+
promise: ReactivePromise<T>;
|
|
78
|
+
resolve: (value: T | PromiseLike<T>) => void;
|
|
79
|
+
reject: (reason: unknown) => void;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export type ReactiveTask<T, Params extends unknown[]> = ReactivePromise<T> & {
|
|
83
|
+
run(...params: Params): ReactivePromise<T>;
|
|
61
84
|
};
|
|
62
|
-
export type ReactiveValue<T> = T extends ReactiveTask<infer U, infer Args> ? ReactiveTask<U, Args> : T extends Promise<infer U> ?
|
|
85
|
+
export type ReactiveValue<T> = T extends ReactiveTask<infer U, infer Args> ? ReactiveTask<U, Args> : T extends Promise<infer U> ? ReactivePromise<U> : T extends Generator<any, infer U> ? ReactivePromise<U> : T;
|
|
63
86
|
export interface Context<T> {
|
|
64
87
|
readonly defaultValue: T;
|
|
65
88
|
}
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;AAExF,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { hashValue, registerCustomHash } from './internals/utils/hash.js';
|
|
2
2
|
export { snapshot, registerCustomSnapshot } from './internals/utils/snapshot.js';
|
|
3
|
-
import { RelayState,
|
|
3
|
+
import { RelayState, ReactivePromise } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Watches a function once in a reactive context, activating any relays,
|
|
6
6
|
* then automatically tears down the watcher when complete.
|
|
@@ -55,5 +55,5 @@ export { setReactivePromise } from './internals/async.js';
|
|
|
55
55
|
* });
|
|
56
56
|
* ```
|
|
57
57
|
*/
|
|
58
|
-
export declare function forwardRelay<T>(state: RelayState<T>, sourceRelay:
|
|
58
|
+
export declare function forwardRelay<T>(state: RelayState<T>, sourceRelay: ReactivePromise<T>): void;
|
|
59
59
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/esm/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAQjF,OAAO,EAAiB,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAQjF,OAAO,EAAiB,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAwB3C;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CA8B3F"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "signalium",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -68,6 +68,20 @@
|
|
|
68
68
|
"default": "./dist/esm/production/debug.js"
|
|
69
69
|
},
|
|
70
70
|
"./react": {
|
|
71
|
+
"react-server": {
|
|
72
|
+
"types": "./dist/esm/react/index.server.d.ts",
|
|
73
|
+
"development": {
|
|
74
|
+
"import": "./dist/esm/development/react/index.server.js",
|
|
75
|
+
"require": "./dist/cjs/development/react/index.server.js"
|
|
76
|
+
},
|
|
77
|
+
"production": {
|
|
78
|
+
"import": "./dist/esm/production/react/index.server.js",
|
|
79
|
+
"require": "./dist/cjs/production/react/index.server.js"
|
|
80
|
+
},
|
|
81
|
+
"import": "./dist/esm/production/react/index.server.js",
|
|
82
|
+
"require": "./dist/cjs/production/react/index.server.js",
|
|
83
|
+
"default": "./dist/esm/production/react/index.server.js"
|
|
84
|
+
},
|
|
71
85
|
"types": "./dist/esm/react/index.d.ts",
|
|
72
86
|
"development": {
|
|
73
87
|
"import": "./dist/esm/development/react/index.js",
|
|
@@ -81,6 +95,20 @@
|
|
|
81
95
|
"require": "./dist/cjs/production/react/index.js",
|
|
82
96
|
"default": "./dist/esm/production/react/index.js"
|
|
83
97
|
},
|
|
98
|
+
"./react/server": {
|
|
99
|
+
"types": "./dist/esm/react/server.d.ts",
|
|
100
|
+
"development": {
|
|
101
|
+
"import": "./dist/esm/development/react/server.js",
|
|
102
|
+
"require": "./dist/cjs/development/react/server.js"
|
|
103
|
+
},
|
|
104
|
+
"production": {
|
|
105
|
+
"import": "./dist/esm/production/react/server.js",
|
|
106
|
+
"require": "./dist/cjs/production/react/server.js"
|
|
107
|
+
},
|
|
108
|
+
"import": "./dist/esm/production/react/server.js",
|
|
109
|
+
"require": "./dist/cjs/production/react/server.js",
|
|
110
|
+
"default": "./dist/esm/production/react/server.js"
|
|
111
|
+
},
|
|
84
112
|
"./transform": {
|
|
85
113
|
"types": "./dist/esm/transform/index.d.ts",
|
|
86
114
|
"development": {
|
|
@@ -101,6 +129,7 @@
|
|
|
101
129
|
"dist/esm/**",
|
|
102
130
|
"dist/cjs/**",
|
|
103
131
|
"react.js",
|
|
132
|
+
"react-server.js",
|
|
104
133
|
"transform.js",
|
|
105
134
|
"debug.js",
|
|
106
135
|
"utils.js",
|
|
@@ -110,7 +139,7 @@
|
|
|
110
139
|
"LICENSE*"
|
|
111
140
|
],
|
|
112
141
|
"peerDependencies": {
|
|
113
|
-
"react": ">=
|
|
142
|
+
"react": ">=19.0.0"
|
|
114
143
|
},
|
|
115
144
|
"peerDependenciesMeta": {
|
|
116
145
|
"react": {
|
|
@@ -137,12 +166,14 @@
|
|
|
137
166
|
"author": "Kristen Hewell Garrett <me@pzuraq.com>",
|
|
138
167
|
"license": "ISC",
|
|
139
168
|
"devDependencies": {
|
|
169
|
+
"@types/react": "^19.0.0",
|
|
170
|
+
"@types/react-dom": "^19.0.0",
|
|
140
171
|
"@babel/core": "^7.23.6",
|
|
141
172
|
"@vitejs/plugin-react": "^5.0.0",
|
|
142
173
|
"@vitest/browser": "^3.0.6",
|
|
143
174
|
"playwright": "^1.50.1",
|
|
144
|
-
"react": "^
|
|
145
|
-
"react-dom": "^
|
|
175
|
+
"react": "^19.0.0",
|
|
176
|
+
"react-dom": "^19.0.0",
|
|
146
177
|
"vite": "^7.1.2",
|
|
147
178
|
"vite-plugin-babel": "^1.3.0",
|
|
148
179
|
"vitest": "^3.2.4",
|
package/react-server.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', {
|
|
3
|
+
value: true,
|
|
4
|
+
});
|
|
5
|
+
var _index = require('./dist/cjs/production/react/server.js');
|
|
6
|
+
Object.keys(_index).forEach(function (key) {
|
|
7
|
+
if (key === 'default' || key === '__esModule') return;
|
|
8
|
+
if (key in exports && exports[key] === _index[key]) return;
|
|
9
|
+
Object.defineProperty(exports, key, {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () {
|
|
12
|
+
return _index[key];
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
});
|