@signalium/query 0.0.0 → 0.0.2
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/.turbo/turbo-build.log +12 -0
- package/CHANGELOG.md +17 -0
- package/dist/cjs/EntityMap.js +46 -0
- package/dist/cjs/EntityMap.js.map +1 -0
- package/dist/cjs/QueryClient.js +368 -0
- package/dist/cjs/QueryClient.js.map +1 -0
- package/dist/cjs/QueryStore.js +222 -0
- package/dist/cjs/QueryStore.js.map +1 -0
- package/dist/cjs/errors.js +105 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/index.js +24 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/parseEntities.js +127 -0
- package/dist/cjs/parseEntities.js.map +1 -0
- package/dist/cjs/pathInterpolator.js +69 -0
- package/dist/cjs/pathInterpolator.js.map +1 -0
- package/dist/cjs/proxy.js +187 -0
- package/dist/cjs/proxy.js.map +1 -0
- package/dist/cjs/query.js +41 -0
- package/dist/cjs/query.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/cjs/typeDefs.js +249 -0
- package/dist/cjs/typeDefs.js.map +1 -0
- package/dist/cjs/types.js +15 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils.js +65 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/EntityMap.d.ts +18 -0
- package/dist/esm/EntityMap.d.ts.map +1 -0
- package/dist/esm/EntityMap.js +42 -0
- package/dist/esm/EntityMap.js.map +1 -0
- package/dist/esm/QueryClient.d.ts +123 -0
- package/dist/esm/QueryClient.d.ts.map +1 -0
- package/dist/esm/QueryClient.js +363 -0
- package/dist/esm/QueryClient.js.map +1 -0
- package/dist/esm/QueryStore.d.ts +77 -0
- package/dist/esm/QueryStore.d.ts.map +1 -0
- package/dist/esm/QueryStore.js +212 -0
- package/dist/esm/QueryStore.js.map +1 -0
- package/dist/esm/errors.d.ts +4 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +101 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/parseEntities.d.ts +8 -0
- package/dist/esm/parseEntities.d.ts.map +1 -0
- package/dist/esm/parseEntities.js +120 -0
- package/dist/esm/parseEntities.js.map +1 -0
- package/dist/esm/pathInterpolator.d.ts +29 -0
- package/dist/esm/pathInterpolator.d.ts.map +1 -0
- package/dist/esm/pathInterpolator.js +66 -0
- package/dist/esm/pathInterpolator.js.map +1 -0
- package/dist/esm/proxy.d.ts +8 -0
- package/dist/esm/proxy.d.ts.map +1 -0
- package/dist/esm/proxy.js +180 -0
- package/dist/esm/proxy.js.map +1 -0
- package/dist/esm/query.d.ts +41 -0
- package/dist/esm/query.d.ts.map +1 -0
- package/dist/esm/query.js +38 -0
- package/dist/esm/query.js.map +1 -0
- package/dist/esm/typeDefs.d.ts +25 -0
- package/dist/esm/typeDefs.d.ts.map +1 -0
- package/dist/esm/typeDefs.js +239 -0
- package/dist/esm/typeDefs.js.map +1 -0
- package/dist/esm/types.d.ts +96 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +12 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils.d.ts +6 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +60 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +3 -3
- package/src/QueryClient.ts +321 -105
- package/src/QueryStore.ts +15 -7
- package/src/__tests__/caching-persistence.test.ts +31 -2
- package/src/__tests__/entity-system.test.ts +5 -1
- package/src/__tests__/gc-time.test.ts +327 -0
- package/src/__tests__/mock-fetch.test.ts +8 -4
- package/src/__tests__/parse-entities.test.ts +5 -1
- package/src/__tests__/reactivity.test.ts +5 -1
- package/src/__tests__/refetch-interval.test.ts +262 -0
- package/src/__tests__/rest-query-api.test.ts +5 -1
- package/src/__tests__/stale-time.test.ts +357 -0
- package/src/__tests__/utils.ts +28 -12
- package/src/__tests__/validation-edge-cases.test.ts +1 -0
- package/src/query.ts +2 -1
- package/src/react/__tests__/basic.test.tsx +9 -4
- package/src/react/__tests__/component.test.tsx +10 -3
- package/src/types.ts +11 -0
- package/vitest.config.ts +4 -10
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { PendingReactivePromise, ReadyReactivePromise } from 'signalium';
|
|
2
|
+
import { ReactivePromise } from 'signalium';
|
|
3
|
+
export declare enum RefetchInterval {
|
|
4
|
+
Every1Second = 1000,
|
|
5
|
+
Every5Seconds = 5000,
|
|
6
|
+
Every10Seconds = 10000,
|
|
7
|
+
Every30Seconds = 30000,
|
|
8
|
+
Every1Minute = 60000,
|
|
9
|
+
Every5Minutes = 300000
|
|
10
|
+
}
|
|
11
|
+
export declare const enum Mask {
|
|
12
|
+
UNDEFINED = 1,
|
|
13
|
+
NULL = 2,
|
|
14
|
+
NUMBER = 4,
|
|
15
|
+
STRING = 8,
|
|
16
|
+
BOOLEAN = 16,
|
|
17
|
+
OBJECT = 32,
|
|
18
|
+
ARRAY = 64,
|
|
19
|
+
ID = 128,
|
|
20
|
+
RECORD = 256,
|
|
21
|
+
UNION = 512,
|
|
22
|
+
ENTITY = 1024,
|
|
23
|
+
HAS_SUB_ENTITY = 2048,
|
|
24
|
+
HAS_NUMBER_FORMAT = 4096,
|
|
25
|
+
HAS_STRING_FORMAT = 8192
|
|
26
|
+
}
|
|
27
|
+
export type SimpleTypeDef = Set<string | boolean | number> | Mask;
|
|
28
|
+
export type ComplexTypeDef = ObjectDef | EntityDef | ArrayDef | RecordDef | UnionDef;
|
|
29
|
+
export type TypeDef = SimpleTypeDef | ComplexTypeDef;
|
|
30
|
+
export type ObjectFieldTypeDef = TypeDef | string;
|
|
31
|
+
export type ObjectShape = Record<string, ObjectFieldTypeDef>;
|
|
32
|
+
export declare const ARRAY_KEY: unique symbol;
|
|
33
|
+
export declare const RECORD_KEY: unique symbol;
|
|
34
|
+
export interface UnionTypeDefs {
|
|
35
|
+
[ARRAY_KEY]?: TypeDef;
|
|
36
|
+
[RECORD_KEY]?: TypeDef;
|
|
37
|
+
[key: string]: ObjectDef | EntityDef;
|
|
38
|
+
}
|
|
39
|
+
export interface BaseTypeDef {
|
|
40
|
+
mask: Mask;
|
|
41
|
+
typenameField: string;
|
|
42
|
+
typenameValue: string;
|
|
43
|
+
idField: string;
|
|
44
|
+
subEntityPaths: undefined | string | string[];
|
|
45
|
+
values: Set<string | boolean | number> | undefined;
|
|
46
|
+
optional: this | Mask.UNDEFINED;
|
|
47
|
+
nullable: this | Mask.NULL;
|
|
48
|
+
nullish: this | Mask.UNDEFINED | Mask.NULL;
|
|
49
|
+
}
|
|
50
|
+
export interface EntityDef<T extends ObjectShape = ObjectShape> extends BaseTypeDef {
|
|
51
|
+
mask: Mask.ENTITY;
|
|
52
|
+
shape: T | ((t: APITypes) => T);
|
|
53
|
+
}
|
|
54
|
+
export interface ObjectDef<T extends ObjectShape = ObjectShape> extends BaseTypeDef {
|
|
55
|
+
mask: Mask.OBJECT;
|
|
56
|
+
shape: T;
|
|
57
|
+
}
|
|
58
|
+
export interface ArrayDef<T extends TypeDef = TypeDef> extends BaseTypeDef {
|
|
59
|
+
mask: Mask.ARRAY;
|
|
60
|
+
shape: T;
|
|
61
|
+
}
|
|
62
|
+
export interface UnionDef<_T extends readonly TypeDef[] = readonly TypeDef[]> extends BaseTypeDef {
|
|
63
|
+
mask: Mask.UNION;
|
|
64
|
+
shape: UnionTypeDefs | undefined;
|
|
65
|
+
}
|
|
66
|
+
export interface RecordDef<T extends TypeDef = TypeDef> extends BaseTypeDef {
|
|
67
|
+
mask: Mask.RECORD;
|
|
68
|
+
shape: T;
|
|
69
|
+
}
|
|
70
|
+
export interface APITypes {
|
|
71
|
+
format: (format: string) => number;
|
|
72
|
+
typename: <T extends string>(value: T) => T;
|
|
73
|
+
const: <T extends string | boolean | number>(value: T) => Set<T>;
|
|
74
|
+
enum: <T extends readonly (string | boolean | number)[]>(...values: T) => Set<T[number]>;
|
|
75
|
+
id: Mask.ID;
|
|
76
|
+
string: Mask.STRING;
|
|
77
|
+
number: Mask.NUMBER;
|
|
78
|
+
boolean: Mask.BOOLEAN;
|
|
79
|
+
null: Mask.NULL;
|
|
80
|
+
undefined: Mask.UNDEFINED;
|
|
81
|
+
array: <T extends TypeDef>(shape: T) => ArrayDef<T>;
|
|
82
|
+
object: <T extends ObjectShape>(shape: T) => ObjectDef<T>;
|
|
83
|
+
record: <T extends TypeDef>(shape: T) => RecordDef<T>;
|
|
84
|
+
union: <VS extends readonly TypeDef[]>(...types: VS) => UnionDef<VS>;
|
|
85
|
+
}
|
|
86
|
+
type QueryResultExtensions<T> = {
|
|
87
|
+
refetch: () => Promise<T>;
|
|
88
|
+
readonly isRefetching: boolean;
|
|
89
|
+
readonly isFetching: boolean;
|
|
90
|
+
};
|
|
91
|
+
export type QueryResult<T> = ReactivePromise<T> & QueryResultExtensions<T>;
|
|
92
|
+
export type PendingQueryResult<T> = PendingReactivePromise<T> & QueryResultExtensions<T>;
|
|
93
|
+
export type ReadyQueryResult<T> = ReadyReactivePromise<T> & QueryResultExtensions<T>;
|
|
94
|
+
export type DiscriminatedQueryResult<T> = PendingQueryResult<T> | ReadyQueryResult<T>;
|
|
95
|
+
export {};
|
|
96
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export var RefetchInterval;
|
|
2
|
+
(function (RefetchInterval) {
|
|
3
|
+
RefetchInterval[RefetchInterval["Every1Second"] = 1000] = "Every1Second";
|
|
4
|
+
RefetchInterval[RefetchInterval["Every5Seconds"] = 5000] = "Every5Seconds";
|
|
5
|
+
RefetchInterval[RefetchInterval["Every10Seconds"] = 10000] = "Every10Seconds";
|
|
6
|
+
RefetchInterval[RefetchInterval["Every30Seconds"] = 30000] = "Every30Seconds";
|
|
7
|
+
RefetchInterval[RefetchInterval["Every1Minute"] = 60000] = "Every1Minute";
|
|
8
|
+
RefetchInterval[RefetchInterval["Every5Minutes"] = 300000] = "Every5Minutes";
|
|
9
|
+
})(RefetchInterval || (RefetchInterval = {}));
|
|
10
|
+
export const ARRAY_KEY = Symbol('array');
|
|
11
|
+
export const RECORD_KEY = Symbol('record');
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,wEAAmB,CAAA;IACnB,0EAAoB,CAAA;IACpB,6EAAsB,CAAA;IACtB,6EAAsB,CAAA;IACtB,yEAAoB,CAAA;IACpB,4EAAsB,CAAA;AACxB,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AAyCD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ValidatorDef } from './typeDefs.js';
|
|
2
|
+
import { ComplexTypeDef, EntityDef, Mask, ObjectShape } from './types.js';
|
|
3
|
+
export declare function extractShapeMetadata(def: ValidatorDef<any>, shape: ObjectShape): void;
|
|
4
|
+
export declare function extractShape<T extends ComplexTypeDef>(def: T): T extends EntityDef ? ObjectShape : T['shape'];
|
|
5
|
+
export declare function typeMaskOf(value: unknown): Mask;
|
|
6
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK1E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CA6BrF;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAS7G;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAiB/C"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { t, ValidatorDef } from './typeDefs.js';
|
|
2
|
+
const entries = Object.entries;
|
|
3
|
+
const isArray = Array.isArray;
|
|
4
|
+
export function extractShapeMetadata(def, shape) {
|
|
5
|
+
for (const [key, value] of Object.entries(shape)) {
|
|
6
|
+
if (value instanceof ValidatorDef && (value.mask & (1024 /* Mask.ENTITY */ | 2048 /* Mask.HAS_SUB_ENTITY */)) !== 0) {
|
|
7
|
+
if (def.subEntityPaths === undefined) {
|
|
8
|
+
def.subEntityPaths = key;
|
|
9
|
+
}
|
|
10
|
+
else if (isArray(def.subEntityPaths)) {
|
|
11
|
+
def.subEntityPaths.push(key);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
def.subEntityPaths = [def.subEntityPaths, key];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
// Check if this is a typename field (plain string value)
|
|
18
|
+
if (typeof value === 'string') {
|
|
19
|
+
if (def.typenameField !== undefined) {
|
|
20
|
+
throw new Error(`Duplicate typename field: ${key}`);
|
|
21
|
+
}
|
|
22
|
+
def.typenameField = key;
|
|
23
|
+
def.typenameValue = value;
|
|
24
|
+
}
|
|
25
|
+
// Check if this is an id field (Mask.ID)
|
|
26
|
+
else if (typeof value === 'number' && (value & 128 /* Mask.ID */) !== 0) {
|
|
27
|
+
if (def.idField !== undefined) {
|
|
28
|
+
throw new Error(`Duplicate id field: ${key}`);
|
|
29
|
+
}
|
|
30
|
+
def.idField = key;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function extractShape(def) {
|
|
35
|
+
let shape = def.shape;
|
|
36
|
+
if (typeof shape === 'function') {
|
|
37
|
+
shape = def.shape = shape(t);
|
|
38
|
+
extractShapeMetadata(def, shape);
|
|
39
|
+
}
|
|
40
|
+
return shape;
|
|
41
|
+
}
|
|
42
|
+
export function typeMaskOf(value) {
|
|
43
|
+
if (value === null)
|
|
44
|
+
return 2 /* Mask.NULL */;
|
|
45
|
+
switch (typeof value) {
|
|
46
|
+
case 'number':
|
|
47
|
+
return 4 /* Mask.NUMBER */;
|
|
48
|
+
case 'string':
|
|
49
|
+
return 8 /* Mask.STRING */;
|
|
50
|
+
case 'boolean':
|
|
51
|
+
return 16 /* Mask.BOOLEAN */;
|
|
52
|
+
case 'undefined':
|
|
53
|
+
return 1 /* Mask.UNDEFINED */;
|
|
54
|
+
case 'object':
|
|
55
|
+
return isArray(value) ? 64 /* Mask.ARRAY */ : 32 /* Mask.OBJECT */;
|
|
56
|
+
default:
|
|
57
|
+
throw new Error(`Invalid type: ${typeof value}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAE9B,MAAM,UAAU,oBAAoB,CAAC,GAAsB,EAAE,KAAkB;IAC7E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,YAAY,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,uDAAiC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9F,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACrC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC;YAC3B,CAAC;iBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,yDAAyD;QACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC;YACxB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;QAC5B,CAAC;QACD,yCAAyC;aACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,oBAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAA2B,GAAM;IAC3D,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAEtB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,oBAAoB,CAAC,GAAwB,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,KAAuD,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,IAAI;QAAE,yBAAiB;IAErC,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,2BAAmB;QACrB,KAAK,QAAQ;YACX,2BAAmB;QACrB,KAAK,SAAS;YACZ,6BAAoB;QACtB,KAAK,WAAW;YACd,8BAAsB;QACxB,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAY,CAAC,qBAAY,CAAC;QACnD;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../src/EntityMap.ts","../src/QueryClient.ts","../src/QueryStore.ts","../src/errors.ts","../src/index.ts","../src/parseEntities.ts","../src/pathInterpolator.ts","../src/proxy.ts","../src/query.ts","../src/typeDefs.ts","../src/types.ts","../src/utils.ts"],"version":"5.7.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signalium/query",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"react": ">=18.3.1",
|
|
28
|
-
"signalium": ">=2.0.
|
|
28
|
+
"signalium": ">=2.0.9"
|
|
29
29
|
},
|
|
30
30
|
"peerDependenciesMeta": {
|
|
31
31
|
"react": {
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"react": "^18.3.1",
|
|
61
61
|
"react-dom": "^18.3.1",
|
|
62
62
|
"rollup-plugin-const-enum": "^1.1.4",
|
|
63
|
-
"signalium": "2.0.
|
|
63
|
+
"signalium": "2.0.9",
|
|
64
64
|
"vite": "^7.1.2",
|
|
65
65
|
"vite-plugin-babel": "^1.3.0",
|
|
66
66
|
"vite-plugin-dts": "^4.5.4",
|