@aiao/rxdb-adapter-sqlite 0.0.5 → 0.0.6

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 (108) hide show
  1. package/dist/RxDBAdapterSqlite.d.ts +35 -20
  2. package/dist/RxDBAdapterSqlite.d.ts.map +1 -1
  3. package/dist/SqliteClient.d.ts +9 -10
  4. package/dist/SqliteClient.d.ts.map +1 -1
  5. package/dist/entity/delete_sql.d.ts +10 -0
  6. package/dist/entity/delete_sql.d.ts.map +1 -0
  7. package/dist/{generate_entity_deletes_sql.d.ts → entity/deletes_sql.d.ts} +2 -2
  8. package/dist/entity/deletes_sql.d.ts.map +1 -0
  9. package/dist/entity/insert_sql.d.ts +8 -0
  10. package/dist/entity/insert_sql.d.ts.map +1 -0
  11. package/dist/{generate_entity_inserts_sql.d.ts → entity/inserts_sql.d.ts} +2 -2
  12. package/dist/entity/inserts_sql.d.ts.map +1 -0
  13. package/dist/entity/remove_many_sql.d.ts +8 -0
  14. package/dist/entity/remove_many_sql.d.ts.map +1 -0
  15. package/dist/{rxdb_adapter_save_many.d.ts → entity/save_many_sql.d.ts} +3 -3
  16. package/dist/entity/save_many_sql.d.ts.map +1 -0
  17. package/dist/entity/update_sql.d.ts +8 -0
  18. package/dist/entity/update_sql.d.ts.map +1 -0
  19. package/dist/{execute_statement_helper.d.ts → execute_helper.d.ts} +1 -1
  20. package/dist/execute_helper.d.ts.map +1 -0
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1018 -1347
  24. package/dist/query/count_sql.d.ts +9 -0
  25. package/dist/query/count_sql.d.ts.map +1 -0
  26. package/dist/query/find_by_row_ids_sql.d.ts +9 -0
  27. package/dist/query/find_by_row_ids_sql.d.ts.map +1 -0
  28. package/dist/query/find_sql.d.ts +9 -0
  29. package/dist/query/find_sql.d.ts.map +1 -0
  30. package/dist/query/join_sql.d.ts +34 -0
  31. package/dist/query/join_sql.d.ts.map +1 -0
  32. package/dist/query/query_sql.d.ts +47 -0
  33. package/dist/query/query_sql.d.ts.map +1 -0
  34. package/dist/query/query_sql.utils.d.ts +50 -0
  35. package/dist/query/query_sql.utils.d.ts.map +1 -0
  36. package/dist/query/query_tree_sql.d.ts +35 -0
  37. package/dist/query/query_tree_sql.d.ts.map +1 -0
  38. package/dist/repository/SqliteRepository.d.ts +13 -0
  39. package/dist/repository/SqliteRepository.d.ts.map +1 -0
  40. package/dist/repository/SqliteRepositoryBase.d.ts +19 -0
  41. package/dist/repository/SqliteRepositoryBase.d.ts.map +1 -0
  42. package/dist/repository/SqliteTreeRepository.d.ts +12 -0
  43. package/dist/repository/SqliteTreeRepository.d.ts.map +1 -0
  44. package/dist/rxdb_adapter_switch_branch.d.ts.map +1 -1
  45. package/dist/rxdb_adapter_switch_transaction_id.d.ts +5 -0
  46. package/dist/rxdb_adapter_switch_transaction_id.d.ts.map +1 -0
  47. package/dist/rxdb_create_sqlite_client.d.ts +5 -0
  48. package/dist/rxdb_create_sqlite_client.d.ts.map +1 -0
  49. package/dist/sqlite-load.utils.d.ts.map +1 -1
  50. package/dist/sqlite.interface.d.ts +18 -1
  51. package/dist/sqlite.interface.d.ts.map +1 -1
  52. package/dist/sqlite.utils.d.ts +15 -14
  53. package/dist/sqlite.utils.d.ts.map +1 -1
  54. package/dist/table/create_sql.d.ts +8 -0
  55. package/dist/table/create_sql.d.ts.map +1 -0
  56. package/dist/table/create_tables_sql.d.ts +5 -0
  57. package/dist/table/create_tables_sql.d.ts.map +1 -0
  58. package/dist/table/trigger_sql.d.ts +25 -0
  59. package/dist/table/trigger_sql.d.ts.map +1 -0
  60. package/package.json +4 -4
  61. package/dist/SqliteRepository.d.ts +0 -27
  62. package/dist/SqliteRepository.d.ts.map +0 -1
  63. package/dist/SqliteRepository.interface.d.ts +0 -94
  64. package/dist/SqliteRepository.interface.d.ts.map +0 -1
  65. package/dist/SqliteRepositoryBase.d.ts +0 -52
  66. package/dist/SqliteRepositoryBase.d.ts.map +0 -1
  67. package/dist/SqliteTreeRepository.d.ts +0 -21
  68. package/dist/SqliteTreeRepository.d.ts.map +0 -1
  69. package/dist/SqliteTreeRepository.interface.d.ts +0 -36
  70. package/dist/SqliteTreeRepository.interface.d.ts.map +0 -1
  71. package/dist/execute_statement_helper.d.ts.map +0 -1
  72. package/dist/generate_entity_delete_sql.d.ts +0 -10
  73. package/dist/generate_entity_delete_sql.d.ts.map +0 -1
  74. package/dist/generate_entity_deletes_sql.d.ts.map +0 -1
  75. package/dist/generate_entity_find_tree_sql.d.ts +0 -58
  76. package/dist/generate_entity_find_tree_sql.d.ts.map +0 -1
  77. package/dist/generate_entity_insert_sql.d.ts +0 -10
  78. package/dist/generate_entity_insert_sql.d.ts.map +0 -1
  79. package/dist/generate_entity_inserts_sql.d.ts.map +0 -1
  80. package/dist/generate_entity_update_sql.d.ts +0 -10
  81. package/dist/generate_entity_update_sql.d.ts.map +0 -1
  82. package/dist/generate_query_find_sql.d.ts +0 -32
  83. package/dist/generate_query_find_sql.d.ts.map +0 -1
  84. package/dist/generate_table_create_sql.d.ts +0 -9
  85. package/dist/generate_table_create_sql.d.ts.map +0 -1
  86. package/dist/generate_table_trigger_sql.d.ts +0 -9
  87. package/dist/generate_table_trigger_sql.d.ts.map +0 -1
  88. package/dist/merge_create_cache.d.ts +0 -6
  89. package/dist/merge_create_cache.d.ts.map +0 -1
  90. package/dist/merge_remove_cache.d.ts +0 -5
  91. package/dist/merge_remove_cache.d.ts.map +0 -1
  92. package/dist/merge_tree_create_cache.d.ts +0 -7
  93. package/dist/merge_tree_create_cache.d.ts.map +0 -1
  94. package/dist/merge_tree_remove_cache.d.ts +0 -7
  95. package/dist/merge_tree_remove_cache.d.ts.map +0 -1
  96. package/dist/merge_tree_update_cache.d.ts +0 -7
  97. package/dist/merge_tree_update_cache.d.ts.map +0 -1
  98. package/dist/merge_update_cache.d.ts +0 -5
  99. package/dist/merge_update_cache.d.ts.map +0 -1
  100. package/dist/need_refresh_helper.d.ts +0 -18
  101. package/dist/need_refresh_helper.d.ts.map +0 -1
  102. package/dist/need_tree_refresh_helper.d.ts +0 -19
  103. package/dist/need_tree_refresh_helper.d.ts.map +0 -1
  104. package/dist/rxdb_adapter_create_tables_sql.d.ts +0 -5
  105. package/dist/rxdb_adapter_create_tables_sql.d.ts.map +0 -1
  106. package/dist/rxdb_adapter_remove_many.d.ts +0 -8
  107. package/dist/rxdb_adapter_remove_many.d.ts.map +0 -1
  108. package/dist/rxdb_adapter_save_many.d.ts.map +0 -1
@@ -0,0 +1,9 @@
1
+ import { CountOptions, EntityMetadata } from '../../packages/rxdb/src/index.ts';
2
+ import { RxDBAdapterSqlite } from '../RxDBAdapterSqlite.js';
3
+ import { GenerateSqlResult } from './query_sql.js';
4
+ /**
5
+ * 生成 count 查询
6
+ */
7
+ declare const _default: (adapter: RxDBAdapterSqlite, metadata: EntityMetadata, options: CountOptions) => GenerateSqlResult;
8
+ export default _default;
9
+ //# sourceMappingURL=count_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count_sql.d.ts","sourceRoot":"","sources":["../../src/query/count_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAyC,MAAM,gBAAgB,CAAC;AAG1F;;GAEG;yBACa,SAAS,iBAAiB,EAAE,UAAU,cAAc,EAAE,SAAS,YAAY,KAAG,iBAAiB;AAA/G,wBAWE"}
@@ -0,0 +1,9 @@
1
+ import { EntityMetadata } from '../../packages/rxdb/src/index.ts';
2
+ import { RowId } from '../sqlite.interface.js';
3
+ import { GenerateSqlResult } from './query_sql.js';
4
+ /**
5
+ * 生成 findByRowIds 查询
6
+ */
7
+ declare const _default: (metadata: EntityMetadata, rowIds: RowId[]) => GenerateSqlResult;
8
+ export default _default;
9
+ //# sourceMappingURL=find_by_row_ids_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find_by_row_ids_sql.d.ts","sourceRoot":"","sources":["../../src/query/find_by_row_ids_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE;;GAEG;yBACa,UAAU,cAAc,EAAE,QAAQ,KAAK,EAAE,KAAG,iBAAiB;AAA7E,wBAME"}
@@ -0,0 +1,9 @@
1
+ import { EntityMetadata, FindOptions } from '../../packages/rxdb/src/index.ts';
2
+ import { RxDBAdapterSqlite } from '../RxDBAdapterSqlite.js';
3
+ import { GenerateSqlResult } from './query_sql.js';
4
+ /**
5
+ * 生成 find 查询
6
+ */
7
+ declare const _default: (adapter: RxDBAdapterSqlite, metadata: EntityMetadata, options: FindOptions) => GenerateSqlResult;
8
+ export default _default;
9
+ //# sourceMappingURL=find_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find_sql.d.ts","sourceRoot":"","sources":["../../src/query/find_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAuE,MAAM,gBAAgB,CAAC;AAExH;;GAEG;yBACa,SAAS,iBAAiB,EAAE,UAAU,cAAc,EAAE,SAAS,WAAW,KAAG,iBAAiB;AAA9G,wBASE"}
@@ -0,0 +1,34 @@
1
+ import { EntityMetadata } from '../../packages/rxdb/src/index.ts';
2
+ import { RxDBAdapterSqlite } from '../RxDBAdapterSqlite.js';
3
+ import { RelationPair } from './query_sql.utils.js';
4
+ interface JoinOptions {
5
+ joinTableName: string;
6
+ on: string;
7
+ }
8
+ export interface JoinContext {
9
+ joinMap: Map<EntityMetadata, JoinOptions[]>;
10
+ usedAliases: Set<string>;
11
+ fieldAliasMap: Map<string, string>;
12
+ relationAliasMap: Map<string, string>;
13
+ }
14
+ /**
15
+ * 获取或创建关系别名
16
+ */
17
+ export declare const get_or_create_relation_alias: (context: JoinContext, relationKey: string) => string;
18
+ /**
19
+ * 尝试解析关系路径
20
+ */
21
+ export declare const try_resolve_relation_path: (adapter: RxDBAdapterSqlite, entityMetadata: EntityMetadata, parts: string[], cut: number) => {
22
+ metaWalker?: EntityMetadata;
23
+ relPairs: RelationPair[];
24
+ };
25
+ /**
26
+ * 处理关系上的 keyValue 字段
27
+ */
28
+ export declare const try_process_relation_flatmap: (adapter: RxDBAdapterSqlite, context: JoinContext, entityMetadata: EntityMetadata, strValue: string, parts: string[]) => boolean;
29
+ /**
30
+ * 处理关系字段的 JOIN
31
+ */
32
+ export declare const process_relation_joins: (adapter: RxDBAdapterSqlite, context: JoinContext, relations: RelationPair[], joinTableName: string) => void;
33
+ export {};
34
+ //# sourceMappingURL=join_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join_sql.d.ts","sourceRoot":"","sources":["../../src/query/join_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAMf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAA0D,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE5G,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5C,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,GAAI,SAAS,WAAW,EAAE,aAAa,MAAM,KAAG,MAQxF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,SAAS,iBAAiB,EAC1B,gBAAgB,cAAc,EAC9B,OAAO,MAAM,EAAE,EACf,KAAK,MAAM,KACV;IAAE,UAAU,CAAC,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAezD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,iBAAiB,EAC1B,SAAS,WAAW,EACpB,gBAAgB,cAAc,EAC9B,UAAU,MAAM,EAChB,OAAO,MAAM,EAAE,KACd,OA0BF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,SAAS,iBAAiB,EAC1B,SAAS,WAAW,EACpB,WAAW,YAAY,EAAE,EACzB,eAAe,MAAM,KACpB,IA4BF,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { EntityMetadata, OrderBy, RuleGroup } from '../../packages/rxdb/src/index.ts';
2
+ import { RxDBAdapterSqlite } from '../RxDBAdapterSqlite.js';
3
+ import { SQLiteCompatibleType } from '../wa-sqlite.interface.js';
4
+ interface GenerateSqlOptions {
5
+ tableName: string;
6
+ where?: string;
7
+ join?: string;
8
+ orderBy?: string;
9
+ limit?: number;
10
+ offset?: number;
11
+ }
12
+ export interface GenerateSqlResult {
13
+ sql: string;
14
+ params?: SQLiteCompatibleType[];
15
+ }
16
+ /**
17
+ * 构建排序 SQL
18
+ * @param orderBy 排序条件
19
+ * @returns SQL 排序子句
20
+ */
21
+ export declare const build_order_by: (orderBy?: OrderBy[]) => string | undefined;
22
+ /**
23
+ * 生成 ruleGroup sql 查询条件
24
+ * @param ruleGroup
25
+ * @param fieldAliasMap
26
+ * @returns
27
+ */
28
+ export declare const buildRuleGroup: <RG extends RuleGroup<any, any, any>>(ruleGroup: RG, fieldAliasMap?: Map<string, string>, entityMetadata?: EntityMetadata) => string;
29
+ /**
30
+ * 生成 SQL 查询语句
31
+ * @param options SQL 生成选项
32
+ * @returns 完整的 SQL 语句
33
+ */
34
+ export declare const generate_sql: (options: GenerateSqlOptions) => string;
35
+ /**
36
+ * 计算查询需要的 JOIN 字符串
37
+ * @param adapter 适配器
38
+ * @param entityMetadata 要查询的 Entity 的 metadata
39
+ * @param ruleGroup 查询条件
40
+ * @returns JOIN SQL 和字段别名映射
41
+ */
42
+ export declare const build_rule_group_join: (adapter: RxDBAdapterSqlite, entityMetadata: EntityMetadata, ruleGroup: RuleGroup<any>) => {
43
+ joinSQL: string;
44
+ fieldAliasMap: Map<string, string>;
45
+ };
46
+ export {};
47
+ //# sourceMappingURL=query_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query_sql.d.ts","sourceRoot":"","sources":["../../src/query/query_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,OAAO,EAAgB,SAAS,EAAE,MAAM,YAAY,CAAC;AAE3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AASjE,UAAU,kBAAkB;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACjC;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,OAAO,EAAE,KAAG,MAAM,GAAG,SAG7D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChE,WAAW,EAAE,EACb,gBAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,EAC9C,iBAAiB,cAAc,KAC9B,MAaF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,kBAAkB,KAAG,MAW1D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,iBAAiB,EAC1B,gBAAgB,cAAc,EAC9B,WAAW,SAAS,CAAC,GAAG,CAAC;;;CA2B1B,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { EntityMetadata, EntityRelationMetadata } from '../../packages/rxdb/src/index.ts';
2
+ /**
3
+ * 主表别名
4
+ */
5
+ export declare const MAIN_TABLE_ALIAS: "_";
6
+ export interface RelationPair {
7
+ metadata: EntityMetadata;
8
+ relation: EntityRelationMetadata;
9
+ }
10
+ /**
11
+ * 获取字段的 SQL 表示
12
+ */
13
+ export declare const get_field_sql: (originalField: string, aliasField?: string) => string;
14
+ /**
15
+ * 获取规则值的 SQL 表示
16
+ * @param rule 规则对象
17
+ * @returns SQL 值字符串
18
+ */
19
+ export declare const get_rule_value: (rule: any) => string;
20
+ /**
21
+ * 获取SQL操作符
22
+ * @param operator
23
+ * @returns
24
+ */
25
+ export declare const get_sql_operator: (operator: string) => string;
26
+ /**
27
+ * 获取关系键
28
+ */
29
+ export declare const get_relation_key: (relations: RelationPair[], joinTableName: string, relation: EntityRelationMetadata) => string;
30
+ /**
31
+ * 处理 keyValue 字段的 contains/notContains 查询
32
+ */
33
+ export declare const handle_flatmap_contains: (entityMetadata: EntityMetadata, originalField: string, rule: any) => string | null;
34
+ /**
35
+ * 处理数组字段的 in/notIn 查询
36
+ */
37
+ export declare const handle_array_in: (entityMetadata: EntityMetadata, originalField: string, rule: any) => string | null;
38
+ /**
39
+ * 生成 rule sql 查询条件
40
+ * @param rule 规则对象
41
+ * @param fieldAliasMap 字段别名映射
42
+ * @param entityMetadata 实体元数据
43
+ * @returns SQL 条件字符串
44
+ */
45
+ export declare const build_rule: (rule: any, fieldAliasMap: Map<string, string>, entityMetadata?: EntityMetadata) => string;
46
+ /**
47
+ * 格式化表别名
48
+ */
49
+ export declare const format_table_alias: (alias: string) => string;
50
+ //# sourceMappingURL=query_sql.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query_sql.utils.d.ts","sourceRoot":"","sources":["../../src/query/query_sql.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAgB,MAAM,YAAY,CAAC;AAGlF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAG,GAAY,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAwBD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,eAAe,MAAM,EAAE,aAAa,MAAM,KAAG,MAK1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,KAAG,MA2B1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,MAA4C,CAAC;AAEjG;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,WAAW,YAAY,EAAE,EACzB,eAAe,MAAM,EACrB,UAAU,sBAAsB,KAC/B,MAAwF,CAAC;AAgC5F;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,gBAAgB,cAAc,EAC9B,eAAe,MAAM,EACrB,MAAM,GAAG,KACR,MAAM,GAAG,IAoBX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,gBAAgB,cAAc,EAAE,eAAe,MAAM,EAAE,MAAM,GAAG,KAAG,MAAM,GAAG,IAQ3G,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,GAAG,EAAE,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,cAAc,KAAG,MAiC3G,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MAA6D,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { EntityMetadata, FindTreeOptions } from '../../packages/rxdb/src/index.ts';
2
+ import { SetOptional } from 'type-fest';
3
+ import { GenerateSqlResult } from './query_sql.js';
4
+ interface TreeOptions extends SetOptional<FindTreeOptions, 'entityId'> {
5
+ /**
6
+ * 是否是查询数量
7
+ */
8
+ isCount?: boolean;
9
+ /**
10
+ * 查询子孙节点
11
+ */
12
+ isFindDescendants?: boolean;
13
+ }
14
+ /**
15
+ * 生成树查询
16
+ */
17
+ export declare const generate_tree_sql: (metadata: EntityMetadata, options: TreeOptions) => GenerateSqlResult;
18
+ /**
19
+ * 查询子孙节点
20
+ */
21
+ export declare const generate_entity_find_descendants_sql: (metadata: EntityMetadata, options: FindTreeOptions) => GenerateSqlResult;
22
+ /**
23
+ * 查询子孙节点数量
24
+ */
25
+ export declare const generate_entity_count_descendants_sql: (metadata: EntityMetadata, options: FindTreeOptions) => GenerateSqlResult;
26
+ /**
27
+ * 查询祖先节点
28
+ */
29
+ export declare const generate_entity_find_ancestors_sql: (metadata: EntityMetadata, options: FindTreeOptions) => GenerateSqlResult;
30
+ /**
31
+ * 查询祖先节点数量
32
+ */
33
+ export declare const generate_entity_count_ancestors_sql: (metadata: EntityMetadata, options: FindTreeOptions) => GenerateSqlResult;
34
+ export {};
35
+ //# sourceMappingURL=query_tree_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query_tree_sql.d.ts","sourceRoot":"","sources":["../../src/query/query_tree_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAkB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,UAAU,WAAY,SAAQ,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC;IACpE;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,cAAc,EAAE,SAAS,WAAW,KAAG,iBAmClF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAAI,UAAU,cAAc,EAAE,SAAS,eAAe,sBACjC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,qCAAqC,GAAI,UAAU,cAAc,EAAE,SAAS,eAAe,sBACnB,CAAC;AAEtF;;GAEG;AACH,eAAO,MAAM,kCAAkC,GAAI,UAAU,cAAc,EAAE,SAAS,eAAe,sBAC9B,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,mCAAmC,GAAI,UAAU,cAAc,EAAE,SAAS,eAAe,sBAChB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { CountOptions, EntityType, FindOptions, IRepository } from '../../packages/rxdb/src/index.ts';
2
+ import { SqliteRepositoryBase } from './SqliteRepositoryBase.js';
3
+ /**
4
+ * 操作 entity 仓库
5
+ */
6
+ export declare class SqliteRepository<T extends EntityType> extends SqliteRepositoryBase<T> implements IRepository<T> {
7
+ find(options: FindOptions): Promise<InstanceType<T>[]>;
8
+ count(options: CountOptions<T>): Promise<number>;
9
+ create(entity: InstanceType<T>): Promise<InstanceType<T>>;
10
+ update(entity: InstanceType<T>, patch: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
11
+ remove(entity: InstanceType<T>): Promise<InstanceType<T>>;
12
+ }
13
+ //# sourceMappingURL=SqliteRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteRepository.d.ts","sourceRoot":"","sources":["../../src/repository/SqliteRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAsC,MAAM,YAAY,CAAC;AAOpH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAOtD,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAMhD,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAOzD,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAO1F,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAwBhE"}
@@ -0,0 +1,19 @@
1
+ import { EntityMetadata, EntityType, RepositoryBase } from '../../packages/rxdb/src/index.ts';
2
+ import { RxDBAdapterSqlite } from '../RxDBAdapterSqlite.js';
3
+ import { RowId, SqliteSuccessResult } from '../sqlite.interface.js';
4
+ /**
5
+ * 操作 entity 仓库
6
+ */
7
+ export declare class SqliteRepositoryBase<T extends EntityType> extends RepositoryBase<T> {
8
+ protected adapter: RxDBAdapterSqlite;
9
+ readonly metadata: EntityMetadata;
10
+ constructor(adapter: RxDBAdapterSqlite, EntityType: T);
11
+ findByRowIds(rowIds: RowId[]): Promise<InstanceType<T>[]>;
12
+ /**
13
+ * 添加缓存
14
+ * @param sqliteSuccessResult
15
+ * @param forcedUpdate 强制刷新,在数据有的情况下也会更新数据,在修改数据的情况下需要
16
+ */
17
+ addQueryCache(sqliteSuccessResult: SqliteSuccessResult, forcedUpdate?: boolean): InstanceType<T>[];
18
+ }
19
+ //# sourceMappingURL=SqliteRepositoryBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteRepositoryBase.d.ts","sourceRoot":"","sources":["../../src/repository/SqliteRepositoryBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAsC,cAAc,EAAQ,MAAM,YAAY,CAAC;AAElH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGpE;;GAEG;AACH,qBAAa,oBAAoB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAI7E,SAAS,CAAC,OAAO,EAAE,iBAAiB;IAHtC,SAAgB,QAAQ,EAAG,cAAc,CAAC;gBAG9B,OAAO,EAAE,iBAAiB,EACpC,UAAU,EAAE,CAAC;IAMT,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAM/D;;;;OAIG;IACH,aAAa,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,UAAQ;CAiC7E"}
@@ -0,0 +1,12 @@
1
+ import { EntityType, FindTreeOptions, ITreeRepository } from '../../packages/rxdb/src/index.ts';
2
+ import { SqliteRepository } from './SqliteRepository.js';
3
+ /**
4
+ * tree entity 仓库
5
+ */
6
+ export declare class SqliteTreeRepository<T extends EntityType> extends SqliteRepository<T> implements ITreeRepository<T> {
7
+ findDescendants(options: FindTreeOptions<T>): Promise<InstanceType<T>[]>;
8
+ countDescendants(options: FindTreeOptions<T>): Promise<number>;
9
+ findAncestors(options: FindTreeOptions<T>): Promise<InstanceType<T>[]>;
10
+ countAncestors(options: FindTreeOptions<T>): Promise<number>;
11
+ }
12
+ //# sourceMappingURL=SqliteTreeRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteTreeRepository.d.ts","sourceRoot":"","sources":["../../src/repository/SqliteTreeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAO1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;GAEG;AACH,qBAAa,oBAAoB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IACzG,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAOxE,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9D,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAOtE,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAKnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"rxdb_adapter_switch_branch.d.ts","sourceRoot":"","sources":["../src/rxdb_adapter_switch_branch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;yBA0BrC,SAAS,iBAAiB,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;AAAlF,wBAwEE"}
1
+ {"version":3,"file":"rxdb_adapter_switch_branch.d.ts","sourceRoot":"","sources":["../src/rxdb_adapter_switch_branch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;yBA6BrC,SAAS,iBAAiB,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;AAAlF,wBA2EE"}
@@ -0,0 +1,5 @@
1
+ import { UUID } from '../packages/rxdb/src/index.ts';
2
+ import { RxDBAdapterSqlite } from './RxDBAdapterSqlite.js';
3
+ declare const _default: (adapter: RxDBAdapterSqlite, branchId: string, transactionId?: UUID) => string;
4
+ export default _default;
5
+ //# sourceMappingURL=rxdb_adapter_switch_transaction_id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxdb_adapter_switch_transaction_id.d.ts","sourceRoot":"","sources":["../src/rxdb_adapter_switch_transaction_id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,IAAI,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;yBAG3C,SAAS,iBAAiB,EAAE,UAAU,MAAM,EAAE,gBAAgB,IAAI;AAAlF,wBAcE"}
@@ -0,0 +1,5 @@
1
+ import { SqliteOptions } from './sqlite.interface.js';
2
+ import { SqliteClient } from './SqliteClient.js';
3
+ declare const _default: (dbName: string, options: SqliteOptions) => Promise<SqliteClient>;
4
+ export default _default;
5
+ //# sourceMappingURL=rxdb_create_sqlite_client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxdb_create_sqlite_client.d.ts","sourceRoot":"","sources":["../src/rxdb_create_sqlite_client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;yBAE3B,QAAQ,MAAM,EAAE,SAAS,aAAa;AAA5D,wBA2BE"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-load.utils.d.ts","sourceRoot":"","sources":["../src/sqlite-load.utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAKrD,UAAU,SAAS;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,GAAG,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAoFzC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,iBAAiB,cAQxD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,SAAS,iBAAiB,uBA2B1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,WAA6C,CAAC"}
1
+ {"version":3,"file":"sqlite-load.utils.d.ts","sourceRoot":"","sources":["../src/sqlite-load.utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAKrD,UAAU,SAAS;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,GAAG,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAoFzC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,iBAAiB,cASxD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,SAAS,iBAAiB,uBA2B1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,WAA6C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { IRxDBAdapterOptions } from '@aiao/rxdb';
1
+ import { IRxDBAdapterOptions } from '../packages/rxdb/src/index.ts';
2
2
  import { SQLiteCompatibleType } from './wa-sqlite.interface.js';
3
3
  export type SupportVFS = 'MemoryVFS' | 'MemoryAsyncVFS' | 'IDBBatchAtomicVFS' | 'OPFSAdaptiveVFS' | 'AccessHandlePoolVFS' | 'OPFSAnyContextVFS' | 'OPFSCoopSyncVFS' | 'OPFSPermutedVFS';
4
4
  export interface SqliteData {
@@ -78,5 +78,22 @@ export interface SqliteChangeEvent {
78
78
  recordAt: Date;
79
79
  }
80
80
  export declare const ADAPTER_NAME: "sqlite";
81
+ /**
82
+ * 类型
83
+ * https://www.sqlite.org/datatype3.html
84
+ */
85
+ export type SqliteDataType = 'NULL' | 'INTEGER' | 'REAL' | 'TEXT' | 'BLOB';
86
+ /**
87
+ * 数据变化
88
+ */
89
+ export interface IRxDBAdapterDataChange {
90
+ rowIds: RowId[];
91
+ recordAt: Date;
92
+ }
93
+ /**
94
+ * SQLite行ID类型
95
+ * 表示SQLite数据库中的rowid
96
+ */
97
+ export type RowId = bigint;
81
98
  export {};
82
99
  //# sourceMappingURL=sqlite.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.interface.d.ts","sourceRoot":"","sources":["../src/sqlite.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,MAAM,MAAM,UAAU,GAClB,WAAW,GACX,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,GACrB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,oBAAoB,EAAE,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAG/C,UAAU,iBAAkB,SAAQ,mBAAmB;IACrD;;OAEG;IACH,GAAG,EAAE,UAAU,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,oBAAoB,CAAC,EAAE,YAAY,CAAC;IAEpC;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAEtC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAE9C,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,iBAAiB,EACjB,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CACxF,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,aAAa,IAAI;IACjB,aAAa,KAAK;IAClB,aAAa,KAAK;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED,eAAO,MAAM,YAAY,EAAG,QAAiB,CAAC"}
1
+ {"version":3,"file":"sqlite.interface.d.ts","sourceRoot":"","sources":["../src/sqlite.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,MAAM,MAAM,UAAU,GAClB,WAAW,GACX,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,GACrB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,oBAAoB,EAAE,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAG/C,UAAU,iBAAkB,SAAQ,mBAAmB;IACrD;;OAEG;IACH,GAAG,EAAE,UAAU,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,oBAAoB,CAAC,EAAE,YAAY,CAAC;IAEpC;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAEtC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAE9C,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,iBAAiB,EACjB,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CACxF,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,aAAa,IAAI;IACjB,aAAa,KAAK;IAClB,aAAa,KAAK;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED,eAAO,MAAM,YAAY,EAAG,QAAiB,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC"}
@@ -1,5 +1,5 @@
1
- import { EntityMetadata, EntityPropertyMetadata, EntityRelationMetadata, RuleGroup, RxDBScalar } from '@aiao/rxdb';
2
- import { SqliteResult } from './sqlite.interface.js';
1
+ import { EntityMetadata, EntityPropertyMetadata, EntityRelationMetadata, EntityType, RxDBError, RxDBScalar } from '../packages/rxdb/src/index.ts';
2
+ import { SqliteDataType, SqliteResult } from './sqlite.interface.js';
3
3
  import { SQLiteCompatibleType } from './wa-sqlite.interface.js';
4
4
  /**
5
5
  * 检查 sqlite 表是否存在
@@ -17,11 +17,6 @@ export declare const isSqlResultEmpty: (result: SqliteResult) => boolean;
17
17
  * sqlite 行 id 列名
18
18
  */
19
19
  export declare const ROWID: "_rowid";
20
- /**
21
- * 类型
22
- * https://www.sqlite.org/datatype3.html
23
- */
24
- type SqliteDataType = 'NULL' | 'INTEGER' | 'REAL' | 'TEXT' | 'BLOB';
25
20
  /**
26
21
  * rxdb 的类型 转 sqlite 类型
27
22
  */
@@ -46,13 +41,20 @@ export declare const transformValueSqliteToJs: (value: RxDBScalar | any, propert
46
41
  * @param namespace 命名空间
47
42
  * @returns
48
43
  */
49
- export declare const getTableName: (name: string, namespace: string) => string;
44
+ export declare const get_table_name: (name: string, namespace: string) => string;
45
+ export declare const get_table_name_info: (tableName: string) => [string, string];
50
46
  /**
51
47
  * 通过 metadata 获取表名
52
48
  * @param metadata
53
49
  * @returns
54
50
  */
55
- export declare const getTableNameByMetadata: (metadata: EntityMetadata) => string;
51
+ export declare const get_table_name_by_metadata: (metadata: EntityMetadata) => string;
52
+ /**
53
+ * 通过 EntityType 获取表名
54
+ * @param metadata
55
+ * @returns
56
+ */
57
+ export declare const get_table_name_by_entity_type: (EntityType: EntityType) => string;
56
58
  /**
57
59
  * 获取表列索引名称
58
60
  * @param metadata
@@ -60,7 +62,7 @@ export declare const getTableNameByMetadata: (metadata: EntityMetadata) => strin
60
62
  * @returns
61
63
  */
62
64
  export declare const getTableColumnIndexName: (metadata: EntityMetadata, property: EntityPropertyMetadata | EntityRelationMetadata) => string;
63
- export declare class RxdbAdapterSqliteError extends Error {
65
+ export declare class RxdbAdapterSqliteError extends RxDBError {
64
66
  constructor(message: string);
65
67
  }
66
68
  /**
@@ -85,11 +87,10 @@ export declare const normalizeCreateEntity: (metadata: EntityMetadata, entity: a
85
87
  */
86
88
  export declare const normalizeEntity: (metadata: EntityMetadata, entity: any) => any;
87
89
  /**
88
- * 查询去除软删除数据
89
- * @param where
90
+ * 获取 sql 值
91
+ * @param value
90
92
  * @returns
91
93
  */
92
- export declare const withoutSoftDelete: <RG extends RuleGroup<any, any, any>>(where: RG) => RG;
93
94
  export declare const get_sql_value: (value: any) => any;
94
95
  /**
95
96
  * 展示 sql 合并后的结果
@@ -106,5 +107,5 @@ export declare const get_sql_with_params: (sql: string, params?: any[]) => strin
106
107
  * @returns
107
108
  */
108
109
  export declare const getEntityObjectFromResult: (metadata: EntityMetadata, columns: string[], row: SQLiteCompatibleType[]) => any;
109
- export {};
110
+ export declare const transformEntityValueSqliteToJs: (metadata: EntityMetadata, entity: Partial<any>) => Partial<any>;
110
111
  //# sourceMappingURL=sqlite.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.utils.d.ts","sourceRoot":"","sources":["../src/sqlite.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EAEtB,SAAS,EAET,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,WACgC,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,YAAY,YACiC,CAAC;AAEvF;;GAEG;AACH,eAAO,MAAM,KAAK,EAAG,QAAiB,CAAC;AAEvC;;;GAGG;AACH,KAAK,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,UAAU,sBAAsB,KAAG,cAc7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,UAAU,EAAE,UAAU,sBAAsB,kCAW3F,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,UAAU,GAAG,GAAG,EAAE,UAAU,sBAAsB,QAcjG,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,WAAW,MAAM,WAA2B,CAAC;AAExF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,UAAU,cAAc,WAAoD,CAAC;AAEpH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,UAAU,cAAc,EACxB,UAAU,sBAAsB,GAAG,sBAAsB,WACf,CAAC;AAE7C,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAK5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GAAI,UAAU,cAAc,EAAE,QAAQ,GAAG,QAY9E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,cAAc,EAAE,QAAQ,GAAG,QAC0B,CAAC;AAEtG;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,cAAc,EAAE,QAAQ,GAAG,QACS,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAkB,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAG,EAYhG,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,GAAG,QAQvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAkB,KAAK,MAAM,EAAE,SAAQ,GAAG,EAAO,WAMhF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,UAAU,cAAc,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,oBAAoB,EAAE,QAcjH,CAAC"}
1
+ {"version":3,"file":"sqlite.utils.d.ts","sourceRoot":"","sources":["../src/sqlite.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EAGV,SAAS,EACT,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,WACgC,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,YAAY,YACiC,CAAC;AAEvF;;GAEG;AACH,eAAO,MAAM,KAAK,EAAG,QAAiB,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,UAAU,sBAAsB,KAAG,cAiB7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,UAAU,EAAE,UAAU,sBAAsB,kCAgB3F,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,UAAU,GAAG,GAAG,EAAE,UAAU,sBAAsB,QAiBjG,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,WAAW,MAAM,WAA2B,CAAC;AAE1F,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAA6C,CAAC;AAErH;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GAAI,UAAU,cAAc,WAChB,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,YAAY,UAAU,WACT,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,UAAU,cAAc,EACxB,UAAU,sBAAsB,GAAG,sBAAsB,WACf,CAAC;AAE7C,qBAAa,sBAAuB,SAAQ,SAAS;gBACvC,OAAO,EAAE,MAAM;CAG5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GAAI,UAAU,cAAc,EAAE,QAAQ,GAAG,QAkB9E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,cAAc,EAAE,QAAQ,GAAG,QAC0B,CAAC;AAEtG;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,cAAc,EAAE,QAAQ,GAAG,QACS,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,GAAG,QAOvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAkB,KAAK,MAAM,EAAE,SAAQ,GAAG,EAAO,WACxB,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,UAAU,cAAc,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,oBAAoB,EAAE,QAcjH,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,UAAU,cAAc,EAAE,QAAQ,OAAO,CAAC,GAAG,CAAC,iBAS5F,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { EntityMetadata } from '../../packages/rxdb/src/index.ts';
2
+ /**
3
+ * 计算创建表的 sql
4
+ * @param metadata 实体元数据
5
+ */
6
+ declare const _default: (metadata: EntityMetadata) => string;
7
+ export default _default;
8
+ //# sourceMappingURL=create_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create_sql.d.ts","sourceRoot":"","sources":["../../src/table/create_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA8B,MAAM,YAAY,CAAC;AA8HxE;;;GAGG;yBACa,UAAU,cAAc;AAAxC,wBAKE"}
@@ -0,0 +1,5 @@
1
+ import { EntityType } from '../../packages/rxdb/src/index.ts';
2
+ import { RxDBAdapterSqlite } from '../RxDBAdapterSqlite.js';
3
+ declare const _default: <T extends EntityType>(adapter: RxDBAdapterSqlite, EntityTypes: T[], entities?: InstanceType<T>[]) => string;
4
+ export default _default;
5
+ //# sourceMappingURL=create_tables_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create_tables_sql.d.ts","sourceRoot":"","sources":["../../src/table/create_tables_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAqB,MAAM,YAAY,CAAC;AAE3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;yBAIjD,CAAC,SAAS,UAAU,EAAE,SAAS,iBAAiB,EAAE,aAAa,CAAC,EAAE,EAAE,WAAW,YAAY,CAAC,CAAC,CAAC,EAAE;AAAhH,wBA4BE"}
@@ -0,0 +1,25 @@
1
+ import { EntityMetadata } from '../../packages/rxdb/src/index.ts';
2
+ /**
3
+ * 触发器选项
4
+ */
5
+ interface TriggerOptions {
6
+ /**
7
+ * 分支 ID
8
+ */
9
+ branchId?: string;
10
+ /**
11
+ * 事务 ID
12
+ */
13
+ transactionId?: string;
14
+ /**
15
+ * 父级 ID
16
+ */
17
+ parentId?: number;
18
+ }
19
+ /**
20
+ * 生成表的触发器
21
+ * @param metadata 实体元数据
22
+ */
23
+ declare const _default: (entityMetadata: EntityMetadata, options?: TriggerOptions) => string;
24
+ export default _default;
25
+ //# sourceMappingURL=trigger_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger_sql.d.ts","sourceRoot":"","sources":["../../src/table/trigger_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiC,MAAM,YAAY,CAAC;AAI3E;;GAEG;AACH,UAAU,cAAc;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;yBACa,gBAAgB,cAAc,EAAE,UAAS,cAAmB;AAA5E,wBAgEE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiao/rxdb-adapter-sqlite",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -29,11 +29,11 @@
29
29
  "comlink": "^4.4.2",
30
30
  "wa-sqlite": "rhashimoto/wa-sqlite.git#v1.0.9",
31
31
  "object-hash": "^3.0.0",
32
- "@aiao/rxdb": "0.0.5",
33
- "@aiao/utils": "0.0.5"
32
+ "@aiao/rxdb": "0.0.6",
33
+ "@aiao/utils": "0.0.6"
34
34
  },
35
35
  "devDependencies": {
36
36
  "ms": "^2.1.3",
37
- "@aiao/rxdb-test": "0.0.5"
37
+ "@aiao/rxdb-test": "0.0.6"
38
38
  }
39
39
  }
@@ -1,27 +0,0 @@
1
- import { CountOptions, EntityStaticType, EntityType, FindAllOptions, FindOneOptions, FindOneOrFailOptions, FindOptions, IRepository, RowId } from '@aiao/rxdb';
2
- import { Observable } from 'rxjs';
3
- import { RxDBAdapterSqlite } from './RxDBAdapterSqlite.js';
4
- import { SqliteSuccessResult } from './sqlite.interface.js';
5
- import { ISqliteClient } from './SqliteClient.js';
6
- import { QueryTask } from './SqliteRepository.interface.js';
7
- import { SqliteRepositoryBase } from './SqliteRepositoryBase.js';
8
- /**
9
- * 操作 entity 仓库
10
- */
11
- export declare class SqliteRepository<T extends EntityType> extends SqliteRepositoryBase<T> implements IRepository<T> {
12
- #private;
13
- constructor(adapter: RxDBAdapterSqlite, client$: Observable<ISqliteClient>, EntityType: T);
14
- get(id: EntityStaticType<T, 'idType'>): Observable<InstanceType<T>>;
15
- findOne(options: FindOneOptions): Observable<InstanceType<T> | undefined>;
16
- findOneOrFail(options: FindOneOrFailOptions): Observable<InstanceType<T>>;
17
- find(options: FindOptions): Observable<InstanceType<T>[]>;
18
- findAll(options: FindAllOptions): Observable<InstanceType<T>[]>;
19
- findByRowIds(rowIds: RowId[], forcedUpdate?: boolean): Observable<InstanceType<T>[]>;
20
- count(options: CountOptions): Observable<number>;
21
- create(entity: InstanceType<T>): Promise<InstanceType<T>>;
22
- update(entity: InstanceType<T>, patch: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
23
- remove(entity: InstanceType<T>): Promise<InstanceType<T>>;
24
- protected merge_cache(type: string, task: QueryTask<T>, entities: InstanceType<T>[]): void;
25
- protected transform_query_result(task: QueryTask<T>, d: SqliteSuccessResult, forcedUpdate?: boolean): InstanceType<T>[];
26
- }
27
- //# sourceMappingURL=SqliteRepository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SqliteRepository.d.ts","sourceRoot":"","sources":["../src/SqliteRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,KAAK,EAGN,MAAM,YAAY,CAAC;AACpB,OAAO,EAAmB,UAAU,EAAwC,MAAM,MAAM,CAAC;AAczF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAgD,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;gBAG/F,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;IAoCzF,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAyBnE,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAUzE,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAezE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAOzD,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAO/D,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,YAAY,UAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAMlF,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;IAOhD,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAIzD,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAI1F,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IA+BzD,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE;IAgBnF,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,YAAY,UAAQ;CAyDlG"}