@aiao/rxdb-adapter-sqlite 0.0.2 → 0.0.4

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 (85) hide show
  1. package/LICENSE +21 -0
  2. package/dist/RxDBAdapterSqlite.d.ts +101 -0
  3. package/dist/RxDBAdapterSqlite.d.ts.map +1 -0
  4. package/{SqliteClient.d.ts → dist/SqliteClient.d.ts} +10 -3
  5. package/dist/SqliteClient.d.ts.map +1 -0
  6. package/dist/SqliteRepository.d.ts +27 -0
  7. package/dist/SqliteRepository.d.ts.map +1 -0
  8. package/dist/SqliteRepository.interface.d.ts +94 -0
  9. package/dist/SqliteRepository.interface.d.ts.map +1 -0
  10. package/dist/SqliteRepositoryBase.d.ts +52 -0
  11. package/dist/SqliteRepositoryBase.d.ts.map +1 -0
  12. package/dist/SqliteTreeRepository.d.ts +21 -0
  13. package/dist/SqliteTreeRepository.d.ts.map +1 -0
  14. package/dist/SqliteTreeRepository.interface.d.ts +36 -0
  15. package/dist/SqliteTreeRepository.interface.d.ts.map +1 -0
  16. package/{execute_statement_helper.d.ts → dist/execute_statement_helper.d.ts} +3 -2
  17. package/dist/execute_statement_helper.d.ts.map +1 -0
  18. package/dist/generate_entity_delete_sql.d.ts +10 -0
  19. package/dist/generate_entity_delete_sql.d.ts.map +1 -0
  20. package/dist/generate_entity_find_tree_sql.d.ts +58 -0
  21. package/dist/generate_entity_find_tree_sql.d.ts.map +1 -0
  22. package/dist/generate_entity_insert_sql.d.ts +10 -0
  23. package/dist/generate_entity_insert_sql.d.ts.map +1 -0
  24. package/dist/generate_entity_inserts_sql.d.ts +7 -0
  25. package/dist/generate_entity_inserts_sql.d.ts.map +1 -0
  26. package/dist/generate_entity_soft_delete_sql.d.ts +10 -0
  27. package/dist/generate_entity_soft_delete_sql.d.ts.map +1 -0
  28. package/dist/generate_entity_update_sql.d.ts +10 -0
  29. package/dist/generate_entity_update_sql.d.ts.map +1 -0
  30. package/dist/generate_query_find_sql.d.ts +32 -0
  31. package/dist/generate_query_find_sql.d.ts.map +1 -0
  32. package/{generate_table_create_sql.d.ts → dist/generate_table_create_sql.d.ts} +2 -1
  33. package/dist/generate_table_create_sql.d.ts.map +1 -0
  34. package/dist/generate_table_trigger_sql.d.ts +9 -0
  35. package/dist/generate_table_trigger_sql.d.ts.map +1 -0
  36. package/dist/index.d.ts +6 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +1683 -0
  39. package/dist/merge_create_cache.d.ts +6 -0
  40. package/dist/merge_create_cache.d.ts.map +1 -0
  41. package/dist/merge_remove_cache.d.ts +5 -0
  42. package/dist/merge_remove_cache.d.ts.map +1 -0
  43. package/dist/merge_tree_create_cache.d.ts +7 -0
  44. package/dist/merge_tree_create_cache.d.ts.map +1 -0
  45. package/dist/merge_tree_remove_cache.d.ts +7 -0
  46. package/dist/merge_tree_remove_cache.d.ts.map +1 -0
  47. package/dist/merge_tree_update_cache.d.ts +7 -0
  48. package/dist/merge_tree_update_cache.d.ts.map +1 -0
  49. package/dist/merge_update_cache.d.ts +5 -0
  50. package/dist/merge_update_cache.d.ts.map +1 -0
  51. package/dist/need_refresh_helper.d.ts +18 -0
  52. package/dist/need_refresh_helper.d.ts.map +1 -0
  53. package/dist/need_tree_refresh_helper.d.ts +19 -0
  54. package/dist/need_tree_refresh_helper.d.ts.map +1 -0
  55. package/dist/rxdb_adapter_create_branch.d.ts +7 -0
  56. package/dist/rxdb_adapter_create_branch.d.ts.map +1 -0
  57. package/dist/rxdb_adapter_create_tables_sql.d.ts +5 -0
  58. package/dist/rxdb_adapter_create_tables_sql.d.ts.map +1 -0
  59. package/dist/rxdb_adapter_save_many.d.ts +8 -0
  60. package/dist/rxdb_adapter_save_many.d.ts.map +1 -0
  61. package/dist/rxdb_adapter_switch_branch.d.ts +4 -0
  62. package/dist/rxdb_adapter_switch_branch.d.ts.map +1 -0
  63. package/{sqlite-load.utils.d.ts → dist/sqlite-load.utils.d.ts} +3 -2
  64. package/dist/sqlite-load.utils.d.ts.map +1 -0
  65. package/{sqlite.interface.d.ts → dist/sqlite.interface.d.ts} +25 -10
  66. package/dist/sqlite.interface.d.ts.map +1 -0
  67. package/{sqlite.utils.d.ts → dist/sqlite.utils.d.ts} +8 -5
  68. package/dist/sqlite.utils.d.ts.map +1 -0
  69. package/{wa-sqlite.d.ts → dist/wa-sqlite.d.ts} +1 -7
  70. package/dist/wa-sqlite.d.ts.map +1 -0
  71. package/package.json +32 -13
  72. package/RxDBAdapterSqlite.d.ts +0 -66
  73. package/SqliteRepository.d.ts +0 -23
  74. package/SqliteRepositoryBase.d.ts +0 -85
  75. package/SqliteTreeRepository.d.ts +0 -17
  76. package/generate_entity_delete_sql.d.ts +0 -9
  77. package/generate_entity_find_tree_sql.d.ts +0 -41
  78. package/generate_entity_insert_sql.d.ts +0 -9
  79. package/generate_entity_soft_delete_sql.d.ts +0 -9
  80. package/generate_entity_update_sql.d.ts +0 -9
  81. package/generate_query_find_sql.d.ts +0 -30
  82. package/generate_table_trigger_sql.d.ts +0 -8
  83. package/index.d.ts +0 -5
  84. package/index.js +0 -1125
  85. package/types.d.ts +0 -7
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Aiao Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,101 @@
1
+ import { EntityType, IRepository, IRxDBAdapter, RestoreEntityOptions, RxDBBranchRepository, RxDBChangeRepository, RxDB, RxDBAdapterLocalBase, TransactionFun } from '@aiao/rxdb';
2
+ import { Observable } from 'rxjs';
3
+ import { ADAPTER_NAME, SqliteOptions, SqliteResult } from './sqlite.interface.js';
4
+ import { SQLiteCompatibleType } from './wa-sqlite.js';
5
+ /**
6
+ * SQLite Adapter
7
+ */
8
+ export declare class RxDBAdapterSqlite extends RxDBAdapterLocalBase implements IRxDBAdapter {
9
+ #private;
10
+ readonly options: SqliteOptions;
11
+ name: string;
12
+ /**
13
+ * 数据库版本
14
+ */
15
+ version$: Observable<string>;
16
+ constructor(rxdb: RxDB, options: SqliteOptions);
17
+ /**
18
+ * 连接 wab sqlite
19
+ */
20
+ connect(): Observable<IRxDBAdapter>;
21
+ /**
22
+ * 断开连接
23
+ */
24
+ disconnect(): Promise<void>;
25
+ /**
26
+ * 获取版本
27
+ */
28
+ version(): Promise<string>;
29
+ /**
30
+ * 获取实体仓库
31
+ * @param entity 实体类
32
+ */
33
+ getRepository<T extends EntityType, RT = IRepository<T>>(entity: T): RT;
34
+ /**
35
+ * 保存多个实体
36
+ * TODO: 优化事件
37
+ * @param entities
38
+ */
39
+ saveMany<T extends EntityType>(entities: InstanceType<T>[]): Promise<InstanceType<T>[]>;
40
+ /**
41
+ * 判断表是否存在
42
+ * @param EntityType
43
+ */
44
+ isTableExisted<T extends EntityType>(EntityType: T): Promise<boolean>;
45
+ /**
46
+ * 判断表是否存在
47
+ * @param EntityType
48
+ */
49
+ isTableExisted$<T extends EntityType>(EntityType: T): Observable<boolean>;
50
+ /**
51
+ * 创建表和初始化数据
52
+ * @param entities 表结构
53
+ * @param data 视图数据
54
+ * @returns
55
+ */
56
+ createTables<T extends EntityType>(EntityTypes: T[], entities?: InstanceType<T>[]): Promise<boolean>;
57
+ /**
58
+ * 创建分支
59
+ * @param branchId 分支 ID
60
+ * @param fromChangeId
61
+ */
62
+ createBranch(branchId: string, fromChangeId?: number): Promise<void>;
63
+ /**
64
+ * 切换分支
65
+ * @param branchId
66
+ * @returns
67
+ */
68
+ switchBranch(branchId: string): Promise<void>;
69
+ /**
70
+ * 恢复某个实体
71
+ * @param entity
72
+ * @param options
73
+ */
74
+ restoreEntity<T extends EntityType>(entity: InstanceType<T>, options: RestoreEntityOptions): Promise<InstanceType<T>>;
75
+ /**
76
+ * 执行 sql
77
+ * @param sql
78
+ * @param bindings
79
+ */
80
+ execute(sql: string, bindings?: SQLiteCompatibleType[]): Observable<SqliteResult>;
81
+ /**
82
+ * 处理事务
83
+ * @param callback
84
+ */
85
+ transaction<T extends TransactionFun>(callback: T): ReturnType<T>;
86
+ transaction$<T extends TransactionFun>(transactionFun: T, transactionLog?: boolean): Observable<Awaited<ReturnType<T>>>;
87
+ /**
88
+ * 本地分支仓库
89
+ */
90
+ localRxDBBranch(): RxDBBranchRepository;
91
+ /**
92
+ * 本地变更仓库
93
+ */
94
+ localRxDBChange(): RxDBChangeRepository;
95
+ }
96
+ declare module '@aiao/rxdb' {
97
+ interface RxDBAdapters {
98
+ [ADAPTER_NAME]: RxDBAdapterSqlite;
99
+ }
100
+ }
101
+ //# sourceMappingURL=RxDBAdapterSqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RxDBAdapterSqlite.d.ts","sourceRoot":"","sources":["../src/RxDBAdapterSqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,YAAY,EAEZ,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,IAAI,EAGJ,oBAAoB,EAMpB,cAAc,EAGf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAQL,UAAU,EAOX,MAAM,MAAM,CAAC;AAMd,OAAO,EACL,YAAY,EAIZ,aAAa,EACb,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAoBtD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,oBAAqB,YAAW,YAAY;;IAiF/E,QAAQ,CAAC,OAAO,EAAE,aAAa;IAZjC,IAAI,EAAE,MAAM,CAAgB;IAE5B;;OAEG;IACH,QAAQ,qBAGN;gBAGA,IAAI,EAAE,IAAI,EACD,OAAO,EAAE,aAAa;IAkCjC;;OAEG;IACI,OAAO;IAId;;OAEG;IACU,UAAU;IAQvB;;OAEG;IACI,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC;;;OAGG;IACI,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE;IAoB9E;;;;OAIG;IACG,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAW7F;;;OAGG;IACI,cAAc,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5E;;;OAGG;IACI,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;IAMhF;;;;;OAKG;IACH,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpG;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;OAIG;IACH,aAAa,CAAC,CAAC,SAAS,UAAU,EAChC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAI3B;;;;OAIG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC;IAWxF;;;OAGG;IACI,WAAW,CAAC,CAAC,SAAS,cAAc,EAAE,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIjE,YAAY,CAAC,CAAC,SAAS,cAAc,EAC1C,cAAc,EAAE,CAAC,EACjB,cAAc,GAAE,OAAc,GAC7B,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IA2CrC;;OAEG;IACH,eAAe;IAIf;;OAEG;IACH,eAAe;CAgBhB;AAED,OAAO,QAAQ,YAAY,CAAC;IAC1B,UAAU,YAAY;QACpB,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;KACnC;CACF"}
@@ -1,5 +1,5 @@
1
- import { LoadModuleOptions, SqliteResult } from './sqlite.interface';
2
- import { SQLiteCompatibleType } from './wa-sqlite';
1
+ import { LoadModuleOptions, SqliteChangeEvent, SqliteResult } from './sqlite.interface.js';
2
+ import { SQLiteCompatibleType } from './wa-sqlite.js';
3
3
  export interface ISqliteClient {
4
4
  init(dbName: string, options: LoadModuleOptions): Promise<void>;
5
5
  execute(sql: string, bindings?: SQLiteCompatibleType[]): Promise<SqliteResult>;
@@ -11,9 +11,16 @@ export interface ISqliteClient {
11
11
  */
12
12
  export declare class SqliteClient implements ISqliteClient {
13
13
  #private;
14
- protected changeChanel?: BroadcastChannel | null;
14
+ set onChange(fun: (event: SqliteChangeEvent) => void);
15
15
  init(dbName: string, options: LoadModuleOptions): Promise<void>;
16
16
  version(): Promise<string>;
17
17
  disconnect(): Promise<void>;
18
+ /**
19
+ * 执行 sql
20
+ * @param sql
21
+ * @param bindings
22
+ * @returns
23
+ */
18
24
  execute(sql: string, bindings?: SQLiteCompatibleType[]): Promise<SqliteResult>;
19
25
  }
26
+ //# sourceMappingURL=SqliteClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAoB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EAAa,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5B;AAgCD;;GAEG;AACH,qBAAa,YAAa,YAAW,aAAa;;IAOhD,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,EAEnD;IAEK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB;IAiD/C,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAK1B,UAAU;IAIhB;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;CAuBrF"}
@@ -0,0 +1,27 @@
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
@@ -0,0 +1 @@
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,EAA6C,MAAM,MAAM,CAAC;AAe9F,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;IAwCzD,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"}
@@ -0,0 +1,94 @@
1
+ import { CountOptions, EntityStaticType, EntityType, FindAllOptions, FindOneOptions, FindOneOrFailOptions, FindOptions } from '@aiao/rxdb';
2
+ import { Observable } from 'rxjs';
3
+ import { SqliteSuccessResult } from './sqlite.interface.js';
4
+ export interface GetParams {
5
+ type: 'get';
6
+ options: FindOneOrFailOptions;
7
+ }
8
+ export interface FindOneParams {
9
+ type: 'findOne';
10
+ options: FindOneOptions;
11
+ }
12
+ export interface FindOneOrFailParams {
13
+ type: 'findOneOrFail';
14
+ options: FindOneOrFailOptions;
15
+ }
16
+ export interface FindParams {
17
+ type: 'find';
18
+ options: FindOptions;
19
+ }
20
+ export interface FindAllParams {
21
+ type: 'findAll';
22
+ options: FindAllOptions;
23
+ }
24
+ export interface CountParams {
25
+ type: 'count';
26
+ options: CountOptions;
27
+ }
28
+ export type CacheQueryParams = GetParams | FindOneParams | FindOneOrFailParams | FindParams | FindAllParams | CountParams;
29
+ export type CacheQueryTaskHelperResult<T extends EntityType> = CacheQueryParams & {
30
+ calculate: (result: SqliteSuccessResult) => Observable<any>;
31
+ refresh: () => void;
32
+ };
33
+ type RefreshMatchRuleName = 'match_where' | 'match_order_by' | 'result_contains' | 'not_match_where' | 'result_not_contains';
34
+ export type RefreshMatchRules = RefreshMatchRuleName[][];
35
+ /**
36
+ * 查询任务
37
+ */
38
+ export interface QueryTask<T extends EntityType> {
39
+ /**
40
+ * 查询语句
41
+ */
42
+ sql: string;
43
+ /**
44
+ * 查询参数
45
+ */
46
+ params: any[];
47
+ /**
48
+ * 观察者数量
49
+ */
50
+ observerCount: number;
51
+ /**
52
+ * 刷新次数
53
+ */
54
+ refreshCount: number;
55
+ /**
56
+ * 用于强制刷新查询语句
57
+ */
58
+ refresh$: Observable<number>;
59
+ /**
60
+ * 查询结果
61
+ */
62
+ result$: Observable<SqliteSuccessResult>;
63
+ /**
64
+ * 查询结果的实体 ids
65
+ */
66
+ resultEntityIds?: EntityStaticType<T, 'idType'>[];
67
+ /**
68
+ * 查询结果的实体
69
+ */
70
+ resultEntities: InstanceType<T>[];
71
+ /**
72
+ * 查询结果
73
+ */
74
+ result?: InstanceType<T>[] | number;
75
+ /**
76
+ * 查询被销毁
77
+ */
78
+ destroy$: Observable<void>;
79
+ /**
80
+ * 强制刷新
81
+ */
82
+ refresh: () => void;
83
+ updateResult: (result: InstanceType<T>[] | number) => void;
84
+ /**
85
+ * 更新数据
86
+ */
87
+ next: (value: SqliteSuccessResult) => void;
88
+ /**
89
+ * 抛出错误
90
+ */
91
+ error: (value: Error) => void;
92
+ }
93
+ export {};
94
+ //# sourceMappingURL=SqliteRepository.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteRepository.interface.d.ts","sourceRoot":"","sources":["../src/SqliteRepository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,aAAa,GACb,mBAAmB,GACnB,UAAU,GACV,aAAa,GACb,WAAW,CAAC;AAEhB,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,UAAU,IAAI,gBAAgB,GAAG;IAChF,SAAS,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,KAAK,oBAAoB,GACrB,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,EAAE,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,UAAU;IAC7C;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,MAAM,EAAE,GAAG,EAAE,CAAC;IAEd;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAE7B;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAEzC;;OAEG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;IAElD;;OAEG;IACH,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAElC;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC;IAEpC;;OAEG;IACH,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAE3C;;OAEG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B"}
@@ -0,0 +1,52 @@
1
+ import { EntityCreateEvent, EntityMetadata, EntityRemoveEvent, EntityType, EntityUpdateEvent, IRxDBAdapterDataChange, RepositoryBase, RowId } from '@aiao/rxdb';
2
+ import { Observable, Subject } from 'rxjs';
3
+ import { GenerateSqlResult } from './generate_query_find_sql.js';
4
+ import { RxDBAdapterSqlite } from './RxDBAdapterSqlite.js';
5
+ import { SqliteSuccessResult } from './sqlite.interface.js';
6
+ import { ISqliteClient } from './SqliteClient.js';
7
+ import { QueryTask } from './SqliteRepository.interface.js';
8
+ export type CreateQueryTaskOptions = GenerateSqlResult;
9
+ /**
10
+ * 操作 entity 仓库
11
+ */
12
+ export declare class SqliteRepositoryBase<T extends EntityType> extends RepositoryBase<T> {
13
+ #private;
14
+ protected adapter: RxDBAdapterSqlite;
15
+ protected client$: Observable<ISqliteClient>;
16
+ protected readonly metadata: EntityMetadata;
17
+ protected readonly need_run_task: Subject<void>;
18
+ protected readonly run_task$: Observable<void>;
19
+ protected readonly cache_query_task_map: Map<string, QueryTask<T>>;
20
+ protected readonly queue_tasks: QueryTask<T>[];
21
+ protected readonly db_changes_sub: Subject<EntityCreateEvent | EntityUpdateEvent | EntityRemoveEvent>;
22
+ protected readonly db_changes_next$: Observable<EntityCreateEvent | EntityUpdateEvent | EntityRemoveEvent>;
23
+ protected readonly db_changes$: Observable<{
24
+ type: string;
25
+ entities: InstanceType<T>[];
26
+ }[]>;
27
+ protected readonly db_checks_sub: Subject<{
28
+ type: string;
29
+ changes: IRxDBAdapterDataChange;
30
+ }>;
31
+ protected readonly db_checks_next$: Observable<{
32
+ type: string;
33
+ changes: IRxDBAdapterDataChange;
34
+ }>;
35
+ protected readonly db_checks$: Observable<{
36
+ type: string;
37
+ rowIds: RowId[];
38
+ }[]>;
39
+ constructor(adapter: RxDBAdapterSqlite, client$: Observable<ISqliteClient>, EntityType: T);
40
+ /**
41
+ * 添加缓存
42
+ * @param sqliteSuccessResult
43
+ * @param forcedUpdate 强制刷新,在数据有的情况下也会更新数据,在修改数据的情况下需要
44
+ */
45
+ addQueryCache(sqliteSuccessResult: SqliteSuccessResult, forcedUpdate?: boolean): InstanceType<T>[];
46
+ /**
47
+ * 创建查询任务
48
+ */
49
+ protected create_query_task(options: CreateQueryTaskOptions): QueryTask<T>;
50
+ protected delete_task(task: QueryTask<T>): void;
51
+ }
52
+ //# sourceMappingURL=SqliteRepositoryBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteRepositoryBase.d.ts","sourceRoot":"","sources":["../src/SqliteRepositoryBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EAGjB,sBAAsB,EACtB,cAAc,EACd,KAAK,EAGN,MAAM,YAAY,CAAC;AACpB,OAAO,EAOL,UAAU,EAIV,OAAO,EAKR,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,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,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAIvD;;GAEG;AACH,qBAAa,oBAAoB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;;IAuD7E,SAAS,CAAC,OAAO,EAAE,iBAAiB;IACpC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC;IAvD9C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAC;IAG7C,SAAS,CAAC,QAAQ,CAAC,aAAa,gBAAuB;IACvD,SAAS,CAAC,QAAQ,CAAC,SAAS,mBAA2D;IAEvF,SAAS,CAAC,QAAQ,CAAC,oBAAoB,4BAAmC;IAE1E,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAM;IAGpD,SAAS,CAAC,QAAQ,CAAC,cAAc,qEAA4E;IAC7G,SAAS,CAAC,QAAQ,CAAC,gBAAgB,wEAA6D;IAChG,SAAS,CAAC,QAAQ,CAAC,WAAW;;;SAiB5B;IAGF,SAAS,CAAC,QAAQ,CAAC,aAAa;cAAuB,MAAM;iBAAW,sBAAsB;OAAM;IACpG,SAAS,CAAC,QAAQ,CAAC,eAAe;cADqB,MAAM;iBAAW,sBAAsB;OACA;IAC9F,SAAS,CAAC,QAAQ,CAAC,UAAU;;;SAgB3B;gBAGU,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,EAC5C,UAAU,EAAE,CAAC;IAsDf;;;;OAIG;IACH,aAAa,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,UAAQ;IA+B5E;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,CAAC,CAAC,CAAC;IAgF1E,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;CA6BzC"}
@@ -0,0 +1,21 @@
1
+ import { EntityType, FindTreeOptions, FindTreeRootOptions, ITreeRepository } from '@aiao/rxdb';
2
+ import { Observable } from 'rxjs';
3
+ import { QueryTask } from './SqliteRepository.interface.js';
4
+ import { SqliteRepository } from './SqliteRepository.js';
5
+ /**
6
+ * tree entity 仓库
7
+ */
8
+ export declare class SqliteTreeRepository<T extends EntityType> extends SqliteRepository<T> implements ITreeRepository<T> {
9
+ #private;
10
+ findRoot(options?: FindTreeRootOptions<T>): Observable<InstanceType<T>[]>;
11
+ countRoot(options?: FindTreeRootOptions<T>): Observable<number>;
12
+ findDescendants(options: FindTreeOptions<T>): Observable<InstanceType<T>[]>;
13
+ countDescendants(options: FindTreeOptions<T>): Observable<number>;
14
+ findAncestors(options: FindTreeOptions<T>): Observable<InstanceType<T>[]>;
15
+ countAncestors(options: FindTreeOptions<T>): Observable<number>;
16
+ /**
17
+ * 根据 type 计算主动更新缓存策略
18
+ */
19
+ merge_cache(type: 'create' | 'update' | 'remove', task: QueryTask<T>, entities: InstanceType<T>[]): void;
20
+ }
21
+ //# sourceMappingURL=SqliteTreeRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteTreeRepository.d.ts","sourceRoot":"","sources":["../src/SqliteTreeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAwB,UAAU,EAAa,MAAM,MAAM,CAAC;AAanE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD;;GAEG;AACH,qBAAa,oBAAoB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;;IAG/G,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAOzE,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAO/D,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAO3E,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAOjE,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAOzE,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAO/D;;OAEG;IACM,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE;CA4C3G"}
@@ -0,0 +1,36 @@
1
+ import { EntityType, FindTreeOptions, FindTreeRootOptions } from '@aiao/rxdb';
2
+ import { Observable } from 'rxjs';
3
+ import { SqliteSuccessResult } from './sqlite.interface.js';
4
+ interface CountRootParams<T extends EntityType> {
5
+ type: 'countRoot';
6
+ options?: FindTreeRootOptions<T>;
7
+ }
8
+ interface FindRootParams<T extends EntityType> {
9
+ type: 'findRoot';
10
+ options?: FindTreeRootOptions<T>;
11
+ }
12
+ interface FindDescendantsParams<T extends EntityType> {
13
+ type: 'findDescendants';
14
+ options: FindTreeOptions<T>;
15
+ }
16
+ interface CountDescendantsParams<T extends EntityType> {
17
+ type: 'countDescendants';
18
+ options: FindTreeOptions<T>;
19
+ }
20
+ interface FindAncestorsParams<T extends EntityType> {
21
+ type: 'findAncestors';
22
+ options: FindTreeOptions<T>;
23
+ }
24
+ interface CountAncestorsParams<T extends EntityType> {
25
+ type: 'countAncestors';
26
+ options: FindTreeOptions<T>;
27
+ }
28
+ export type TreeCacheQueryParams<T extends EntityType> = CountRootParams<T> | FindRootParams<T> | FindDescendantsParams<T> | CountDescendantsParams<T> | FindAncestorsParams<T> | CountAncestorsParams<T>;
29
+ export type TreeCacheQueryTaskHelperResult<T extends EntityType> = TreeCacheQueryParams<T> & {
30
+ calculate: (result: SqliteSuccessResult) => Observable<any>;
31
+ refresh: () => void;
32
+ };
33
+ type RefreshMatchRuleName = 'match_where' | 'match_order_by' | 'result_contains' | 'not_match_where' | 'result_not_contains';
34
+ export type TreeRefreshMatchRules = RefreshMatchRuleName[][];
35
+ export {};
36
+ //# sourceMappingURL=SqliteTreeRepository.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteTreeRepository.interface.d.ts","sourceRoot":"","sources":["../src/SqliteTreeRepository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,UAAU,eAAe,CAAC,CAAC,SAAS,UAAU;IAC5C,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CAClC;AAED,UAAU,cAAc,CAAC,CAAC,SAAS,UAAU;IAC3C,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CAClC;AAED,UAAU,qBAAqB,CAAC,CAAC,SAAS,UAAU;IAClD,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CAC7B;AAED,UAAU,sBAAsB,CAAC,CAAC,SAAS,UAAU;IACnD,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CAC7B;AAED,UAAU,mBAAmB,CAAC,CAAC,SAAS,UAAU;IAChD,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CAC7B;AAED,UAAU,oBAAoB,CAAC,CAAC,SAAS,UAAU;IACjD,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,UAAU,IACjD,eAAe,CAAC,CAAC,CAAC,GAClB,cAAc,CAAC,CAAC,CAAC,GACjB,qBAAqB,CAAC,CAAC,CAAC,GACxB,sBAAsB,CAAC,CAAC,CAAC,GACzB,mBAAmB,CAAC,CAAC,CAAC,GACtB,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAE5B,MAAM,MAAM,8BAA8B,CAAC,CAAC,SAAS,UAAU,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG;IAC3F,SAAS,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,KAAK,oBAAoB,GACrB,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,EAAE,EAAE,CAAC"}
@@ -1,7 +1,8 @@
1
- import { SQLiteAPI, SQLiteCompatibleType } from './wa-sqlite';
1
+ import { SQLiteAPI, SQLiteCompatibleType } from './wa-sqlite.js';
2
2
  export type TransactionCallback = (sqlite: SQLiteAPI, db: number) => Promise<any>;
3
3
  /**
4
4
  * 执行单行 sql
5
5
  */
6
- declare const _default: (sqlite3: SQLiteAPI, db: number, sql: string, bindings?: SQLiteCompatibleType[]) => Promise<import('./sqlite.interface').SqliteSuccessResult>;
6
+ declare const _default: (sqlite3: SQLiteAPI, db: number, sql: string, bindings?: SQLiteCompatibleType[]) => Promise<import('./sqlite.interface.js').SqliteSuccessResult>;
7
7
  export default _default;
8
+ //# sourceMappingURL=execute_statement_helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute_statement_helper.d.ts","sourceRoot":"","sources":["../src/execute_statement_helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAElF;;GAEG;yBACmB,SAAS,SAAS,EAAE,IAAI,MAAM,EAAE,KAAK,MAAM,EAAE,WAAW,oBAAoB,EAAE;AAApG,wBAoCE"}
@@ -0,0 +1,10 @@
1
+ import { EntityMetadata, EntityType, IQueryContext } from '@aiao/rxdb';
2
+ /**
3
+ * Entity remove SQL
4
+ */
5
+ declare const _default: <T extends EntityType>(metadata: EntityMetadata, entity: InstanceType<T>, context?: IQueryContext) => {
6
+ sql: string;
7
+ params: any[];
8
+ };
9
+ export default _default;
10
+ //# sourceMappingURL=generate_entity_delete_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_entity_delete_sql.d.ts","sourceRoot":"","sources":["../src/generate_entity_delete_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGvE;;GAEG;yBACa,CAAC,SAAS,UAAU,EAAE,UAAU,cAAc,EAAE,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,aAAa;;;;AAAhH,wBAOE"}
@@ -0,0 +1,58 @@
1
+ import { EntityMetadata, FindTreeOptions, FindTreeRootOptions } from '@aiao/rxdb';
2
+ import { SetOptional } from 'type-fest';
3
+ interface TreeOptions extends SetOptional<FindTreeOptions, 'entity'> {
4
+ count?: boolean;
5
+ descendants?: boolean;
6
+ isFindRoot?: boolean;
7
+ }
8
+ /**
9
+ * 生成树查询
10
+ */
11
+ export declare const generate_tree_base: (metadata: EntityMetadata, options: TreeOptions) => {
12
+ sql: string;
13
+ params: any[];
14
+ };
15
+ /**
16
+ * 查询子孙节点
17
+ */
18
+ export declare const generate_entity_find_root_sql: (metadata: EntityMetadata, options?: FindTreeRootOptions) => {
19
+ sql: string;
20
+ params: any[];
21
+ };
22
+ /**
23
+ * 查询子孙节点数量
24
+ */
25
+ export declare const generate_entity_count_root_sql: (metadata: EntityMetadata, options?: FindTreeRootOptions) => {
26
+ sql: string;
27
+ params: any[];
28
+ };
29
+ /**
30
+ * 查询子孙节点
31
+ */
32
+ export declare const generate_entity_find_descendants_sql: (metadata: EntityMetadata, options: FindTreeOptions) => {
33
+ sql: string;
34
+ params: any[];
35
+ };
36
+ /**
37
+ * 查询子孙节点数量
38
+ */
39
+ export declare const generate_entity_count_descendants_sql: (metadata: EntityMetadata, options: FindTreeOptions) => {
40
+ sql: string;
41
+ params: any[];
42
+ };
43
+ /**
44
+ * 查询祖先节点
45
+ */
46
+ export declare const generate_entity_find_ancestors_sql: (metadata: EntityMetadata, options: FindTreeOptions) => {
47
+ sql: string;
48
+ params: any[];
49
+ };
50
+ /**
51
+ * 查询祖先节点数量
52
+ */
53
+ export declare const generate_entity_count_ancestors_sql: (metadata: EntityMetadata, options: FindTreeOptions) => {
54
+ sql: string;
55
+ params: any[];
56
+ };
57
+ export {};
58
+ //# sourceMappingURL=generate_entity_find_tree_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_entity_find_tree_sql.d.ts","sourceRoot":"","sources":["../src/generate_entity_find_tree_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAW,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIxC,UAAU,WAAY,SAAQ,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,cAAc,EAAE,SAAS,WAAW;;;CAwChF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,GAAI,UAAU,cAAc,EAAE,UAAU,mBAAmB;;;CAClB,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,8BAA8B,GAAI,UAAU,cAAc,EAAE,UAAU,mBAAmB;;;CACN,CAAC;AAEjG;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAAI,UAAU,cAAc,EAAE,SAAS,eAAe;;;CACtC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,qCAAqC,GAAI,UAAU,cAAc,EAAE,SAAS,eAAe;;;CAC1B,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,kCAAkC,GAAI,UAAU,cAAc,EAAE,SAAS,eAAe;;;CACnC,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,mCAAmC,GAAI,UAAU,cAAc,EAAE,SAAS,eAAe;;;CACvB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { EntityMetadata, EntityType, IMutationContext } from '@aiao/rxdb';
2
+ /**
3
+ * Entity Create SQL
4
+ */
5
+ declare const generate_entity_insert_sql: <T extends EntityType>(metadata: EntityMetadata, entity: InstanceType<T>, context?: IMutationContext) => {
6
+ sql: string;
7
+ params: unknown[];
8
+ };
9
+ export default generate_entity_insert_sql;
10
+ //# sourceMappingURL=generate_entity_insert_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_entity_insert_sql.d.ts","sourceRoot":"","sources":["../src/generate_entity_insert_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAW,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnF;;GAEG;AACH,QAAA,MAAM,0BAA0B,GAAI,CAAC,SAAS,UAAU,EACtD,UAAU,cAAc,EACxB,QAAQ,YAAY,CAAC,CAAC,CAAC,EACvB,UAAU,gBAAgB;;;CA2B3B,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { EntityMetadata, EntityType, IQueryContext } from '@aiao/rxdb';
2
+ /**
3
+ * Entity Create SQL
4
+ */
5
+ declare const _default: <T extends EntityType>(metadata: EntityMetadata, entities: InstanceType<T>[], context?: IQueryContext) => string;
6
+ export default _default;
7
+ //# sourceMappingURL=generate_entity_inserts_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_entity_inserts_sql.d.ts","sourceRoot":"","sources":["../src/generate_entity_inserts_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAW,aAAa,EAAE,MAAM,YAAY,CAAC;AAShF;;GAEG;yBACa,CAAC,SAAS,UAAU,EAClC,UAAU,cAAc,EACxB,UAAU,YAAY,CAAC,CAAC,CAAC,EAAE,EAC3B,UAAU,aAAa;AAHzB,wBA0BE"}
@@ -0,0 +1,10 @@
1
+ import { EntityMetadata, IEntity, IMutationContext } from '@aiao/rxdb';
2
+ /**
3
+ * entity 软删除
4
+ */
5
+ declare const _default: (metadata: EntityMetadata, entity: IEntity, context?: IMutationContext) => {
6
+ sql: string;
7
+ params: unknown[];
8
+ };
9
+ export default _default;
10
+ //# sourceMappingURL=generate_entity_soft_delete_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_entity_soft_delete_sql.d.ts","sourceRoot":"","sources":["../src/generate_entity_soft_delete_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGvE;;GAEG;yBACa,UAAU,cAAc,EAAE,QAAQ,OAAO,EAAE,UAAU,gBAAgB;;;;AAArF,wBAwBE"}
@@ -0,0 +1,10 @@
1
+ import { EntityMetadata, EntityType, IMutationContext } from '@aiao/rxdb';
2
+ /**
3
+ * 计算更新 entity 的 SQL
4
+ */
5
+ declare const generate_entity_update_sql: <T extends EntityType>(metadata: EntityMetadata, entityOrEntities: InstanceType<T> | InstanceType<T>[], patch: Partial<InstanceType<T>>, context?: IMutationContext) => {
6
+ sql: string;
7
+ params: unknown[];
8
+ };
9
+ export default generate_entity_update_sql;
10
+ //# sourceMappingURL=generate_entity_update_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_entity_update_sql.d.ts","sourceRoot":"","sources":["../src/generate_entity_update_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAW,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnF;;GAEG;AACH,QAAA,MAAM,0BAA0B,GAAI,CAAC,SAAS,UAAU,EACtD,UAAU,cAAc,EACxB,kBAAkB,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,EACrD,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC/B,UAAU,gBAAgB;;;CAuC3B,CAAC;AACF,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { CountOptions, EntityMetadata, FindAllOptions, FindOneOptions, FindOneOrFailOptions, FindOptions, RowId, RuleGroup } from '@aiao/rxdb';
2
+ import { RxDBAdapterSqlite } from './RxDBAdapterSqlite.js';
3
+ import { SQLiteCompatibleType } from './wa-sqlite.js';
4
+ export interface GenerateSqlResult {
5
+ sql: string;
6
+ params: SQLiteCompatibleType[];
7
+ }
8
+ /**
9
+ * 生成 ruleGroup sql 查询条件
10
+ * @param ruleGroup
11
+ * @param fieldAliasMap
12
+ * @returns
13
+ */
14
+ export declare const buildRuleGroup: <RG extends RuleGroup<any, any, any>>(ruleGroup: RG, fieldAliasMap?: Map<string, string>) => string;
15
+ /**
16
+ * 生成 find 查询
17
+ */
18
+ export declare const generate_query_find_sql: (adapter: RxDBAdapterSqlite, metadata: EntityMetadata, options: FindOptions) => GenerateSqlResult;
19
+ /**
20
+ * 生成 findAll 查询
21
+ */
22
+ export declare const generate_query_find_all_sql: (adapter: RxDBAdapterSqlite, metadata: EntityMetadata, options: FindAllOptions) => GenerateSqlResult;
23
+ /**
24
+ * 生成 count 查询
25
+ */
26
+ export declare const generate_query_count_sql: (adapter: RxDBAdapterSqlite, metadata: EntityMetadata, options: CountOptions) => GenerateSqlResult;
27
+ /**
28
+ * 生成 findOne 查询
29
+ */
30
+ export declare const generate_query_find_one_sql: (adapter: RxDBAdapterSqlite, metadata: EntityMetadata, options: FindOneOptions | FindOneOrFailOptions) => GenerateSqlResult;
31
+ export declare const generate_query_find_by_row_ids_sql: (metadata: EntityMetadata, rowIds: RowId[]) => GenerateSqlResult;
32
+ //# sourceMappingURL=generate_query_find_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_query_find_sql.d.ts","sourceRoot":"","sources":["../src/generate_query_find_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,cAAc,EAEd,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,WAAW,EAIX,KAAK,EACL,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAWtD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAcD;;;;;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,KAC7C,MAkBF,CAAC;AAsRF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,WAAW,KACnB,iBAaF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,cAAc,KACtB,iBAWF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,YAAY,KACpB,iBAeF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,cAAc,GAAG,oBAAoB,KAC7C,iBAWF,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAAI,UAAU,cAAc,EAAE,QAAQ,KAAK,EAAE,KAAG,iBAQ9F,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { EntityMetadata } from '@aiao/rxdb';
2
- import { RxDBAdapterSqlite } from './RxDBAdapterSqlite';
2
+ import { RxDBAdapterSqlite } from './RxDBAdapterSqlite.js';
3
3
  /**
4
4
  * 计算创建表的 sql
5
5
  * @param metadata 实体元数据
6
6
  */
7
7
  declare const _default: (adapter: RxDBAdapterSqlite, metadata: EntityMetadata) => string;
8
8
  export default _default;
9
+ //# sourceMappingURL=generate_table_create_sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_table_create_sql.d.ts","sourceRoot":"","sources":["../src/generate_table_create_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA8B,MAAM,YAAY,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAwH3D;;;GAGG;yBACa,SAAS,iBAAiB,EAAE,UAAU,cAAc;AAApE,wBAKE"}