@aiao/rxdb-adapter-supabase 0.0.19 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/RxDBAdapterSupabase.d.ts +2 -1
- package/dist/RxDBAdapterSupabase.d.ts.map +1 -1
- package/dist/SupabaseRepository.d.ts +40 -7
- package/dist/SupabaseRepository.d.ts.map +1 -1
- package/dist/SupabaseTreeRepository.d.ts.map +1 -1
- package/dist/index.js +925 -1030
- package/dist/rule_group_builder.d.ts.map +1 -1
- package/dist/schema.utils.d.ts +2 -0
- package/dist/schema.utils.d.ts.map +1 -0
- package/dist/supabase.interface.d.ts +22 -0
- package/dist/supabase.interface.d.ts.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ pnpm add @aiao/rxdb-adapter-supabase @supabase/supabase-js
|
|
|
25
25
|
```typescript
|
|
26
26
|
import { RxDB } from '@aiao/rxdb';
|
|
27
27
|
import { RxDBAdapterSupabase } from '@aiao/rxdb-adapter-supabase';
|
|
28
|
-
import { RxDBAdapterSqlite } from '@aiao/rxdb-adapter-sqlite';
|
|
28
|
+
import { RxDBAdapterSqlite } from '@aiao/rxdb-adapter-wa-sqlite';
|
|
29
29
|
|
|
30
30
|
const rxdb = new RxDB({
|
|
31
31
|
dbName: 'my-app',
|
|
@@ -66,7 +66,7 @@ export declare class RxDBAdapterSupabase extends RxDBAdapterRemoteBase implement
|
|
|
66
66
|
* 当提供 filter 参数时,会通过 JOIN 实体表并应用过滤条件,
|
|
67
67
|
* 只返回满足条件的实体对应的变更记录。
|
|
68
68
|
*/
|
|
69
|
-
pullChanges(sinceId: number, limit?: number, repositoryFilter?: string[], filter?: RuleGroup<
|
|
69
|
+
pullChanges(sinceId: number, limit?: number, repositoryFilter?: string[], filter?: RuleGroup<unknown>, branchId?: string): Promise<RemoteChange[]>;
|
|
70
70
|
/**
|
|
71
71
|
* 获取远程变更数量(轻量级,不下载数据)(T042, US2)
|
|
72
72
|
*
|
|
@@ -150,6 +150,7 @@ export declare class RxDBAdapterSupabase extends RxDBAdapterRemoteBase implement
|
|
|
150
150
|
findByIds<T>(entityName: string, ids: string[]): Observable<T[]>;
|
|
151
151
|
/** 获取带 schema 的客户端 */
|
|
152
152
|
private getSchemaClient;
|
|
153
|
+
private executeRetryableWrite;
|
|
153
154
|
/** 执行 upsert(非事务) */
|
|
154
155
|
private executeUpsert;
|
|
155
156
|
/** 执行 delete(非事务) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RxDBAdapterSupabase.d.ts","sourceRoot":"","sources":["../src/RxDBAdapterSupabase.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,IAAI,EACJ,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAqB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAiC,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAoB,UAAU,EAAM,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"RxDBAdapterSupabase.d.ts","sourceRoot":"","sources":["../src/RxDBAdapterSupabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,25 +9,58 @@ export declare class SupabaseRepository<T extends EntityType> extends Repository
|
|
|
9
9
|
protected readonly metadata: EntityMetadata;
|
|
10
10
|
constructor(adapter: RxDBAdapterSupabase, EntityType: T);
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* 查询多个实体。
|
|
13
|
+
*
|
|
14
|
+
* 自动按 1000 行分页拉取直到 limit 满足或数据耗尽,避免单次请求超过 PostgREST 的默认上限。
|
|
15
|
+
* 当 where 含跨表条件时会附加 `!inner` 关系 SELECT,确保关联过滤生效。
|
|
16
|
+
*
|
|
17
|
+
* @param options - 查询条件(where / orderBy / limit / offset)
|
|
18
|
+
* @returns 满足条件的实体数组(已通过 transform_row_to_entity 还原为类型实例)
|
|
19
|
+
* @throws {SupabaseDataError} PostgREST 返回错误时
|
|
13
20
|
*/
|
|
14
21
|
find(options: EntityStaticType<T, 'findOptions'>): Promise<InstanceType<T>[]>;
|
|
15
22
|
/**
|
|
16
|
-
*
|
|
23
|
+
* 统计满足条件的实体数量。
|
|
24
|
+
*
|
|
25
|
+
* 使用 PostgREST 的 `count=exact` + `head=true`,仅返回计数不下载行数据。
|
|
26
|
+
* 暂不支持 groupBy。
|
|
27
|
+
*
|
|
28
|
+
* @param options - 查询条件(where / groupBy)
|
|
29
|
+
* @returns 实体总数(无匹配时返回 0)
|
|
30
|
+
* @throws {Error} 传入 groupBy(暂未实现)
|
|
31
|
+
* @throws {SupabaseDataError} PostgREST 返回错误时
|
|
17
32
|
*/
|
|
18
33
|
count(options: EntityStaticType<T, 'countOptions'>): Promise<number>;
|
|
19
34
|
/**
|
|
20
|
-
*
|
|
35
|
+
* 创建实体并落库。
|
|
36
|
+
*
|
|
37
|
+
* 若 rxdb.context.userId 存在,会自动注入 createdBy / updatedBy 审计字段。
|
|
38
|
+
*
|
|
39
|
+
* @param entity - 待创建的实体(必须包含主键 id)
|
|
40
|
+
* @returns 创建后的实体(含数据库回填字段如 createdAt)
|
|
41
|
+
* @throws {SupabaseDataError} 插入失败(主键冲突 / RLS 拒绝 / 网络错误等)
|
|
21
42
|
*/
|
|
22
43
|
create(entity: InstanceType<T>): Promise<InstanceType<T>>;
|
|
23
44
|
/**
|
|
24
|
-
*
|
|
45
|
+
* 按 id 部分更新实体。
|
|
46
|
+
*
|
|
47
|
+
* 若 rxdb.context.userId 存在,会自动注入 updatedBy 审计字段。
|
|
48
|
+
* 服务端的触发器/默认值会回填到返回结果。
|
|
49
|
+
*
|
|
50
|
+
* @param entity - 目标实体(仅取 id 用于定位行)
|
|
51
|
+
* @param patch - 增量字段(不含 id)
|
|
52
|
+
* @returns 更新后的实体行
|
|
53
|
+
* @throws {SupabaseDataError} 行不存在 / RLS 拒绝 / 网络错误时
|
|
25
54
|
*/
|
|
26
55
|
update(entity: InstanceType<T>, patch: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
|
|
27
56
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
57
|
+
* 按 id 硬删除实体(无软删 / tombstone)。
|
|
58
|
+
*
|
|
59
|
+
* 返回原始 entity 引用方便链式处理;如需服务端回填字段请改用 find/update。
|
|
60
|
+
*
|
|
61
|
+
* @param entity - 目标实体(仅取 id 用于定位行)
|
|
62
|
+
* @returns 传入的 entity(删除成功后原样返回)
|
|
63
|
+
* @throws {SupabaseDataError} RLS 拒绝 / 网络错误时
|
|
31
64
|
*/
|
|
32
65
|
remove(entity: InstanceType<T>): Promise<InstanceType<T>>;
|
|
33
66
|
/** 提取查询中的关系字段路径(用于 EXISTS 查询的 INNER JOIN) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseRepository.d.ts","sourceRoot":"","sources":["../src/SupabaseRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAkC,cAAc,EAAE,MAAM,YAAY,CAAC;AAK9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"SupabaseRepository.d.ts","sourceRoot":"","sources":["../src/SupabaseRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAkC,cAAc,EAAE,MAAM,YAAY,CAAC;AAK9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIpE;;;GAGG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;IAIrG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB;IAHjD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;gBAGvB,OAAO,EAAE,mBAAmB,EAC/C,UAAU,EAAE,CAAC;IAMf;;;;;;;;;OASG;IACG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IA2DnF;;;;;;;;;;OAUG;IACG,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAsB1E;;;;;;;;OAQG;IACG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAc/D;;;;;;;;;;OAUG;IACG,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;IAehG;;;;;;;;OAQG;IACG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAU/D,6CAA6C;IAC7C,OAAO,CAAC,uBAAuB;IAgC/B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA0C7B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAwBpC,qBAAqB;IACrB,OAAO,CAAC,sBAAsB;IAuB9B,yBAAyB;IACzB,OAAO,CAAC,mBAAmB;IAI3B,0BAA0B;IAC1B,OAAO,CAAC,UAAU;CAMnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseTreeRepository.d.ts","sourceRoot":"","sources":["../src/SupabaseTreeRepository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"SupabaseTreeRepository.d.ts","sourceRoot":"","sources":["../src/SupabaseTreeRepository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D;;;;;GAKG;AACH,qBAAa,sBAAsB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;gBACvG,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;IAIvD;;;;;;OAMG;IACG,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAoB9E;;;;;;OAMG;IACG,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAcpE;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAyB5E;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAOlE;;;;OAIG;YACW,uBAAuB;IA0ErC;;;;OAIG;YACW,qBAAqB;IAuDnC;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAM7B"}
|