@undefineds.co/drizzle-solid 0.2.6 → 0.2.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.
- package/dist/core/execution/ldp-executor.d.ts.map +1 -1
- package/dist/core/execution/ldp-executor.js +59 -10
- package/dist/core/execution/ldp-executor.js.map +1 -1
- package/dist/core/execution/ldp-strategy.js +1 -1
- package/dist/core/execution/ldp-strategy.js.map +1 -1
- package/dist/core/execution/sparql-strategy.d.ts.map +1 -1
- package/dist/core/execution/sparql-strategy.js +25 -15
- package/dist/core/execution/sparql-strategy.js.map +1 -1
- package/dist/core/federated/executor.d.ts +3 -0
- package/dist/core/federated/executor.d.ts.map +1 -1
- package/dist/core/federated/executor.js +13 -8
- package/dist/core/federated/executor.js.map +1 -1
- package/dist/core/query-builders/select-query-builder.d.ts +7 -0
- package/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
- package/dist/core/query-builders/select-query-builder.js +69 -14
- package/dist/core/query-builders/select-query-builder.js.map +1 -1
- package/dist/core/resource-resolver/base-resolver.d.ts +74 -3
- package/dist/core/resource-resolver/base-resolver.d.ts.map +1 -1
- package/dist/core/resource-resolver/base-resolver.js +221 -0
- package/dist/core/resource-resolver/base-resolver.js.map +1 -1
- package/dist/core/resource-resolver/document-resolver.d.ts +19 -4
- package/dist/core/resource-resolver/document-resolver.d.ts.map +1 -1
- package/dist/core/resource-resolver/document-resolver.js +72 -34
- package/dist/core/resource-resolver/document-resolver.js.map +1 -1
- package/dist/core/resource-resolver/fragment-resolver.d.ts +17 -3
- package/dist/core/resource-resolver/fragment-resolver.d.ts.map +1 -1
- package/dist/core/resource-resolver/fragment-resolver.js +28 -16
- package/dist/core/resource-resolver/fragment-resolver.js.map +1 -1
- package/dist/core/resource-resolver/types.d.ts +1 -1
- package/dist/core/resource-resolver/types.d.ts.map +1 -1
- package/dist/core/schema/pod-table.d.ts +6 -0
- package/dist/core/schema/pod-table.d.ts.map +1 -1
- package/dist/core/schema/pod-table.js +18 -9
- package/dist/core/schema/pod-table.js.map +1 -1
- package/dist/core/sparql/builder/expression-builder.d.ts +1 -0
- package/dist/core/sparql/builder/expression-builder.d.ts.map +1 -1
- package/dist/core/sparql/builder/expression-builder.js +50 -7
- package/dist/core/sparql/builder/expression-builder.js.map +1 -1
- package/dist/core/subject/resolver.d.ts +19 -0
- package/dist/core/subject/resolver.d.ts.map +1 -1
- package/dist/core/subject/resolver.js +75 -19
- package/dist/core/subject/resolver.js.map +1 -1
- package/dist/core/triple/builder.d.ts.map +1 -1
- package/dist/core/triple/builder.js +38 -1
- package/dist/core/triple/builder.js.map +1 -1
- package/dist/core/triple/handlers/inverse.d.ts +6 -2
- package/dist/core/triple/handlers/inverse.d.ts.map +1 -1
- package/dist/core/triple/handlers/inverse.js +37 -16
- package/dist/core/triple/handlers/inverse.js.map +1 -1
- package/dist/core/uri/resolver.d.ts +66 -2
- package/dist/core/uri/resolver.d.ts.map +1 -1
- package/dist/core/uri/resolver.js +218 -80
- package/dist/core/uri/resolver.js.map +1 -1
- package/dist/core/uri/types.d.ts +11 -1
- package/dist/core/uri/types.d.ts.map +1 -1
- package/dist/esm/core/execution/ldp-executor.d.ts.map +1 -1
- package/dist/esm/core/execution/ldp-executor.js +59 -10
- package/dist/esm/core/execution/ldp-executor.js.map +1 -1
- package/dist/esm/core/execution/ldp-strategy.js +1 -1
- package/dist/esm/core/execution/ldp-strategy.js.map +1 -1
- package/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
- package/dist/esm/core/execution/sparql-strategy.js +25 -15
- package/dist/esm/core/execution/sparql-strategy.js.map +1 -1
- package/dist/esm/core/federated/executor.d.ts +3 -0
- package/dist/esm/core/federated/executor.d.ts.map +1 -1
- package/dist/esm/core/federated/executor.js +13 -8
- package/dist/esm/core/federated/executor.js.map +1 -1
- package/dist/esm/core/query-builders/select-query-builder.d.ts +7 -0
- package/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
- package/dist/esm/core/query-builders/select-query-builder.js +69 -14
- package/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
- package/dist/esm/core/resource-resolver/base-resolver.d.ts +74 -3
- package/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -1
- package/dist/esm/core/resource-resolver/base-resolver.js +221 -0
- package/dist/esm/core/resource-resolver/base-resolver.js.map +1 -1
- package/dist/esm/core/resource-resolver/document-resolver.d.ts +19 -4
- package/dist/esm/core/resource-resolver/document-resolver.d.ts.map +1 -1
- package/dist/esm/core/resource-resolver/document-resolver.js +72 -34
- package/dist/esm/core/resource-resolver/document-resolver.js.map +1 -1
- package/dist/esm/core/resource-resolver/fragment-resolver.d.ts +17 -3
- package/dist/esm/core/resource-resolver/fragment-resolver.d.ts.map +1 -1
- package/dist/esm/core/resource-resolver/fragment-resolver.js +28 -16
- package/dist/esm/core/resource-resolver/fragment-resolver.js.map +1 -1
- package/dist/esm/core/resource-resolver/types.d.ts +1 -1
- package/dist/esm/core/resource-resolver/types.d.ts.map +1 -1
- package/dist/esm/core/schema/pod-table.d.ts +6 -0
- package/dist/esm/core/schema/pod-table.d.ts.map +1 -1
- package/dist/esm/core/schema/pod-table.js +18 -9
- package/dist/esm/core/schema/pod-table.js.map +1 -1
- package/dist/esm/core/sparql/builder/expression-builder.d.ts +1 -0
- package/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -1
- package/dist/esm/core/sparql/builder/expression-builder.js +50 -7
- package/dist/esm/core/sparql/builder/expression-builder.js.map +1 -1
- package/dist/esm/core/subject/resolver.d.ts +19 -0
- package/dist/esm/core/subject/resolver.d.ts.map +1 -1
- package/dist/esm/core/subject/resolver.js +75 -19
- package/dist/esm/core/subject/resolver.js.map +1 -1
- package/dist/esm/core/triple/builder.d.ts.map +1 -1
- package/dist/esm/core/triple/builder.js +38 -1
- package/dist/esm/core/triple/builder.js.map +1 -1
- package/dist/esm/core/triple/handlers/inverse.d.ts +6 -2
- package/dist/esm/core/triple/handlers/inverse.d.ts.map +1 -1
- package/dist/esm/core/triple/handlers/inverse.js +37 -16
- package/dist/esm/core/triple/handlers/inverse.js.map +1 -1
- package/dist/esm/core/uri/resolver.d.ts +66 -2
- package/dist/esm/core/uri/resolver.d.ts.map +1 -1
- package/dist/esm/core/uri/resolver.js +218 -80
- package/dist/esm/core/uri/resolver.js.map +1 -1
- package/dist/esm/core/uri/types.d.ts +11 -1
- package/dist/esm/core/uri/types.d.ts.map +1 -1
- package/package.json +5 -1
- package/CHANGELOG-DRAFT.md +0 -444
|
@@ -14,9 +14,13 @@ import type { ColumnHandler, RdfTerm, BuildResult, BuildContext } from '../types
|
|
|
14
14
|
export declare class InverseHandler implements ColumnHandler {
|
|
15
15
|
readonly name = "inverse";
|
|
16
16
|
canHandle(column: PodColumnBase): boolean;
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* 将 BuildContext 转换为 UriContext
|
|
19
|
+
*/
|
|
20
|
+
private toUriContext;
|
|
21
|
+
formatValue(value: unknown, column: PodColumnBase, context?: BuildContext): RdfTerm;
|
|
18
22
|
private isUri;
|
|
19
23
|
parseValue(term: RdfTerm, _column: PodColumnBase): unknown;
|
|
20
|
-
buildTriples(subject: string, predicate: string, value: unknown, column: PodColumnBase, _table: PodTable,
|
|
24
|
+
buildTriples(subject: string, predicate: string, value: unknown, column: PodColumnBase, _table: PodTable, context: BuildContext): BuildResult;
|
|
21
25
|
}
|
|
22
26
|
//# sourceMappingURL=inverse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inverse.d.ts","sourceRoot":"","sources":["../../../../../src/core/triple/handlers/inverse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"inverse.d.ts","sourceRoot":"","sources":["../../../../../src/core/triple/handlers/inverse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAMlF;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,aAAa;IAE1B,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIzC;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO;IA8BnF,OAAO,CAAC,KAAK;IAKb,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO;IAI1D,YAAY,CACV,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,YAAY,GACpB,WAAW;CAoBf"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 处理逆向谓词列,交换 subject 和 object 位置
|
|
5
5
|
*/
|
|
6
|
+
import { UriResolverImpl } from '../../uri';
|
|
6
7
|
const XSD = 'http://www.w3.org/2001/XMLSchema#';
|
|
7
8
|
/**
|
|
8
9
|
* 逆向谓词处理器
|
|
@@ -17,9 +18,32 @@ export class InverseHandler {
|
|
|
17
18
|
canHandle(column) {
|
|
18
19
|
return column.options?.inverse === true;
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
/**
|
|
22
|
+
* 将 BuildContext 转换为 UriContext
|
|
23
|
+
*/
|
|
24
|
+
toUriContext(context) {
|
|
25
|
+
if (!context)
|
|
26
|
+
return undefined;
|
|
27
|
+
return {
|
|
28
|
+
baseUri: context.baseUri,
|
|
29
|
+
tableRegistry: context.tableRegistry,
|
|
30
|
+
tableNameRegistry: context.tableNameRegistry,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
formatValue(value, column, context) {
|
|
34
|
+
// 如果是 URI 引用类型,使用 UriResolver 解析
|
|
35
|
+
if (column.options?.referenceTarget || column.dataType === 'uri' || column.isReference?.()) {
|
|
36
|
+
const uri = String(value);
|
|
37
|
+
const uriContext = this.toUriContext(context);
|
|
38
|
+
const resolver = context?.uriResolver ?? new UriResolverImpl();
|
|
39
|
+
const resolved = resolver.resolveReference(uri, column, uriContext);
|
|
40
|
+
return {
|
|
41
|
+
termType: 'NamedNode',
|
|
42
|
+
value: resolved,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// 如果是普通 URI 字符串
|
|
46
|
+
if (this.isUri(value)) {
|
|
23
47
|
return {
|
|
24
48
|
termType: 'NamedNode',
|
|
25
49
|
value: String(value),
|
|
@@ -40,25 +64,22 @@ export class InverseHandler {
|
|
|
40
64
|
parseValue(term, _column) {
|
|
41
65
|
return term.value;
|
|
42
66
|
}
|
|
43
|
-
buildTriples(subject, predicate, value, column, _table,
|
|
67
|
+
buildTriples(subject, predicate, value, column, _table, context) {
|
|
44
68
|
const values = Array.isArray(value)
|
|
45
69
|
? value
|
|
46
70
|
: (typeof value === 'string' && value.includes(','))
|
|
47
71
|
? value.split(',').map((v) => v.trim()).filter(Boolean)
|
|
48
72
|
: [value];
|
|
49
|
-
const triples = values.map((v) =>
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
73
|
+
const triples = values.map((v) => {
|
|
74
|
+
// 使用 formatValue 来正确处理 URI 解析
|
|
75
|
+
const objectTerm = this.formatValue(v, column, context);
|
|
76
|
+
return {
|
|
77
|
+
subject: objectTerm, // 逆向:引用值作为 subject
|
|
78
|
+
predicate: { termType: 'NamedNode', value: predicate },
|
|
79
|
+
object: { termType: 'NamedNode', value: subject } // 当前记录作为 object
|
|
80
|
+
};
|
|
81
|
+
});
|
|
54
82
|
return { triples };
|
|
55
83
|
}
|
|
56
84
|
}
|
|
57
|
-
function toIriString(raw) {
|
|
58
|
-
const str = typeof raw === 'string' ? raw.replace(/^\"|\"$/g, '') : String(raw);
|
|
59
|
-
if (str.startsWith('<') && str.endsWith('>')) {
|
|
60
|
-
return str.slice(1, -1);
|
|
61
|
-
}
|
|
62
|
-
return str;
|
|
63
|
-
}
|
|
64
85
|
//# sourceMappingURL=inverse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inverse.js","sourceRoot":"","sources":["../../../../../src/core/triple/handlers/inverse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,GAAG,GAAG,mCAAmC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAA3B;QACW,SAAI,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"inverse.js","sourceRoot":"","sources":["../../../../../src/core/triple/handlers/inverse.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
* 统一的 URI 生成和解析
|
|
5
5
|
* 整合了 Subject URI 和 Object/Reference URI 的解析逻辑
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* 设计原则:
|
|
8
|
+
* - 无状态,所有需要的上下文都通过参数传入
|
|
9
|
+
* - 统一使用 base + subjectTemplate 来生成和解析 URI
|
|
10
|
+
* - 不再区分 document/fragment 模式,模式由 template 自然表达
|
|
8
11
|
*/
|
|
9
12
|
import type { PodTable, PodColumnBase } from '../schema';
|
|
10
13
|
import type { UriResolver, UriContext, ResourceMode, ParsedSubject } from './types';
|
|
@@ -17,10 +20,28 @@ export declare class UriResolverImpl implements UriResolver {
|
|
|
17
20
|
private podUrl;
|
|
18
21
|
constructor(podUrl?: string);
|
|
19
22
|
setPodUrl(podUrl: string): void;
|
|
20
|
-
|
|
23
|
+
/**
|
|
24
|
+
* 解析 subject URI
|
|
25
|
+
* @param table 表定义
|
|
26
|
+
* @param record 记录数据
|
|
27
|
+
* @param index 可选的行索引
|
|
28
|
+
* @param options.strict 是否严格模式(默认 true)。false 时允许部分解析,用于查询场景
|
|
29
|
+
*/
|
|
30
|
+
resolveSubject(table: PodTable, record: Record<string, unknown>, index?: number, options?: {
|
|
31
|
+
strict?: boolean;
|
|
32
|
+
}): string;
|
|
21
33
|
parseSubject(uri: string, table: PodTable): ParsedSubject | null;
|
|
22
34
|
getResourceUrl(subjectUri: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* 判断资源模式
|
|
37
|
+
* 简化版:直接从 subjectTemplate 判断
|
|
38
|
+
*/
|
|
23
39
|
getResourceMode(table: PodTable): ResourceMode;
|
|
40
|
+
/**
|
|
41
|
+
* 获取默认模板
|
|
42
|
+
* 根据 base 是否以 / 结尾判断
|
|
43
|
+
* 与 PodTable.buildDefaultSubjectTemplate 保持一致
|
|
44
|
+
*/
|
|
24
45
|
getDefaultPattern(table: PodTable): string;
|
|
25
46
|
resolveInlineChild(parentSubject: string, columnName: string, value: Record<string, unknown>, index: number): string;
|
|
26
47
|
isSingleton(table: PodTable): boolean;
|
|
@@ -35,8 +56,20 @@ export declare class UriResolverImpl implements UriResolver {
|
|
|
35
56
|
isAbsoluteUri(value: string): boolean;
|
|
36
57
|
isReferenceColumn(column: PodColumnBase | any): boolean;
|
|
37
58
|
findTargetTable(column: PodColumnBase | any, context?: UriContext): PodTable | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* 从引用 URI 中提取 ID
|
|
61
|
+
*
|
|
62
|
+
* 用于读取时将完整 URI 转换回简单 ID
|
|
63
|
+
*
|
|
64
|
+
* @param uri 完整的 URI (如 http://pod/.data/chat/chat-123/index.ttl#this)
|
|
65
|
+
* @param column 引用列定义
|
|
66
|
+
* @param context URI 上下文(包含表注册表)
|
|
67
|
+
* @returns 提取的 ID (如 chat-123),如果无法解析则返回原 URI
|
|
68
|
+
*/
|
|
69
|
+
extractReferenceId(uri: string, column: PodColumnBase | any, context?: UriContext): string;
|
|
38
70
|
/**
|
|
39
71
|
* 从表获取基础 URL 和 subject template 信息
|
|
72
|
+
* 简化版:统一使用 base + subjectTemplate
|
|
40
73
|
*/
|
|
41
74
|
private getTableUriInfo;
|
|
42
75
|
/**
|
|
@@ -49,6 +82,7 @@ export declare class UriResolverImpl implements UriResolver {
|
|
|
49
82
|
private getEffectivePattern;
|
|
50
83
|
/**
|
|
51
84
|
* 获取 Subject base URL
|
|
85
|
+
* 简化版:统一使用 table.config.base
|
|
52
86
|
*/
|
|
53
87
|
private getSubjectBaseUrl;
|
|
54
88
|
/**
|
|
@@ -59,8 +93,18 @@ export declare class UriResolverImpl implements UriResolver {
|
|
|
59
93
|
* 合并 base 和 pattern
|
|
60
94
|
*/
|
|
61
95
|
private combineBaseAndPattern;
|
|
96
|
+
/**
|
|
97
|
+
* 将列值归一化为适合模板使用的字符串
|
|
98
|
+
* 特别处理:如果是引用列且值为 URI,则尝试提取 ID
|
|
99
|
+
*/
|
|
100
|
+
normalizeValue(value: unknown, column?: PodColumnBase, context?: UriContext): string;
|
|
62
101
|
/**
|
|
63
102
|
* 应用模板变量
|
|
103
|
+
* @param template 模板字符串
|
|
104
|
+
* @param record 记录数据
|
|
105
|
+
* @param index 可选的行索引
|
|
106
|
+
* @param table 可选的表定义
|
|
107
|
+
* @param strict 是否严格模式(默认 true)。false 时缺少字段返回 null,不抛出异常
|
|
64
108
|
*/
|
|
65
109
|
private applyTemplate;
|
|
66
110
|
/**
|
|
@@ -69,11 +113,31 @@ export declare class UriResolverImpl implements UriResolver {
|
|
|
69
113
|
private createTimeContext;
|
|
70
114
|
/**
|
|
71
115
|
* 生成回退 URI
|
|
116
|
+
* 简化版:根据 template 判断模式
|
|
72
117
|
*/
|
|
73
118
|
private generateFallbackUri;
|
|
74
119
|
/**
|
|
75
120
|
* 从 URI 提取 ID
|
|
121
|
+
*
|
|
122
|
+
* 简化版:统一使用 base + subjectTemplate 反向解析
|
|
123
|
+
*
|
|
124
|
+
* 例如:
|
|
125
|
+
* - uri = "http://pod/.data/chat/chat-123/index.ttl#this"
|
|
126
|
+
* - base = "http://pod/.data/chat/"
|
|
127
|
+
* - relativePath = "chat-123/index.ttl#this"
|
|
128
|
+
* - template = "{id}/index.ttl#this"
|
|
129
|
+
* - id = "chat-123"
|
|
76
130
|
*/
|
|
77
131
|
private extractId;
|
|
132
|
+
/**
|
|
133
|
+
* 从相对路径反向解析出 id
|
|
134
|
+
*
|
|
135
|
+
* 将模板转为正则表达式,提取 {id} 对应的值
|
|
136
|
+
*
|
|
137
|
+
* @param relativePath 相对路径 (如 "chat-123/index.ttl#this")
|
|
138
|
+
* @param template 模板 (如 "{id}/index.ttl#this")
|
|
139
|
+
* @returns 提取的 id (如 "chat-123"),解析失败返回 null
|
|
140
|
+
*/
|
|
141
|
+
private extractIdFromTemplate;
|
|
78
142
|
}
|
|
79
143
|
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/core/uri/resolver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/core/uri/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,aAAa,EAEd,MAAM,SAAS,CAAC;AAYjB;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,MAAW;IAM/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM/B;;;;;;OAMG;IACH,cAAc,CACZ,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,MAAM;IA2CT,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI;IAqBhE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAK1C;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,YAAY;IAY9C;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAU1C,kBAAkB,CAChB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,GACZ,MAAM;IAYT,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAkBrC;;;;;;OAMG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IA0GpF,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAcrC,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,GAAG,GAAG,OAAO;IASvD,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS;IA4BxF;;;;;;;;;OASG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IAuB1F;;;OAGG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IAepF;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAiErB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,SAAS;IAsCjB;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;CAmC9B"}
|