@aiao/rxdb 0.0.6 → 0.0.7

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.
Files changed (176) hide show
  1. package/dist/RxDB.d.ts +116 -18
  2. package/dist/RxDB.d.ts.map +1 -1
  3. package/dist/entity/@TreeEntity.d.ts.map +1 -1
  4. package/dist/entity/EntityBase.d.ts +58 -10
  5. package/dist/entity/EntityBase.d.ts.map +1 -1
  6. package/dist/entity/EntityManager.d.ts +16 -5
  7. package/dist/entity/EntityManager.d.ts.map +1 -1
  8. package/dist/entity/EntityStatus.d.ts +145 -87
  9. package/dist/entity/EntityStatus.d.ts.map +1 -1
  10. package/dist/entity/EntityStatus.interface.d.ts +59 -0
  11. package/dist/entity/EntityStatus.interface.d.ts.map +1 -0
  12. package/dist/entity/TreeEntityBase.d.ts +31 -4
  13. package/dist/entity/TreeEntityBase.d.ts.map +1 -1
  14. package/dist/entity/entity.interface.d.ts +16 -15
  15. package/dist/entity/entity.interface.d.ts.map +1 -1
  16. package/dist/entity/entity.utils.d.ts +21 -0
  17. package/dist/entity/entity.utils.d.ts.map +1 -1
  18. package/dist/entity/many_to_many_entity.d.ts.map +1 -1
  19. package/dist/entity/metadata-options.interface.d.ts +276 -39
  20. package/dist/entity/metadata-options.interface.d.ts.map +1 -1
  21. package/dist/entity/{transition-metadata.d.ts → metadata-transition.d.ts} +1 -1
  22. package/dist/entity/metadata-transition.d.ts.map +1 -0
  23. package/dist/entity/metadata.interface.d.ts +6 -0
  24. package/dist/entity/metadata.interface.d.ts.map +1 -1
  25. package/dist/entity/metadata_cascade_default.d.ts +54 -0
  26. package/dist/entity/metadata_cascade_default.d.ts.map +1 -0
  27. package/dist/entity/proxy.d.ts.map +1 -1
  28. package/dist/entity/relation_helper.d.ts.map +1 -1
  29. package/dist/entity/tree-entity.interface.d.ts +5 -0
  30. package/dist/entity/tree-entity.interface.d.ts.map +1 -0
  31. package/dist/gateway/RxDBTabsGateway.d.ts +52 -0
  32. package/dist/gateway/RxDBTabsGateway.d.ts.map +1 -0
  33. package/dist/gateway/gateway.interface.d.ts +43 -0
  34. package/dist/gateway/gateway.interface.d.ts.map +1 -0
  35. package/dist/index.d.ts +17 -12
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +5786 -1897
  38. package/dist/query/entity_type_dependencies.d.ts +3 -2
  39. package/dist/query/entity_type_dependencies.d.ts.map +1 -1
  40. package/dist/query/merge-update-basic.d.ts +30 -0
  41. package/dist/query/merge-update-basic.d.ts.map +1 -0
  42. package/dist/query/merge-update-tree.d.ts +86 -0
  43. package/dist/query/merge-update-tree.d.ts.map +1 -0
  44. package/dist/query/merge-update.utils.d.ts +52 -0
  45. package/dist/query/merge-update.utils.d.ts.map +1 -0
  46. package/dist/query/merge_create.d.ts +2 -2
  47. package/dist/query/merge_create.d.ts.map +1 -1
  48. package/dist/query/merge_remove.d.ts +2 -15
  49. package/dist/query/merge_remove.d.ts.map +1 -1
  50. package/dist/query/merge_update.d.ts +2 -2
  51. package/dist/query/merge_update.d.ts.map +1 -1
  52. package/dist/query/need_refresh_create.d.ts +4 -4
  53. package/dist/query/need_refresh_create.d.ts.map +1 -1
  54. package/dist/query/need_refresh_remove.d.ts +2 -2
  55. package/dist/query/need_refresh_remove.d.ts.map +1 -1
  56. package/dist/query/need_refresh_update.d.ts +4 -4
  57. package/dist/query/need_refresh_update.d.ts.map +1 -1
  58. package/dist/query/query-matching.utils.d.ts +18 -2
  59. package/dist/query/query-matching.utils.d.ts.map +1 -1
  60. package/dist/query/query-relation.utils.d.ts +44 -0
  61. package/dist/query/query-relation.utils.d.ts.map +1 -0
  62. package/dist/query/query-rules-builder.d.ts +68 -0
  63. package/dist/query/query-rules-builder.d.ts.map +1 -0
  64. package/dist/query/query-tree.utils.d.ts +54 -0
  65. package/dist/query/query-tree.utils.d.ts.map +1 -0
  66. package/dist/repository/QueryManager.d.ts +23 -1
  67. package/dist/repository/QueryManager.d.ts.map +1 -1
  68. package/dist/repository/QueryTask.d.ts +42 -5
  69. package/dist/repository/QueryTask.d.ts.map +1 -1
  70. package/dist/repository/Repository.d.ts +24 -35
  71. package/dist/repository/Repository.d.ts.map +1 -1
  72. package/dist/repository/RepositoryBase.d.ts +5 -3
  73. package/dist/repository/RepositoryBase.d.ts.map +1 -1
  74. package/dist/repository/TreeRepository.d.ts +28 -1
  75. package/dist/repository/TreeRepository.d.ts.map +1 -1
  76. package/dist/repository/fingerprint.utils.d.ts +28 -0
  77. package/dist/repository/fingerprint.utils.d.ts.map +1 -0
  78. package/dist/repository/query-options.interface.d.ts +50 -19
  79. package/dist/repository/query-options.interface.d.ts.map +1 -1
  80. package/dist/repository/query.interface.d.ts +70 -25
  81. package/dist/repository/query.interface.d.ts.map +1 -1
  82. package/dist/repository/relation-query.interface.d.ts +19 -0
  83. package/dist/repository/relation-query.interface.d.ts.map +1 -1
  84. package/dist/repository/repository.interface.d.ts +5 -8
  85. package/dist/repository/repository.interface.d.ts.map +1 -1
  86. package/dist/repository/tree-repository.interface.d.ts +29 -2
  87. package/dist/repository/tree-repository.interface.d.ts.map +1 -1
  88. package/dist/rxdb-adapter.d.ts +96 -14
  89. package/dist/rxdb-adapter.d.ts.map +1 -1
  90. package/dist/rxdb-events.d.ts +309 -172
  91. package/dist/rxdb-events.d.ts.map +1 -1
  92. package/dist/rxdb-plugin.d.ts +2 -2
  93. package/dist/rxdb-plugin.d.ts.map +1 -1
  94. package/dist/rxdb-utils.d.ts +15 -8
  95. package/dist/rxdb-utils.d.ts.map +1 -1
  96. package/dist/rxdb.interface.d.ts +4 -0
  97. package/dist/rxdb.interface.d.ts.map +1 -1
  98. package/dist/rxdb.private.d.ts +5 -0
  99. package/dist/rxdb.private.d.ts.map +1 -1
  100. package/dist/schema/SchemaManager.d.ts +1 -0
  101. package/dist/schema/SchemaManager.d.ts.map +1 -1
  102. package/dist/system/branch.d.ts +124 -7
  103. package/dist/system/branch.d.ts.map +1 -1
  104. package/dist/system/change.d.ts +605 -30
  105. package/dist/system/change.d.ts.map +1 -1
  106. package/dist/system/migration.d.ts +61 -11
  107. package/dist/system/migration.d.ts.map +1 -1
  108. package/dist/system/repository-sync.d.ts +95 -0
  109. package/dist/system/repository-sync.d.ts.map +1 -0
  110. package/dist/system/system.interface.d.ts +25 -0
  111. package/dist/system/system.interface.d.ts.map +1 -0
  112. package/dist/system/types.d.ts +233 -120
  113. package/dist/system/types.d.ts.map +1 -1
  114. package/dist/system/types.local.d.ts +156 -0
  115. package/dist/system/types.local.d.ts.map +1 -0
  116. package/dist/system/types.remote.d.ts +103 -0
  117. package/dist/system/types.remote.d.ts.map +1 -0
  118. package/dist/version/HistoryManager.d.ts +238 -0
  119. package/dist/version/HistoryManager.d.ts.map +1 -0
  120. package/dist/version/LWWConflictResolver.d.ts +41 -0
  121. package/dist/version/LWWConflictResolver.d.ts.map +1 -0
  122. package/dist/version/VersionManager.d.ts +407 -0
  123. package/dist/version/VersionManager.d.ts.map +1 -0
  124. package/dist/version/VersionManager.interface.d.ts +428 -0
  125. package/dist/version/VersionManager.interface.d.ts.map +1 -0
  126. package/dist/version/VersionManager.utils.d.ts +14 -0
  127. package/dist/version/VersionManager.utils.d.ts.map +1 -0
  128. package/dist/version/bulk-sync.d.ts +97 -0
  129. package/dist/version/bulk-sync.d.ts.map +1 -0
  130. package/dist/version/check-repository-updates.d.ts +53 -0
  131. package/dist/version/check-repository-updates.d.ts.map +1 -0
  132. package/dist/version/compact-changes.d.ts +45 -0
  133. package/dist/version/compact-changes.d.ts.map +1 -0
  134. package/dist/version/conflict.d.ts +75 -0
  135. package/dist/version/conflict.d.ts.map +1 -0
  136. package/dist/version/create_branch.d.ts +13 -0
  137. package/dist/version/create_branch.d.ts.map +1 -0
  138. package/dist/version/dependency-graph.d.ts +132 -0
  139. package/dist/version/dependency-graph.d.ts.map +1 -0
  140. package/dist/version/find_switch_branch_step.d.ts +53 -0
  141. package/dist/version/find_switch_branch_step.d.ts.map +1 -0
  142. package/dist/version/get-all-repository-sync-status.d.ts +58 -0
  143. package/dist/version/get-all-repository-sync-status.d.ts.map +1 -0
  144. package/dist/version/get-repository-sync-status.d.ts +74 -0
  145. package/dist/version/get-repository-sync-status.d.ts.map +1 -0
  146. package/dist/version/pull-repository.d.ts +99 -0
  147. package/dist/version/pull-repository.d.ts.map +1 -0
  148. package/dist/version/pull.d.ts +11 -0
  149. package/dist/version/pull.d.ts.map +1 -0
  150. package/dist/version/push-repository.d.ts +93 -0
  151. package/dist/version/push-repository.d.ts.map +1 -0
  152. package/dist/version/push.d.ts +11 -0
  153. package/dist/version/push.d.ts.map +1 -0
  154. package/dist/version/remove_branch.d.ts +8 -0
  155. package/dist/version/remove_branch.d.ts.map +1 -0
  156. package/dist/version/switch_branch_actions.d.ts +17 -0
  157. package/dist/version/switch_branch_actions.d.ts.map +1 -0
  158. package/dist/version/sync-repository.d.ts +57 -0
  159. package/dist/version/sync-repository.d.ts.map +1 -0
  160. package/dist/version/sync-type-utils.d.ts +145 -0
  161. package/dist/version/sync-type-utils.d.ts.map +1 -0
  162. package/dist/version/topological-sort.d.ts +70 -0
  163. package/dist/version/topological-sort.d.ts.map +1 -0
  164. package/dist/version/version.utils.d.ts +4 -0
  165. package/dist/version/version.utils.d.ts.map +1 -0
  166. package/package.json +4 -4
  167. package/README.md +0 -1
  168. package/dist/entity/@GraphEntity.d.ts +0 -8
  169. package/dist/entity/@GraphEntity.d.ts.map +0 -1
  170. package/dist/entity/GraphEntityBase.d.ts +0 -10
  171. package/dist/entity/GraphEntityBase.d.ts.map +0 -1
  172. package/dist/entity/graph_edge_entity.d.ts +0 -5
  173. package/dist/entity/graph_edge_entity.d.ts.map +0 -1
  174. package/dist/entity/transition-metadata.d.ts.map +0 -1
  175. package/dist/system/VersionManager.d.ts +0 -35
  176. package/dist/system/VersionManager.d.ts.map +0 -1
@@ -113,6 +113,135 @@ export declare enum RelationKind {
113
113
  MANY_TO_ONE = "m:1",
114
114
  MANY_TO_MANY = "m:n"
115
115
  }
116
+ /**
117
+ * 外键约束操作枚举
118
+ * 定义 SQLite 外键约束的级联行为
119
+ *
120
+ * SQLite 支持在外键定义时指定 ON DELETE 和 ON UPDATE 的行为
121
+ * 这些约束在数据库层面自动执行,无需应用层干预
122
+ *
123
+ * @see https://www.sqlite.org/foreignkeys.html
124
+ */
125
+ export declare enum OnDeleteAction {
126
+ /**
127
+ * 不执行任何操作(默认)
128
+ * 当父表记录被删除时,不对子表记录做任何处理
129
+ * 如果存在引用,删除操作会失败(违反外键约束)
130
+ * @default
131
+ */
132
+ NO_ACTION = "NO ACTION",
133
+ /**
134
+ * 限制删除
135
+ * 如果存在子表引用,则阻止删除父表记录
136
+ * 行为与 NO ACTION 类似,但检查时机更早
137
+ */
138
+ RESTRICT = "RESTRICT",
139
+ /**
140
+ * 级联删除
141
+ * 删除父表记录时,自动删除所有引用该记录的子表记录
142
+ * @example 删除用户时自动删除其所有订单
143
+ * **Warning:** 谨慎使用,可能导致大量数据被删除
144
+ */
145
+ CASCADE = "CASCADE",
146
+ /**
147
+ * 设置为 NULL
148
+ * 删除父表记录时,将子表中的外键字段设置为 NULL
149
+ * @example 删除分类时,将产品的 category_id 设为 NULL
150
+ * **Requires:** 外键字段必须允许 NULL 值
151
+ */
152
+ SET_NULL = "SET NULL",
153
+ /**
154
+ * 设置为默认值
155
+ * 删除父表记录时,将子表中的外键字段设置为其默认值
156
+ * @example 删除部门时,将员工的 department_id 设为默认部门
157
+ * **Requires:** 外键字段必须定义 DEFAULT 值
158
+ */
159
+ SET_DEFAULT = "SET DEFAULT"
160
+ }
161
+ /**
162
+ * 外键更新行为枚举
163
+ * 定义当父表主键被更新时的级联行为
164
+ *
165
+ * 在 SQLite 中,通常不建议更新主键值
166
+ * 大多数情况下使用 NO ACTION 或 RESTRICT
167
+ */
168
+ export declare enum OnUpdateAction {
169
+ /**
170
+ * 不执行任何操作(默认)
171
+ * 当父表主键被更新时,不对子表外键做任何处理
172
+ * 如果存在引用,更新操作会失败(违反外键约束)
173
+ * @default
174
+ */
175
+ NO_ACTION = "NO ACTION",
176
+ /**
177
+ * 限制更新
178
+ * 如果存在子表引用,则阻止更新父表主键
179
+ */
180
+ RESTRICT = "RESTRICT",
181
+ /**
182
+ * 级联更新
183
+ * 更新父表主键时,自动更新所有子表中的对应外键值
184
+ * @example 更新用户ID时,自动更新所有订单的 user_id
185
+ * **Warning:** 性能开销较大,不推荐频繁使用
186
+ */
187
+ CASCADE = "CASCADE",
188
+ /**
189
+ * 设置为 NULL
190
+ * 更新父表主键时,将子表中的外键字段设置为 NULL
191
+ * **Requires:** 外键字段必须允许 NULL 值
192
+ */
193
+ SET_NULL = "SET NULL",
194
+ /**
195
+ * 设置为默认值
196
+ * 更新父表主键时,将子表中的外键字段设置为其默认值
197
+ * **Requires:** 外键字段必须定义 DEFAULT 值
198
+ */
199
+ SET_DEFAULT = "SET DEFAULT"
200
+ }
201
+ /**
202
+ * 外键级联选项接口
203
+ * 定义关系的外键约束配置
204
+ *
205
+ * SQLite 外键约束是在数据库层面自动执行的
206
+ * 当父表记录发生变化时,数据库会根据配置自动处理子表记录
207
+ */
208
+ export interface ICascadeOptions {
209
+ /**
210
+ * 删除时的级联行为
211
+ * 定义删除父表记录时如何处理子表的外键
212
+ *
213
+ * @example
214
+ * ```typescript
215
+ * // 删除用户时级联删除订单
216
+ * onDelete: OnDeleteAction.CASCADE
217
+ *
218
+ * // 删除分类时将产品的分类ID设为NULL
219
+ * onDelete: OnDeleteAction.SET_NULL
220
+ *
221
+ * // 如果有订单则不允许删除用户
222
+ * onDelete: OnDeleteAction.RESTRICT
223
+ * ```
224
+ *
225
+ * @default 根据关系类型自动推断
226
+ */
227
+ onDelete?: OnDeleteAction | `${OnDeleteAction.CASCADE}` | `${OnDeleteAction.NO_ACTION}` | `${OnDeleteAction.RESTRICT}` | `${OnDeleteAction.SET_DEFAULT}` | `${OnDeleteAction.SET_NULL}`;
228
+ /**
229
+ * 更新时的级联行为
230
+ * 定义更新父表主键时如何处理子表的外键
231
+ *
232
+ * @example
233
+ * ```typescript
234
+ * // 更新用户ID时级联更新订单的user_id
235
+ * onUpdate: OnUpdateAction.CASCADE
236
+ *
237
+ * // 不允许更新主键(推荐)
238
+ * onUpdate: OnUpdateAction.RESTRICT
239
+ * ```
240
+ *
241
+ * @default OnUpdateAction.RESTRICT(推荐不更新主键)
242
+ */
243
+ onUpdate?: OnUpdateAction | `${OnUpdateAction.CASCADE}` | `${OnUpdateAction.NO_ACTION}` | `${OnUpdateAction.RESTRICT}` | `${OnUpdateAction.SET_DEFAULT}` | `${OnUpdateAction.SET_NULL}`;
244
+ }
116
245
  /**
117
246
  * 标量类型
118
247
  * 定义可以直接存储的基本数据类型
@@ -122,7 +251,7 @@ export type RxDBScalar = boolean | number | string | bigint | Date | Uint8Array;
122
251
  * 实体关系基础类型接口
123
252
  * 所有关系类型的基础接口
124
253
  */
125
- interface EntityRelationMetadataBase extends ISortable {
254
+ interface EntityRelationMetadataBase extends ISortable, ICascadeOptions {
126
255
  /**
127
256
  * 名字
128
257
  */
@@ -153,13 +282,49 @@ interface EntityRelationMetadataBase extends ISortable {
153
282
  /**
154
283
  * 一对一关系元数据接口
155
284
  * 定义两个实体之间的一对一关系
285
+ *
286
+ * ## 默认级联行为
287
+ * - onDelete: CASCADE - 删除父实体时级联删除子实体
288
+ * - onUpdate: RESTRICT - 不允许更新主键
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * @Relation({
293
+ * name: 'profile',
294
+ * kind: RelationKind.ONE_TO_ONE,
295
+ * mappedEntity: 'Profile',
296
+ * nullable: false
297
+ * // onDelete 默认为 CASCADE
298
+ * // onUpdate 默认为 RESTRICT
299
+ * })
300
+ * profile!: Profile;
301
+ * ```
156
302
  */
157
303
  interface EntityRelationOneToOneMetadataOptions extends EntityRelationMetadataBase, IEntityObject {
158
304
  kind: RelationKind.ONE_TO_ONE;
305
+ default?: UUID | number | string | (() => UUID | number | string);
306
+ readonly?: boolean;
159
307
  }
160
308
  /**
161
309
  * 一对多关系元数据接口
162
310
  * 定义一个实体与多个实体之间的关系
311
+ *
312
+ * ## 默认级联行为
313
+ * - onDelete: CASCADE - 删除父实体时级联删除所有子实体
314
+ * - onUpdate: RESTRICT - 不允许更新主键
315
+ *
316
+ * @example
317
+ * ```typescript
318
+ * @Relation({
319
+ * name: 'items',
320
+ * kind: RelationKind.ONE_TO_MANY,
321
+ * mappedEntity: 'OrderItem',
322
+ * mappedProperty: 'order'
323
+ * // onDelete 默认为 CASCADE(删除订单时删除所有订单项)
324
+ * // onUpdate 默认为 RESTRICT
325
+ * })
326
+ * items!: OrderItem[];
327
+ * ```
163
328
  */
164
329
  interface EntityRelationOneToManyMetadataOptions extends EntityRelationMetadataBase {
165
330
  kind: RelationKind.ONE_TO_MANY;
@@ -171,9 +336,44 @@ interface EntityRelationOneToManyMetadataOptions extends EntityRelationMetadataB
171
336
  /**
172
337
  * 多对一关系元数据接口
173
338
  * 定义多个实体与一个实体之间的关系
339
+ *
340
+ * ## 默认级联行为
341
+ * - nullable: false 时
342
+ * - onDelete: RESTRICT - 阻止删除父实体(保护数据完整性)
343
+ * - onUpdate: RESTRICT - 不允许更新主键
344
+ * - nullable: true 时
345
+ * - onDelete: SET_NULL - 删除父实体时将外键设为NULL
346
+ * - onUpdate: RESTRICT - 不允许更新主键
347
+ *
348
+ * @example
349
+ * ```typescript
350
+ * // nullable: false(默认)
351
+ * @Relation({
352
+ * name: 'order',
353
+ * kind: RelationKind.MANY_TO_ONE,
354
+ * mappedEntity: 'Order',
355
+ * nullable: false
356
+ * // onDelete 默认为 RESTRICT(订单有订单项时不允许删除)
357
+ * // onUpdate 默认为 RESTRICT
358
+ * })
359
+ * order!: Order;
360
+ *
361
+ * // nullable: true
362
+ * @Relation({
363
+ * name: 'category',
364
+ * kind: RelationKind.MANY_TO_ONE,
365
+ * mappedEntity: 'Category',
366
+ * nullable: true
367
+ * // onDelete 默认为 SET_NULL(删除分类时产品保留但分类ID设为NULL)
368
+ * // onUpdate 默认为 RESTRICT
369
+ * })
370
+ * category?: Category;
371
+ * ```
174
372
  */
175
373
  interface EntityRelationManyToOneMetadataOptions extends EntityRelationMetadataBase, IEntityObject {
176
374
  kind: RelationKind.MANY_TO_ONE;
375
+ default?: UUID | number | string | (() => UUID | number | string);
376
+ readonly?: boolean;
177
377
  }
178
378
  /**
179
379
  * 多对多关系元数据接口
@@ -182,6 +382,24 @@ interface EntityRelationManyToOneMetadataOptions extends EntityRelationMetadataB
182
382
  * 多对多关系允许一个实体的多个实例关联到另一个实体的多个实例。
183
383
  * 例如:学生和课程的关系,一个学生可以选多门课程,一门课程可以有多个学生。
184
384
  * 这种关系需要一个中间表来存储两个实体之间的关联关系。
385
+ *
386
+ * ## 默认级联行为
387
+ * - onDelete: RESTRICT - 阻止删除(需要手动处理中间表)
388
+ * - onUpdate: RESTRICT - 不允许更新主键
389
+ *
390
+ * @example
391
+ * ```typescript
392
+ * @Relation({
393
+ * name: 'courses',
394
+ * kind: RelationKind.MANY_TO_MANY,
395
+ * mappedEntity: 'Course',
396
+ * mappedProperty: 'students',
397
+ * junctionEntityType: StudentCourse
398
+ * // onDelete 默认为 RESTRICT(删除学生前需要先删除选课记录)
399
+ * // onUpdate 默认为 RESTRICT
400
+ * })
401
+ * courses!: Course[];
402
+ * ```
185
403
  */
186
404
  interface EntityRelationManyToManyMetadataOptions extends EntityRelationMetadataBase {
187
405
  kind: RelationKind.MANY_TO_MANY;
@@ -209,51 +427,51 @@ export type EntityRelationOneToManyMetadata = SetRequired<EntityRelationOneToMan
209
427
  export type EntityRelationManyToOneMetadata = SetRequired<EntityRelationManyToOneMetadataOptions, 'mappedNamespace'>;
210
428
  export type EntityRelationManyToManyMetadata = SetRequired<EntityRelationManyToManyMetadataOptions, 'mappedNamespace' | 'junctionEntityType'>;
211
429
  export type EntityRelationMetadata = EntityRelationOneToOneMetadata | EntityRelationOneToManyMetadata | EntityRelationManyToOneMetadata | EntityRelationManyToManyMetadata;
212
- interface UUIDProperty extends IEntityObject, ISortable {
430
+ export interface UUIDProperty extends IEntityObject, ISortable {
213
431
  primary?: boolean;
214
432
  type: PropertyType.uuid | `${PropertyType.uuid}`;
215
433
  default?: UUID | (() => UUID);
216
434
  }
217
- interface StringProperty extends IEntityObject, ISortable {
435
+ export interface StringProperty extends IEntityObject, ISortable {
218
436
  primary?: boolean;
219
437
  type: PropertyType.string | `${PropertyType.string}`;
220
438
  default?: string | (() => string);
221
439
  }
222
- interface NumberArrayProperty extends IEntityObject, ISortable {
440
+ export interface NumberArrayProperty extends IEntityObject, ISortable {
223
441
  type: PropertyType.numberArray | `${PropertyType.numberArray}`;
224
442
  default?: number[] | (() => number[]);
225
443
  }
226
- interface IntegerProperty extends IEntityObject, ISortable {
444
+ export interface IntegerProperty extends IEntityObject, ISortable {
227
445
  primary?: boolean;
228
446
  type: PropertyType.integer | `${PropertyType.integer}`;
229
447
  default?: number | (() => number);
230
448
  }
231
- interface DateProperty extends IEntityObject, ISortable {
449
+ export interface DateProperty extends IEntityObject, ISortable {
232
450
  type: PropertyType.date | `${PropertyType.date}`;
233
451
  default?: Date | (() => Date) | 'CURRENT_TIMESTAMP';
234
452
  }
235
- interface BooleanProperty extends IEntityObject, ISortable {
453
+ export interface BooleanProperty extends IEntityObject, ISortable {
236
454
  type: PropertyType.boolean | `${PropertyType.boolean}`;
237
455
  default?: boolean | (() => boolean);
238
456
  }
239
457
  /**
240
458
  * 字符串组
241
459
  */
242
- interface StringArrayProperty extends IEntityObject, ISortable {
460
+ export interface StringArrayProperty extends IEntityObject, ISortable {
243
461
  type: PropertyType.stringArray | `${PropertyType.stringArray}`;
244
462
  default?: string[] | (() => string[]);
245
463
  }
246
464
  /**
247
465
  * 数字组
248
466
  */
249
- interface NumberProperty extends IEntityObject, ISortable {
467
+ export interface NumberProperty extends IEntityObject, ISortable {
250
468
  type: PropertyType.number | `${PropertyType.number}`;
251
469
  default?: number | (() => number);
252
470
  }
253
471
  /**
254
472
  * keyValue
255
473
  */
256
- interface KeyValueProperty extends IEntityObject {
474
+ export interface KeyValueProperty extends IEntityObject {
257
475
  type: PropertyType.keyValue | `${PropertyType.keyValue}`;
258
476
  default?: KeyValue | (() => KeyValue);
259
477
  properties: KeyValuePropertyMetadataOptions[];
@@ -261,7 +479,7 @@ interface KeyValueProperty extends IEntityObject {
261
479
  /**
262
480
  * json
263
481
  */
264
- interface JSONProperty extends IEntityObject {
482
+ export interface JSONProperty extends IEntityObject {
265
483
  type: PropertyType.json | `${PropertyType.json}`;
266
484
  default?: Record<string, any> | (() => Record<string, any>);
267
485
  }
@@ -281,7 +499,7 @@ export interface EntityIndexMetadataOptions extends IEntityObject {
281
499
  }
282
500
  /**
283
501
  * 实体定义元数据选项接口
284
- * 用于配置 @Entity 装饰器的完整选项,定义实体的结构和行为
502
+ * 用于配置 `@Entity` 装饰器的完整选项,定义实体的结构和行为
285
503
  *
286
504
  * 这个接口是实体定义的核心,包含了实体的所有配置信息:
287
505
  * - 基本信息:名称、命名空间、显示名称
@@ -333,7 +551,7 @@ export interface EntityMetadataOptions {
333
551
  * 自定义 repository
334
552
  * @default "Repository"
335
553
  */
336
- repository?: 'Repository' | 'TreeRepository' | 'GraphRepository' | string;
554
+ repository?: 'Repository' | 'TreeRepository' | string;
337
555
  /**
338
556
  * 是否开启日志
339
557
  * @default true
@@ -353,6 +571,30 @@ export interface EntityMetadataOptions {
353
571
  * 自己定义的属性,不包括继承的
354
572
  */
355
573
  properties?: EntityPropertyMetadataOptions[];
574
+ /**
575
+ * 计算属性
576
+ * 动态计算的只读属性,不存储在数据库中
577
+ *
578
+ * ## 使用条件
579
+ * - 必须在 `features` 中启用对应功能(如 `tree:{ hasChildren: true }`)
580
+ * - 仅在实体上可读,不可修改
581
+ *
582
+ * ## 计算来源
583
+ * 1. **数据库查询**:例如树结构的 `hasChildren` 属性
584
+ * 2. **类方法**:通过 getter 方法计算,如 `fullName = firstName + lastName`
585
+ * 3. **复杂逻辑**:基于业务规则动态生成(待实现)
586
+ *
587
+ * @example
588
+ * ```typescript
589
+ * // 树结构中的计算属性
590
+ * computedProperties: [
591
+ * { name: 'hasChildren', type: PropertyType.boolean }
592
+ * ]
593
+ * ```
594
+ *
595
+ * **Note:** 当前仅在树结构(`tree` feature)中使用
596
+ */
597
+ computedProperties?: EntityPropertyMetadataOptions[];
356
598
  /**
357
599
  * 实体的关系配置
358
600
  * 自己定义的关系,不包括继承的
@@ -377,11 +619,10 @@ export interface EntityMetadataOptions {
377
619
  features?: EntityMetadataFeatures;
378
620
  }
379
621
  type TreeType = 'adjacency-list';
380
- type GraphType = 'undirected-graph' | 'directed-graph';
381
622
  /**
382
- * EntityMetadata 扩展特性
623
+ * 实体元数据树形结构特性接口
383
624
  */
384
- export interface EntityMetadataFeatures {
625
+ export interface EntityMetadataTreeFeatures {
385
626
  /**
386
627
  * 树形结构类型
387
628
  *
@@ -393,30 +634,26 @@ export interface EntityMetadataFeatures {
393
634
  * 参考资料:
394
635
  * - https://www.slideshare.net/slideshow/models-for-hierarchical-data/4179181
395
636
  * - https://schinckel.net/2014/09/13/long-live-adjacency-lists/
637
+ *
638
+ * @default 'adjacency-list'
396
639
  */
397
- treeType?: TreeType;
398
- /**
399
- * 图形结构类型
400
- * undirected-graph 无向图
401
- * directed-graph 有向图
402
- * @default 'undirected-graph'
403
- */
404
- graphType?: GraphType;
405
- /**
406
- * 是否启用图权重
407
- * @default false
408
- */
409
- graphWeight?: boolean;
640
+ type?: TreeType;
410
641
  /**
411
- * 是否启用图属性
642
+ * 是否有子节点
643
+ * 在树结构里使用,表示当前节点是否有子节点
412
644
  * @default false
413
645
  */
414
- graphProperties?: boolean;
646
+ hasChildren?: boolean;
647
+ }
648
+ /**
649
+ * EntityMetadata 扩展特性
650
+ */
651
+ export interface EntityMetadataFeatures {
652
+ [name: string]: any;
415
653
  /**
416
- * 图边的实体名称
417
- * 根据配置动态生成 edges 表
654
+ * 树形结构特性
418
655
  */
419
- graphEdgeEntityType?: EntityType;
656
+ tree?: EntityMetadataTreeFeatures;
420
657
  }
421
658
  /**
422
659
  * 同步适配器选项接口
@@ -429,10 +666,10 @@ export interface SyncAdapterOptions {
429
666
  * 同步类型枚举
430
667
  * 定义不同的数据同步策略,控制本地数据和远程数据之间的同步方式
431
668
  *
432
- * 支持三种同步策略:
433
- * - Full:全量同步,同步所有数据
434
- * - Filter:条件同步,根据过滤条件同步部分数据
435
- * - None:不同步,可以配置为只使用本地数据或只使用远程数据
669
+ * 支持三种同步策略:
670
+ * - Full: 全量同步,同步所有数据
671
+ * - Filter: 条件同步,根据过滤条件同步部分数据
672
+ * - none: 不同步,可以配置为只使用本地数据或只使用远程数据
436
673
  */
437
674
  export declare enum SyncType {
438
675
  /**
@@ -446,7 +683,7 @@ export declare enum SyncType {
446
683
  /**
447
684
  * 不同步
448
685
  */
449
- None = "None"
686
+ None = "none"
450
687
  }
451
688
  /**
452
689
  * 全量同步配置接口
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-options.interface.d.ts","sourceRoot":"","sources":["../../src/entity/metadata-options.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata-options.interface.d.ts","sourceRoot":"","sources":["../../src/entity/metadata-options.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAExE;;;GAGG;AACH,UAAU,aAAa;IACrB;;;OAGG;IACH,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAE3B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,UAAU,SAAS;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,oBAAY,YAAY;IAEtB;;OAEG;IACH,IAAI,SAAS;IAEb;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,IAAI,SAAS;IAIb;;OAEG;IACH,WAAW,gBAAgB;IAE3B;;OAEG;IACH,WAAW,gBAAgB;IAI3B;;;OAGG;IACH,QAAQ,aAAa;IAErB;;OAEG;IACH,IAAI,SAAS;CACd;AAED;;;;;;;;;GASG;AACH,oBAAY,YAAY;IACtB,UAAU,QAAQ;IAClB,WAAW,QAAQ;IACnB,WAAW,QAAQ;IACnB,YAAY,QAAQ;CACrB;AAED;;;;;;;;GAQG;AACH,oBAAY,cAAc;IACxB;;;;;OAKG;IACH,SAAS,cAAc;IAEvB;;;;OAIG;IACH,QAAQ,aAAa;IAErB;;;;;OAKG;IACH,OAAO,YAAY;IAEnB;;;;;OAKG;IACH,QAAQ,aAAa;IAErB;;;;;OAKG;IACH,WAAW,gBAAgB;CAC5B;AAED;;;;;;GAMG;AACH,oBAAY,cAAc;IACxB;;;;;OAKG;IACH,SAAS,cAAc;IAEvB;;;OAGG;IACH,QAAQ,aAAa;IAErB;;;;;OAKG;IACH,OAAO,YAAY;IAEnB;;;;OAIG;IACH,QAAQ,aAAa;IAErB;;;;OAIG;IACH,WAAW,gBAAgB;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,EACL,cAAc,GACd,GAAG,cAAc,CAAC,OAAO,EAAE,GAC3B,GAAG,cAAc,CAAC,SAAS,EAAE,GAC7B,GAAG,cAAc,CAAC,QAAQ,EAAE,GAC5B,GAAG,cAAc,CAAC,WAAW,EAAE,GAC/B,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;IAEjC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EACL,cAAc,GACd,GAAG,cAAc,CAAC,OAAO,EAAE,GAC3B,GAAG,cAAc,CAAC,SAAS,EAAE,GAC7B,GAAG,cAAc,CAAC,QAAQ,EAAE,GAC5B,GAAG,cAAc,CAAC,WAAW,EAAE,GAC/B,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,CAAC;AAEhF;;;GAGG;AACH,UAAU,0BAA2B,SAAQ,SAAS,EAAE,eAAe;IACrE;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAE3B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IAEnB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAEpC;;OAEG;IACH,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,UAAU,qCAAsC,SAAQ,0BAA0B,EAAE,aAAa;IAC/F,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC;IAC9B,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,UAAU,sCAAuC,SAAQ,0BAA0B;IACjF,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC;IAC/B;;OAEG;IACH,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,UAAU,sCAAuC,SAAQ,0BAA0B,EAAE,aAAa;IAChG,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC;IAC/B,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,UAAU,uCAAwC,SAAQ,0BAA0B;IAClF,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;IAEhC;;OAEG;IACH,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAErC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAAC;CACjC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,6BAA6B,GACrC,qCAAqC,GACrC,sCAAsC,GACtC,sCAAsC,GACtC,uCAAuC,CAAC;AAE5C,MAAM,MAAM,8BAA8B,GAAG,WAAW,CAAC,qCAAqC,EAAE,iBAAiB,CAAC,CAAC;AACnH,MAAM,MAAM,+BAA+B,GAAG,WAAW,CAAC,sCAAsC,EAAE,iBAAiB,CAAC,CAAC;AACrH,MAAM,MAAM,+BAA+B,GAAG,WAAW,CAAC,sCAAsC,EAAE,iBAAiB,CAAC,CAAC;AACrH,MAAM,MAAM,gCAAgC,GAAG,WAAW,CACxD,uCAAuC,EACvC,iBAAiB,GAAG,oBAAoB,CACzC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B,8BAA8B,GAC9B,+BAA+B,GAC/B,+BAA+B,GAC/B,gCAAgC,CAAC;AAIrC,MAAM,WAAW,YAAa,SAAQ,aAAa,EAAE,SAAS;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC,IAAI,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IACjD,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa,EAAE,SAAS;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa,EAAE,SAAS;IACnE,IAAI,EAAE,YAAY,CAAC,WAAW,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa,EAAE,SAAS;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC,OAAO,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa,EAAE,SAAS;IAC5D,IAAI,EAAE,YAAY,CAAC,IAAI,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IACjD,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,mBAAmB,CAAC;CACrD;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa,EAAE,SAAS;IAC/D,IAAI,EAAE,YAAY,CAAC,OAAO,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;IACvD,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,aAAa,EAAE,SAAS;IACnE,IAAI,EAAE,YAAY,CAAC,WAAW,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;CACvC;AACD;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa,EAAE,SAAS;IAC9D,IAAI,EAAE,YAAY,CAAC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CACnC;AAGD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,IAAI,EAAE,YAAY,CAAC,QAAQ,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACzD,OAAO,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC;IACtC,UAAU,EAAE,+BAA+B,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,IAAI,EAAE,YAAY,CAAC,IAAI,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CAC7D;AAED,MAAM,MAAM,+BAA+B,GACvC,cAAc,GACd,cAAc,GACd,eAAe,GACf,YAAY,GACZ,eAAe,CAAC;AAEpB;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GACrC,YAAY,GACZ,cAAc,GACd,cAAc,GACd,eAAe,GACf,YAAY,GACZ,eAAe,GACf,mBAAmB,GACnB,mBAAmB,GACnB,gBAAgB,GAChB,YAAY,CAAC;AAEjB,MAAM,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AACnE;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAC/D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9B;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,YAAY,GAAG,gBAAgB,GAAG,MAAM,CAAC;IAEtD;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAE7C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,kBAAkB,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAErD;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAE5C;;;OAGG;IACH,OAAO,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC;AAED,KAAK,QAAQ,GAAG,gBAAgB,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,0BAA0B,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,oBAAY,QAAQ;IAClB;;OAEG;IACH,IAAI,SAAS;IAEb;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,IAAI,SAAS;CACd;AAED;;;GAGG;AACH,UAAU,QAAQ;IAChB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;GAGG;AACH,UAAU,UAAU;IAClB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;IACtB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;GAGG;AACH,UAAU,MAAM;IACd,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;GAGG;AACH,UAAU,KAAK;IACb,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC"}
@@ -15,4 +15,4 @@ import { EntityMetadata } from './metadata.interface.js';
15
15
  * @param [options] - 可选的目标类,用于获取原型链上的元数据
16
16
  */
17
17
  export declare const transitionMetadata: (metadataOptions: EntityMetadataOptions, options?: EntityType | AbstractEntityType | EntityMetadataOptions | EntityMetadataOptions[]) => EntityMetadata;
18
- //# sourceMappingURL=transition-metadata.d.ts.map
18
+ //# sourceMappingURL=metadata-transition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-transition.d.ts","sourceRoot":"","sources":["../../src/entity/metadata-transition.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EACL,qBAAqB,EAItB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAuB,cAAc,EAAsB,MAAM,yBAAyB,CAAC;AAGlG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,GAC7B,iBAAiB,qBAAqB,EACtC,UAAU,UAAU,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,KAC1F,cAqIF,CAAC"}
@@ -7,6 +7,7 @@ export type EntityIndexMetadata = EntityIndexMetadataOptions;
7
7
  */
8
8
  export type EntityMetadataType = SetRequired<EntityMetadataOptions, 'namespace' | 'displayName' | 'repository' | 'extends'> & {
9
9
  properties: EntityPropertyMetadata[];
10
+ computedProperties: EntityPropertyMetadata[];
10
11
  relations: EntityRelationMetadata[];
11
12
  indexes: EntityIndexMetadata[];
12
13
  /**
@@ -14,6 +15,11 @@ export type EntityMetadataType = SetRequired<EntityMetadataOptions, 'namespace'
14
15
  * 键为属性名,值为属性元数据
15
16
  */
16
17
  propertyMap: Map<string, EntityPropertyMetadata>;
18
+ /**
19
+ * 实体所有计算属性的映射
20
+ * 键为属性名,值为属性元数据
21
+ */
22
+ computedPropertyMap: Map<string, EntityPropertyMetadata>;
17
23
  /**
18
24
  * 有默认值的属性列表
19
25
  * 包含所有设置了默认值的属性元数据
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.interface.d.ts","sourceRoot":"","sources":["../../src/entity/metadata.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAC1C,qBAAqB,EACrB,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CACvD,GAAG;IACF,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B;;;OAGG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEjD;;;OAGG;IACH,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;IAEjD;;;OAGG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEjD;;OAEG;IACH,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAE3D;;;OAGG;IACH,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAE9C;;;OAGG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B;;;OAGG;IACH,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAE3C;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"metadata.interface.d.ts","sourceRoot":"","sources":["../../src/entity/metadata.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAC1C,qBAAqB,EACrB,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CACvD,GAAG;IACF,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;IAC7C,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B;;;OAGG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEjD;;;OAGG;IACH,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEzD;;;OAGG;IACH,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;IAEjD;;;OAGG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEjD;;OAEG;IACH,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAE3D;;;OAGG;IACH,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAE9C;;;OAGG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B;;;OAGG;IACH,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAE3C;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { ICascadeOptions, RelationKind } from './metadata-options.interface.js';
2
+ /**
3
+ * 应用默认级联选项
4
+ * 如果用户没有显式指定级联选项,则使用默认值
5
+ *
6
+ * @param options - 用户配置的级联选项
7
+ * @param relationKind - 关系类型
8
+ * @param nullable - 外键是否可为空
9
+ */
10
+ declare const _default: (options: ICascadeOptions, relationKind: RelationKind, nullable?: boolean) => Required<ICascadeOptions>;
11
+ export default _default;
12
+ /**
13
+ * 获取关系类型的默认级联选项
14
+ * 根据关系类型自动推断合理的默认级联行为
15
+ *
16
+ * ## 默认规则
17
+ *
18
+ * ### 一对一(ONE_TO_ONE)
19
+ * - onDelete: CASCADE - 删除父实体时级联删除子实体(强关联)
20
+ * - onUpdate: RESTRICT - 不允许更新主键
21
+ * - 示例:用户-个人资料
22
+ *
23
+ * ### 一对多(ONE_TO_MANY)
24
+ * - onDelete: CASCADE - 删除父实体时级联删除所有子实体(父子关系)
25
+ * - onUpdate: RESTRICT - 不允许更新主键
26
+ * - 示例:订单-订单项、文章-评论
27
+ *
28
+ * ### 多对一(MANY_TO_ONE)
29
+ * - onDelete: RESTRICT - 阻止删除(保护父实体,避免孤儿数据)
30
+ * - onUpdate: RESTRICT - 不允许更新主键
31
+ * - 示例:订单项-订单、评论-文章
32
+ *
33
+ * ### 多对多(MANY_TO_MANY)
34
+ * - onDelete: RESTRICT - 阻止删除(需要手动处理中间表)
35
+ * - onUpdate: RESTRICT - 不允许更新主键
36
+ * - 示例:学生-课程
37
+ *
38
+ * @param relationKind - 关系类型
39
+ * @param nullable - 外键是否可为空(影响多对一的默认行为)
40
+ * @returns 默认的级联选项
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * // 一对多关系:删除订单时级联删除订单项
45
+ * const defaults = get_default_cascade_options(RelationKind.ONE_TO_MANY);
46
+ * // { onDelete: OnDeleteAction.CASCADE, onUpdate: OnUpdateAction.RESTRICT }
47
+ *
48
+ * // 多对一关系(可空):删除分类时将产品的分类 ID 设为 NULL
49
+ * const defaults = get_default_cascade_options(RelationKind.MANY_TO_ONE, true);
50
+ * // { onDelete: OnDeleteAction.SET_NULL, onUpdate: OnUpdateAction.RESTRICT }
51
+ * ```
52
+ */
53
+ export declare const get_default_cascade_options: (relationKind: RelationKind, nullable?: boolean) => Required<ICascadeOptions>;
54
+ //# sourceMappingURL=metadata_cascade_default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata_cascade_default.d.ts","sourceRoot":"","sources":["../../src/entity/metadata_cascade_default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkC,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEhH;;;;;;;GAOG;yBAED,SAAS,eAAe,EACxB,cAAc,YAAY,EAC1B,WAAU,OAAe,KACxB,QAAQ,CAAC,eAAe,CAAC;AAJ5B,wBAUE;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,2BAA2B,GACtC,cAAc,YAAY,EAC1B,WAAU,OAAe,KACxB,QAAQ,CAAC,eAAe,CAsD1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/entity/proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AA6BnD;;GAEG;yBACa,CAAC,SAAS,UAAU,EAAE,QAAQ,YAAY,CAAC,CAAC,CAAC,KAAG,CAAC;AAAjE,wBA+BE"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/entity/proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD;;GAEG;yBACa,CAAC,SAAS,UAAU,EAAE,QAAQ,YAAY,CAAC,CAAC,CAAC,KAAG,CAAC;AAAjE,wBAkCE"}
@@ -1 +1 @@
1
- {"version":3,"file":"relation_helper.d.ts","sourceRoot":"","sources":["../../src/entity/relation_helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAA8D,MAAM,uBAAuB,CAAC;AAE/G,OAAO,EAAE,sBAAsB,EAAgB,MAAM,iCAAiC,CAAC;AAEvF;;;;;;;;;GASG;yBACa,UAAU,sBAAsB,EAAE,YAAY,UAAU,EAAE,IAAI,aAAa;AAA3F,wBA4LE"}
1
+ {"version":3,"file":"relation_helper.d.ts","sourceRoot":"","sources":["../../src/entity/relation_helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAA8D,MAAM,uBAAuB,CAAC;AAE/G,OAAO,EAAE,sBAAsB,EAAgB,MAAM,iCAAiC,CAAC;AAEvF;;;;;;;;;GASG;yBACa,UAAU,sBAAsB,EAAE,YAAY,UAAU,EAAE,IAAI,aAAa;AAA3F,wBA2ME"}
@@ -0,0 +1,5 @@
1
+ import { IEntity, UUID } from './entity.interface.js';
2
+ export interface ITreeEntity extends IEntity {
3
+ parentId?: UUID | null;
4
+ }
5
+ //# sourceMappingURL=tree-entity.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-entity.interface.d.ts","sourceRoot":"","sources":["../../src/entity/tree-entity.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB"}
@@ -0,0 +1,52 @@
1
+ import { RxDBEvent } from '../rxdb-events.js';
2
+ /**
3
+ * 网关配置
4
+ */
5
+ export interface RxDBTabsGatewayOptions {
6
+ /** 数据库名称(作为频道名称前缀) */
7
+ dbName: string;
8
+ /** 客户端 ID */
9
+ clientId: string;
10
+ }
11
+ /**
12
+ * 事件派发回调
13
+ */
14
+ type EventDispatcher = (event: RxDBEvent) => void;
15
+ /**
16
+ * 事件监听器注册函数
17
+ */
18
+ type EventListenerRegistrar = (type: string, listener: (event: RxDBEvent) => void) => void;
19
+ /**
20
+ * RxDB 多 Tab 网关
21
+ *
22
+ * 统一管理多 tab 之间的事件广播和元数据同步:
23
+ * 1. 实体变更事件广播(CREATE/UPDATE/REMOVE)
24
+ * 2. 首次连接时间同步(Leader 响应 Hello)
25
+ *
26
+ * 通过单一 BroadcastChannel 处理所有消息,使用 discriminated union 区分消息类型
27
+ */
28
+ export declare class RxDBTabsGateway {
29
+ #private;
30
+ /**
31
+ * 获取首次连接时间
32
+ */
33
+ get firstConnectedAt(): Date | undefined;
34
+ /**
35
+ * 获取是否为 Leader
36
+ */
37
+ get isLeader(): boolean;
38
+ constructor(options: RxDBTabsGatewayOptions);
39
+ /**
40
+ * 初始化网关
41
+ *
42
+ * @param dispatchEvent - 事件派发函数(用于将接收到的事件分发给本地)
43
+ * @param addEventListener - 事件监听器注册函数(用于监听本地事件并广播)
44
+ */
45
+ init(dispatchEvent: EventDispatcher, addEventListener: EventListenerRegistrar): void;
46
+ /**
47
+ * 销毁网关,释放资源
48
+ */
49
+ destroy(): void;
50
+ }
51
+ export {};
52
+ //# sourceMappingURL=RxDBTabsGateway.d.ts.map