@onchaindb/sdk 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/README.md +475 -0
- package/dist/batch.d.ts +42 -0
- package/dist/batch.d.ts.map +1 -0
- package/dist/batch.js +124 -0
- package/dist/batch.js.map +1 -0
- package/dist/client.d.ts +93 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +679 -0
- package/dist/client.js.map +1 -0
- package/dist/database.d.ts +194 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +211 -0
- package/dist/database.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/query-sdk/ConditionBuilder.d.ts +23 -0
- package/dist/query-sdk/ConditionBuilder.d.ts.map +1 -0
- package/dist/query-sdk/ConditionBuilder.js +76 -0
- package/dist/query-sdk/ConditionBuilder.js.map +1 -0
- package/dist/query-sdk/FieldConditionBuilder.d.ts +2 -0
- package/dist/query-sdk/FieldConditionBuilder.d.ts.map +1 -0
- package/dist/query-sdk/FieldConditionBuilder.js +6 -0
- package/dist/query-sdk/FieldConditionBuilder.js.map +1 -0
- package/dist/query-sdk/NestedBuilders.d.ts +44 -0
- package/dist/query-sdk/NestedBuilders.d.ts.map +1 -0
- package/dist/query-sdk/NestedBuilders.js +131 -0
- package/dist/query-sdk/NestedBuilders.js.map +1 -0
- package/dist/query-sdk/OnChainDB.d.ts +27 -0
- package/dist/query-sdk/OnChainDB.d.ts.map +1 -0
- package/dist/query-sdk/OnChainDB.js +191 -0
- package/dist/query-sdk/OnChainDB.js.map +1 -0
- package/dist/query-sdk/PrismaLikeClient.d.ts +41 -0
- package/dist/query-sdk/PrismaLikeClient.d.ts.map +1 -0
- package/dist/query-sdk/PrismaLikeClient.js +202 -0
- package/dist/query-sdk/PrismaLikeClient.js.map +1 -0
- package/dist/query-sdk/QueryBuilder.d.ts +155 -0
- package/dist/query-sdk/QueryBuilder.d.ts.map +1 -0
- package/dist/query-sdk/QueryBuilder.js +757 -0
- package/dist/query-sdk/QueryBuilder.js.map +1 -0
- package/dist/query-sdk/QueryResult.d.ts +53 -0
- package/dist/query-sdk/QueryResult.d.ts.map +1 -0
- package/dist/query-sdk/QueryResult.js +267 -0
- package/dist/query-sdk/QueryResult.js.map +1 -0
- package/dist/query-sdk/SelectionBuilder.d.ts +21 -0
- package/dist/query-sdk/SelectionBuilder.d.ts.map +1 -0
- package/dist/query-sdk/SelectionBuilder.js +67 -0
- package/dist/query-sdk/SelectionBuilder.js.map +1 -0
- package/dist/query-sdk/adapters/HttpClientAdapter.d.ts +28 -0
- package/dist/query-sdk/adapters/HttpClientAdapter.d.ts.map +1 -0
- package/dist/query-sdk/adapters/HttpClientAdapter.js +206 -0
- package/dist/query-sdk/adapters/HttpClientAdapter.js.map +1 -0
- package/dist/query-sdk/index.d.ts +38 -0
- package/dist/query-sdk/index.d.ts.map +1 -0
- package/dist/query-sdk/index.js +28 -0
- package/dist/query-sdk/index.js.map +1 -0
- package/dist/query-sdk/operators.d.ts +57 -0
- package/dist/query-sdk/operators.d.ts.map +1 -0
- package/dist/query-sdk/operators.js +275 -0
- package/dist/query-sdk/operators.js.map +1 -0
- package/dist/types.d.ts +263 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +46 -0
- package/dist/types.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeHttpClient = exports.AxiosHttpClient = exports.FetchHttpClient = void 0;
|
|
4
|
+
exports.createHttpClient = createHttpClient;
|
|
5
|
+
class FetchHttpClient {
|
|
6
|
+
constructor(fetchImplementation) {
|
|
7
|
+
this.fetchFn = fetchImplementation || (globalThis.fetch?.bind(globalThis));
|
|
8
|
+
if (!this.fetchFn) {
|
|
9
|
+
throw new Error('Fetch is not available. Please provide a fetch implementation or use in an environment that supports fetch.');
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
async post(url, data, headers = {}) {
|
|
13
|
+
try {
|
|
14
|
+
const response = await this.fetchFn(url, {
|
|
15
|
+
method: 'POST',
|
|
16
|
+
headers: {
|
|
17
|
+
'Content-Type': 'application/json',
|
|
18
|
+
...headers,
|
|
19
|
+
},
|
|
20
|
+
body: JSON.stringify(data),
|
|
21
|
+
});
|
|
22
|
+
if (response.status === 402) {
|
|
23
|
+
const paymentData = await response.json();
|
|
24
|
+
return {
|
|
25
|
+
status: 402,
|
|
26
|
+
data: paymentData,
|
|
27
|
+
headers: Object.fromEntries(response.headers.entries())
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
if (!response.ok) {
|
|
31
|
+
const errorText = await response.text();
|
|
32
|
+
throw new Error(`HTTP ${response.status}: ${errorText}`);
|
|
33
|
+
}
|
|
34
|
+
const contentType = response.headers.get('content-type');
|
|
35
|
+
if (contentType && contentType.includes('application/json')) {
|
|
36
|
+
const jsonData = await response.json();
|
|
37
|
+
return {
|
|
38
|
+
status: response.status,
|
|
39
|
+
data: jsonData,
|
|
40
|
+
headers: Object.fromEntries(response.headers.entries())
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return {
|
|
45
|
+
status: response.status,
|
|
46
|
+
data: await response.text(),
|
|
47
|
+
headers: Object.fromEntries(response.headers.entries())
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
if (error instanceof Error) {
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
throw new Error(`Request failed: ${error}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.FetchHttpClient = FetchHttpClient;
|
|
60
|
+
class AxiosHttpClient {
|
|
61
|
+
constructor(axiosInstance) {
|
|
62
|
+
if (!axiosInstance) {
|
|
63
|
+
throw new Error('Axios instance is required');
|
|
64
|
+
}
|
|
65
|
+
this.axios = axiosInstance;
|
|
66
|
+
}
|
|
67
|
+
async post(url, data, headers = {}) {
|
|
68
|
+
try {
|
|
69
|
+
const response = await this.axios.post(url, data, {
|
|
70
|
+
headers: {
|
|
71
|
+
'Content-Type': 'application/json',
|
|
72
|
+
...headers,
|
|
73
|
+
},
|
|
74
|
+
validateStatus: (status) => status < 500
|
|
75
|
+
});
|
|
76
|
+
return {
|
|
77
|
+
status: response.status,
|
|
78
|
+
data: response.data,
|
|
79
|
+
headers: response.headers || {}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
if (error.response && error.response.status === 402) {
|
|
84
|
+
return {
|
|
85
|
+
status: 402,
|
|
86
|
+
data: error.response.data,
|
|
87
|
+
headers: error.response.headers || {}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
if (error.response) {
|
|
91
|
+
throw new Error(`HTTP ${error.response.status}: ${JSON.stringify(error.response.data)}`);
|
|
92
|
+
}
|
|
93
|
+
else if (error.request) {
|
|
94
|
+
throw new Error('No response received from server');
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
throw new Error(`Request setup error: ${error.message}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.AxiosHttpClient = AxiosHttpClient;
|
|
103
|
+
class NodeHttpClient {
|
|
104
|
+
constructor(timeout = 30000) {
|
|
105
|
+
this.timeout = timeout;
|
|
106
|
+
}
|
|
107
|
+
async post(url, data, headers = {}) {
|
|
108
|
+
return new Promise((resolve, reject) => {
|
|
109
|
+
const urlObj = new URL(url);
|
|
110
|
+
const isHttps = urlObj.protocol === 'https:';
|
|
111
|
+
const httpModule = isHttps ? require('https') : require('http');
|
|
112
|
+
const postData = JSON.stringify(data);
|
|
113
|
+
const options = {
|
|
114
|
+
hostname: urlObj.hostname,
|
|
115
|
+
port: urlObj.port || (isHttps ? 443 : 80),
|
|
116
|
+
path: urlObj.pathname + urlObj.search,
|
|
117
|
+
method: 'POST',
|
|
118
|
+
headers: {
|
|
119
|
+
'Content-Type': 'application/json',
|
|
120
|
+
'Content-Length': Buffer.byteLength(postData),
|
|
121
|
+
...headers,
|
|
122
|
+
},
|
|
123
|
+
timeout: this.timeout,
|
|
124
|
+
};
|
|
125
|
+
const req = httpModule.request(options, (res) => {
|
|
126
|
+
let responseData = '';
|
|
127
|
+
res.on('data', (chunk) => {
|
|
128
|
+
responseData += chunk;
|
|
129
|
+
});
|
|
130
|
+
res.on('end', () => {
|
|
131
|
+
try {
|
|
132
|
+
const contentType = res.headers['content-type'] || '';
|
|
133
|
+
let parsedData;
|
|
134
|
+
if (contentType.includes('application/json')) {
|
|
135
|
+
parsedData = JSON.parse(responseData);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
parsedData = responseData;
|
|
139
|
+
}
|
|
140
|
+
if (res.statusCode === 402) {
|
|
141
|
+
resolve({
|
|
142
|
+
status: 402,
|
|
143
|
+
data: parsedData,
|
|
144
|
+
headers: res.headers
|
|
145
|
+
});
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
|
|
149
|
+
resolve({
|
|
150
|
+
status: res.statusCode,
|
|
151
|
+
data: parsedData,
|
|
152
|
+
headers: res.headers
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
reject(new Error(`HTTP ${res.statusCode}: ${responseData}`));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
reject(new Error(`Failed to parse response: ${error}`));
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
req.on('error', (error) => {
|
|
165
|
+
reject(new Error(`Request failed: ${error.message}`));
|
|
166
|
+
});
|
|
167
|
+
req.on('timeout', () => {
|
|
168
|
+
req.destroy();
|
|
169
|
+
reject(new Error(`Request timed out after ${this.timeout}ms`));
|
|
170
|
+
});
|
|
171
|
+
req.write(postData);
|
|
172
|
+
req.end();
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
exports.NodeHttpClient = NodeHttpClient;
|
|
177
|
+
function createHttpClient(options = {}) {
|
|
178
|
+
const { type, fetchImplementation, axiosInstance, timeout } = options;
|
|
179
|
+
if (!type) {
|
|
180
|
+
if (typeof globalThis !== 'undefined' && typeof globalThis.fetch === 'function') {
|
|
181
|
+
return new FetchHttpClient(fetchImplementation);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
if (typeof window !== 'undefined') {
|
|
185
|
+
throw new Error('Fetch is not available in this browser environment. Please provide a fetch implementation.');
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
return new NodeHttpClient(timeout);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
switch (type) {
|
|
193
|
+
case 'fetch':
|
|
194
|
+
return new FetchHttpClient(fetchImplementation);
|
|
195
|
+
case 'axios':
|
|
196
|
+
if (!axiosInstance) {
|
|
197
|
+
throw new Error('Axios instance is required when using axios client');
|
|
198
|
+
}
|
|
199
|
+
return new AxiosHttpClient(axiosInstance);
|
|
200
|
+
case 'node':
|
|
201
|
+
return new NodeHttpClient(timeout);
|
|
202
|
+
default:
|
|
203
|
+
throw new Error(`Unknown HTTP client type: ${type}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=HttpClientAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpClientAdapter.js","sourceRoot":"","sources":["../../../src/query-sdk/adapters/HttpClientAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export interface HttpClient {
|
|
2
|
+
post(url: string, data: any, headers?: Record<string, string>): Promise<any>;
|
|
3
|
+
}
|
|
4
|
+
export interface QueryValue {
|
|
5
|
+
find: any;
|
|
6
|
+
select: any;
|
|
7
|
+
include_history?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export type QueryRequest = QueryValue & {
|
|
10
|
+
limit?: number;
|
|
11
|
+
offset?: number;
|
|
12
|
+
sort?: string[];
|
|
13
|
+
};
|
|
14
|
+
export interface QueryResponse<T = any> {
|
|
15
|
+
records: T[];
|
|
16
|
+
total?: number;
|
|
17
|
+
error?: string;
|
|
18
|
+
}
|
|
19
|
+
export type SelectionMap = Record<string, any>;
|
|
20
|
+
export type FieldMap = Record<string, string>;
|
|
21
|
+
export type Val = string | number | boolean | null | Val[] | Date | RegExp;
|
|
22
|
+
export interface BetweenValue {
|
|
23
|
+
min: Val;
|
|
24
|
+
max: Val;
|
|
25
|
+
}
|
|
26
|
+
export interface DateRange {
|
|
27
|
+
start: Date | string | number;
|
|
28
|
+
end: Date | string | number;
|
|
29
|
+
}
|
|
30
|
+
export { OnChainDB } from './OnChainDB';
|
|
31
|
+
export { QueryBuilder, JoinBuilder, ServerJoinConfig, GroupByQueryBuilder } from './QueryBuilder';
|
|
32
|
+
export { SelectionBuilder } from './SelectionBuilder';
|
|
33
|
+
export { ConditionBuilder } from './ConditionBuilder';
|
|
34
|
+
export { FieldConditionBuilder, LogicalOperator, Condition } from './operators';
|
|
35
|
+
export { NestedConditionBuilder, NestedFieldConditionBuilder } from './NestedBuilders';
|
|
36
|
+
export { QueryResult, NumericSummary, createQueryResult } from './QueryResult';
|
|
37
|
+
export { FetchHttpClient, AxiosHttpClient, NodeHttpClient, createHttpClient } from './adapters/HttpClientAdapter';
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query-sdk/index.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACvB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAChF;AAGD,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAG9C,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC;AAG3E,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;CAC/B;AAGD,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,qBAAqB,EAAE,eAAe,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAC,sBAAsB,EAAE,2BAA2B,EAAC,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAG7E,OAAO,EACH,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EACnB,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createHttpClient = exports.NodeHttpClient = exports.AxiosHttpClient = exports.FetchHttpClient = exports.createQueryResult = exports.QueryResult = exports.NestedFieldConditionBuilder = exports.NestedConditionBuilder = exports.LogicalOperator = exports.FieldConditionBuilder = exports.ConditionBuilder = exports.SelectionBuilder = exports.GroupByQueryBuilder = exports.JoinBuilder = exports.QueryBuilder = exports.OnChainDB = void 0;
|
|
4
|
+
var OnChainDB_1 = require("./OnChainDB");
|
|
5
|
+
Object.defineProperty(exports, "OnChainDB", { enumerable: true, get: function () { return OnChainDB_1.OnChainDB; } });
|
|
6
|
+
var QueryBuilder_1 = require("./QueryBuilder");
|
|
7
|
+
Object.defineProperty(exports, "QueryBuilder", { enumerable: true, get: function () { return QueryBuilder_1.QueryBuilder; } });
|
|
8
|
+
Object.defineProperty(exports, "JoinBuilder", { enumerable: true, get: function () { return QueryBuilder_1.JoinBuilder; } });
|
|
9
|
+
Object.defineProperty(exports, "GroupByQueryBuilder", { enumerable: true, get: function () { return QueryBuilder_1.GroupByQueryBuilder; } });
|
|
10
|
+
var SelectionBuilder_1 = require("./SelectionBuilder");
|
|
11
|
+
Object.defineProperty(exports, "SelectionBuilder", { enumerable: true, get: function () { return SelectionBuilder_1.SelectionBuilder; } });
|
|
12
|
+
var ConditionBuilder_1 = require("./ConditionBuilder");
|
|
13
|
+
Object.defineProperty(exports, "ConditionBuilder", { enumerable: true, get: function () { return ConditionBuilder_1.ConditionBuilder; } });
|
|
14
|
+
var operators_1 = require("./operators");
|
|
15
|
+
Object.defineProperty(exports, "FieldConditionBuilder", { enumerable: true, get: function () { return operators_1.FieldConditionBuilder; } });
|
|
16
|
+
Object.defineProperty(exports, "LogicalOperator", { enumerable: true, get: function () { return operators_1.LogicalOperator; } });
|
|
17
|
+
var NestedBuilders_1 = require("./NestedBuilders");
|
|
18
|
+
Object.defineProperty(exports, "NestedConditionBuilder", { enumerable: true, get: function () { return NestedBuilders_1.NestedConditionBuilder; } });
|
|
19
|
+
Object.defineProperty(exports, "NestedFieldConditionBuilder", { enumerable: true, get: function () { return NestedBuilders_1.NestedFieldConditionBuilder; } });
|
|
20
|
+
var QueryResult_1 = require("./QueryResult");
|
|
21
|
+
Object.defineProperty(exports, "QueryResult", { enumerable: true, get: function () { return QueryResult_1.QueryResult; } });
|
|
22
|
+
Object.defineProperty(exports, "createQueryResult", { enumerable: true, get: function () { return QueryResult_1.createQueryResult; } });
|
|
23
|
+
var HttpClientAdapter_1 = require("./adapters/HttpClientAdapter");
|
|
24
|
+
Object.defineProperty(exports, "FetchHttpClient", { enumerable: true, get: function () { return HttpClientAdapter_1.FetchHttpClient; } });
|
|
25
|
+
Object.defineProperty(exports, "AxiosHttpClient", { enumerable: true, get: function () { return HttpClientAdapter_1.AxiosHttpClient; } });
|
|
26
|
+
Object.defineProperty(exports, "NodeHttpClient", { enumerable: true, get: function () { return HttpClientAdapter_1.NodeHttpClient; } });
|
|
27
|
+
Object.defineProperty(exports, "createHttpClient", { enumerable: true, get: function () { return HttpClientAdapter_1.createHttpClient; } });
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query-sdk/index.ts"],"names":[],"mappings":";;;AA2CA,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,+CAAgG;AAAxF,4GAAA,YAAY,OAAA;AAAE,2GAAA,WAAW,OAAA;AAAoB,mHAAA,mBAAmB,OAAA;AACxE,uDAAoD;AAA5C,oHAAA,gBAAgB,OAAA;AACxB,uDAAoD;AAA5C,oHAAA,gBAAgB,OAAA;AACxB,yCAA8E;AAAtE,kHAAA,qBAAqB,OAAA;AAAE,4GAAA,eAAe,OAAA;AAC9C,mDAAqF;AAA7E,wHAAA,sBAAsB,OAAA;AAAE,6HAAA,2BAA2B,OAAA;AAC3D,6CAA6E;AAArE,0GAAA,WAAW,OAAA;AAAkB,gHAAA,iBAAiB,OAAA;AAGtD,kEAKsC;AAJlC,oHAAA,eAAe,OAAA;AACf,oHAAA,eAAe,OAAA;AACf,mHAAA,cAAc,OAAA;AACd,qHAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { BetweenValue, DateRange, Val } from './index';
|
|
2
|
+
export interface Condition {
|
|
3
|
+
field: string;
|
|
4
|
+
operator: string;
|
|
5
|
+
value: Val | BetweenValue | DateRange;
|
|
6
|
+
}
|
|
7
|
+
export declare function createNestedQuery(fieldPath: string, operator: string, value: Val | BetweenValue | DateRange): any;
|
|
8
|
+
export declare enum LogicalOperatorType {
|
|
9
|
+
AND = "and",
|
|
10
|
+
OR = "or",
|
|
11
|
+
NOT = "not",
|
|
12
|
+
CONDITION = "condition"
|
|
13
|
+
}
|
|
14
|
+
export declare class LogicalOperator {
|
|
15
|
+
type: LogicalOperatorType;
|
|
16
|
+
conditions: LogicalOperator[];
|
|
17
|
+
condition?: Condition | undefined;
|
|
18
|
+
constructor(type: LogicalOperatorType, conditions?: LogicalOperator[], condition?: Condition | undefined);
|
|
19
|
+
static And(conditions: LogicalOperator[]): LogicalOperator;
|
|
20
|
+
static Or(conditions: LogicalOperator[]): LogicalOperator;
|
|
21
|
+
static Not(conditions: LogicalOperator[]): LogicalOperator;
|
|
22
|
+
static Condition(condition: Condition): LogicalOperator;
|
|
23
|
+
toComposable(): any;
|
|
24
|
+
}
|
|
25
|
+
export declare class FieldConditionBuilder {
|
|
26
|
+
private fieldName;
|
|
27
|
+
constructor(fieldName: string);
|
|
28
|
+
equals(value: Val): Condition;
|
|
29
|
+
notEquals(value: Val): Condition;
|
|
30
|
+
in(values: Val[]): Condition;
|
|
31
|
+
notIn(values: Val[]): Condition;
|
|
32
|
+
isNull(): Condition;
|
|
33
|
+
isNotNull(): Condition;
|
|
34
|
+
exists(): Condition;
|
|
35
|
+
notExists(): Condition;
|
|
36
|
+
startsWith(value: string): Condition;
|
|
37
|
+
endsWith(value: string): Condition;
|
|
38
|
+
contains(value: string): Condition;
|
|
39
|
+
regExpMatches(pattern: string): Condition;
|
|
40
|
+
includesCaseInsensitive(value: string): Condition;
|
|
41
|
+
startsWithCaseInsensitive(value: string): Condition;
|
|
42
|
+
endsWithCaseInsensitive(value: string): Condition;
|
|
43
|
+
greaterThan(value: Val): Condition;
|
|
44
|
+
lessThan(value: Val): Condition;
|
|
45
|
+
greaterThanOrEqual(value: Val): Condition;
|
|
46
|
+
lessThanOrEqual(value: Val): Condition;
|
|
47
|
+
isLocalIp(): Condition;
|
|
48
|
+
isExternalIp(): Condition;
|
|
49
|
+
b64(value: string): Condition;
|
|
50
|
+
inDataset(dataset: string): Condition;
|
|
51
|
+
inCountry(countryCode: string): Condition;
|
|
52
|
+
cidr(cidr: string): Condition;
|
|
53
|
+
between(min: Val, max: Val): Condition;
|
|
54
|
+
isTrue(): Condition;
|
|
55
|
+
isFalse(): Condition;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=operators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/query-sdk/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAGvD,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,GAAG,GAAG,YAAY,GAAG,SAAS,CAAC;CACzC;AAGD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,YAAY,GAAG,SAAS,GAAG,GAAG,CA6BjH;AAGD,oBAAY,mBAAmB;IAC3B,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,SAAS,cAAc;CAC1B;AAED,qBAAa,eAAe;IAEb,IAAI,EAAE,mBAAmB;IACzB,UAAU,EAAE,eAAe,EAAE;IAC7B,SAAS,CAAC,EAAE,SAAS;gBAFrB,IAAI,EAAE,mBAAmB,EACzB,UAAU,GAAE,eAAe,EAAO,EAClC,SAAS,CAAC,EAAE,SAAS,YAAA;IAIhC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe;IAI1D,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe;IAIzD,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe;IAI1D,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe;IAKvD,YAAY,IAAI,GAAG;CAsBtB;AAID,qBAAa,qBAAqB;IAClB,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAKrC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS;IAQ7B,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS;IAQhC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS;IAQ5B,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS;IAQ/B,MAAM,IAAI,SAAS;IAQnB,SAAS,IAAI,SAAS;IAQtB,MAAM,IAAI,SAAS;IAQnB,SAAS,IAAI,SAAS;IAUtB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAQpC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAQlC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAQlC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAQzC,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAQjD,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAQnD,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAUjD,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS;IAQlC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS;IAQ/B,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS;IAQzC,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS;IAUtC,SAAS,IAAI,SAAS;IAQtB,YAAY,IAAI,SAAS;IAUzB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAQ7B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAQrC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS;IAQzC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAU7B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,SAAS;IAWtC,MAAM,IAAI,SAAS;IAInB,OAAO,IAAI,SAAS;CAGvB"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FieldConditionBuilder = exports.LogicalOperator = exports.LogicalOperatorType = void 0;
|
|
4
|
+
exports.createNestedQuery = createNestedQuery;
|
|
5
|
+
function createNestedQuery(fieldPath, operator, value) {
|
|
6
|
+
if (!fieldPath.includes('.')) {
|
|
7
|
+
return {
|
|
8
|
+
[fieldPath]: {
|
|
9
|
+
[operator]: value
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const pathParts = fieldPath.split('.');
|
|
14
|
+
let result = {
|
|
15
|
+
[operator]: value
|
|
16
|
+
};
|
|
17
|
+
for (let i = pathParts.length - 1; i >= 0; i--) {
|
|
18
|
+
const part = pathParts[i];
|
|
19
|
+
if (i === pathParts.length - 1) {
|
|
20
|
+
result = {
|
|
21
|
+
[part]: result
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
result = {
|
|
26
|
+
[part]: result
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
var LogicalOperatorType;
|
|
33
|
+
(function (LogicalOperatorType) {
|
|
34
|
+
LogicalOperatorType["AND"] = "and";
|
|
35
|
+
LogicalOperatorType["OR"] = "or";
|
|
36
|
+
LogicalOperatorType["NOT"] = "not";
|
|
37
|
+
LogicalOperatorType["CONDITION"] = "condition";
|
|
38
|
+
})(LogicalOperatorType || (exports.LogicalOperatorType = LogicalOperatorType = {}));
|
|
39
|
+
class LogicalOperator {
|
|
40
|
+
constructor(type, conditions = [], condition) {
|
|
41
|
+
this.type = type;
|
|
42
|
+
this.conditions = conditions;
|
|
43
|
+
this.condition = condition;
|
|
44
|
+
}
|
|
45
|
+
static And(conditions) {
|
|
46
|
+
return new LogicalOperator(LogicalOperatorType.AND, conditions);
|
|
47
|
+
}
|
|
48
|
+
static Or(conditions) {
|
|
49
|
+
return new LogicalOperator(LogicalOperatorType.OR, conditions);
|
|
50
|
+
}
|
|
51
|
+
static Not(conditions) {
|
|
52
|
+
return new LogicalOperator(LogicalOperatorType.NOT, conditions);
|
|
53
|
+
}
|
|
54
|
+
static Condition(condition) {
|
|
55
|
+
return new LogicalOperator(LogicalOperatorType.CONDITION, [], condition);
|
|
56
|
+
}
|
|
57
|
+
toComposable() {
|
|
58
|
+
switch (this.type) {
|
|
59
|
+
case LogicalOperatorType.AND:
|
|
60
|
+
return {
|
|
61
|
+
[LogicalOperatorType.AND]: this.conditions.map(c => c.toComposable())
|
|
62
|
+
};
|
|
63
|
+
case LogicalOperatorType.OR:
|
|
64
|
+
return {
|
|
65
|
+
[LogicalOperatorType.OR]: this.conditions.map(c => c.toComposable())
|
|
66
|
+
};
|
|
67
|
+
case LogicalOperatorType.NOT:
|
|
68
|
+
return {
|
|
69
|
+
[LogicalOperatorType.NOT]: this.conditions.map(c => c.toComposable())
|
|
70
|
+
};
|
|
71
|
+
case LogicalOperatorType.CONDITION:
|
|
72
|
+
if (!this.condition)
|
|
73
|
+
throw new Error('Condition is required for CONDITION type');
|
|
74
|
+
return createNestedQuery(this.condition.field, this.condition.operator, this.condition.value);
|
|
75
|
+
default:
|
|
76
|
+
throw new Error(`Unknown logical operator type: ${this.type}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.LogicalOperator = LogicalOperator;
|
|
81
|
+
class FieldConditionBuilder {
|
|
82
|
+
constructor(fieldName) {
|
|
83
|
+
this.fieldName = fieldName;
|
|
84
|
+
}
|
|
85
|
+
equals(value) {
|
|
86
|
+
return {
|
|
87
|
+
field: this.fieldName,
|
|
88
|
+
operator: 'is',
|
|
89
|
+
value
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
notEquals(value) {
|
|
93
|
+
return {
|
|
94
|
+
field: this.fieldName,
|
|
95
|
+
operator: 'isNot',
|
|
96
|
+
value
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
in(values) {
|
|
100
|
+
return {
|
|
101
|
+
field: this.fieldName,
|
|
102
|
+
operator: 'in',
|
|
103
|
+
value: values
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
notIn(values) {
|
|
107
|
+
return {
|
|
108
|
+
field: this.fieldName,
|
|
109
|
+
operator: 'notIn',
|
|
110
|
+
value: values
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
isNull() {
|
|
114
|
+
return {
|
|
115
|
+
field: this.fieldName,
|
|
116
|
+
operator: 'isNull',
|
|
117
|
+
value: true
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
isNotNull() {
|
|
121
|
+
return {
|
|
122
|
+
field: this.fieldName,
|
|
123
|
+
operator: 'isNull',
|
|
124
|
+
value: false
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
exists() {
|
|
128
|
+
return {
|
|
129
|
+
field: this.fieldName,
|
|
130
|
+
operator: 'exists',
|
|
131
|
+
value: true
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
notExists() {
|
|
135
|
+
return {
|
|
136
|
+
field: this.fieldName,
|
|
137
|
+
operator: 'exists',
|
|
138
|
+
value: false
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
startsWith(value) {
|
|
142
|
+
return {
|
|
143
|
+
field: this.fieldName,
|
|
144
|
+
operator: 'startsWith',
|
|
145
|
+
value
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
endsWith(value) {
|
|
149
|
+
return {
|
|
150
|
+
field: this.fieldName,
|
|
151
|
+
operator: 'endsWith',
|
|
152
|
+
value
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
contains(value) {
|
|
156
|
+
return {
|
|
157
|
+
field: this.fieldName,
|
|
158
|
+
operator: 'includes',
|
|
159
|
+
value
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
regExpMatches(pattern) {
|
|
163
|
+
return {
|
|
164
|
+
field: this.fieldName,
|
|
165
|
+
operator: 'regExpMatches',
|
|
166
|
+
value: pattern
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
includesCaseInsensitive(value) {
|
|
170
|
+
return {
|
|
171
|
+
field: this.fieldName,
|
|
172
|
+
operator: 'includesCaseInsensitive',
|
|
173
|
+
value
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
startsWithCaseInsensitive(value) {
|
|
177
|
+
return {
|
|
178
|
+
field: this.fieldName,
|
|
179
|
+
operator: 'startsWithCaseInsensitive',
|
|
180
|
+
value
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
endsWithCaseInsensitive(value) {
|
|
184
|
+
return {
|
|
185
|
+
field: this.fieldName,
|
|
186
|
+
operator: 'endsWithCaseInsensitive',
|
|
187
|
+
value
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
greaterThan(value) {
|
|
191
|
+
return {
|
|
192
|
+
field: this.fieldName,
|
|
193
|
+
operator: 'greaterThan',
|
|
194
|
+
value
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
lessThan(value) {
|
|
198
|
+
return {
|
|
199
|
+
field: this.fieldName,
|
|
200
|
+
operator: 'lessThan',
|
|
201
|
+
value
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
greaterThanOrEqual(value) {
|
|
205
|
+
return {
|
|
206
|
+
field: this.fieldName,
|
|
207
|
+
operator: 'greaterThanOrEqual',
|
|
208
|
+
value
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
lessThanOrEqual(value) {
|
|
212
|
+
return {
|
|
213
|
+
field: this.fieldName,
|
|
214
|
+
operator: 'lessThanOrEqual',
|
|
215
|
+
value
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
isLocalIp() {
|
|
219
|
+
return {
|
|
220
|
+
field: this.fieldName,
|
|
221
|
+
operator: 'isLocalIp',
|
|
222
|
+
value: true
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
isExternalIp() {
|
|
226
|
+
return {
|
|
227
|
+
field: this.fieldName,
|
|
228
|
+
operator: 'isExternalIp',
|
|
229
|
+
value: true
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
b64(value) {
|
|
233
|
+
return {
|
|
234
|
+
field: this.fieldName,
|
|
235
|
+
operator: 'b64',
|
|
236
|
+
value
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
inDataset(dataset) {
|
|
240
|
+
return {
|
|
241
|
+
field: this.fieldName,
|
|
242
|
+
operator: 'inDataset',
|
|
243
|
+
value: dataset
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
inCountry(countryCode) {
|
|
247
|
+
return {
|
|
248
|
+
field: this.fieldName,
|
|
249
|
+
operator: 'inCountry',
|
|
250
|
+
value: countryCode
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
cidr(cidr) {
|
|
254
|
+
return {
|
|
255
|
+
field: this.fieldName,
|
|
256
|
+
operator: 'CIDR',
|
|
257
|
+
value: cidr
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
between(min, max) {
|
|
261
|
+
return {
|
|
262
|
+
field: this.fieldName,
|
|
263
|
+
operator: 'betweenOp',
|
|
264
|
+
value: { from: min, to: max }
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
isTrue() {
|
|
268
|
+
return this.equals(true);
|
|
269
|
+
}
|
|
270
|
+
isFalse() {
|
|
271
|
+
return this.equals(false);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
exports.FieldConditionBuilder = FieldConditionBuilder;
|
|
275
|
+
//# sourceMappingURL=operators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../src/query-sdk/operators.ts"],"names":[],"mappings":";;;AAUA,8CA6BC;AA7BD,SAAgB,iBAAiB,CAAC,SAAiB,EAAE,QAAgB,EAAE,KAAqC;IACxG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO;YACH,CAAC,SAAS,CAAC,EAAE;gBACT,CAAC,QAAQ,CAAC,EAAE,KAAK;aACpB;SACJ,CAAC;IACN,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,MAAM,GAAQ;QACd,CAAC,QAAQ,CAAC,EAAE,KAAK;KACpB,CAAC;IAGF,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG;gBACL,CAAC,IAAI,CAAC,EAAE,MAAM;aACjB,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG;gBACL,CAAC,IAAI,CAAC,EAAE,MAAM;aACjB,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAGD,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC3B,kCAAW,CAAA;IACX,gCAAS,CAAA;IACT,kCAAW,CAAA;IACX,8CAAuB,CAAA;AAC3B,CAAC,EALW,mBAAmB,mCAAnB,mBAAmB,QAK9B;AAED,MAAa,eAAe;IACxB,YACW,IAAyB,EACzB,aAAgC,EAAE,EAClC,SAAqB;QAFrB,SAAI,GAAJ,IAAI,CAAqB;QACzB,eAAU,GAAV,UAAU,CAAwB;QAClC,cAAS,GAAT,SAAS,CAAY;IAEhC,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,UAA6B;QACpC,OAAO,IAAI,eAAe,CAAC,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,UAA6B;QACnC,OAAO,IAAI,eAAe,CAAC,mBAAmB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,UAA6B;QACpC,OAAO,IAAI,eAAe,CAAC,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,SAAoB;QACjC,OAAO,IAAI,eAAe,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;IAGD,YAAY;QACR,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,mBAAmB,CAAC,GAAG;gBACxB,OAAO;oBACH,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;iBACxE,CAAC;YACN,KAAK,mBAAmB,CAAC,EAAE;gBACvB,OAAO;oBACH,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;iBACvE,CAAC;YACN,KAAK,mBAAmB,CAAC,GAAG;gBACxB,OAAO;oBACH,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;iBACxE,CAAC;YACN,KAAK,mBAAmB,CAAC,SAAS;gBAC9B,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAEjF,OAAO,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAClG;gBACI,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;CACJ;AA/CD,0CA+CC;AAID,MAAa,qBAAqB;IAC9B,YAAoB,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IACrC,CAAC;IAID,MAAM,CAAC,KAAU;QACb,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK;SACR,CAAC;IACN,CAAC;IAED,SAAS,CAAC,KAAU;QAChB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,OAAO;YACjB,KAAK;SACR,CAAC;IACN,CAAC;IAED,EAAE,CAAC,MAAa;QACZ,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,MAAa;SACvB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAa;QACf,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAa;SACvB,CAAC;IACN,CAAC;IAED,MAAM;QACF,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,IAAI;SACd,CAAC;IACN,CAAC;IAED,SAAS;QACL,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,KAAK;SACf,CAAC;IACN,CAAC;IAED,MAAM;QACF,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,IAAI;SACd,CAAC;IACN,CAAC;IAED,SAAS;QACL,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,KAAK;SACf,CAAC;IACN,CAAC;IAID,UAAU,CAAC,KAAa;QACpB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,YAAY;YACtB,KAAK;SACR,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,UAAU;YACpB,KAAK;SACR,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,UAAU;YACpB,KAAK;SACR,CAAC;IACN,CAAC;IAED,aAAa,CAAC,OAAe;QACzB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,OAAO;SACjB,CAAC;IACN,CAAC;IAED,uBAAuB,CAAC,KAAa;QACjC,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,yBAAyB;YACnC,KAAK;SACR,CAAC;IACN,CAAC;IAED,yBAAyB,CAAC,KAAa;QACnC,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,2BAA2B;YACrC,KAAK;SACR,CAAC;IACN,CAAC;IAED,uBAAuB,CAAC,KAAa;QACjC,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,yBAAyB;YACnC,KAAK;SACR,CAAC;IACN,CAAC;IAID,WAAW,CAAC,KAAU;QAClB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,aAAa;YACvB,KAAK;SACR,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,KAAU;QACf,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,UAAU;YACpB,KAAK;SACR,CAAC;IACN,CAAC;IAED,kBAAkB,CAAC,KAAU;QACzB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,oBAAoB;YAC9B,KAAK;SACR,CAAC;IACN,CAAC;IAED,eAAe,CAAC,KAAU;QACtB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,iBAAiB;YAC3B,KAAK;SACR,CAAC;IACN,CAAC;IAID,SAAS;QACL,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,IAAI;SACd,CAAC;IACN,CAAC;IAED,YAAY;QACR,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,cAAc;YACxB,KAAK,EAAE,IAAI;SACd,CAAC;IACN,CAAC;IAID,GAAG,CAAC,KAAa;QACb,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,KAAK;SACR,CAAC;IACN,CAAC;IAED,SAAS,CAAC,OAAe;QACrB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,OAAO;SACjB,CAAC;IACN,CAAC;IAED,SAAS,CAAC,WAAmB;QACzB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,WAAW;SACrB,CAAC;IACN,CAAC;IAED,IAAI,CAAC,IAAY;QACb,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,IAAI;SACd,CAAC;IACN,CAAC;IAID,OAAO,CAAC,GAAQ,EAAE,GAAQ;QACtB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAS;SACvC,CAAC;IACN,CAAC;IAKD,MAAM;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACJ;AA1OD,sDA0OC"}
|