@aiao/rxdb-adapter-pglite 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.
- package/dist/PGliteClient.d.ts +1 -4
- package/dist/PGliteClient.d.ts.map +1 -1
- package/dist/RxDBAdapterPGlite.d.ts +173 -17
- package/dist/RxDBAdapterPGlite.d.ts.map +1 -1
- package/dist/entity/delete_sql.d.ts +13 -0
- package/dist/entity/delete_sql.d.ts.map +1 -0
- package/dist/entity/deletes_sql.d.ts +11 -0
- package/dist/entity/deletes_sql.d.ts.map +1 -0
- package/dist/entity/insert_sql.d.ts +14 -0
- package/dist/entity/insert_sql.d.ts.map +1 -0
- package/dist/entity/inserts_sql.d.ts +12 -0
- package/dist/entity/inserts_sql.d.ts.map +1 -0
- package/dist/entity/update_sql.d.ts +15 -0
- package/dist/entity/update_sql.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2600 -131
- package/dist/pglite.interface.d.ts +134 -2
- package/dist/pglite.interface.d.ts.map +1 -1
- package/dist/pglite.utils.d.ts +29 -1
- package/dist/pglite.utils.d.ts.map +1 -1
- package/dist/query/join_sql.d.ts +46 -0
- package/dist/query/join_sql.d.ts.map +1 -0
- package/dist/query/query_sql.d.ts +19 -0
- package/dist/query/query_sql.d.ts.map +1 -0
- package/dist/query/query_tree_sql.d.ts +36 -0
- package/dist/query/query_tree_sql.d.ts.map +1 -0
- package/dist/repository/PGliteRepository.d.ts +11 -0
- package/dist/repository/PGliteRepository.d.ts.map +1 -0
- package/dist/repository/PGliteRepositoryBase.d.ts +10 -0
- package/dist/repository/PGliteRepositoryBase.d.ts.map +1 -0
- package/dist/repository/PGliteTreeRepository.d.ts +13 -0
- package/dist/repository/PGliteTreeRepository.d.ts.map +1 -0
- package/dist/rxdb_adapter_create_branch.d.ts +7 -0
- package/dist/rxdb_adapter_create_branch.d.ts.map +1 -0
- package/dist/rxdb_adapter_switch_transaction_id.d.ts +18 -0
- package/dist/rxdb_adapter_switch_transaction_id.d.ts.map +1 -0
- package/dist/table/create_sql.d.ts +5 -0
- package/dist/table/create_sql.d.ts.map +1 -0
- package/dist/table/trigger_sql.d.ts +39 -0
- package/dist/table/trigger_sql.d.ts.map +1 -0
- package/package.json +6 -4
- package/dist/generate_table_create_sql.d.ts +0 -5
- package/dist/generate_table_create_sql.d.ts.map +0 -1
|
@@ -1,6 +1,138 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PGliteOptions } from '@electric-sql/pglite';
|
|
2
|
+
/**
|
|
3
|
+
* PGlite 适配器名称常量
|
|
4
|
+
*/
|
|
2
5
|
export declare const ADAPTER_NAME: "pglite";
|
|
3
|
-
|
|
6
|
+
/**
|
|
7
|
+
* PGlite 客户端配置选项
|
|
8
|
+
* 扩展自 PGlite 原生配置
|
|
9
|
+
*/
|
|
10
|
+
export interface PGliteClientOptions extends PGliteOptions {
|
|
11
|
+
/**
|
|
12
|
+
* 存储类型
|
|
13
|
+
* - 'memory': 内存存储
|
|
14
|
+
* - 'idb': IndexedDB 存储
|
|
15
|
+
*/
|
|
4
16
|
store?: 'memory' | 'idb';
|
|
5
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* PGlite 数据库表列信息接口
|
|
20
|
+
* 包含 PostgreSQL information_schema.columns 视图的所有字段
|
|
21
|
+
*/
|
|
22
|
+
export interface PgliteTableColumn {
|
|
23
|
+
/** 数据库目录名称 */
|
|
24
|
+
table_catalog: string;
|
|
25
|
+
/** 数据库模式名称 */
|
|
26
|
+
table_schema: string;
|
|
27
|
+
/** 表名称 */
|
|
28
|
+
table_name: string;
|
|
29
|
+
/** 列名称 */
|
|
30
|
+
column_name: string;
|
|
31
|
+
/** 列在表中的顺序位置 */
|
|
32
|
+
ordinal_position: number;
|
|
33
|
+
/** 列的默认值 */
|
|
34
|
+
column_default: unknown;
|
|
35
|
+
/** 列是否可为 NULL */
|
|
36
|
+
is_nullable: 'YES' | 'NO';
|
|
37
|
+
/** 数据类型 */
|
|
38
|
+
data_type: string;
|
|
39
|
+
/** 字符类型的最大长度 */
|
|
40
|
+
character_maximum_length?: number;
|
|
41
|
+
/** 字符类型的字节长度 */
|
|
42
|
+
character_octet_length?: number;
|
|
43
|
+
/** 数值类型的精度 */
|
|
44
|
+
numeric_precision?: number;
|
|
45
|
+
/** 数值精度的基数 */
|
|
46
|
+
numeric_precision_radix?: number;
|
|
47
|
+
/** 数值类型的小数位数 */
|
|
48
|
+
numeric_scale?: number;
|
|
49
|
+
/** 日期时间类型的精度 */
|
|
50
|
+
datetime_precision?: number;
|
|
51
|
+
/** 间隔类型 */
|
|
52
|
+
interval_type?: string;
|
|
53
|
+
/** 间隔精度 */
|
|
54
|
+
interval_precision?: number;
|
|
55
|
+
/** 字符集目录 */
|
|
56
|
+
character_set_catalog?: string;
|
|
57
|
+
/** 字符集模式 */
|
|
58
|
+
character_set_schema?: string;
|
|
59
|
+
/** 字符集名称 */
|
|
60
|
+
character_set_name?: string;
|
|
61
|
+
/** 排序规则目录 */
|
|
62
|
+
collation_catalog?: string;
|
|
63
|
+
/** 排序规则模式 */
|
|
64
|
+
collation_schema?: string;
|
|
65
|
+
/** 排序规则名称 */
|
|
66
|
+
collation_name?: string;
|
|
67
|
+
/** 域目录 */
|
|
68
|
+
domain_catalog?: string;
|
|
69
|
+
/** 域模式 */
|
|
70
|
+
domain_schema?: string;
|
|
71
|
+
/** 域名称 */
|
|
72
|
+
domain_name?: string;
|
|
73
|
+
/** 用户定义类型目录 */
|
|
74
|
+
udt_catalog: string;
|
|
75
|
+
/** 用户定义类型模式 */
|
|
76
|
+
udt_schema: string;
|
|
77
|
+
/** 用户定义类型名称 */
|
|
78
|
+
udt_name: string;
|
|
79
|
+
/** 作用域目录 */
|
|
80
|
+
scope_catalog?: string;
|
|
81
|
+
/** 作用域模式 */
|
|
82
|
+
scope_schema?: string;
|
|
83
|
+
/** 作用域名称 */
|
|
84
|
+
scope_nam?: string;
|
|
85
|
+
/** 最大基数 */
|
|
86
|
+
maximum_cardinality?: number;
|
|
87
|
+
/** 数据类型描述符标识符 */
|
|
88
|
+
dtd_identifier: string;
|
|
89
|
+
/** 是否自引用 */
|
|
90
|
+
is_self_referencing: string;
|
|
91
|
+
/** 是否为标识列 */
|
|
92
|
+
is_identity: string;
|
|
93
|
+
/** 标识列生成方式 */
|
|
94
|
+
identity_generation?: string;
|
|
95
|
+
/** 标识列起始值 */
|
|
96
|
+
identity_start?: string;
|
|
97
|
+
/** 标识列增量 */
|
|
98
|
+
identity_increment?: string;
|
|
99
|
+
/** 标识列最大值 */
|
|
100
|
+
identity_maximum?: string;
|
|
101
|
+
/** 标识列最小值 */
|
|
102
|
+
identity_minimum?: string;
|
|
103
|
+
/** 标识列是否循环 */
|
|
104
|
+
identity_cycle: string;
|
|
105
|
+
/** 是否为生成列 */
|
|
106
|
+
is_generated: string;
|
|
107
|
+
/** 生成列表达式 */
|
|
108
|
+
generation_expression?: string;
|
|
109
|
+
/** 是否可更新 */
|
|
110
|
+
is_updatable: string;
|
|
111
|
+
/** 约束类型 */
|
|
112
|
+
constraint_type: string;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* 外键约束信息类型
|
|
116
|
+
* 描述表之间的外键关系
|
|
117
|
+
*/
|
|
118
|
+
export type ForeignKey = {
|
|
119
|
+
/** 约束目录名称 */
|
|
120
|
+
constraint_catalog: string;
|
|
121
|
+
/** 约束模式名称 */
|
|
122
|
+
constraint_schema: string;
|
|
123
|
+
/** 约束名称 */
|
|
124
|
+
constraint_name: string;
|
|
125
|
+
/** 表目录名称 */
|
|
126
|
+
table_catalog: string;
|
|
127
|
+
/** 表模式名称 */
|
|
128
|
+
table_schema: string;
|
|
129
|
+
/** 表名称 */
|
|
130
|
+
table_name: string;
|
|
131
|
+
/** 列名称 */
|
|
132
|
+
column_name: string;
|
|
133
|
+
/** 列在约束中的顺序位置 */
|
|
134
|
+
ordinal_position: number;
|
|
135
|
+
/** 在唯一约束中的位置 */
|
|
136
|
+
position_in_unique_constraint?: number;
|
|
137
|
+
};
|
|
6
138
|
//# sourceMappingURL=pglite.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite.interface.d.ts","sourceRoot":"","sources":["../src/pglite.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pglite.interface.d.ts","sourceRoot":"","sources":["../src/pglite.interface.ts"],"names":[],"mappings":"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"}
|
package/dist/pglite.utils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { EntityMetadata, EntityPropertyMetadata, EntityRelationMetadata } from '
|
|
1
|
+
import { EntityMetadata, EntityPropertyMetadata, EntityRelationMetadata } from '../packages/rxdb/src/index.ts';
|
|
2
2
|
export declare class RxdbAdapterPGliteError extends Error {
|
|
3
3
|
constructor(message: string);
|
|
4
4
|
}
|
|
5
|
+
export declare const getTableName: (entityName: string, namespace?: string) => string;
|
|
5
6
|
export declare const getTableNameByMetadata: (metadata: EntityMetadata) => string;
|
|
6
7
|
type PGliteDataType = 'uuid' | 'varchar' | 'jsonb' | 'numeric' | 'integer' | 'boolean' | 'timestamptz';
|
|
7
8
|
/**
|
|
@@ -14,5 +15,32 @@ export declare const rxDBColumnTypeToPGliteType: (property: EntityPropertyMetada
|
|
|
14
15
|
*/
|
|
15
16
|
export declare const rxDBColumnTypeToPGliteTypeIndexName: (property: EntityPropertyMetadata) => string;
|
|
16
17
|
export declare const getTableColumnIndexName: (metadata: EntityMetadata, property: EntityPropertyMetadata | EntityRelationMetadata) => string;
|
|
18
|
+
/**
|
|
19
|
+
* Transform JavaScript value to PostgreSQL-compatible value
|
|
20
|
+
*/
|
|
21
|
+
export declare const transformValueJsToPGlite: (value: any, property: EntityPropertyMetadata) => any;
|
|
22
|
+
/**
|
|
23
|
+
* Transform entity values to SQL-compatible format
|
|
24
|
+
*/
|
|
25
|
+
export declare const transformEntityValueToSql: (metadata: EntityMetadata, entity: any) => any;
|
|
26
|
+
/**
|
|
27
|
+
* Normalize entity data for creation (filter writable fields)
|
|
28
|
+
*/
|
|
29
|
+
export declare const normalizeCreateEntity: (metadata: EntityMetadata, entity: any) => any;
|
|
30
|
+
/**
|
|
31
|
+
* Normalize entity data, filtering out readonly fields
|
|
32
|
+
*/
|
|
33
|
+
export declare const normalizeEntity: (metadata: EntityMetadata, entity: any) => any;
|
|
34
|
+
export declare const getSqlValue: (value: any) => string;
|
|
35
|
+
/**
|
|
36
|
+
* Replace PostgreSQL parameter placeholders ($1, $2, etc.) with actual values
|
|
37
|
+
* Used for batch operations where parameterized queries cannot be used
|
|
38
|
+
*/
|
|
39
|
+
export declare const getSqlWithParams: (sql: string, params?: any[]) => string;
|
|
40
|
+
/**
|
|
41
|
+
* Get entity object data from PGlite result row
|
|
42
|
+
* PGlite returns rows as objects, so this is mainly for type conversion
|
|
43
|
+
*/
|
|
44
|
+
export declare const getEntityObjectFromResult: (metadata: EntityMetadata, row: any) => any;
|
|
17
45
|
export {};
|
|
18
46
|
//# sourceMappingURL=pglite.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite.utils.d.ts","sourceRoot":"","sources":["../src/pglite.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,sBAAsB,EAAgB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"pglite.utils.d.ts","sourceRoot":"","sources":["../src/pglite.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,sBAAsB,EAAgB,MAAM,YAAY,CAAC;AAG1G,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAK5B;AAED,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,EAAE,YAAW,MAAiB,WAAqC,CAAC;AAEnH,eAAO,MAAM,sBAAsB,GAAI,UAAU,cAAc,WAAoD,CAAC;AAGpH,KAAK,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AAEvG;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,UAAU,sBAAsB,KAAG,cAkB7E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mCAAmC,GAAI,UAAU,sBAAsB,KAAG,MAgBtF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,UAAU,cAAc,EACxB,UAAU,sBAAsB,GAAG,sBAAsB,WACO,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,GAAG,EAAE,UAAU,sBAAsB,KAAG,GAyBvF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,UAAU,cAAc,EAAE,QAAQ,GAAG,QAmB9E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,cAAc,EAAE,QAAQ,GAAG,QAC0B,CAAC;AAEtG;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,cAAc,EAAE,QAAQ,GAAG,QACS,CAAC;AAW/E,eAAO,MAAM,WAAW,GAAI,OAAO,GAAG,KAAG,MA0BxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,SAAQ,GAAG,EAAO,KAAG,MAWlE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GAAI,UAAU,cAAc,EAAE,KAAK,GAAG,KAAG,GAwB9E,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { EntityMetadata, EntityRelationMetadata } from '../../packages/rxdb/src/index.ts';
|
|
2
|
+
import { RxDBAdapterPGlite } from '../RxDBAdapterPGlite.js';
|
|
3
|
+
export declare const MAIN_TABLE_ALIAS: "_";
|
|
4
|
+
export interface JoinOptions {
|
|
5
|
+
joinTableName: string;
|
|
6
|
+
on: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RelationPair {
|
|
9
|
+
metadata: EntityMetadata;
|
|
10
|
+
relation: EntityRelationMetadata;
|
|
11
|
+
}
|
|
12
|
+
export interface JoinContext {
|
|
13
|
+
joinMap: Map<EntityMetadata, JoinOptions[]>;
|
|
14
|
+
usedAliases: Set<string>;
|
|
15
|
+
fieldAliasMap: Map<string, string>;
|
|
16
|
+
relationAliasMap: Map<string, string>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get or create a stable relation alias
|
|
20
|
+
*/
|
|
21
|
+
export declare const get_or_create_relation_alias: (context: JoinContext, relationKey: string) => string;
|
|
22
|
+
/**
|
|
23
|
+
* Try resolve relation path to a sequence of relation pairs
|
|
24
|
+
*/
|
|
25
|
+
export declare const try_resolve_relation_path: (adapter: RxDBAdapterPGlite, entityMetadata: EntityMetadata, parts: string[], cut: number) => {
|
|
26
|
+
metaWalker?: EntityMetadata;
|
|
27
|
+
relPairs: RelationPair[];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Try process JSON keyValue on a relation chain (orders.meta.xxx)
|
|
31
|
+
*/
|
|
32
|
+
export declare const try_process_relation_flatmap: (adapter: RxDBAdapterPGlite, context: JoinContext, entityMetadata: EntityMetadata, strValue: string, parts: string[]) => boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Process relation joins for a chain
|
|
35
|
+
*/
|
|
36
|
+
export declare const process_relation_joins: (adapter: RxDBAdapterPGlite, context: JoinContext, relations: RelationPair[], joinTableName: string) => void;
|
|
37
|
+
export declare const get_relation_key: (relations: RelationPair[], joinTableName: string, relation: EntityRelationMetadata) => string;
|
|
38
|
+
export declare const format_table_alias: (alias: string) => string;
|
|
39
|
+
/**
|
|
40
|
+
* Build JOIN SQL and field alias map from a rule group
|
|
41
|
+
*/
|
|
42
|
+
export declare const build_rule_group_join_pg: (adapter: RxDBAdapterPGlite, entityMetadata: EntityMetadata, ruleGroup: any) => {
|
|
43
|
+
joinSQL: string;
|
|
44
|
+
fieldAliasMap: Map<string, string>;
|
|
45
|
+
};
|
|
46
|
+
//# 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,EAEd,sBAAsB,EAIvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,eAAO,MAAM,gBAAgB,EAAG,GAAY,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,sBAAsB,CAAC;CAClC;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;AAOD;;GAEG;AACH,eAAO,MAAM,4BAA4B,GAAI,SAAS,WAAW,EAAE,aAAa,MAAM,KAAG,MAMxF,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;CAazD,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;AAoEF,eAAO,MAAM,gBAAgB,GAC3B,WAAW,YAAY,EAAE,EACzB,eAAe,MAAM,EACrB,UAAU,sBAAsB,KAC/B,MAAwF,CAAC;AAE5F,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MAA6D,CAAC;AAEjH;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,iBAAiB,EAC1B,gBAAgB,cAAc,EAC9B,WAAW,GAAG;;;CAyBf,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CountOptions, EntityMetadata, FindAllOptions, FindOptions, RuleGroup } from '../../packages/rxdb/src/index.ts';
|
|
2
|
+
import { RxDBAdapterPGlite } from '../RxDBAdapterPGlite.js';
|
|
3
|
+
export interface GenerateSqlResult {
|
|
4
|
+
sql: string;
|
|
5
|
+
params: any[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Build WHERE clause from RuleGroup with PostgreSQL parameters
|
|
9
|
+
*/
|
|
10
|
+
export declare const buildRuleGroupPG: <RG extends RuleGroup<any, any, any>>(ruleGroup: RG, params: any[], fieldAliasMap?: Map<string, string>, entityMetadata?: EntityMetadata) => string;
|
|
11
|
+
/**
|
|
12
|
+
* Generate find SQL
|
|
13
|
+
*/
|
|
14
|
+
export declare const generate_find_sql: (adapter: RxDBAdapterPGlite, metadata: EntityMetadata, options: FindOptions | FindAllOptions) => GenerateSqlResult;
|
|
15
|
+
/**
|
|
16
|
+
* Generate count SQL
|
|
17
|
+
*/
|
|
18
|
+
export declare const generate_count_sql: (adapter: RxDBAdapterPGlite, metadata: EntityMetadata, options: CountOptions) => GenerateSqlResult;
|
|
19
|
+
//# 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,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EAGX,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAY5D,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,GAAG,EAAE,CAAC;CACf;AA+KD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAClE,WAAW,EAAE,EACb,QAAQ,GAAG,EAAE,EACb,gBAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,EAC9C,iBAAiB,cAAc,KAC9B,MAcF,CAAC;AAkDF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,WAAW,GAAG,cAAc,KACpC,iBAyBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,YAAY,KACpB,iBAoBF,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EntityMetadata, FindTreeOptions } from '../../packages/rxdb/src/index.ts';
|
|
2
|
+
import { SetOptional } from 'type-fest';
|
|
3
|
+
import { RxDBAdapterPGlite } from '../RxDBAdapterPGlite.js';
|
|
4
|
+
import { GenerateSqlResult } from './query_sql.js';
|
|
5
|
+
interface TreeOptions extends SetOptional<FindTreeOptions, 'entityId'> {
|
|
6
|
+
/**
|
|
7
|
+
* 是否是查询数量
|
|
8
|
+
*/
|
|
9
|
+
isCount?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* 查询子孙节点
|
|
12
|
+
*/
|
|
13
|
+
isFindDescendants?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 生成树查询 SQL (使用 PostgreSQL 的递归 CTE)
|
|
17
|
+
*/
|
|
18
|
+
export declare const generate_tree_sql: (adapter: RxDBAdapterPGlite, metadata: EntityMetadata, options: TreeOptions) => GenerateSqlResult;
|
|
19
|
+
/**
|
|
20
|
+
* 查询子孙节点
|
|
21
|
+
*/
|
|
22
|
+
export declare const generate_entity_find_descendants_sql: (adapter: RxDBAdapterPGlite, metadata: EntityMetadata, options: FindTreeOptions) => GenerateSqlResult;
|
|
23
|
+
/**
|
|
24
|
+
* 查询子孙节点数量
|
|
25
|
+
*/
|
|
26
|
+
export declare const generate_entity_count_descendants_sql: (adapter: RxDBAdapterPGlite, metadata: EntityMetadata, options: FindTreeOptions) => GenerateSqlResult;
|
|
27
|
+
/**
|
|
28
|
+
* 查询祖先节点
|
|
29
|
+
*/
|
|
30
|
+
export declare const generate_entity_find_ancestors_sql: (adapter: RxDBAdapterPGlite, metadata: EntityMetadata, options: FindTreeOptions) => GenerateSqlResult;
|
|
31
|
+
/**
|
|
32
|
+
* 查询祖先节点数量
|
|
33
|
+
*/
|
|
34
|
+
export declare const generate_entity_count_ancestors_sql: (adapter: RxDBAdapterPGlite, metadata: EntityMetadata, options: FindTreeOptions) => GenerateSqlResult;
|
|
35
|
+
export {};
|
|
36
|
+
//# 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,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAoB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErE,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,GAC5B,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,WAAW,KACnB,iBA4EF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAC/C,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,eAAe,sBACwD,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,qCAAqC,GAChD,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,eAAe,sBACuE,CAAC;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,GAC7C,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,eAAe,sBACyD,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,mCAAmC,GAC9C,SAAS,iBAAiB,EAC1B,UAAU,cAAc,EACxB,SAAS,eAAe,sBACwE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CountOptions, EntityType, FindAllOptions, FindOptions, IRepository } from '../../packages/rxdb/src/index.ts';
|
|
2
|
+
import { PGliteRepositoryBase } from './PGliteRepositoryBase.js';
|
|
3
|
+
export declare class PGliteRepository<T extends EntityType> extends PGliteRepositoryBase<T> implements IRepository<T> {
|
|
4
|
+
find(options: FindOptions): Promise<InstanceType<T>[]>;
|
|
5
|
+
findAll(options: FindAllOptions): Promise<InstanceType<T>[]>;
|
|
6
|
+
count(options: CountOptions): Promise<number>;
|
|
7
|
+
create(entity: InstanceType<T>): Promise<InstanceType<T>>;
|
|
8
|
+
update(entity: InstanceType<T>, patch: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
|
|
9
|
+
remove(entity: InstanceType<T>): Promise<InstanceType<T>>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=PGliteRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PGliteRepository.d.ts","sourceRoot":"","sources":["../../src/repository/PGliteRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKhG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,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;IAMtD,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAM5D,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAM7C,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;CAKhE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EntityMetadata, EntityType, RepositoryBase } from '../../packages/rxdb/src/index.ts';
|
|
2
|
+
import { Results } from '@electric-sql/pglite';
|
|
3
|
+
import { RxDBAdapterPGlite } from '../RxDBAdapterPGlite.js';
|
|
4
|
+
export declare class PGliteRepositoryBase<T extends EntityType> extends RepositoryBase<T> {
|
|
5
|
+
protected adapter: RxDBAdapterPGlite;
|
|
6
|
+
readonly metadata: EntityMetadata;
|
|
7
|
+
constructor(adapter: RxDBAdapterPGlite, EntityType: T);
|
|
8
|
+
protected addQueryCache(result: Results<any>, forcedUpdate?: boolean): InstanceType<T>[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=PGliteRepositoryBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PGliteRepositoryBase.d.ts","sourceRoot":"","sources":["../../src/repository/PGliteRepositoryBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAsC,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,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;IAMf,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,YAAY,UAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE;CAiBvF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EntityType, FindTreeOptions, ITreeRepository } from '../../packages/rxdb/src/index.ts';
|
|
2
|
+
import { PGliteRepository } from './PGliteRepository.js';
|
|
3
|
+
/**
|
|
4
|
+
* PGlite Tree Entity Repository
|
|
5
|
+
* 支持树形结构实体的递归查询
|
|
6
|
+
*/
|
|
7
|
+
export declare class PGliteTreeRepository<T extends EntityType> extends PGliteRepository<T> implements ITreeRepository<T> {
|
|
8
|
+
findDescendants(options: FindTreeOptions<T>): Promise<InstanceType<T>[]>;
|
|
9
|
+
countDescendants(options: FindTreeOptions<T>): Promise<number>;
|
|
10
|
+
findAncestors(options: FindTreeOptions<T>): Promise<InstanceType<T>[]>;
|
|
11
|
+
countAncestors(options: FindTreeOptions<T>): Promise<number>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=PGliteTreeRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PGliteTreeRepository.d.ts","sourceRoot":"","sources":["../../src/repository/PGliteTreeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQ1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;GAGG;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;IAgBxE,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAU9D,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAgBtE,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAQnE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RxDBAdapterPGlite } from './RxDBAdapterPGlite.js';
|
|
2
|
+
/**
|
|
3
|
+
* 创建分支
|
|
4
|
+
*/
|
|
5
|
+
declare const _default: (adapter: RxDBAdapterPGlite, branchId: string, fromChangeId?: number) => Promise<void>;
|
|
6
|
+
export default _default;
|
|
7
|
+
//# sourceMappingURL=rxdb_adapter_create_branch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rxdb_adapter_create_branch.d.ts","sourceRoot":"","sources":["../src/rxdb_adapter_create_branch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;GAEG;yBACmB,SAAS,iBAAiB,EAAE,UAAU,MAAM,EAAE,eAAe,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;AAAzG,wBAiEE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { UUID } from '../packages/rxdb/src/index.ts';
|
|
2
|
+
import { RxDBAdapterPGlite } from './RxDBAdapterPGlite.js';
|
|
3
|
+
/**
|
|
4
|
+
* 切换事务 ID
|
|
5
|
+
*
|
|
6
|
+
* 生成 SQL 语句来重新创建所有实体表的触发器,注入新的事务 ID
|
|
7
|
+
*
|
|
8
|
+
* 注意:虽然理论上 PostgreSQL 可以通过修改 RxDBChange 表的列默认值来实现,
|
|
9
|
+
* 但由于事务中的触发器事件会导致 "cannot ALTER TABLE because it has pending trigger events" 错误,
|
|
10
|
+
* 因此我们必须采用与 SQLite 相同的方案:动态重建触发器
|
|
11
|
+
*
|
|
12
|
+
* @param adapter - PGlite 适配器实例
|
|
13
|
+
* @param branchId - 分支 ID
|
|
14
|
+
* @param transactionId - 事务 ID(可选,不传则清空)
|
|
15
|
+
* @returns SQL 语句数组(因为在事务中 query() 方法不支持多条语句)
|
|
16
|
+
*/
|
|
17
|
+
export default function rxdb_adapter_switch_transaction_id(adapter: RxDBAdapterPGlite, branchId: string, transactionId?: UUID): string[];
|
|
18
|
+
//# 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,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,kCAAkC,CACxD,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,IAAI,GACnB,MAAM,EAAE,CAiBV"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { EntityMetadata } from '../../packages/rxdb/src/index.ts';
|
|
2
|
+
import { RxDBAdapterPGlite } from '../RxDBAdapterPGlite.js';
|
|
3
|
+
declare const _default: (adapter: RxDBAdapterPGlite, metadata: EntityMetadata) => string;
|
|
4
|
+
export default _default;
|
|
5
|
+
//# 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;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;yBAoK5C,SAAS,iBAAiB,EAAE,UAAU,cAAc;AAApE,wBAKE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { EntityMetadata } from '../../packages/rxdb/src/index.ts';
|
|
2
|
+
/**
|
|
3
|
+
* 触发器选项
|
|
4
|
+
*/
|
|
5
|
+
interface TriggerOptions {
|
|
6
|
+
/** 分支 ID (默认 'main') */
|
|
7
|
+
branchId?: string;
|
|
8
|
+
/** 事务 ID (可选,用于事务内的变更追踪) */
|
|
9
|
+
transactionId?: string;
|
|
10
|
+
/** 父变更 ID (用于分支管理) */
|
|
11
|
+
parentId?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 生成 PostgreSQL 触发器 SQL
|
|
15
|
+
*
|
|
16
|
+
* 为实体表生成 INSERT/UPDATE/DELETE 触发器,自动记录所有数据变更到 RxDBChange 表
|
|
17
|
+
* PostgreSQL 触发器需要先创建触发器函数,然后创建触发器本身
|
|
18
|
+
*
|
|
19
|
+
* 注意:由于 PostgreSQL 事务限制(pending trigger events),
|
|
20
|
+
* 我们无法通过修改列默认值来动态设置 transactionId,
|
|
21
|
+
* 必须在触发器中硬编码,并在每次切换时重建触发器(与 SQLite 方案一致)
|
|
22
|
+
*
|
|
23
|
+
* @param entityMetadata - 实体元数据
|
|
24
|
+
* @param options - 触发器选项
|
|
25
|
+
* @returns 完整的触发器 SQL 语句
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const sql = generate_trigger_sql(todoMetadata);
|
|
30
|
+
* await adapter.exec(sql);
|
|
31
|
+
*
|
|
32
|
+
* // 在事务中使用
|
|
33
|
+
* const sqlWithTx = generate_trigger_sql(todoMetadata, { transactionId: 'tx-123' });
|
|
34
|
+
* await adapter.exec(sqlWithTx);
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function generate_trigger_sql(entityMetadata: EntityMetadata, options?: TriggerOptions): string;
|
|
38
|
+
export default generate_trigger_sql;
|
|
39
|
+
//# 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;AAG3E;;GAEG;AACH,UAAU,cAAc;IACtB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,CAoHzG;AAED,eAAe,oBAAoB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiao/rxdb-adapter-pglite",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -27,10 +27,12 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"rxjs": "^7.8.2",
|
|
29
29
|
"@electric-sql/pglite": "^0.3.9",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
30
|
+
"object-hash": "^3.0.0",
|
|
31
|
+
"type-fest": "^5.1.0",
|
|
32
|
+
"@aiao/rxdb": "0.0.6",
|
|
33
|
+
"@aiao/utils": "0.0.6"
|
|
32
34
|
},
|
|
33
35
|
"devDependencies": {
|
|
34
|
-
"@aiao/rxdb-test": "0.0.
|
|
36
|
+
"@aiao/rxdb-test": "0.0.6"
|
|
35
37
|
}
|
|
36
38
|
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { EntityMetadata } from '@aiao/rxdb';
|
|
2
|
-
import { RxDBAdapterPGlite } from './RxDBAdapterPGlite.js';
|
|
3
|
-
declare const _default: (adapter: RxDBAdapterPGlite, metadata: EntityMetadata) => string;
|
|
4
|
-
export default _default;
|
|
5
|
-
//# sourceMappingURL=generate_table_create_sql.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate_table_create_sql.d.ts","sourceRoot":"","sources":["../src/generate_table_create_sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;yBAqE3C,SAAS,iBAAiB,EAAE,UAAU,cAAc;AAApE,wBAKE"}
|