mobx-keystone 2.1.0 → 2.3.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 +17 -0
- package/README.md +1 -1
- package/dist/mobx-keystone.esm.js +555 -516
- package/dist/mobx-keystone.esm.mjs +555 -516
- package/dist/mobx-keystone.umd.js +558 -519
- package/dist/types/actionMiddlewares/undoMiddleware.d.ts +2 -10
- package/dist/types/modelShared/modelDecorator.d.ts +5 -2
- package/dist/types/modelShared/prop.d.ts +42 -29
- package/dist/types/ref/Ref.d.ts +1 -4
- package/dist/types/snapshot/SnapshotOf.d.ts +4 -4
- package/dist/types/snapshot/applySnapshot.d.ts +1 -1
- package/dist/types/snapshot/fromSnapshot.d.ts +2 -2
- package/dist/types/snapshot/getSnapshot.d.ts +1 -1
- package/dist/types/types/SnapshotTypeMismatchError.d.ts +3 -1
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/modelTypeMatching.d.ts +1 -0
- package/dist/types/types/schemas.d.ts +41 -37
- package/dist/types/types/tProp.d.ts +12 -6
- package/dist/types/types/types.d.ts +6 -6
- package/dist/types/types/utility/typeToStoredData.d.ts +14 -10
- package/dist/types/types/utility/typesCodecCore.d.ts +3 -0
- package/dist/types/utils/ModelPool.d.ts +0 -1
- package/dist/types/utils/types.d.ts +6 -0
- package/dist/types/wrappers/ArraySet.d.ts +1 -0
- package/package.json +13 -11
- package/src/action/modelFlow.ts +35 -66
- package/src/actionMiddlewares/actionTrackingMiddleware.ts +41 -71
- package/src/actionMiddlewares/transactionMiddleware.ts +1 -1
- package/src/actionMiddlewares/undoMiddleware.ts +16 -22
- package/src/context/context.ts +15 -36
- package/src/dataModel/utils.ts +5 -28
- package/src/deepChange/onDeepChange.ts +44 -126
- package/src/model/BaseModel.ts +1 -1
- package/src/model/utils.ts +5 -10
- package/src/modelShared/modelDecorator.ts +13 -10
- package/src/modelShared/modelInfo.ts +75 -0
- package/src/modelShared/prop.ts +115 -111
- package/src/modelShared/sharedInternalModel.ts +2 -2
- package/src/parent/arrayPaths.ts +1 -4
- package/src/parent/path.ts +0 -10
- package/src/patch/patchRecorder.ts +13 -28
- package/src/ref/core.ts +6 -19
- package/src/rootStore/rootStore.ts +1 -3
- package/src/snapshot/SnapshotOf.ts +24 -48
- package/src/snapshot/applySnapshot.ts +1 -1
- package/src/snapshot/fromSnapshot.ts +10 -3
- package/src/snapshot/getSnapshot.ts +1 -1
- package/src/snapshot/internal.ts +0 -2
- package/src/snapshot/reconcileModelSnapshot.ts +5 -3
- package/src/snapshot/reconcilePlainObjectSnapshot.ts +3 -1
- package/src/treeUtils/draft.ts +6 -1
- package/src/treeUtils/sandbox.ts +10 -7
- package/src/tweaker/tweakArray.ts +20 -50
- package/src/tweaker/tweakPlainObject.ts +9 -15
- package/src/types/SnapshotTypeMismatchError.ts +3 -1
- package/src/types/arrayBased/typesArray.ts +13 -19
- package/src/types/arrayBased/typesTuple.ts +16 -25
- package/src/types/createCachedTypeCheck.ts +17 -30
- package/src/types/index.ts +1 -0
- package/src/types/modelTypeMatching.ts +276 -0
- package/src/types/objectBased/typesDataModelData.ts +7 -8
- package/src/types/objectBased/typesModel.ts +23 -6
- package/src/types/objectBased/typesObject.ts +11 -15
- package/src/types/objectBased/typesRecord.ts +11 -15
- package/src/types/objectBased/typesRef.ts +23 -4
- package/src/types/schemas.ts +59 -71
- package/src/types/tProp.ts +29 -29
- package/src/types/utility/typeToStoredData.ts +22 -21
- package/src/types/utility/typesCodecCore.ts +8 -1
- package/src/types/utility/typesCodecSupport.ts +16 -10
- package/src/types/utility/typesMap.ts +43 -51
- package/src/types/utility/typesOr.ts +38 -8
- package/src/types/utility/typesRefinement.ts +7 -8
- package/src/types/utility/typesSkipCheck.ts +7 -8
- package/src/types/utility/typesTag.ts +7 -8
- package/src/utils/ModelPool.ts +1 -18
- package/src/utils/decorators.ts +5 -5
- package/src/utils/index.ts +1 -20
- package/src/utils/types.ts +5 -0
- package/src/wrappers/ArraySet.ts +27 -14
- package/src/wrappers/ObjectMap.ts +1 -6
- package/src/wrappers/asMap.ts +1 -21
- package/src/wrappers/asSet.ts +0 -8
|
@@ -77,16 +77,8 @@ export interface UndoEventGroup {
|
|
|
77
77
|
readonly events: ReadonlyArray<UndoEventWithoutAttachedState>;
|
|
78
78
|
}
|
|
79
79
|
declare const UndoStore_base: import('..')._Model<unknown, {
|
|
80
|
-
undoEvents: import('..').
|
|
81
|
-
|
|
82
|
-
$storedCreationValueType: Frozen<UndoEvent>[] | null | undefined;
|
|
83
|
-
$typedFromSnapshotOverride: import('..').SnapshotInOfFrozen<Frozen<UndoEvent>>[] | null | undefined;
|
|
84
|
-
};
|
|
85
|
-
redoEvents: import('..').OptionalModelProp<Frozen<UndoEvent>[]> & {
|
|
86
|
-
$storedValueType: Frozen<UndoEvent>[];
|
|
87
|
-
$storedCreationValueType: Frozen<UndoEvent>[] | null | undefined;
|
|
88
|
-
$typedFromSnapshotOverride: import('..').SnapshotInOfFrozen<Frozen<UndoEvent>>[] | null | undefined;
|
|
89
|
-
};
|
|
80
|
+
undoEvents: import('..').TypedOptionalModelProp<import('..').ArrayType<import('..').ModelType<Frozen<UndoEvent>>[]>>;
|
|
81
|
+
redoEvents: import('..').TypedOptionalModelProp<import('..').ArrayType<import('..').ModelType<Frozen<UndoEvent>>[]>>;
|
|
90
82
|
}, {
|
|
91
83
|
undoEvents?: ReadonlyArray<UndoEvent | FrozenData<UndoEvent>>;
|
|
92
84
|
redoEvents?: ReadonlyArray<UndoEvent | FrozenData<UndoEvent>>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { AnyDataModel } from '../dataModel/BaseDataModel';
|
|
2
2
|
import { AnyModel } from '../model/BaseModel';
|
|
3
|
-
import { ModelClass } from '../modelShared/BaseModelShared';
|
|
4
3
|
import { AnyFunction } from '../utils/AnyFunction';
|
|
5
4
|
/**
|
|
6
5
|
* Decorator that marks this class (which MUST inherit from the `Model` or `DataModel` abstract classes)
|
|
@@ -9,7 +8,10 @@ import { AnyFunction } from '../utils/AnyFunction';
|
|
|
9
8
|
* @param name Unique name for the model type. Note that this name must be unique for your whole
|
|
10
9
|
* application, so it is usually a good idea to use some prefix unique to your application domain.
|
|
11
10
|
*/
|
|
12
|
-
export declare const model: (name: string) => <MC extends
|
|
11
|
+
export declare const model: (name: string) => <MC extends ModelDecoratorTarget>(clazz: MC, _context?: ClassDecoratorContext<MC>) => MC;
|
|
12
|
+
type ModelDecoratorTarget = (new (...args: any) => any) & {
|
|
13
|
+
prototype: AnyModel | AnyDataModel;
|
|
14
|
+
};
|
|
13
15
|
/**
|
|
14
16
|
* Marks a class (which MUST inherit from the `Model` abstract class)
|
|
15
17
|
* as a model and decorates some of its methods/properties.
|
|
@@ -23,3 +25,4 @@ export declare const model: (name: string) => <MC extends ModelClass<AnyModel |
|
|
|
23
25
|
export declare function decoratedModel<M, MC extends abstract new (...ags: any) => M>(name: string | undefined, clazz: MC, decorators: {
|
|
24
26
|
[k in keyof M]?: AnyFunction | ReadonlyArray<AnyFunction>;
|
|
25
27
|
}): MC;
|
|
28
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SnapshotInOf, SnapshotOutOf } from '../snapshot/SnapshotOf';
|
|
2
2
|
import { AnyStandardType } from '../types/schemas';
|
|
3
|
-
import {
|
|
3
|
+
import { IsNeverType, IsOptionalValue, SimplifyObject } from '../utils/types';
|
|
4
4
|
/**
|
|
5
5
|
* @ignore
|
|
6
6
|
*/
|
|
@@ -44,16 +44,16 @@ export interface ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TT
|
|
|
44
44
|
* Adds a setter to the property. The setter will be named `set${CapitalizedPropName}`
|
|
45
45
|
* and will be available in the model instance.
|
|
46
46
|
*/
|
|
47
|
-
withSetter():
|
|
47
|
+
withSetter(): ModelPropWithSetter<this>;
|
|
48
48
|
/**
|
|
49
49
|
* Adds a setter with a transform to the property. The setter will be named `set${CapitalizedPropName}`
|
|
50
50
|
* and will be available in the model instance.
|
|
51
51
|
*/
|
|
52
|
-
withSetter(valueTransform: ModelPropSetterValueTransform<TTransformedValue>):
|
|
52
|
+
withSetter(valueTransform: ModelPropSetterValueTransform<TTransformedValue>): ModelPropWithSetter<this>;
|
|
53
53
|
/**
|
|
54
54
|
* @deprecated Setter methods are preferred.
|
|
55
55
|
*/
|
|
56
|
-
withSetter(mode: "assign"):
|
|
56
|
+
withSetter(mode: "assign"): ModelPropWithSetter<this>;
|
|
57
57
|
/**
|
|
58
58
|
* Sets a transform for the property instance value.
|
|
59
59
|
*
|
|
@@ -66,7 +66,7 @@ export interface ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TT
|
|
|
66
66
|
* @param transform Transform to be used.
|
|
67
67
|
* @returns
|
|
68
68
|
*/
|
|
69
|
-
withTransform<TTV>(transform: ModelPropTransform<NonNullable<TPropValue>, TTV>):
|
|
69
|
+
withTransform<TTV>(transform: ModelPropTransform<NonNullable<TPropValue>, TTV>): ModelPropWithTransform<this, TTV>;
|
|
70
70
|
/**
|
|
71
71
|
* Sets snapshot processors for this property.
|
|
72
72
|
*
|
|
@@ -79,8 +79,24 @@ export interface ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TT
|
|
|
79
79
|
withSnapshotProcessor<FS = TFromSnapshotOverride, TS = TToSnapshotOverride, This extends AnyModelProp = this>(processor: {
|
|
80
80
|
fromSnapshot?: (sn: FS) => ModelPropFromSnapshot<This>;
|
|
81
81
|
toSnapshot?: (sn: ModelPropToSnapshot<This>) => TS;
|
|
82
|
-
}):
|
|
82
|
+
}): ModelPropWithSnapshotProcessor<this, FS, TS>;
|
|
83
83
|
}
|
|
84
|
+
type ModelPropStoredMetadataKey = "$storedValueType" | "$storedCreationValueType";
|
|
85
|
+
type ModelPropStoredMetadata<MP, K extends PropertyKey> = MP extends {
|
|
86
|
+
$storedValueType: unknown;
|
|
87
|
+
} ? Pick<MP, Extract<keyof MP, K>> : {};
|
|
88
|
+
/**
|
|
89
|
+
* The model property returned by `withSetter`.
|
|
90
|
+
*/
|
|
91
|
+
export type ModelPropWithSetter<MP extends AnyModelProp> = ModelProp<MP["$valueType"], MP["$creationValueType"], MP["$transformedValueType"], MP["$transformedCreationValueType"], MP["$isRequired"], MP["$isId"], string, MP["$fromSnapshotOverride"], MP["$toSnapshotOverride"]> & ModelPropStoredMetadata<MP, ModelPropStoredMetadataKey | "$typedFromSnapshotOverride">;
|
|
92
|
+
/**
|
|
93
|
+
* The model property returned by `withTransform`.
|
|
94
|
+
*/
|
|
95
|
+
export type ModelPropWithTransform<MP extends AnyModelProp, TTV> = ModelProp<MP["$valueType"], MP["$creationValueType"], TTV | Extract<MP["$valueType"], null | undefined>, TTV | Extract<MP["$creationValueType"], null | undefined>, MP["$isRequired"], MP["$isId"], MP["$hasSetter"], MP["$fromSnapshotOverride"], MP["$toSnapshotOverride"]> & ModelPropStoredMetadata<MP, ModelPropStoredMetadataKey | "$typedFromSnapshotOverride">;
|
|
96
|
+
/**
|
|
97
|
+
* The model property returned by `withSnapshotProcessor`.
|
|
98
|
+
*/
|
|
99
|
+
export type ModelPropWithSnapshotProcessor<MP extends AnyModelProp, FS, TS> = ModelProp<MP["$valueType"], MP["$creationValueType"], MP["$transformedValueType"], MP["$transformedCreationValueType"], MP["$isRequired"], MP["$isId"], MP["$hasSetter"], FS, TS> & ModelPropStoredMetadata<MP, ModelPropStoredMetadataKey>;
|
|
84
100
|
/**
|
|
85
101
|
* The snapshot in type of a model property.
|
|
86
102
|
*/
|
|
@@ -89,15 +105,9 @@ export type ModelPropFromSnapshot<MP extends AnyModelProp> = IsNeverType<ModelPr
|
|
|
89
105
|
* The snapshot out type of a model property.
|
|
90
106
|
*/
|
|
91
107
|
export type ModelPropToSnapshot<MP extends AnyModelProp> = IsNeverType<MP["$toSnapshotOverride"], SnapshotOutOf<ModelPropStoredValue<MP>>, MP["$toSnapshotOverride"]>;
|
|
92
|
-
export type ModelPropStoredValue<MP extends AnyModelProp> =
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
export type ModelPropStoredCreationValue<MP extends AnyModelProp> = MP extends {
|
|
96
|
-
$storedCreationValueType: infer TStoredCreationValue;
|
|
97
|
-
} ? TStoredCreationValue : MP["$creationValueType"];
|
|
98
|
-
export type ModelPropFromSnapshotOverride<MP extends AnyModelProp> = MP extends {
|
|
99
|
-
$typedFromSnapshotOverride: infer TFromSnapshotOverride;
|
|
100
|
-
} ? TFromSnapshotOverride : MP["$fromSnapshotOverride"];
|
|
108
|
+
export type ModelPropStoredValue<MP extends AnyModelProp> = "$storedValueType" extends keyof MP ? MP["$storedValueType" & keyof MP] : MP["$valueType"];
|
|
109
|
+
export type ModelPropStoredCreationValue<MP extends AnyModelProp> = "$storedCreationValueType" extends keyof MP ? MP["$storedCreationValueType" & keyof MP] : MP["$creationValueType"];
|
|
110
|
+
export type ModelPropFromSnapshotOverride<MP extends AnyModelProp> = "$typedFromSnapshotOverride" extends keyof MP ? MP["$typedFromSnapshotOverride" & keyof MP] : MP["$fromSnapshotOverride"];
|
|
101
111
|
/**
|
|
102
112
|
* A model prop transform.
|
|
103
113
|
*/
|
|
@@ -131,39 +141,42 @@ export interface ModelProps {
|
|
|
131
141
|
export type RequiredModelProps<MP extends ModelProps> = {
|
|
132
142
|
[K in keyof MP]: MP[K]["$isRequired"] & K;
|
|
133
143
|
}[keyof MP];
|
|
134
|
-
export type ModelPropsToUntransformedData<MP extends ModelProps> =
|
|
144
|
+
export type ModelPropsToUntransformedData<MP extends ModelProps> = {
|
|
135
145
|
[k in keyof MP]: ModelPropStoredValue<MP[k]>;
|
|
136
|
-
}
|
|
137
|
-
export type ModelPropsToSnapshotData<MP extends ModelProps> =
|
|
146
|
+
} & {};
|
|
147
|
+
export type ModelPropsToSnapshotData<MP extends ModelProps> = {
|
|
138
148
|
[k in keyof MP]: ModelPropToSnapshot<MP[k]> extends infer R ? R : never;
|
|
139
|
-
}
|
|
149
|
+
} & {};
|
|
140
150
|
export type ModelPropsToUntransformedCreationData<MP extends ModelProps> = {
|
|
141
151
|
[k in keyof MP]?: ModelPropStoredCreationValue<MP[k]>;
|
|
142
152
|
} & {
|
|
143
153
|
[k in RequiredModelProps<MP>]: ModelPropStoredCreationValue<MP[k]>;
|
|
144
154
|
};
|
|
145
|
-
export type ModelPropsToSnapshotCreationData<MP extends ModelProps> =
|
|
155
|
+
export type ModelPropsToSnapshotCreationData<MP extends ModelProps> = SimplifyObject<{
|
|
146
156
|
[k in keyof MP]?: ModelPropFromSnapshot<MP[k]> extends infer R ? R : never;
|
|
147
157
|
} & {
|
|
148
|
-
[k in
|
|
149
|
-
[K in keyof MP]: IsNeverType<ModelPropFromSnapshotOverride<MP[K]>, MP[K]["$isRequired"] & K, // no override
|
|
150
|
-
IsOptionalValue<ModelPropFromSnapshotOverride<MP[K]>, never, K>>;
|
|
151
|
-
}[keyof MP]]: ModelPropFromSnapshot<MP[k]> extends infer R ? R : never;
|
|
158
|
+
[k in SnapshotCreationRequiredKeys<MP>]: ModelPropFromSnapshot<MP[k]> extends infer R ? R : never;
|
|
152
159
|
}>;
|
|
153
|
-
|
|
160
|
+
type SnapshotCreationRequiredKeys<MP extends ModelProps> = {
|
|
161
|
+
[K in keyof MP]: IsNeverType<ModelPropFromSnapshotOverride<MP[K]>, MP[K]["$isRequired"] & K, IsOptionalValue<ModelPropFromSnapshotOverride<MP[K]>, never, K>>;
|
|
162
|
+
}[keyof MP];
|
|
163
|
+
export type ModelPropsToTransformedData<MP extends ModelProps> = {
|
|
154
164
|
[k in keyof MP]: MP[k]["$transformedValueType"];
|
|
155
|
-
}
|
|
165
|
+
} & {};
|
|
156
166
|
export type ModelPropsToTransformedCreationData<MP extends ModelProps> = {
|
|
157
167
|
[k in keyof MP]?: MP[k]["$transformedCreationValueType"];
|
|
158
168
|
} & {
|
|
159
169
|
[k in RequiredModelProps<MP>]: MP[k]["$transformedCreationValueType"];
|
|
160
170
|
};
|
|
161
|
-
export type ModelPropsToSetter<MP extends ModelProps> =
|
|
171
|
+
export type ModelPropsToSetter<MP extends ModelProps> = {
|
|
162
172
|
[k in keyof MP as MP[k]["$hasSetter"] & `set${Capitalize<k & string>}`]: (value: MP[k]["$transformedValueType"]) => void;
|
|
163
|
-
}
|
|
173
|
+
} & {};
|
|
164
174
|
export type ModelIdProp<T extends string = string> = ModelProp<T, T | undefined, T, T | undefined, never, // not required
|
|
165
175
|
true>;
|
|
166
|
-
|
|
176
|
+
/**
|
|
177
|
+
* The type of `idProp`.
|
|
178
|
+
*/
|
|
179
|
+
export type TypedModelIdProp<T extends string = string, THasSetter = never> = Omit<ModelProp<T, T | undefined, T, T | undefined, never, true, THasSetter>, "withSetter"> & {
|
|
167
180
|
/**
|
|
168
181
|
* Enables generation of a setter method for the ID prop (`setId` for `id`, `setCustomId` for `customId`).
|
|
169
182
|
*/
|
package/dist/types/ref/Ref.d.ts
CHANGED
|
@@ -3,10 +3,7 @@ declare const Ref_base: import('..')._Model<unknown, {
|
|
|
3
3
|
/**
|
|
4
4
|
* Reference id.
|
|
5
5
|
*/
|
|
6
|
-
id: import('..').
|
|
7
|
-
$storedValueType: string;
|
|
8
|
-
$storedCreationValueType: string;
|
|
9
|
-
};
|
|
6
|
+
id: import('..').TypedMaybeOptionalModelProp<import('..').IdentityType<string>>;
|
|
10
7
|
}, never, never>;
|
|
11
8
|
/**
|
|
12
9
|
* A reference model base type.
|
|
@@ -8,7 +8,7 @@ export type FrozenData<D> = {
|
|
|
8
8
|
data: D;
|
|
9
9
|
};
|
|
10
10
|
export type SnapshotOutOfObject<T> = {
|
|
11
|
-
[k in keyof T]: SnapshotOutOf<T[k]
|
|
11
|
+
[k in keyof T]: SnapshotOutOf<T[k]>;
|
|
12
12
|
};
|
|
13
13
|
export type SnapshotOutOfModel<M extends AnyModel> = ModelToSnapshot<M>;
|
|
14
14
|
export interface SnapshotOutOfFrozen<F extends Frozen<any>> extends FrozenData<F["data"]> {
|
|
@@ -25,9 +25,9 @@ export interface SnapshotOutOfArraySet<V> {
|
|
|
25
25
|
[modelTypeKey]?: string;
|
|
26
26
|
[modelIdKey]: string;
|
|
27
27
|
}
|
|
28
|
-
export type SnapshotOutOf<T> = T extends ObjectMap<infer V> ? SnapshotOutOfObjectMap<V>
|
|
28
|
+
export type SnapshotOutOf<T> = T extends object ? T extends AnyModel ? T extends ObjectMap<infer V> ? SnapshotOutOfObjectMap<V> : T extends ArraySet<infer V> ? SnapshotOutOfArraySet<V> : SnapshotOutOfModel<T> : T extends Frozen<any> ? SnapshotOutOfFrozen<T> : SnapshotOutOfObject<T> : T;
|
|
29
29
|
export type SnapshotInOfObject<T> = {
|
|
30
|
-
[k in keyof T]: SnapshotInOf<T[k]
|
|
30
|
+
[k in keyof T]: SnapshotInOf<T[k]>;
|
|
31
31
|
};
|
|
32
32
|
export type SnapshotInOfModel<M extends AnyModel> = ModelFromSnapshot<M>;
|
|
33
33
|
export interface SnapshotInOfFrozen<F extends Frozen<any>> extends FrozenData<F["data"]> {
|
|
@@ -44,4 +44,4 @@ export interface SnapshotInOfArraySet<V> {
|
|
|
44
44
|
[modelTypeKey]?: string;
|
|
45
45
|
[modelIdKey]: string;
|
|
46
46
|
}
|
|
47
|
-
export type SnapshotInOf<T> = T extends ObjectMap<infer V> ? SnapshotInOfObjectMap<V>
|
|
47
|
+
export type SnapshotInOf<T> = T extends object ? T extends AnyModel ? T extends ObjectMap<infer V> ? SnapshotInOfObjectMap<V> : T extends ArraySet<infer V> ? SnapshotInOfArraySet<V> : SnapshotInOfModel<T> : T extends Frozen<any> ? SnapshotInOfFrozen<T> : SnapshotInOfObject<T> : T;
|
|
@@ -7,4 +7,4 @@ import { SnapshotInOf, SnapshotOutOf } from './SnapshotOf';
|
|
|
7
7
|
* @param node Target object (model object, object or array).
|
|
8
8
|
* @param snapshot Snapshot to apply.
|
|
9
9
|
*/
|
|
10
|
-
export declare function applySnapshot<T extends object>(node: T, snapshot: SnapshotInOf<T> | SnapshotOutOf<T
|
|
10
|
+
export declare function applySnapshot<T extends object>(node: T, snapshot: NoInfer<SnapshotInOf<T> | SnapshotOutOf<T>>): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyType, TypeToData, TypeToSnapshotIn } from '../types/schemas';
|
|
1
|
+
import { AnyType, TypeToData, TypeToSnapshotIn, TypeToSnapshotOut } from '../types/schemas';
|
|
2
2
|
import { SnapshotInOf, SnapshotOutOf } from './SnapshotOf';
|
|
3
3
|
/**
|
|
4
4
|
* From snapshot options.
|
|
@@ -18,7 +18,7 @@ export interface FromSnapshotOptions {
|
|
|
18
18
|
* @param options Options.
|
|
19
19
|
* @returns The deserialized object.
|
|
20
20
|
*/
|
|
21
|
-
export declare function fromSnapshot<TType extends AnyType>(type: TType, snapshot: TypeToSnapshotIn<TType
|
|
21
|
+
export declare function fromSnapshot<TType extends AnyType>(type: TType, snapshot: NoInfer<TypeToSnapshotIn<TType> | TypeToSnapshotOut<TType>>, options?: Partial<FromSnapshotOptions>): TypeToData<TType>;
|
|
22
22
|
/**
|
|
23
23
|
* Deserializes a data structure from its snapshot form.
|
|
24
24
|
*
|
|
@@ -9,7 +9,7 @@ import { SnapshotOutOf } from './SnapshotOf';
|
|
|
9
9
|
* @param nodeOrPrimitive Data structure, including primtives.
|
|
10
10
|
* @returns The snapshot.
|
|
11
11
|
*/
|
|
12
|
-
export declare function getSnapshot<T extends AnyType>(type: T, nodeOrPrimitive: TypeToData<T
|
|
12
|
+
export declare function getSnapshot<T extends AnyType>(type: T, nodeOrPrimitive: NoInfer<TypeToData<T>>): TypeToSnapshotOut<T>;
|
|
13
13
|
/**
|
|
14
14
|
* Retrieves an immutable snapshot for a data structure.
|
|
15
15
|
* Since returned snapshots are immutable they will respect shallow equality, this is,
|
|
@@ -7,7 +7,9 @@ export interface SnapshotTypeMismatchErrorData {
|
|
|
7
7
|
modelTrail?: readonly string[];
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
* Thrown when a snapshot value does not match any of the expected types in a union
|
|
10
|
+
* Thrown when a snapshot value does not match any of the expected types in a union, or when a
|
|
11
|
+
* model snapshot names a model (`$modelType`) that is not the expected model or a subclass of it
|
|
12
|
+
* (extends `MobxKeystoneError`).
|
|
11
13
|
*
|
|
12
14
|
* Use `instanceof SnapshotTypeMismatchError` to distinguish snapshot type-mismatch errors
|
|
13
15
|
* from other `MobxKeystoneError` instances.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { O } from 'ts-toolbelt';
|
|
2
1
|
import { AnyDataModel } from '../dataModel/BaseDataModel';
|
|
3
2
|
import { AnyModel } from '../model/BaseModel';
|
|
4
3
|
import { ModelClass } from '../modelShared/BaseModelShared';
|
|
5
4
|
import { SnapshotInOf, SnapshotOutOf } from '../snapshot/SnapshotOf';
|
|
6
|
-
import { IsOptionalValue } from '../utils/types';
|
|
5
|
+
import { IsOptionalValue, SimplifyObject } from '../utils/types';
|
|
7
6
|
export interface Type<Name, Data> {
|
|
8
7
|
/** @ignore */
|
|
9
8
|
$$type: Name;
|
|
@@ -22,14 +21,14 @@ export interface CodecType<Runtime, SnapshotIn = Runtime, SnapshotOut = Snapshot
|
|
|
22
21
|
/** @ignore */
|
|
23
22
|
$$storedData: StoredData;
|
|
24
23
|
}
|
|
25
|
-
type ArrayData<S extends readonly unknown[]> = number extends S["length"] ? Array<TypeToData<S[number]
|
|
26
|
-
[k in keyof S]: TypeToData<S[k]
|
|
24
|
+
type ArrayData<S extends readonly unknown[]> = number extends S["length"] ? Array<TypeToData<S[number]>> : {
|
|
25
|
+
[k in keyof S]: TypeToData<S[k]>;
|
|
27
26
|
};
|
|
28
|
-
type ArraySnapshotInData<S extends readonly unknown[]> = number extends S["length"] ? Array<TypeToSnapshotIn<S[number]
|
|
29
|
-
[k in keyof S]: TypeToSnapshotIn<S[k]
|
|
27
|
+
type ArraySnapshotInData<S extends readonly unknown[]> = number extends S["length"] ? Array<TypeToSnapshotIn<S[number]>> : {
|
|
28
|
+
[k in keyof S]: TypeToSnapshotIn<S[k]>;
|
|
30
29
|
};
|
|
31
|
-
type ArraySnapshotOutData<S extends readonly unknown[]> = number extends S["length"] ? Array<TypeToSnapshotOut<S[number]
|
|
32
|
-
[k in keyof S]: TypeToSnapshotOut<S[k]
|
|
30
|
+
type ArraySnapshotOutData<S extends readonly unknown[]> = number extends S["length"] ? Array<TypeToSnapshotOut<S[number]>> : {
|
|
31
|
+
[k in keyof S]: TypeToSnapshotOut<S[k]>;
|
|
33
32
|
};
|
|
34
33
|
export interface ArrayType<S extends readonly unknown[]> extends Type<"array", ArrayData<S>> {
|
|
35
34
|
}
|
|
@@ -48,33 +47,32 @@ export type UndefinablePropsNames<T> = {
|
|
|
48
47
|
* Computes the optional keys for an object type schema.
|
|
49
48
|
* @ignore
|
|
50
49
|
*/
|
|
51
|
-
export type ObjectOptionalKeys<S> =
|
|
52
|
-
[
|
|
50
|
+
export type ObjectOptionalKeys<S> = {
|
|
51
|
+
[K in keyof S]: IsOptionalValue<TypeToDataOpt<S[K]>, K, never>;
|
|
52
|
+
}[keyof S];
|
|
53
|
+
type ObjectData<S, OK = ObjectOptionalKeys<S>> = SimplifyObject<{
|
|
54
|
+
[k in keyof S as k extends OK ? never : k]: TypeToData<S[k]>;
|
|
55
|
+
} & {
|
|
56
|
+
[k in keyof S as k extends OK ? k : never]?: TypeToData<S[k]>;
|
|
57
|
+
}>;
|
|
58
|
+
type ObjectSnapshotInData<S, OK = ObjectOptionalKeys<S>> = SimplifyObject<{
|
|
59
|
+
[k in keyof S as k extends OK ? never : k]: TypeToSnapshotIn<S[k]>;
|
|
60
|
+
} & {
|
|
61
|
+
[k in keyof S as k extends OK ? k : never]?: TypeToSnapshotIn<S[k]>;
|
|
62
|
+
}>;
|
|
63
|
+
type ObjectSnapshotOutData<S, OK = ObjectOptionalKeys<S>> = SimplifyObject<{
|
|
64
|
+
[k in keyof S as k extends OK ? never : k]: TypeToSnapshotOut<S[k]>;
|
|
65
|
+
} & {
|
|
66
|
+
[k in keyof S as k extends OK ? k : never]?: TypeToSnapshotOut<S[k]>;
|
|
53
67
|
}>;
|
|
54
|
-
type ObjectData<S> = O.Optional<{
|
|
55
|
-
[k in keyof S]: TypeToData<S[k]> extends infer R ? R : never;
|
|
56
|
-
}, ObjectOptionalKeys<S>>;
|
|
57
|
-
type ObjectSnapshotInData<S> = O.Optional<{
|
|
58
|
-
[k in keyof S]: TypeToSnapshotIn<S[k]> extends infer R ? R : never;
|
|
59
|
-
}, ObjectOptionalKeys<S>>;
|
|
60
|
-
type ObjectSnapshotOutData<S> = O.Optional<{
|
|
61
|
-
[k in keyof S]: TypeToSnapshotOut<S[k]> extends infer R ? R : never;
|
|
62
|
-
}, ObjectOptionalKeys<S>>;
|
|
63
|
-
type RecordData<S> = {
|
|
64
|
-
[k: string]: TypeToData<S> extends infer R ? R : never;
|
|
65
|
-
};
|
|
66
|
-
type RecordSnapshotInData<S> = {
|
|
67
|
-
[k: string]: TypeToSnapshotIn<S> extends infer D ? D : never;
|
|
68
|
-
};
|
|
69
|
-
type RecordSnapshotOutData<S> = {
|
|
70
|
-
[k: string]: TypeToSnapshotOut<S> extends infer D ? D : never;
|
|
71
|
-
};
|
|
72
68
|
export interface ObjectType<S> extends Type<"object", ObjectData<S>> {
|
|
73
69
|
}
|
|
74
70
|
export interface ObjectTypeFunction {
|
|
75
71
|
(): ObjectOfTypes;
|
|
76
72
|
}
|
|
77
|
-
export interface RecordType<S> extends Type<"record",
|
|
73
|
+
export interface RecordType<S> extends Type<"record", {
|
|
74
|
+
[k: string]: TypeToData<S>;
|
|
75
|
+
}> {
|
|
78
76
|
}
|
|
79
77
|
export type AnyStandardType = IdentityType<any> | ModelType<any> | CodecType<any, any> | ArrayType<any> | ObjectType<any> | RecordType<any> | ObjectTypeFunction;
|
|
80
78
|
export type AnyType = null | undefined | AnyNonValueType;
|
|
@@ -85,14 +83,20 @@ type ConstructorToSnapshotData<S> = ConstructorToType<S, string>;
|
|
|
85
83
|
type TypeToDataLeaf<S> = S extends ModelClass<infer M> ? M : S extends {
|
|
86
84
|
$$data: infer D;
|
|
87
85
|
} ? D : ConstructorToData<S>;
|
|
88
|
-
type TypeToSnapshotLeaf<S, Dir extends "in" | "out"> = S extends ModelClass<infer M> ? Dir extends "in" ? SnapshotInOf<M> : SnapshotOutOf<M> : S
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
type TypeToSnapshotLeaf<S, Dir extends "in" | "out"> = S extends ModelClass<infer M> ? Dir extends "in" ? SnapshotInOf<M> : SnapshotOutOf<M> : ConstructorToSnapshotData<S>;
|
|
87
|
+
export type TypeToData<S> = S extends ObjectTypeFunction ? ObjectType<ReturnType<S>>["$$data"] : TypeToDataLeaf<S>;
|
|
88
|
+
export type TypeToSnapshotIn<S> = S extends ObjectTypeFunction ? ObjectSnapshotInData<ReturnType<S>> : S extends {
|
|
89
|
+
$$type: infer K;
|
|
90
|
+
} ? K extends "codec" ? S["$$snapshotIn" & keyof S] : S extends ArrayType<infer A> ? ArraySnapshotInData<A> : S extends ObjectType<infer O> ? ObjectSnapshotInData<O> : S extends RecordType<infer R> ? {
|
|
91
|
+
[k: string]: TypeToSnapshotIn<R>;
|
|
92
|
+
} : S extends ModelType<infer M> ? SnapshotInOf<M> : S["$$data" & keyof S] : TypeToSnapshotLeaf<S, "in">;
|
|
93
|
+
export type TypeToSnapshotOut<S> = S extends ObjectTypeFunction ? ObjectSnapshotOutData<ReturnType<S>> : S extends {
|
|
94
|
+
$$type: infer K;
|
|
95
|
+
} ? K extends "codec" ? S["$$snapshotOut" & keyof S] : S extends ArrayType<infer A> ? ArraySnapshotOutData<A> : S extends ObjectType<infer O> ? ObjectSnapshotOutData<O> : S extends RecordType<infer R> ? {
|
|
96
|
+
[k: string]: TypeToSnapshotOut<R>;
|
|
97
|
+
} : S extends ModelType<infer M> ? SnapshotOutOf<M> : S["$$data" & keyof S] : TypeToSnapshotLeaf<S, "out">;
|
|
94
98
|
/** @ignore */
|
|
95
99
|
export type TypeToDataOpt<S> = S extends {
|
|
96
|
-
$$data:
|
|
97
|
-
} ?
|
|
100
|
+
$$data: unknown;
|
|
101
|
+
} ? S["$$data"] & undefined : never;
|
|
98
102
|
export {};
|
|
@@ -6,8 +6,14 @@ type StoredRequiredPropMetadata<TType extends AnyType> = {
|
|
|
6
6
|
$storedValueType: TypeToStoredData<TType>;
|
|
7
7
|
$storedCreationValueType: TypeToStoredData<TType>;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* A model property created by `tProp` without a default value.
|
|
11
|
+
*/
|
|
12
|
+
export type TypedMaybeOptionalModelProp<TType extends AnyType> = MaybeOptionalModelProp<TypeToData<TType>> & StoredRequiredPropMetadata<TType>;
|
|
13
|
+
/**
|
|
14
|
+
* A model property created by `tProp` with a default value.
|
|
15
|
+
*/
|
|
16
|
+
export type TypedOptionalModelProp<TType extends AnyType> = OptionalModelProp<TypeToData<TType>> & {
|
|
11
17
|
$storedValueType: TypeToStoredData<TType>;
|
|
12
18
|
$storedCreationValueType: TypeToStoredData<TType> | null | undefined;
|
|
13
19
|
$typedFromSnapshotOverride: TypeToSnapshotIn<TType> | null | undefined;
|
|
@@ -67,7 +73,7 @@ export declare function tProp(defaultValue: boolean): TypedOptionalModelProp<typ
|
|
|
67
73
|
* @param defaultFn Default value generator function.
|
|
68
74
|
* @returns
|
|
69
75
|
*/
|
|
70
|
-
export declare function tProp<TType extends AnyType>(type: TType, defaultFn: () => TypeToData<TType
|
|
76
|
+
export declare function tProp<TType extends AnyType>(type: TType, defaultFn: () => NoInfer<TypeToData<TType>>): TypedOptionalModelProp<TType>;
|
|
71
77
|
/**
|
|
72
78
|
* Defines a model property using array syntax as a shorthand for `types.or(...)`,
|
|
73
79
|
* with an optional function to generate a default value if the input snapshot /
|
|
@@ -84,7 +90,7 @@ export declare function tProp<TType extends AnyType>(type: TType, defaultFn: ()
|
|
|
84
90
|
* @param defaultFn Default value generator function.
|
|
85
91
|
* @returns
|
|
86
92
|
*/
|
|
87
|
-
export declare function tProp<TType extends ReadonlyArray<AnyType>>(type: TType, defaultFn: () => TypeToData<TType[number]
|
|
93
|
+
export declare function tProp<TType extends ReadonlyArray<AnyType>>(type: TType, defaultFn: () => NoInfer<TypeToData<TType[number]>>): TypedOptionalModelProp<TType[number]>;
|
|
88
94
|
/**
|
|
89
95
|
* Defines a model property, with an optional default value
|
|
90
96
|
* if the input snapshot / model creation data is `null` or `undefined` and with an associated type checker.
|
|
@@ -102,7 +108,7 @@ export declare function tProp<TType extends ReadonlyArray<AnyType>>(type: TType,
|
|
|
102
108
|
* @param defaultValue Default value generator function.
|
|
103
109
|
* @returns
|
|
104
110
|
*/
|
|
105
|
-
export declare function tProp<TType extends AnyType>(type: TType, defaultValue: TypeToData<TType
|
|
111
|
+
export declare function tProp<TType extends AnyType>(type: TType, defaultValue: NoInfer<TypeToData<TType>>): TypedOptionalModelProp<TType>;
|
|
106
112
|
/**
|
|
107
113
|
* Defines a model property using array syntax as a shorthand for `types.or(...)`,
|
|
108
114
|
* with an optional default value if the input snapshot / model creation data is
|
|
@@ -119,7 +125,7 @@ export declare function tProp<TType extends AnyType>(type: TType, defaultValue:
|
|
|
119
125
|
* @param defaultValue Default value.
|
|
120
126
|
* @returns
|
|
121
127
|
*/
|
|
122
|
-
export declare function tProp<TType extends ReadonlyArray<AnyType>>(type: TType, defaultValue: TypeToData<TType[number]
|
|
128
|
+
export declare function tProp<TType extends ReadonlyArray<AnyType>>(type: TType, defaultValue: NoInfer<TypeToData<TType[number]>>): TypedOptionalModelProp<TType[number]>;
|
|
123
129
|
/**
|
|
124
130
|
* Defines a model property with no default value and an associated type checker.
|
|
125
131
|
*
|
|
@@ -49,9 +49,9 @@ export declare const types: {
|
|
|
49
49
|
objectMap: typeof typesObjectMap;
|
|
50
50
|
arraySet: typeof typesArraySet;
|
|
51
51
|
tuple: typeof typesTuple;
|
|
52
|
-
bigint: import('
|
|
53
|
-
dateAsTimestamp: import('
|
|
54
|
-
dateAsIsoString: import('
|
|
52
|
+
bigint: import('.').CodecFromEncoded<StringConstructor, bigint>;
|
|
53
|
+
dateAsTimestamp: import('.').CodecFromEncoded<NumberConstructor, Date>;
|
|
54
|
+
dateAsIsoString: import('.').CodecFromEncoded<StringConstructor, Date>;
|
|
55
55
|
/**
|
|
56
56
|
* @deprecated Prefer `types.mapFromArray(...)` for runtime `Map` values.
|
|
57
57
|
*/
|
|
@@ -64,9 +64,9 @@ export declare const types: {
|
|
|
64
64
|
* @deprecated Prefer `types.mapFromObject(...)` for runtime `Map` values.
|
|
65
65
|
*/
|
|
66
66
|
mapObject<T extends AnyType>(valueType: T): import('./schemas').RecordType<T>;
|
|
67
|
-
mapFromObject<T extends AnyType>(valueType: T): import('
|
|
68
|
-
mapFromArray<TKeyType extends AnyType, TValueType extends AnyType>(keyType: TKeyType, valueType: TValueType): import('
|
|
69
|
-
setFromArray<T extends AnyType>(valueType: T): import('
|
|
67
|
+
mapFromObject<T extends AnyType>(valueType: T): import('.').CodecFromEncoded<import('./schemas').RecordType<T>, Map<string, import('./schemas').TypeToData<T>>>;
|
|
68
|
+
mapFromArray<TKeyType extends AnyType, TValueType extends AnyType>(keyType: TKeyType, valueType: TValueType): import('.').CodecFromEncoded<import('./schemas').ArrayType<import('./schemas').ArrayType<[TKeyType, TValueType]>[]>, Map<import('./schemas').TypeToData<TKeyType>, import('./schemas').TypeToData<TValueType>>>;
|
|
69
|
+
setFromArray<T extends AnyType>(valueType: T): import('.').CodecFromEncoded<import('./schemas').ArrayType<T[]>, Set<import('./schemas').TypeToData<T>> | import('mobx').ObservableSet<import('./schemas').TypeToData<T>>>;
|
|
70
70
|
/**
|
|
71
71
|
* @deprecated Prefer `types.dateAsIsoString` instead.
|
|
72
72
|
*/
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ArrayType,
|
|
3
|
-
type ArrayStoredData<S extends readonly unknown[]> = number extends S["length"] ? Array<TypeToStoredData<S[number]
|
|
4
|
-
[k in keyof S]: TypeToStoredData<S[k]
|
|
1
|
+
import { SimplifyObject } from '../../utils/types';
|
|
2
|
+
import { ArrayType, ObjectOptionalKeys, ObjectType, ObjectTypeFunction, RecordType, TypeToData } from '../schemas';
|
|
3
|
+
type ArrayStoredData<S extends readonly unknown[]> = number extends S["length"] ? Array<TypeToStoredData<S[number]>> : {
|
|
4
|
+
[k in keyof S]: TypeToStoredData<S[k]>;
|
|
5
5
|
};
|
|
6
|
-
type ObjectStoredData<S
|
|
7
|
-
[k in keyof S
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
type ObjectStoredData<S, OK = ObjectOptionalKeys<S>> = SimplifyObject<{
|
|
7
|
+
[k in keyof S as k extends OK ? never : k]: TypeToStoredData<S[k]>;
|
|
8
|
+
} & {
|
|
9
|
+
[k in keyof S as k extends OK ? k : never]?: TypeToStoredData<S[k]>;
|
|
10
|
+
}>;
|
|
11
|
+
export type TypeToStoredData<S> = S extends ObjectTypeFunction ? ObjectStoredData<ReturnType<S>> : S extends {
|
|
12
|
+
$$type: infer K;
|
|
13
|
+
} ? K extends "codec" ? S["$$storedData" & keyof S] : S extends ArrayType<infer A> ? ArrayStoredData<A> : S extends ObjectType<infer O> ? ObjectStoredData<O> : S extends RecordType<infer R> ? {
|
|
14
|
+
[k: string]: TypeToStoredData<R>;
|
|
15
|
+
} : TypeToData<S> : TypeToData<S>;
|
|
12
16
|
export {};
|
|
@@ -28,6 +28,9 @@ type CodecConfig<TEncodedType extends AnyType, TRuntime> = {
|
|
|
28
28
|
encodedType: TEncodedType;
|
|
29
29
|
is(value: unknown): value is TRuntime;
|
|
30
30
|
} & ModelPropTransform<TypeToData<TEncodedType>, TRuntime>;
|
|
31
|
+
/**
|
|
32
|
+
* A codec type whose snapshot and stored forms are those of its encoded type.
|
|
33
|
+
*/
|
|
31
34
|
export type CodecFromEncoded<TEncodedType extends AnyType, TRuntime> = CodecType<TRuntime, TypeToSnapshotIn<TEncodedType>, TypeToSnapshotOut<TEncodedType>, TypeToStoredData<TEncodedType>>;
|
|
32
35
|
export declare const identityRuntimeAdapter: RuntimeAdapter<any, any>;
|
|
33
36
|
/**
|
|
@@ -37,3 +37,9 @@ export type IsNeverType<T, IfNever, IfNotNever> = [T] extends [never] ? IfNever
|
|
|
37
37
|
export type Flatten<T> = T extends Record<any, any> ? {
|
|
38
38
|
[P in keyof T]: T[P];
|
|
39
39
|
} : T;
|
|
40
|
+
/**
|
|
41
|
+
* @ignore
|
|
42
|
+
*/
|
|
43
|
+
export type SimplifyObject<T> = {
|
|
44
|
+
[P in keyof T]: T[P];
|
|
45
|
+
} & {};
|
|
@@ -21,6 +21,7 @@ export declare class ArraySet<V> extends arraySetBase implements Set<V> {
|
|
|
21
21
|
entries(): ReturnType<Set<V>["entries"]>;
|
|
22
22
|
[Symbol.iterator](): ReturnType<Set<V>[typeof Symbol.iterator]>;
|
|
23
23
|
readonly [Symbol.toStringTag] = "ArraySet";
|
|
24
|
+
private toSetLike;
|
|
24
25
|
union<U>(other: ReadonlySetLike<U>): Set<V | U>;
|
|
25
26
|
intersection<U>(other: ReadonlySetLike<U>): Set<V & U>;
|
|
26
27
|
difference<U>(other: ReadonlySetLike<U>): Set<V>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mobx-keystone",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "A MobX powered state management solution based on data trees with first class support for TypeScript, snapshots, patches and much more",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mobx",
|
|
@@ -61,23 +61,23 @@
|
|
|
61
61
|
"test:perf": "pnpm run build && pnpm run test:perf:run",
|
|
62
62
|
"test:perf:run": "cd perf_bench && NODE_ENV=production TS_NODE_COMPILER=@typescript/typescript6 /usr/bin/time node --expose-gc --require ts-node/register ./report.ts",
|
|
63
63
|
"memtest": "cd perf_bench && NODE_ENV=production TS_NODE_COMPILER=@typescript/typescript6 node --expose-gc --require ts-node/register ./memtest.ts",
|
|
64
|
-
"build-docs": "shx rm -rf api
|
|
64
|
+
"build-docs": "shx rm -rf ../../apps/site/generated-api && node --import ./scripts/typedoc-typescript6-register.mjs ./node_modules/typedoc/dist/cli.js --options ./typedocconfig.js src/index.ts"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
67
|
"mobx": "^7.0.0 || ^6.0.0 || ^5.0.0 || ^4.0.0"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@babel/core": "^8.0.
|
|
70
|
+
"@babel/core": "^8.0.6",
|
|
71
71
|
"@babel/plugin-proposal-decorators": "^8.0.2",
|
|
72
72
|
"@babel/plugin-transform-class-properties": "^8.0.1",
|
|
73
|
-
"@babel/plugin-transform-class-static-block": "^8.0.
|
|
74
|
-
"@babel/plugin-transform-typescript": "^8.0.
|
|
75
|
-
"@babel/preset-env": "^8.0.
|
|
73
|
+
"@babel/plugin-transform-class-static-block": "^8.0.5",
|
|
74
|
+
"@babel/plugin-transform-typescript": "^8.0.6",
|
|
75
|
+
"@babel/preset-env": "^8.0.6",
|
|
76
76
|
"@swc/core": "^1.16.2",
|
|
77
77
|
"@types/babel__core": "^7.20.5",
|
|
78
|
-
"@types/node": "^26.
|
|
78
|
+
"@types/node": "^26.6.2",
|
|
79
79
|
"@typescript/typescript6": "^6.0.2",
|
|
80
|
-
"@vitest/coverage-v8": "^5.0.
|
|
80
|
+
"@vitest/coverage-v8": "^5.0.1",
|
|
81
81
|
"expect-type": "^1.4.0",
|
|
82
82
|
"mobx-v4": "npm:mobx@^4.15.7",
|
|
83
83
|
"mobx-v5": "npm:mobx@^5.15.7",
|
|
@@ -86,10 +86,12 @@
|
|
|
86
86
|
"shx": "^0.4.0",
|
|
87
87
|
"ts-node": "^10.9.2",
|
|
88
88
|
"typedoc": "^0.28.20",
|
|
89
|
+
"typedoc-docusaurus-theme": "^1.4.3",
|
|
90
|
+
"typedoc-plugin-markdown": "^4.13.1",
|
|
89
91
|
"typescript": "^7.0.2",
|
|
90
|
-
"vite": "^8.
|
|
91
|
-
"vite-plugin-dts": "^5.1.
|
|
92
|
-
"vitest": "^5.0.
|
|
92
|
+
"vite": "^8.3.1",
|
|
93
|
+
"vite-plugin-dts": "^5.1.1",
|
|
94
|
+
"vitest": "^5.0.1"
|
|
93
95
|
},
|
|
94
96
|
"dependencies": {
|
|
95
97
|
"fast-deep-equal": "^3.1.3",
|