@rlabs-inc/signals 1.4.2 → 1.4.4
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/README.md +12 -1
- package/dist/core/types.d.ts +14 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.mjs +3 -0
- package/dist/primitives/bind.d.ts +2 -2
- package/dist/primitives/bind.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -257,7 +257,18 @@ console.log(readonly.value) // 0
|
|
|
257
257
|
// Check if a value is a binding
|
|
258
258
|
isBinding(maybeBinding) // true or false
|
|
259
259
|
|
|
260
|
-
// Get value from binding or return value directly
|
|
260
|
+
// Get value from binding, signal, derived, or return plain value directly
|
|
261
|
+
// Works with ALL reactive types for unified value access
|
|
262
|
+
const count = signal(42)
|
|
263
|
+
const doubled = derived(() => count.value * 2)
|
|
264
|
+
const bound = bind(count)
|
|
265
|
+
|
|
266
|
+
unwrap(count) // 42 (extracts .value from signal)
|
|
267
|
+
unwrap(doubled) // 84 (extracts .value from derived)
|
|
268
|
+
unwrap(bound) // 42 (extracts .value from binding)
|
|
269
|
+
unwrap('static') // 'static' (returns plain values as-is)
|
|
270
|
+
|
|
271
|
+
// Great for mapping mixed arrays
|
|
261
272
|
const arr: (string | Binding<string>)[] = ['static', bind(signal('dynamic'))]
|
|
262
273
|
arr.map(unwrap) // ['static', 'dynamic']
|
|
263
274
|
```
|
package/dist/core/types.d.ts
CHANGED
|
@@ -71,6 +71,20 @@ export interface DerivedSignal<T> extends ReadableSignal<T> {
|
|
|
71
71
|
}
|
|
72
72
|
/** Dispose function for effects */
|
|
73
73
|
export type DisposeFn = () => void;
|
|
74
|
+
/**
|
|
75
|
+
* Extract the inner type T from reactive wrappers.
|
|
76
|
+
*
|
|
77
|
+
* When given a union like `T | WritableSignal<T> | Binding<T>`, this extracts
|
|
78
|
+
* just T. Conditional types distribute over unions, so:
|
|
79
|
+
*
|
|
80
|
+
* ExtractInner<number | WritableSignal<number>> = number | number = number
|
|
81
|
+
*
|
|
82
|
+
* This is essential for bind() to correctly infer return types when given
|
|
83
|
+
* "Reactive<T>" union types (T | WritableSignal<T> | Binding<T> | ReadonlyBinding<T>).
|
|
84
|
+
*/
|
|
85
|
+
export type ExtractInner<T> = T extends WritableSignal<infer U> ? U : T extends ReadableSignal<infer U> ? U : T extends {
|
|
86
|
+
readonly value: infer U;
|
|
87
|
+
} ? U : T;
|
|
74
88
|
/** Type for uninitialized values */
|
|
75
89
|
export type Uninitialized = typeof UNINITIALIZED;
|
|
76
90
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAMnD,oDAAoD;AAGpD,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAA;AAMvE,6CAA6C;AAC7C,MAAM,WAAW,MAAM;IACrB,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAA;IAET,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAA;CACX;AAMD,uCAAuC;AACvC,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,MAAM;IACjD,oBAAoB;IACpB,CAAC,EAAE,CAAC,CAAA;IAEJ,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAEjB,8DAA8D;IAC9D,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAE5B,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAA;CACX;AAMD,0DAA0D;AAC1D,MAAM,WAAW,QAAS,SAAQ,MAAM;IACtC,8BAA8B;IAC9B,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IAEnB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CACtB;AAMD,iCAAiC;AACjC,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ;IAC/D,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC,CAAA;IAEX,gDAAgD;IAChD,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAExB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;CAChC;AAMD,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG,MAAM,IAAI,CAAA;AAElC,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,GAAG,SAAS,CAAA;AAE7C,8BAA8B;AAC9B,MAAM,WAAW,MAAO,SAAQ,QAAQ;IACtC,sBAAsB;IACtB,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAA;IAEnB,8CAA8C;IAC9C,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAA;IAE1B,uCAAuC;IACvC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAErB,yBAAyB;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAEpB,wBAAwB;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEnB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEnB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAMD,mDAAmD;AACnD,MAAM,MAAM,KAAK,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAMvD,8CAA8C;AAC9C,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAClB;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAC1D,KAAK,EAAE,CAAC,CAAA;CACT;AAED,4CAA4C;AAC5C,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;CAAG;AAE9D,mCAAmC;AACnC,MAAM,MAAM,SAAS,GAAG,MAAM,IAAI,CAAA;AAMlC,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export { ReactiveDate } from './collections/date.js';
|
|
|
15
15
|
export { get, set, isDirty, setSignalStatus, markReactions, updateReaction, removeReactions, } from './reactivity/tracking.js';
|
|
16
16
|
export { DERIVED, EFFECT, RENDER_EFFECT, ROOT_EFFECT, BRANCH_EFFECT, USER_EFFECT, BLOCK_EFFECT, CLEAN, DIRTY, MAYBE_DIRTY, REACTION_IS_UPDATING, DESTROYED, INERT, EFFECT_RAN, EFFECT_PRESERVED, UNOWNED, DISCONNECTED, UNINITIALIZED, STALE_REACTION, STATE_SYMBOL, REACTIVE_MARKER, BINDING_SYMBOL, LINKED_SYMBOL, } from './core/constants.js';
|
|
17
17
|
export { activeReaction, activeEffect, untracking, writeVersion, readVersion, batchDepth, setActiveReaction, setActiveEffect, setUntracking, incrementWriteVersion, incrementReadVersion, incrementBatchDepth, decrementBatchDepth, getReadVersion, getWriteVersion, getBatchDepth, } from './core/globals.js';
|
|
18
|
-
export type { Signal, Source, Reaction, Derived, Effect, Value, ReadableSignal, WritableSignal, DerivedSignal, DisposeFn, CleanupFn, EffectFn, Equals, Uninitialized, } from './core/types.js';
|
|
18
|
+
export type { Signal, Source, Reaction, Derived, Effect, Value, ReadableSignal, WritableSignal, DerivedSignal, DisposeFn, CleanupFn, EffectFn, Equals, Uninitialized, ExtractInner, } from './core/types.js';
|
|
19
19
|
export type { Binding, ReadonlyBinding } from './primitives/bind.js';
|
|
20
20
|
export type { LinkedSignalOptions, LinkedSignalConfig } from './primitives/linked.js';
|
|
21
21
|
export type { SelectorFn } from './primitives/selector.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACvF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC1F,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAMpF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAM1D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAM5D,OAAO,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAMpD,OAAO,EACL,GAAG,EACH,GAAG,EACH,OAAO,EACP,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EAEL,OAAO,EACP,MAAM,EACN,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EAGZ,KAAK,EACL,KAAK,EACL,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,KAAK,EACL,UAAU,EACV,gBAAgB,EAGhB,OAAO,EACP,YAAY,EAGZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAA;AAM5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EAGV,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EAGnB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAA;AAM1B,YAAY,EAEV,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EAGL,cAAc,EACd,cAAc,EACd,aAAa,EACb,SAAS,EACT,SAAS,EACT,QAAQ,EAGR,MAAM,EACN,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACvF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC1F,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAMpF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAM1D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AAM5D,OAAO,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,GACb,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAMpD,OAAO,EACL,GAAG,EACH,GAAG,EACH,OAAO,EACP,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EAEL,OAAO,EACP,MAAM,EACN,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EAGZ,KAAK,EACL,KAAK,EACL,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,KAAK,EACL,UAAU,EACV,gBAAgB,EAGhB,OAAO,EACP,YAAY,EAGZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAA;AAM5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EAGV,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EAGnB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAA;AAM1B,YAAY,EAEV,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EAGL,cAAc,EACd,cAAc,EACd,aAAa,EACb,SAAS,EACT,SAAS,EACT,QAAQ,EAGR,MAAM,EACN,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAA;AAExB,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACpE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACrF,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1302,6 +1302,9 @@ function unwrap(value) {
|
|
|
1302
1302
|
if (isBinding(value)) {
|
|
1303
1303
|
return value.value;
|
|
1304
1304
|
}
|
|
1305
|
+
if (value !== null && typeof value === "object" && "value" in value) {
|
|
1306
|
+
return value.value;
|
|
1307
|
+
}
|
|
1305
1308
|
return value;
|
|
1306
1309
|
}
|
|
1307
1310
|
function signals(initial) {
|
package/dist/index.mjs
CHANGED
|
@@ -1181,6 +1181,9 @@ function unwrap(value) {
|
|
|
1181
1181
|
if (isBinding(value)) {
|
|
1182
1182
|
return value.value;
|
|
1183
1183
|
}
|
|
1184
|
+
if (value !== null && typeof value === "object" && "value" in value) {
|
|
1185
|
+
return value.value;
|
|
1186
|
+
}
|
|
1184
1187
|
return value;
|
|
1185
1188
|
}
|
|
1186
1189
|
function signals(initial) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WritableSignal, ReadableSignal } from '../core/types.js';
|
|
1
|
+
import type { WritableSignal, ReadableSignal, ExtractInner } from '../core/types.js';
|
|
2
2
|
/**
|
|
3
3
|
* A writable binding that forwards reads and writes to a source.
|
|
4
4
|
* Reading creates dependency on source, writing triggers source's reactions.
|
|
@@ -23,7 +23,7 @@ export declare function bind<T>(source: ReadableSignal<T>): ReadonlyBinding<T>;
|
|
|
23
23
|
export declare function bind<T>(source: Binding<T>): Binding<T>;
|
|
24
24
|
export declare function bind<T>(source: ReadonlyBinding<T>): ReadonlyBinding<T>;
|
|
25
25
|
export declare function bind<T>(source: () => T): ReadonlyBinding<T>;
|
|
26
|
-
export declare function bind<T>(source: T): Binding<T
|
|
26
|
+
export declare function bind<T>(source: T): Binding<ExtractInner<T>>;
|
|
27
27
|
/**
|
|
28
28
|
* Create an explicitly read-only binding.
|
|
29
29
|
* Attempting to write will throw an error at runtime.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../src/primitives/bind.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAU,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../src/primitives/bind.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAU,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAsB5F;;;GAGG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,IAAI,KAAK,IAAI,CAAC,CAAA;IACd,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAClB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAEnE;AA0DD,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAC9D,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;AACtE,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AACvD,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;AACvE,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;AAC5D,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AA2D5D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAQ1F;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAUvE;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,OAAO,EAAE,CAAC,GACT;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAU1C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rlabs-inc/signals",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.4",
|
|
4
4
|
"description": "Production-grade fine-grained reactivity for TypeScript. A complete standalone mirror of Svelte 5's reactivity system - signals, effects, derived values, deep reactivity, reactive collections, and reactive bindings.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|