@clickhouse/client 0.0.1
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/LICENSE +203 -0
- package/README.md +636 -0
- package/dist/clickhouse_types.d.ts +17 -0
- package/dist/clickhouse_types.js +3 -0
- package/dist/clickhouse_types.js.map +1 -0
- package/dist/client.d.ts +56 -0
- package/dist/client.js +180 -0
- package/dist/client.js.map +1 -0
- package/dist/connection/adapter/base_http_adapter.d.ts +33 -0
- package/dist/connection/adapter/base_http_adapter.js +257 -0
- package/dist/connection/adapter/base_http_adapter.js.map +1 -0
- package/dist/connection/adapter/http_adapter.d.ts +10 -0
- package/dist/connection/adapter/http_adapter.js +27 -0
- package/dist/connection/adapter/http_adapter.js.map +1 -0
- package/dist/connection/adapter/http_search_params.d.ts +9 -0
- package/dist/connection/adapter/http_search_params.js +36 -0
- package/dist/connection/adapter/http_search_params.js.map +1 -0
- package/dist/connection/adapter/https_adapter.d.ts +10 -0
- package/dist/connection/adapter/https_adapter.js +27 -0
- package/dist/connection/adapter/https_adapter.js.map +1 -0
- package/dist/connection/adapter/index.d.ts +2 -0
- package/dist/connection/adapter/index.js +8 -0
- package/dist/connection/adapter/index.js.map +1 -0
- package/dist/connection/adapter/transform_url.d.ts +5 -0
- package/dist/connection/adapter/transform_url.js +15 -0
- package/dist/connection/adapter/transform_url.js.map +1 -0
- package/dist/connection/connection.d.ts +34 -0
- package/dist/connection/connection.js +17 -0
- package/dist/connection/connection.js.map +1 -0
- package/dist/connection/index.d.ts +1 -0
- package/dist/connection/index.js +18 -0
- package/dist/connection/index.js.map +1 -0
- package/dist/data_formatter/format_query_params.d.ts +1 -0
- package/dist/data_formatter/format_query_params.js +61 -0
- package/dist/data_formatter/format_query_params.js.map +1 -0
- package/dist/data_formatter/format_query_settings.d.ts +2 -0
- package/dist/data_formatter/format_query_settings.js +21 -0
- package/dist/data_formatter/format_query_settings.js.map +1 -0
- package/dist/data_formatter/formatter.d.ts +23 -0
- package/dist/data_formatter/formatter.js +81 -0
- package/dist/data_formatter/formatter.js.map +1 -0
- package/dist/data_formatter/index.d.ts +3 -0
- package/dist/data_formatter/index.js +23 -0
- package/dist/data_formatter/index.js.map +1 -0
- package/dist/error/index.d.ts +1 -0
- package/dist/error/index.js +18 -0
- package/dist/error/index.js.map +1 -0
- package/dist/error/parse_error.d.ts +12 -0
- package/dist/error/parse_error.js +39 -0
- package/dist/error/parse_error.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +8 -0
- package/dist/logger.js +35 -0
- package/dist/logger.js.map +1 -0
- package/dist/rows.d.ts +50 -0
- package/dist/rows.js +114 -0
- package/dist/rows.js.map +1 -0
- package/dist/schema/common.d.ts +8 -0
- package/dist/schema/common.js +3 -0
- package/dist/schema/common.js.map +1 -0
- package/dist/schema/compact.d.ts +3 -0
- package/dist/schema/compact.js +24 -0
- package/dist/schema/compact.js.map +1 -0
- package/dist/schema/engines.d.ts +40 -0
- package/dist/schema/engines.js +61 -0
- package/dist/schema/engines.js.map +1 -0
- package/dist/schema/index.d.ts +7 -0
- package/dist/schema/index.js +24 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/query_formatter.d.ts +9 -0
- package/dist/schema/query_formatter.js +48 -0
- package/dist/schema/query_formatter.js.map +1 -0
- package/dist/schema/result.d.ts +13 -0
- package/dist/schema/result.js +3 -0
- package/dist/schema/result.js.map +1 -0
- package/dist/schema/schema.d.ts +6 -0
- package/dist/schema/schema.js +20 -0
- package/dist/schema/schema.js.map +1 -0
- package/dist/schema/stream.d.ts +11 -0
- package/dist/schema/stream.js +25 -0
- package/dist/schema/stream.js.map +1 -0
- package/dist/schema/table.d.ts +44 -0
- package/dist/schema/table.js +70 -0
- package/dist/schema/table.js.map +1 -0
- package/dist/schema/types.d.ts +201 -0
- package/dist/schema/types.js +268 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/schema/where.d.ts +8 -0
- package/dist/schema/where.js +43 -0
- package/dist/schema/where.js.map +1 -0
- package/dist/settings.d.ts +1453 -0
- package/dist/settings.js +28 -0
- package/dist/settings.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/stream.d.ts +5 -0
- package/dist/utils/stream.js +32 -0
- package/dist/utils/stream.js.map +1 -0
- package/dist/utils/string.d.ts +1 -0
- package/dist/utils/string.js +9 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +63 -0
package/dist/rows.js
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Row = exports.Rows = void 0;
|
|
7
|
+
const stream_1 = __importDefault(require("stream"));
|
|
8
|
+
const split2_1 = __importDefault(require("split2"));
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
const data_formatter_1 = require("./data_formatter");
|
|
11
|
+
class Rows {
|
|
12
|
+
constructor(_stream, format) {
|
|
13
|
+
Object.defineProperty(this, "_stream", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
configurable: true,
|
|
16
|
+
writable: true,
|
|
17
|
+
value: _stream
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(this, "format", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
configurable: true,
|
|
22
|
+
writable: true,
|
|
23
|
+
value: format
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The method waits for all the rows to be fully loaded
|
|
28
|
+
* and returns the result as a string.
|
|
29
|
+
*
|
|
30
|
+
* The method will throw if the underlying stream was already consumed
|
|
31
|
+
* by calling the other methods
|
|
32
|
+
*/
|
|
33
|
+
async text() {
|
|
34
|
+
if (this._stream.readableEnded) {
|
|
35
|
+
throw Error(streamAlreadyConsumedMessage);
|
|
36
|
+
}
|
|
37
|
+
return (await (0, utils_1.getAsText)(this._stream)).toString();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The method waits for the all the rows to be fully loaded.
|
|
41
|
+
* When the response is received in full, it will be decoded to return JSON.
|
|
42
|
+
*
|
|
43
|
+
* The method will throw if the underlying stream was already consumed
|
|
44
|
+
* by calling the other methods
|
|
45
|
+
*/
|
|
46
|
+
async json() {
|
|
47
|
+
if (this._stream.readableEnded) {
|
|
48
|
+
throw Error(streamAlreadyConsumedMessage);
|
|
49
|
+
}
|
|
50
|
+
return (0, data_formatter_1.decode)(await this.text(), this.format);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns a readable stream of {@link Row}s for responses
|
|
54
|
+
* in {@link StreamableDataFormat} format.
|
|
55
|
+
*
|
|
56
|
+
* The method will throw if called on a response in non-streamable format,
|
|
57
|
+
* and if the underlying stream was already consumed
|
|
58
|
+
* by calling the other methods
|
|
59
|
+
*/
|
|
60
|
+
stream() {
|
|
61
|
+
// If the underlying stream has already ended by calling `text` or `json`,
|
|
62
|
+
// Stream.pipeline will create a new empty stream
|
|
63
|
+
// but without "readableEnded" flag set to true
|
|
64
|
+
if (this._stream.readableEnded) {
|
|
65
|
+
throw Error(streamAlreadyConsumedMessage);
|
|
66
|
+
}
|
|
67
|
+
(0, data_formatter_1.validateStreamFormat)(this.format);
|
|
68
|
+
return stream_1.default.pipeline(this._stream,
|
|
69
|
+
// only JSON-based format are supported at the moment
|
|
70
|
+
(0, split2_1.default)((row) => new Row(row, 'JSON')), function pipelineCb(err) {
|
|
71
|
+
if (err) {
|
|
72
|
+
console.error(err);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
close() {
|
|
77
|
+
this._stream.destroy();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.Rows = Rows;
|
|
81
|
+
class Row {
|
|
82
|
+
constructor(chunk, format) {
|
|
83
|
+
Object.defineProperty(this, "chunk", {
|
|
84
|
+
enumerable: true,
|
|
85
|
+
configurable: true,
|
|
86
|
+
writable: true,
|
|
87
|
+
value: chunk
|
|
88
|
+
});
|
|
89
|
+
Object.defineProperty(this, "format", {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
configurable: true,
|
|
92
|
+
writable: true,
|
|
93
|
+
value: format
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Returns a string representation of a row.
|
|
98
|
+
*/
|
|
99
|
+
text() {
|
|
100
|
+
return this.chunk;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Returns a JSON representation of a row.
|
|
104
|
+
* The method will throw if called on a response in JSON incompatible format.
|
|
105
|
+
*
|
|
106
|
+
* It is safe to call this method multiple times.
|
|
107
|
+
*/
|
|
108
|
+
json() {
|
|
109
|
+
return (0, data_formatter_1.decode)(this.text(), this.format);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.Row = Row;
|
|
113
|
+
const streamAlreadyConsumedMessage = 'Stream has been already consumed';
|
|
114
|
+
//# sourceMappingURL=rows.js.map
|
package/dist/rows.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rows.js","sourceRoot":"","sources":["../src/rows.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAC3B,oDAA0B;AAE1B,mCAAmC;AACnC,qDAAgF;AAEhF,MAAa,IAAI;IACf,YACU,OAAwB,EACf,MAAkB;;;;;mBAD3B;;;;;;mBACS;;IAChB,CAAC;IAEJ;;;;;;OAMG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9B,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QACD,OAAO,CAAC,MAAM,IAAA,iBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IACnD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9B,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QACD,OAAO,IAAA,uBAAM,EAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED;;;;;;;OAOG;IACH,MAAM;QACJ,0EAA0E;QAC1E,iDAAiD;QACjD,+CAA+C;QAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9B,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC1C;QAED,IAAA,qCAAoB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEjC,OAAO,gBAAM,CAAC,QAAQ,CACpB,IAAI,CAAC,OAAO;QACZ,qDAAqD;QACrD,IAAA,gBAAK,EAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAC5C,SAAS,UAAU,CAAC,GAAG;YACrB,IAAI,GAAG,EAAE;gBACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACnB;QACH,CAAC,CACF,CAAA;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;CACF;AAnED,oBAmEC;AAED,MAAa,GAAG;IACd,YACmB,KAAa,EACb,MAAkB;;;;;mBADlB;;;;;;mBACA;;IAChB,CAAC;IAEJ;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;;;OAKG;IACH,IAAI;QACF,OAAO,IAAA,uBAAM,EAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;CACF;AAtBD,kBAsBC;AAED,MAAM,4BAA4B,GAAG,kCAAkC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schema/common.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decompactJson = exports.compactJson = void 0;
|
|
4
|
+
function compactJson(shape, value) {
|
|
5
|
+
const compacted = [];
|
|
6
|
+
for (const key in shape) {
|
|
7
|
+
if (key in value) {
|
|
8
|
+
compacted.push(value[key]);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return compacted;
|
|
12
|
+
}
|
|
13
|
+
exports.compactJson = compactJson;
|
|
14
|
+
function decompactJson(shape, [row]) {
|
|
15
|
+
const obj = {};
|
|
16
|
+
let i = 0;
|
|
17
|
+
for (const key in shape) {
|
|
18
|
+
obj[key] = row[i];
|
|
19
|
+
i++;
|
|
20
|
+
}
|
|
21
|
+
return obj;
|
|
22
|
+
}
|
|
23
|
+
exports.decompactJson = decompactJson;
|
|
24
|
+
//# sourceMappingURL=compact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/schema/compact.ts"],"names":[],"mappings":";;;AAEA,SAAgB,WAAW,CAAkB,KAAQ,EAAE,KAAe;IACpE,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,IAAI,GAAG,IAAI,KAAK,EAAE;YAChB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;SAC3B;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AARD,kCAQC;AAED,SAAgB,aAAa,CAAkB,KAAQ,EAAE,CAAC,GAAG,CAAc;IACzE,MAAM,GAAG,GAA4B,EAAE,CAAA;IACvC,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,EAAE,CAAA;KACJ;IACD,OAAO,GAAe,CAAA;AACxB,CAAC;AARD,sCAQC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare type TableEngine = MergeTreeFamily;
|
|
2
|
+
declare type MergeTreeFamily = ReturnType<typeof MergeTree> | ReturnType<typeof ReplicatedMergeTree> | ReturnType<typeof ReplacingMergeTree> | ReturnType<typeof SummingMergeTree> | ReturnType<typeof AggregatingMergeTree> | ReturnType<typeof CollapsingMergeTree> | ReturnType<typeof VersionedCollapsingMergeTree> | ReturnType<typeof GraphiteMergeTree>;
|
|
3
|
+
export declare const MergeTree: () => {
|
|
4
|
+
toString: () => string;
|
|
5
|
+
type: string;
|
|
6
|
+
};
|
|
7
|
+
export interface ReplicatedMergeTreeParameters {
|
|
8
|
+
zoo_path: string;
|
|
9
|
+
replica_name: string;
|
|
10
|
+
ver?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const ReplicatedMergeTree: ({ zoo_path, replica_name, ver, }: ReplicatedMergeTreeParameters) => {
|
|
13
|
+
toString: () => string;
|
|
14
|
+
type: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const ReplacingMergeTree: (ver?: string) => {
|
|
17
|
+
toString: () => string;
|
|
18
|
+
type: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const SummingMergeTree: (columns?: string[]) => {
|
|
21
|
+
toString: () => string;
|
|
22
|
+
type: string;
|
|
23
|
+
};
|
|
24
|
+
export declare const AggregatingMergeTree: () => {
|
|
25
|
+
toString: () => string;
|
|
26
|
+
type: string;
|
|
27
|
+
};
|
|
28
|
+
export declare const CollapsingMergeTree: (sign: string) => {
|
|
29
|
+
toString: () => string;
|
|
30
|
+
type: string;
|
|
31
|
+
};
|
|
32
|
+
export declare const VersionedCollapsingMergeTree: (sign: string, version: string) => {
|
|
33
|
+
toString: () => string;
|
|
34
|
+
type: string;
|
|
35
|
+
};
|
|
36
|
+
export declare const GraphiteMergeTree: (config_section: string) => {
|
|
37
|
+
toString: () => string;
|
|
38
|
+
type: string;
|
|
39
|
+
};
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// See https://clickhouse.com/docs/en/engines/table-engines/
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.GraphiteMergeTree = exports.VersionedCollapsingMergeTree = exports.CollapsingMergeTree = exports.AggregatingMergeTree = exports.SummingMergeTree = exports.ReplacingMergeTree = exports.ReplicatedMergeTree = exports.MergeTree = void 0;
|
|
5
|
+
const MergeTree = () => ({
|
|
6
|
+
toString: () => `MergeTree()`,
|
|
7
|
+
type: 'MergeTree',
|
|
8
|
+
});
|
|
9
|
+
exports.MergeTree = MergeTree;
|
|
10
|
+
const ReplicatedMergeTree = ({ zoo_path, replica_name, ver, }) => ({
|
|
11
|
+
toString: () => {
|
|
12
|
+
const _ver = ver ? `, ${ver}` : '';
|
|
13
|
+
return `ReplicatedMergeTree('${zoo_path}', '${replica_name}'${_ver})`;
|
|
14
|
+
},
|
|
15
|
+
type: 'ReplicatedMergeTree',
|
|
16
|
+
});
|
|
17
|
+
exports.ReplicatedMergeTree = ReplicatedMergeTree;
|
|
18
|
+
const ReplacingMergeTree = (ver) => ({
|
|
19
|
+
toString: () => {
|
|
20
|
+
const _ver = ver ? `, ${ver}` : '';
|
|
21
|
+
return `ReplacingMergeTree(${_ver})`;
|
|
22
|
+
},
|
|
23
|
+
type: 'ReplacingMergeTree',
|
|
24
|
+
});
|
|
25
|
+
exports.ReplacingMergeTree = ReplacingMergeTree;
|
|
26
|
+
const SummingMergeTree = (columns) => ({
|
|
27
|
+
toString: () => {
|
|
28
|
+
return `SummingMergeTree(${(columns || []).join(', ')})`;
|
|
29
|
+
},
|
|
30
|
+
type: 'SummingMergeTree',
|
|
31
|
+
});
|
|
32
|
+
exports.SummingMergeTree = SummingMergeTree;
|
|
33
|
+
const AggregatingMergeTree = () => ({
|
|
34
|
+
toString: () => {
|
|
35
|
+
return `AggregatingMergeTree()`;
|
|
36
|
+
},
|
|
37
|
+
type: 'AggregatingMergeTree',
|
|
38
|
+
});
|
|
39
|
+
exports.AggregatingMergeTree = AggregatingMergeTree;
|
|
40
|
+
const CollapsingMergeTree = (sign) => ({
|
|
41
|
+
toString: () => {
|
|
42
|
+
return `CollapsingMergeTree(${sign})`;
|
|
43
|
+
},
|
|
44
|
+
type: 'CollapsingMergeTree',
|
|
45
|
+
});
|
|
46
|
+
exports.CollapsingMergeTree = CollapsingMergeTree;
|
|
47
|
+
const VersionedCollapsingMergeTree = (sign, version) => ({
|
|
48
|
+
toString: () => {
|
|
49
|
+
return `VersionedCollapsingMergeTree(${sign}, ${version})`;
|
|
50
|
+
},
|
|
51
|
+
type: 'VersionedCollapsingMergeTree',
|
|
52
|
+
});
|
|
53
|
+
exports.VersionedCollapsingMergeTree = VersionedCollapsingMergeTree;
|
|
54
|
+
const GraphiteMergeTree = (config_section) => ({
|
|
55
|
+
toString: () => {
|
|
56
|
+
return `CollapsingMergeTree(${config_section})`;
|
|
57
|
+
},
|
|
58
|
+
type: 'GraphiteMergeTree',
|
|
59
|
+
});
|
|
60
|
+
exports.GraphiteMergeTree = GraphiteMergeTree;
|
|
61
|
+
//# sourceMappingURL=engines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engines.js","sourceRoot":"","sources":["../../src/schema/engines.ts"],"names":[],"mappings":";AAAA,4DAA4D;;;AAerD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;IAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa;IAC7B,IAAI,EAAE,WAAW;CAClB,CAAC,CAAA;AAHW,QAAA,SAAS,aAGpB;AASK,MAAM,mBAAmB,GAAG,CAAC,EAClC,QAAQ,EACR,YAAY,EACZ,GAAG,GAC2B,EAAE,EAAE,CAAC,CAAC;IACpC,QAAQ,EAAE,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClC,OAAO,wBAAwB,QAAQ,OAAO,YAAY,IAAI,IAAI,GAAG,CAAA;IACvE,CAAC;IACD,IAAI,EAAE,qBAAqB;CAC5B,CAAC,CAAA;AAVW,QAAA,mBAAmB,uBAU9B;AAEK,MAAM,kBAAkB,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,CAAC;IACnD,QAAQ,EAAE,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClC,OAAO,sBAAsB,IAAI,GAAG,CAAA;IACtC,CAAC;IACD,IAAI,EAAE,oBAAoB;CAC3B,CAAC,CAAA;AANW,QAAA,kBAAkB,sBAM7B;AAEK,MAAM,gBAAgB,GAAG,CAAC,OAAkB,EAAE,EAAE,CAAC,CAAC;IACvD,QAAQ,EAAE,GAAG,EAAE;QACb,OAAO,oBAAoB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;IAC1D,CAAC;IACD,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAA;AALW,QAAA,gBAAgB,oBAK3B;AAEK,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,CAAC;IACzC,QAAQ,EAAE,GAAG,EAAE;QACb,OAAO,wBAAwB,CAAA;IACjC,CAAC;IACD,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAA;AALW,QAAA,oBAAoB,wBAK/B;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC;IACpD,QAAQ,EAAE,GAAG,EAAE;QACb,OAAO,uBAAuB,IAAI,GAAG,CAAA;IACvC,CAAC;IACD,IAAI,EAAE,qBAAqB;CAC5B,CAAC,CAAA;AALW,QAAA,mBAAmB,uBAK9B;AAEK,MAAM,4BAA4B,GAAG,CAC1C,IAAY,EACZ,OAAe,EACf,EAAE,CAAC,CAAC;IACJ,QAAQ,EAAE,GAAG,EAAE;QACb,OAAO,gCAAgC,IAAI,KAAK,OAAO,GAAG,CAAA;IAC5D,CAAC;IACD,IAAI,EAAE,8BAA8B;CACrC,CAAC,CAAA;AARW,QAAA,4BAA4B,gCAQvC;AAEK,MAAM,iBAAiB,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,GAAG,EAAE;QACb,OAAO,uBAAuB,cAAc,GAAG,CAAA;IACjD,CAAC;IACD,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAA;AALW,QAAA,iBAAiB,qBAK5B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./schema"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./table"), exports);
|
|
20
|
+
__exportStar(require("./engines"), exports);
|
|
21
|
+
__exportStar(require("./common"), exports);
|
|
22
|
+
__exportStar(require("./stream"), exports);
|
|
23
|
+
__exportStar(require("./where"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,0CAAuB;AACvB,0CAAuB;AACvB,4CAAyB;AACzB,2CAAwB;AACxB,2CAAwB;AACxB,0CAAuB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Shape } from './common';
|
|
2
|
+
import type { CreateTableOptions, TableOptions } from './index';
|
|
3
|
+
import type { WhereExpr } from './where';
|
|
4
|
+
import type { NonEmptyArray } from './common';
|
|
5
|
+
export declare const QueryFormatter: {
|
|
6
|
+
createTable: <S extends Shape>(tableOptions: TableOptions<S>, { engine, if_not_exists, on_cluster, order_by, partition_by, primary_key, settings, }: CreateTableOptions<S>) => string;
|
|
7
|
+
select: <S_1 extends Shape>(tableOptions: TableOptions<S_1>, whereExpr?: WhereExpr<S_1> | undefined, columns?: NonEmptyArray<keyof S_1> | undefined, orderBy?: NonEmptyArray<[keyof S_1, "ASC" | "DESC"]> | undefined) => string;
|
|
8
|
+
};
|
|
9
|
+
export declare function getTableName<S extends Shape>({ database, name, }: TableOptions<S>): string;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTableName = exports.QueryFormatter = void 0;
|
|
4
|
+
exports.QueryFormatter = {
|
|
5
|
+
// See https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree/#table_engine-mergetree-creating-a-table
|
|
6
|
+
createTable: (tableOptions, { engine: _engine, if_not_exists, on_cluster, order_by, partition_by, primary_key, settings: _settings, }) => {
|
|
7
|
+
const ifNotExist = if_not_exists ? ' IF NOT EXISTS' : '';
|
|
8
|
+
const tableName = getTableName(tableOptions);
|
|
9
|
+
const onCluster = on_cluster ? ` ON CLUSTER '${on_cluster}'` : '';
|
|
10
|
+
const columns = ` (${tableOptions.schema.toString()})`;
|
|
11
|
+
const engine = ` ENGINE ${_engine}`;
|
|
12
|
+
const orderBy = order_by ? ` ORDER BY (${order_by.join(', ')})` : '';
|
|
13
|
+
const partitionBy = partition_by
|
|
14
|
+
? ` PARTITION BY (${partition_by.join(', ')})`
|
|
15
|
+
: '';
|
|
16
|
+
const primaryKey = primary_key
|
|
17
|
+
? ` PRIMARY KEY (${primary_key.join(', ')})`
|
|
18
|
+
: '';
|
|
19
|
+
const settings = _settings && Object.keys(_settings).length
|
|
20
|
+
? ' SETTINGS ' +
|
|
21
|
+
Object.entries(_settings)
|
|
22
|
+
.map(([key, value]) => {
|
|
23
|
+
const v = typeof value === 'string' ? `'${value}'` : value;
|
|
24
|
+
return `${key} = ${v}`;
|
|
25
|
+
})
|
|
26
|
+
.join(', ')
|
|
27
|
+
: '';
|
|
28
|
+
return (`CREATE TABLE${ifNotExist} ${tableName}${onCluster}${columns}${engine}` +
|
|
29
|
+
`${orderBy}${partitionBy}${primaryKey}${settings}`);
|
|
30
|
+
},
|
|
31
|
+
// https://clickhouse.com/docs/en/sql-reference/statements/select/
|
|
32
|
+
select: (tableOptions, whereExpr, columns, orderBy) => {
|
|
33
|
+
const tableName = getTableName(tableOptions);
|
|
34
|
+
const where = whereExpr ? ` WHERE ${whereExpr.toString()}` : '';
|
|
35
|
+
const cols = columns ? columns.join(', ') : '*';
|
|
36
|
+
const order = orderBy
|
|
37
|
+
? ` ORDER BY ${orderBy
|
|
38
|
+
.map(([column, order]) => `${column.toString()} ${order}`)
|
|
39
|
+
.join(', ')}`
|
|
40
|
+
: '';
|
|
41
|
+
return `SELECT ${cols} FROM ${tableName}${where}${order}`;
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
function getTableName({ database, name, }) {
|
|
45
|
+
return database !== undefined ? `${database}.${name}` : name;
|
|
46
|
+
}
|
|
47
|
+
exports.getTableName = getTableName;
|
|
48
|
+
//# sourceMappingURL=query_formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query_formatter.js","sourceRoot":"","sources":["../../src/schema/query_formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/schema/result.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Schema = void 0;
|
|
4
|
+
class Schema {
|
|
5
|
+
constructor(shape) {
|
|
6
|
+
Object.defineProperty(this, "shape", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
configurable: true,
|
|
9
|
+
writable: true,
|
|
10
|
+
value: shape
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
toString(delimiter) {
|
|
14
|
+
return Object.entries(this.shape)
|
|
15
|
+
.map(([column, type]) => `${column} ${type.toString()}`)
|
|
16
|
+
.join(delimiter !== null && delimiter !== void 0 ? delimiter : ', ');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.Schema = Schema;
|
|
20
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":";;;AAEA,MAAa,MAAM;IACjB,YAA4B,KAAQ;;;;;mBAAR;;IAAW,CAAC;IAExC,QAAQ,CAAC,SAAkB;QACzB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;aACvD,IAAI,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAC,CAAA;IAC5B,CAAC;CACF;AARD,wBAQC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import Stream from 'stream';
|
|
3
|
+
export interface SelectResult<T> {
|
|
4
|
+
asyncGenerator(): AsyncGenerator<T, void>;
|
|
5
|
+
json(): Promise<T[]>;
|
|
6
|
+
}
|
|
7
|
+
export declare class InsertStream<T> extends Stream.Readable {
|
|
8
|
+
constructor();
|
|
9
|
+
add(data: T): void;
|
|
10
|
+
complete(): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.InsertStream = void 0;
|
|
7
|
+
const stream_1 = __importDefault(require("stream"));
|
|
8
|
+
class InsertStream extends stream_1.default.Readable {
|
|
9
|
+
constructor() {
|
|
10
|
+
super({
|
|
11
|
+
objectMode: true,
|
|
12
|
+
read() {
|
|
13
|
+
// Avoid [ERR_METHOD_NOT_IMPLEMENTED]: The _read() method is not implemented
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
add(data) {
|
|
18
|
+
this.push(data);
|
|
19
|
+
}
|
|
20
|
+
complete() {
|
|
21
|
+
this.push(null);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.InsertStream = InsertStream;
|
|
25
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/schema/stream.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAO3B,MAAa,YAAgB,SAAQ,gBAAM,CAAC,QAAQ;IAClD;QACE,KAAK,CAAC;YACJ,UAAU,EAAE,IAAI;YAChB,IAAI;gBACF,4EAA4E;YAC9E,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IACD,GAAG,CAAC,IAAO;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC;CACF;AAfD,oCAeC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { TableEngine } from './engines';
|
|
3
|
+
import type { Schema } from './schema';
|
|
4
|
+
import type { Infer, NonEmptyArray, Shape } from './common';
|
|
5
|
+
import type { ClickHouseClient } from '../client';
|
|
6
|
+
import type { WhereExpr } from './where';
|
|
7
|
+
import type { InsertStream, SelectResult } from './stream';
|
|
8
|
+
import type { ClickHouseSettings, MergeTreeSettings } from '../settings';
|
|
9
|
+
import type Stream from 'stream';
|
|
10
|
+
export interface TableOptions<S extends Shape> {
|
|
11
|
+
name: string;
|
|
12
|
+
schema: Schema<S>;
|
|
13
|
+
database?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface CreateTableOptions<S extends Shape> {
|
|
16
|
+
engine: TableEngine;
|
|
17
|
+
order_by: NonEmptyArray<keyof S>;
|
|
18
|
+
if_not_exists?: boolean;
|
|
19
|
+
on_cluster?: string;
|
|
20
|
+
partition_by?: NonEmptyArray<keyof S>;
|
|
21
|
+
primary_key?: NonEmptyArray<keyof S>;
|
|
22
|
+
settings?: MergeTreeSettings;
|
|
23
|
+
clickhouse_settings?: ClickHouseSettings;
|
|
24
|
+
}
|
|
25
|
+
export interface SelectOptions<S extends Shape> {
|
|
26
|
+
columns?: NonEmptyArray<keyof S>;
|
|
27
|
+
where?: WhereExpr<S>;
|
|
28
|
+
order_by?: NonEmptyArray<[keyof S, 'ASC' | 'DESC']>;
|
|
29
|
+
clickhouse_settings?: ClickHouseSettings;
|
|
30
|
+
abort_signal?: AbortSignal;
|
|
31
|
+
}
|
|
32
|
+
export interface InsertOptions<S extends Shape> {
|
|
33
|
+
values: Infer<S>[] | InsertStream<Infer<S>>;
|
|
34
|
+
clickhouse_settings?: ClickHouseSettings;
|
|
35
|
+
abort_signal?: AbortSignal;
|
|
36
|
+
}
|
|
37
|
+
export declare class Table<S extends Shape> {
|
|
38
|
+
private readonly client;
|
|
39
|
+
private readonly options;
|
|
40
|
+
constructor(client: ClickHouseClient, options: TableOptions<S>);
|
|
41
|
+
create(options: CreateTableOptions<S>): Promise<Stream.Readable>;
|
|
42
|
+
insert({ abort_signal, clickhouse_settings, values, }: InsertOptions<S>): Promise<void>;
|
|
43
|
+
select({ abort_signal, clickhouse_settings, columns, order_by, where, }?: SelectOptions<S>): Promise<SelectResult<Infer<S>>>;
|
|
44
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Table = void 0;
|
|
4
|
+
const query_formatter_1 = require("./query_formatter");
|
|
5
|
+
class Table {
|
|
6
|
+
constructor(client, options) {
|
|
7
|
+
Object.defineProperty(this, "client", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: client
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(this, "options", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
configurable: true,
|
|
16
|
+
writable: true,
|
|
17
|
+
value: options
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
// TODO: better types
|
|
21
|
+
async create(options) {
|
|
22
|
+
const query = query_formatter_1.QueryFormatter.createTable(this.options, options);
|
|
23
|
+
return this.client.exec({
|
|
24
|
+
query,
|
|
25
|
+
clickhouse_settings: options.clickhouse_settings,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
insert({ abort_signal, clickhouse_settings, values, }) {
|
|
29
|
+
return this.client.insert({
|
|
30
|
+
clickhouse_settings,
|
|
31
|
+
abort_signal,
|
|
32
|
+
table: (0, query_formatter_1.getTableName)(this.options),
|
|
33
|
+
format: 'JSONEachRow',
|
|
34
|
+
values,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async select({ abort_signal, clickhouse_settings, columns, order_by, where, } = {}) {
|
|
38
|
+
const query = query_formatter_1.QueryFormatter.select(this.options, where, columns, order_by);
|
|
39
|
+
const rows = await this.client.query({
|
|
40
|
+
query,
|
|
41
|
+
clickhouse_settings,
|
|
42
|
+
abort_signal,
|
|
43
|
+
format: 'JSONEachRow',
|
|
44
|
+
});
|
|
45
|
+
const stream = rows.stream();
|
|
46
|
+
async function* asyncGenerator() {
|
|
47
|
+
for await (const row of stream) {
|
|
48
|
+
const value = row.json();
|
|
49
|
+
yield value;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
asyncGenerator,
|
|
54
|
+
json: async () => {
|
|
55
|
+
const result = [];
|
|
56
|
+
for await (const value of asyncGenerator()) {
|
|
57
|
+
if (Array.isArray(value)) {
|
|
58
|
+
result.push(...value);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
result.push(value);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.Table = Table;
|
|
70
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/schema/table.ts"],"names":[],"mappings":";;;AAGA,uDAAgE;AA6ChE,MAAa,KAAK;IAChB,YACmB,MAAwB,EACxB,OAAwB;;;;;mBADxB;;;;;;mBACA;;IAChB,CAAC;IAEJ,qBAAqB;IACrB,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,MAAM,KAAK,GAAG,gCAAc,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,KAAK;YACL,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;SACjD,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,EACL,YAAY,EACZ,mBAAmB,EACnB,MAAM,GACW;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACxB,mBAAmB;YACnB,YAAY;YACZ,KAAK,EAAE,IAAA,8BAAY,EAAC,IAAI,CAAC,OAAO,CAAC;YACjC,MAAM,EAAE,aAAa;YACrB,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EACX,YAAY,EACZ,mBAAmB,EACnB,OAAO,EACP,QAAQ,EACR,KAAK,MACe,EAAE;QACtB,MAAM,KAAK,GAAG,gCAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC3E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACnC,KAAK;YACL,mBAAmB;YACnB,YAAY;YACZ,MAAM,EAAE,aAAa;SACtB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAC5B,KAAK,SAAS,CAAC,CAAC,cAAc;YAC5B,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE;gBAC9B,MAAM,KAAK,GAAI,GAAW,CAAC,IAAI,EAAe,CAAA;gBAC9C,MAAM,KAAiB,CAAA;aACxB;QACH,CAAC;QAED,OAAO;YACL,cAAc;YACd,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,MAAM,MAAM,GAAG,EAAE,CAAA;gBACjB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,EAAE,EAAE;oBAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;qBACtB;yBAAM;wBACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;qBACnB;iBACF;gBACD,OAAO,MAAM,CAAA;YACf,CAAC;SACF,CAAA;IACH,CAAC;CACF;AAnED,sBAmEC"}
|