@roomkit/state 1.1.2 → 1.1.3
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/dist/State.d.ts +86 -0
- package/dist/State.d.ts.map +1 -0
- package/dist/State.js +279 -0
- package/dist/State.js.map +1 -0
- package/dist/collections/TrackedArray.d.ts +87 -0
- package/dist/collections/TrackedArray.d.ts.map +1 -0
- package/dist/collections/TrackedArray.js +203 -0
- package/dist/collections/TrackedArray.js.map +1 -0
- package/dist/collections/TrackedMap.d.ts +77 -0
- package/dist/collections/TrackedMap.d.ts.map +1 -0
- package/dist/collections/TrackedMap.js +183 -0
- package/dist/collections/TrackedMap.js.map +1 -0
- package/dist/collections/TrackedSet.d.ts +81 -0
- package/dist/collections/TrackedSet.d.ts.map +1 -0
- package/dist/collections/TrackedSet.js +175 -0
- package/dist/collections/TrackedSet.js.map +1 -0
- package/dist/collections/index.d.ts +9 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js +8 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/compression/CompressionStrategy.d.ts +81 -0
- package/dist/compression/CompressionStrategy.d.ts.map +1 -0
- package/dist/compression/CompressionStrategy.js +195 -0
- package/dist/compression/CompressionStrategy.js.map +1 -0
- package/dist/compression/index.d.ts +5 -0
- package/dist/compression/index.d.ts.map +1 -0
- package/dist/compression/index.js +5 -0
- package/dist/compression/index.js.map +1 -0
- package/dist/decorators/index.d.ts +61 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/dist/decorators/index.js +136 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/encoding/index.d.ts +68 -0
- package/dist/encoding/index.d.ts.map +1 -0
- package/dist/encoding/index.js +227 -0
- package/dist/encoding/index.js.map +1 -0
- package/dist/index.js +8 -24
- package/dist/index.js.map +1 -1
- package/dist/optimization/BatchQueue.d.ts +96 -0
- package/dist/optimization/BatchQueue.d.ts.map +1 -0
- package/dist/optimization/BatchQueue.js +231 -0
- package/dist/optimization/BatchQueue.js.map +1 -0
- package/dist/optimization/index.d.ts +5 -0
- package/dist/optimization/index.d.ts.map +1 -0
- package/dist/optimization/index.js +5 -0
- package/dist/optimization/index.js.map +1 -0
- package/dist/tracking/ChangeTracker.d.ts +75 -0
- package/dist/tracking/ChangeTracker.d.ts.map +1 -0
- package/dist/tracking/ChangeTracker.js +341 -0
- package/dist/tracking/ChangeTracker.js.map +1 -0
- package/dist/tracking/deep-tracking.d.ts +22 -0
- package/dist/tracking/deep-tracking.d.ts.map +1 -0
- package/dist/tracking/deep-tracking.js +173 -0
- package/dist/tracking/deep-tracking.js.map +1 -0
- package/dist/types.d.ts +140 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +21 -0
- package/dist/types.js.map +1 -0
- package/package.json +1 -1
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Synchronization Types
|
|
3
|
+
*/
|
|
4
|
+
import 'reflect-metadata';
|
|
5
|
+
/**
|
|
6
|
+
* 支持的原始类型
|
|
7
|
+
*/
|
|
8
|
+
export type PrimitiveType = 'string' | 'number' | 'boolean' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32';
|
|
9
|
+
/**
|
|
10
|
+
* 字段类型(原始类型或构造函数)
|
|
11
|
+
*/
|
|
12
|
+
export type FieldType = PrimitiveType | Function;
|
|
13
|
+
/**
|
|
14
|
+
* 字段元数据
|
|
15
|
+
*/
|
|
16
|
+
export interface FieldMetadata {
|
|
17
|
+
key: string;
|
|
18
|
+
type: FieldType;
|
|
19
|
+
isArray: boolean;
|
|
20
|
+
isMap: boolean;
|
|
21
|
+
isSet: boolean;
|
|
22
|
+
optional?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 类元数据
|
|
26
|
+
*/
|
|
27
|
+
export interface ClassMetadata {
|
|
28
|
+
fields: Map<string, FieldMetadata>;
|
|
29
|
+
className: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 变化操作类型
|
|
33
|
+
*/
|
|
34
|
+
export declare enum ChangeOp {
|
|
35
|
+
ADD = "add",
|
|
36
|
+
REPLACE = "replace",
|
|
37
|
+
REMOVE = "remove"
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* JSON Patch 格式的变化记录
|
|
41
|
+
*/
|
|
42
|
+
export interface Patch {
|
|
43
|
+
op: ChangeOp;
|
|
44
|
+
path: string;
|
|
45
|
+
value?: any;
|
|
46
|
+
oldValue?: any;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 编码选项
|
|
50
|
+
*/
|
|
51
|
+
export interface EncodeOptions {
|
|
52
|
+
/**
|
|
53
|
+
* 压缩选项
|
|
54
|
+
*/
|
|
55
|
+
compressionOptions?: {
|
|
56
|
+
/**
|
|
57
|
+
* 压缩阈值(字节),小于此值不压缩
|
|
58
|
+
*/
|
|
59
|
+
threshold?: number;
|
|
60
|
+
/**
|
|
61
|
+
* 最小压缩率,低于此值不使用压缩结果
|
|
62
|
+
*/
|
|
63
|
+
minCompressionRatio?: number;
|
|
64
|
+
/**
|
|
65
|
+
* 压缩级别 (1-9)
|
|
66
|
+
*/
|
|
67
|
+
level?: number;
|
|
68
|
+
/**
|
|
69
|
+
* 是否强制压缩
|
|
70
|
+
*/
|
|
71
|
+
force?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* 是否启用自适应压缩
|
|
74
|
+
*/
|
|
75
|
+
adaptive?: boolean;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* 是否包含类型信息
|
|
79
|
+
*/
|
|
80
|
+
includeTypes?: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 解码选项
|
|
84
|
+
*/
|
|
85
|
+
export interface DecodeOptions {
|
|
86
|
+
/**
|
|
87
|
+
* 是否自动解压
|
|
88
|
+
*/
|
|
89
|
+
decompress?: boolean;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 序列化后的状态数据
|
|
93
|
+
*/
|
|
94
|
+
export interface EncodedState {
|
|
95
|
+
/**
|
|
96
|
+
* 二进制数据
|
|
97
|
+
*/
|
|
98
|
+
data: Uint8Array;
|
|
99
|
+
/**
|
|
100
|
+
* 是否压缩
|
|
101
|
+
*/
|
|
102
|
+
compressed: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* 原始大小(压缩前)
|
|
105
|
+
*/
|
|
106
|
+
originalSize?: number;
|
|
107
|
+
/**
|
|
108
|
+
* 压缩后大小
|
|
109
|
+
*/
|
|
110
|
+
compressedSize?: number;
|
|
111
|
+
/**
|
|
112
|
+
* 压缩率
|
|
113
|
+
*/
|
|
114
|
+
compressionRatio?: number;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Metadata keys
|
|
118
|
+
*/
|
|
119
|
+
export declare const METADATA_KEYS: {
|
|
120
|
+
readonly FIELDS: symbol;
|
|
121
|
+
readonly CLASS_NAME: symbol;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* 变化追踪配置
|
|
125
|
+
*/
|
|
126
|
+
export interface TrackingOptions {
|
|
127
|
+
/**
|
|
128
|
+
* 批量刷新间隔(毫秒)
|
|
129
|
+
*/
|
|
130
|
+
patchRate?: number;
|
|
131
|
+
/**
|
|
132
|
+
* 是否深度追踪嵌套对象
|
|
133
|
+
*/
|
|
134
|
+
deep?: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* 最大变化队列大小
|
|
137
|
+
*/
|
|
138
|
+
maxQueueSize?: number;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,oBAAY,QAAQ;IAClB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,kBAAkB,CAAC,EAAE;QACnB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAE7B;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;QAEhB;;WAEG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Synchronization Types
|
|
3
|
+
*/
|
|
4
|
+
import 'reflect-metadata';
|
|
5
|
+
/**
|
|
6
|
+
* 变化操作类型
|
|
7
|
+
*/
|
|
8
|
+
export var ChangeOp;
|
|
9
|
+
(function (ChangeOp) {
|
|
10
|
+
ChangeOp["ADD"] = "add";
|
|
11
|
+
ChangeOp["REPLACE"] = "replace";
|
|
12
|
+
ChangeOp["REMOVE"] = "remove";
|
|
13
|
+
})(ChangeOp || (ChangeOp = {}));
|
|
14
|
+
/**
|
|
15
|
+
* Metadata keys
|
|
16
|
+
*/
|
|
17
|
+
export const METADATA_KEYS = {
|
|
18
|
+
FIELDS: Symbol('state:fields'),
|
|
19
|
+
CLASS_NAME: Symbol('state:className'),
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAyC1B;;GAEG;AACH,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;AACnB,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AA4FD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC,iBAAiB,CAAC;CAC7B,CAAC"}
|