@aiao/rxdb-adapter-pglite 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 (50) hide show
  1. package/dist/PGliteClient.d.ts +11 -2
  2. package/dist/PGliteClient.d.ts.map +1 -1
  3. package/dist/RxDBAdapterPGlite.d.ts +15 -16
  4. package/dist/RxDBAdapterPGlite.d.ts.map +1 -1
  5. package/dist/execute_helper.d.ts +70 -0
  6. package/dist/execute_helper.d.ts.map +1 -0
  7. package/dist/handle_rxdb_change.d.ts +26 -0
  8. package/dist/handle_rxdb_change.d.ts.map +1 -0
  9. package/dist/index.d.ts +7 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2403 -1884
  12. package/dist/pglite.interface.d.ts +37 -0
  13. package/dist/pglite.interface.d.ts.map +1 -1
  14. package/dist/pglite.utils.d.ts +46 -12
  15. package/dist/pglite.utils.d.ts.map +1 -1
  16. package/dist/query/find_by_row_ids_sql.d.ts +15 -0
  17. package/dist/query/find_by_row_ids_sql.d.ts.map +1 -0
  18. package/dist/query/join_sql.d.ts +10 -5
  19. package/dist/query/join_sql.d.ts.map +1 -1
  20. package/dist/query/query_sql.d.ts +3 -3
  21. package/dist/query/query_sql.d.ts.map +1 -1
  22. package/dist/repository/PGliteRepository.d.ts +3 -1
  23. package/dist/repository/PGliteRepository.d.ts.map +1 -1
  24. package/dist/repository/PGliteRepositoryBase.d.ts +8 -0
  25. package/dist/repository/PGliteRepositoryBase.d.ts.map +1 -1
  26. package/dist/rxdb_adapter_mutations.d.ts +72 -0
  27. package/dist/rxdb_adapter_mutations.d.ts.map +1 -0
  28. package/dist/sql_dialect.d.ts +77 -0
  29. package/dist/sql_dialect.d.ts.map +1 -0
  30. package/dist/table/{create_sql.d.ts → create_table_sql.d.ts} +1 -1
  31. package/dist/table/create_table_sql.d.ts.map +1 -0
  32. package/dist/table/create_tables_sql.d.ts +31 -0
  33. package/dist/table/create_tables_sql.d.ts.map +1 -0
  34. package/dist/table/notify_function_sql.d.ts +46 -0
  35. package/dist/table/notify_function_sql.d.ts.map +1 -0
  36. package/dist/table/remove_trigger_sql.d.ts +41 -0
  37. package/dist/table/remove_trigger_sql.d.ts.map +1 -0
  38. package/dist/table/trigger_sql.d.ts +0 -2
  39. package/dist/table/trigger_sql.d.ts.map +1 -1
  40. package/dist/transaction_pglite_result.d.ts +102 -0
  41. package/dist/transaction_pglite_result.d.ts.map +1 -0
  42. package/dist/version/create_branch.d.ts +24 -0
  43. package/dist/version/create_branch.d.ts.map +1 -0
  44. package/dist/{rxdb_adapter_switch_transaction_id.d.ts → version/switch_transaction_id.d.ts} +3 -3
  45. package/dist/version/switch_transaction_id.d.ts.map +1 -0
  46. package/package.json +7 -7
  47. package/dist/rxdb_adapter_create_branch.d.ts +0 -7
  48. package/dist/rxdb_adapter_create_branch.d.ts.map +0 -1
  49. package/dist/rxdb_adapter_switch_transaction_id.d.ts.map +0 -1
  50. package/dist/table/create_sql.d.ts.map +0 -1
@@ -1,5 +1,14 @@
1
+ import { EventDispatcher } from '../packages/utils/src/index.ts';
1
2
  import { DescribeQueryResult, QueryOptions, Results, Transaction } from '@electric-sql/pglite';
2
- import { PGliteClientOptions } from './pglite.interface.js';
3
+ import { PGliteChangeEvent, PGliteChangeType, PGliteClientOptions } from './pglite.interface.js';
4
+ /**
5
+ * PGlite 客户端事件映射
6
+ */
7
+ export interface PGliteClientEvents {
8
+ [PGliteChangeType.INSERT]: PGliteChangeEvent;
9
+ [PGliteChangeType.UPDATE]: PGliteChangeEvent;
10
+ [PGliteChangeType.DELETE]: PGliteChangeEvent;
11
+ }
3
12
  export interface IPGliteClient {
4
13
  init(dbName: string, options: PGliteClientOptions): Promise<void>;
5
14
  /**
@@ -54,7 +63,7 @@ export interface IPGliteClient {
54
63
  disconnect(): Promise<void>;
55
64
  version(): Promise<string>;
56
65
  }
57
- export declare class PGliteClient implements IPGliteClient {
66
+ export declare class PGliteClient extends EventDispatcher<PGliteClientEvents> implements IPGliteClient {
58
67
  #private;
59
68
  init(dbName: string, options: PGliteClientOptions): Promise<void>;
60
69
  sql<T>(sqlStrings: TemplateStringsArray, ...params: any[]): Promise<Results<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"PGliteClient.d.ts","sourceRoot":"","sources":["../src/PGliteClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAU,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEvG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAErF;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhF;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAErE;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnF;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEtE;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,qBAAa,YAAa,YAAW,aAAa;;IAG1C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB;IAYvD,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAI/E,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAIpE,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAIpF,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIlF,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIrE,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO;CAId"}
1
+ {"version":3,"file":"PGliteClient.d.ts","sourceRoot":"","sources":["../src/PGliteClient.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { EntityType, IRepository, IRxDBAdapter, RestoreEntityOptions, RxDBBranchRepository, RxDBChangeRepository, RxDB, RxDBAdapterLocalBase, TransactionFun } from '../packages/rxdb/src/index.ts';
1
+ import { EntityType, IRepository, IRxDBAdapter, RestoreEntityOptions, RxDBMutationsMap, SwitchBranchOptions, SwitchVersionActions, RxDB, RxDBAdapterLocalBase, RxDBBranch, RxDBChange, TransactionFun } from '../packages/rxdb/src/index.ts';
2
2
  import { Results } from '@electric-sql/pglite';
3
3
  import { ADAPTER_NAME, PGliteClientOptions, PgliteTableColumn } from './pglite.interface.js';
4
+ import { PGliteRepository } from './repository/PGliteRepository.js';
4
5
  /**
5
6
  * RxDB PGlite 适配器
6
7
  *
@@ -23,6 +24,10 @@ export declare class RxDBAdapterPGlite extends RxDBAdapterLocalBase implements I
23
24
  * @param options - PGlite 客户端配置选项
24
25
  */
25
26
  constructor(rxdb: RxDB, options: PGliteClientOptions);
27
+ mutations<T extends EntityType>(mutations: RxDBMutationsMap<T>): Promise<InstanceType<T>[]>;
28
+ mergeChanges(actions: SwitchVersionActions, localChanges?: Omit<RxDBChange, 'id'>[], disableTriggers?: boolean): Promise<void>;
29
+ getRxDBChangeSequence(): Promise<number>;
30
+ setRxDBChangeSequence(sequence: number): Promise<void>;
26
31
  /**
27
32
  * 批量删除实体
28
33
  *
@@ -67,19 +72,8 @@ export declare class RxDBAdapterPGlite extends RxDBAdapterLocalBase implements I
67
72
  * @param fromChangeId - 从指定变更 ID 创建分支(可选,默认从当前分支的最新状态)
68
73
  * @throws {RxdbAdapterPGliteError} 分支 ID 已存在或源分支未找到
69
74
  */
70
- createBranch(branchId: string, fromChangeId?: number): Promise<void>;
71
- /**
72
- * 切换分支
73
- *
74
- * 切换到不同的分支,使后续的变更记录到目标分支:
75
- * 1. 验证当前分支和目标分支
76
- * 2. 重建所有实体表的触发器(更新为新的分支 ID)
77
- * 3. 更新分支激活状态
78
- *
79
- * @param branchId - 目标分支 ID
80
- * @throws {RxdbAdapterPGliteError} 分支未找到
81
- */
82
- switchBranch(branchId: string): Promise<void>;
75
+ createBranch(branchId: string, fromChangeId?: number): Promise<InstanceType<typeof RxDBBranch>>;
76
+ switchBranch(_options: SwitchBranchOptions): Promise<void>;
83
77
  /**
84
78
  * 恢复实体到指定状态
85
79
  *
@@ -145,13 +139,13 @@ export declare class RxDBAdapterPGlite extends RxDBAdapterLocalBase implements I
145
139
  *
146
140
  * @returns 分支仓库实例
147
141
  */
148
- localRxDBBranch(): RxDBBranchRepository;
142
+ localRxDBBranch(): PGliteRepository<typeof RxDBBranch>;
149
143
  /**
150
144
  * 获取本地变更仓库
151
145
  *
152
146
  * @returns 变更仓库实例
153
147
  */
154
- localRxDBChange(): RxDBChangeRepository;
148
+ localRxDBChange(): PGliteRepository<typeof RxDBChange>;
155
149
  /**
156
150
  * 执行事务
157
151
  *
@@ -180,6 +174,11 @@ export declare class RxDBAdapterPGlite extends RxDBAdapterLocalBase implements I
180
174
  * @returns 查询结果
181
175
  */
182
176
  query(sql: string, bindings?: any[]): Promise<Results<any>>;
177
+ /**
178
+ * 内部查询方法 (Public Alias)
179
+ * 供核心同步逻辑使用,绕过队列直接查询
180
+ */
181
+ internalQuery(sql: string, params?: any[]): Promise<Results<any>>;
183
182
  }
184
183
  /**
185
184
  * 扩展 RxDBAdapters 接口
@@ -1 +1 @@
1
- {"version":3,"file":"RxDBAdapterPGlite.d.ts","sourceRoot":"","sources":["../src/RxDBAdapterPGlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RxDBAdapterPGlite.d.ts","sourceRoot":"","sources":["../src/RxDBAdapterPGlite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { IPGliteClient } from './PGliteClient.js';
2
+ /**
3
+ * SQL 执行结果
4
+ *
5
+ * 包含查询结果、受影响行数和执行时间
6
+ */
7
+ export interface ExecuteResult<T = any> {
8
+ /** 查询结果行 */
9
+ rows: T[];
10
+ /** 受影响的行数 */
11
+ rowsAffected: number;
12
+ /** 执行耗时(毫秒) */
13
+ elapsed: number;
14
+ }
15
+ /**
16
+ * 统一的 SQL 执行辅助函数
17
+ *
18
+ * 提供以下功能:
19
+ * 1. **性能监控**:使用 `performance.now()` 精确测量查询执行时间
20
+ * 2. **错误转换**:捕获 PGlite 错误并转换为 `RxdbAdapterPGliteError`
21
+ * 3. **统一接口**:返回标准化的结果格式
22
+ *
23
+ * ## 使用示例
24
+ *
25
+ * ### 基础查询
26
+ * ```typescript
27
+ * const result = await execute_helper(client, 'SELECT * FROM users');
28
+ * console.log(result.rows); // 查询结果
29
+ * console.log(result.rowsAffected); // 受影响行数
30
+ * console.log(result.elapsed); // 执行时间(ms)
31
+ * ```
32
+ *
33
+ * ### 参数化查询
34
+ * ```typescript
35
+ * const result = await execute_helper(
36
+ * client,
37
+ * 'SELECT * FROM users WHERE id = $1',
38
+ * ['user-id']
39
+ * );
40
+ * ```
41
+ *
42
+ * ### 错误处理
43
+ * ```typescript
44
+ * try {
45
+ * await execute_helper(client, 'INVALID SQL');
46
+ * } catch (error) {
47
+ * if (error instanceof RxdbAdapterPGliteError) {
48
+ * console.log(error.code); // INVALID_SQL
49
+ * console.log(error.originalError); // 原始 PGlite 错误
50
+ * }
51
+ * }
52
+ * ```
53
+ *
54
+ * ## 性能考虑
55
+ *
56
+ * - `performance.now()` 提供微秒级精度,开销极小
57
+ * - 错误转换只在异常路径触发,对正常查询无影响
58
+ * - 结果对象创建开销可忽略(< 0.1ms)
59
+ *
60
+ * @param client - PGlite 客户端实例
61
+ * @param sql - SQL 语句
62
+ * @param params - 可选的查询参数(使用 $1, $2 等占位符)
63
+ * @returns 包含 rows, rowsAffected, elapsed 的执行结果
64
+ * @throws {RxdbAdapterPGliteError} SQL 执行失败时抛出
65
+ *
66
+ * @see {@link IPGliteClient}
67
+ * @see {@link RxdbAdapterPGliteError}
68
+ */
69
+ export declare function execute_helper<T = any>(client: IPGliteClient, sql: string, params?: any[]): Promise<ExecuteResult<T>>;
70
+ //# sourceMappingURL=execute_helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute_helper.d.ts","sourceRoot":"","sources":["../src/execute_helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IACpC,YAAY;IACZ,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,aAAa;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAsB,cAAc,CAAC,CAAC,GAAG,GAAG,EAC1C,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CA4B3B"}
@@ -0,0 +1,26 @@
1
+ import { EntityType } from '../packages/rxdb/src/index.ts';
2
+ import { PGliteChangeEvent } from './pglite.interface.js';
3
+ import { RxDBAdapterPGlite } from './RxDBAdapterPGlite.js';
4
+ /**
5
+ * 处理 PGlite 数据库变更事件
6
+ *
7
+ * 工作流程:
8
+ * 1. 解析表名获取 EntityType
9
+ * 2. 通过 `repository.findByRowIds()` 查询受影响的实体
10
+ * 3. 特殊处理 RxDBChange 表:
11
+ * - 转换 patch/inversePatch 字段
12
+ * - 触发被变更实体的事件
13
+ * - 触发 RxDBChange 自身的 INSERT 事件
14
+ * 4. 普通表:直接触发实体事件
15
+ *
16
+ * @param adapter - PGlite 适配器实例
17
+ * @param event - PGlite NOTIFY 变更事件
18
+ *
19
+ * @remarks
20
+ * 此函数异步执行,错误会被捕获并记录到控制台。
21
+ *
22
+ * @see {@link PGliteChangeEvent}
23
+ * @see {@link RxDBChange}
24
+ */
25
+ export declare const handle_rxdb_change: <T extends EntityType = any>(adapter: RxDBAdapterPGlite, event: PGliteChangeEvent) => void;
26
+ //# sourceMappingURL=handle_rxdb_change.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle_rxdb_change.d.ts","sourceRoot":"","sources":["../src/handle_rxdb_change.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAIL,UAAU,EAMX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAoB,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAoG3D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,UAAU,GAAG,GAAG,EAC3D,SAAS,iBAAiB,EAC1B,OAAO,iBAAiB,SA6GzB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,11 @@
1
+ export * from './pglite.interface.js';
2
+ export * from './pglite.utils.js';
1
3
  export { RxdbAdapterPGliteError } from './pglite.utils.js';
4
+ export * from './PGliteClient.js';
2
5
  export * from './RxDBAdapterPGlite.js';
6
+ export * from './sql_dialect.js';
7
+ export { create_tables_sql } from './table/create_tables_sql.js';
8
+ export * from './table/notify_function_sql.js';
9
+ export { remove_all_triggers_sql, remove_trigger_sql } from './table/remove_trigger_sql.js';
3
10
  export { generate_trigger_sql } from './table/trigger_sql.js';
4
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}