@clickhouse/client 1.22.0 → 1.23.0-head.70ad405.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.
Files changed (191) hide show
  1. package/CHANGELOG.md +1342 -0
  2. package/README.md +20 -7
  3. package/dist/client.d.ts +2 -2
  4. package/dist/client.js +11 -4
  5. package/dist/client.js.map +1 -1
  6. package/dist/common/clickhouse_types.d.ts +98 -0
  7. package/dist/common/clickhouse_types.js +30 -0
  8. package/dist/common/clickhouse_types.js.map +1 -0
  9. package/dist/common/client.d.ts +233 -0
  10. package/dist/common/client.js +414 -0
  11. package/dist/common/client.js.map +1 -0
  12. package/dist/common/config.d.ts +234 -0
  13. package/dist/common/config.js +364 -0
  14. package/dist/common/config.js.map +1 -0
  15. package/dist/common/connection.d.ts +124 -0
  16. package/dist/common/connection.js +3 -0
  17. package/dist/common/connection.js.map +1 -0
  18. package/dist/common/data_formatter/format_query_params.d.ts +11 -0
  19. package/dist/common/data_formatter/format_query_params.js +128 -0
  20. package/dist/common/data_formatter/format_query_params.js.map +1 -0
  21. package/dist/common/data_formatter/format_query_settings.d.ts +2 -0
  22. package/dist/common/data_formatter/format_query_settings.js +20 -0
  23. package/dist/common/data_formatter/format_query_settings.js.map +1 -0
  24. package/dist/common/data_formatter/formatter.d.ts +41 -0
  25. package/dist/common/data_formatter/formatter.js +78 -0
  26. package/dist/common/data_formatter/formatter.js.map +1 -0
  27. package/dist/common/data_formatter/index.d.ts +3 -0
  28. package/dist/common/data_formatter/index.js +24 -0
  29. package/dist/common/data_formatter/index.js.map +1 -0
  30. package/dist/common/error/error.d.ts +20 -0
  31. package/dist/common/error/error.js +73 -0
  32. package/dist/common/error/error.js.map +1 -0
  33. package/dist/common/error/index.d.ts +1 -0
  34. package/dist/common/error/index.js +18 -0
  35. package/dist/common/error/index.js.map +1 -0
  36. package/dist/common/index.d.ts +67 -0
  37. package/dist/common/index.js +97 -0
  38. package/dist/common/index.js.map +1 -0
  39. package/dist/common/logger.d.ts +80 -0
  40. package/dist/common/logger.js +154 -0
  41. package/dist/common/logger.js.map +1 -0
  42. package/dist/common/parse/column_types.d.ts +155 -0
  43. package/dist/common/parse/column_types.js +594 -0
  44. package/dist/common/parse/column_types.js.map +1 -0
  45. package/dist/common/parse/index.d.ts +2 -0
  46. package/dist/common/parse/index.js +19 -0
  47. package/dist/common/parse/index.js.map +1 -0
  48. package/dist/common/parse/json_handling.d.ts +19 -0
  49. package/dist/common/parse/json_handling.js +8 -0
  50. package/dist/common/parse/json_handling.js.map +1 -0
  51. package/dist/common/result.d.ts +90 -0
  52. package/dist/common/result.js +3 -0
  53. package/dist/common/result.js.map +1 -0
  54. package/dist/common/settings.d.ts +2007 -0
  55. package/dist/common/settings.js +19 -0
  56. package/dist/common/settings.js.map +1 -0
  57. package/dist/common/tracing.d.ts +146 -0
  58. package/dist/common/tracing.js +76 -0
  59. package/dist/common/tracing.js.map +1 -0
  60. package/dist/common/ts_utils.d.ts +4 -0
  61. package/dist/common/ts_utils.js +3 -0
  62. package/dist/common/ts_utils.js.map +1 -0
  63. package/dist/common/utils/connection.d.ts +21 -0
  64. package/dist/common/utils/connection.js +43 -0
  65. package/dist/common/utils/connection.js.map +1 -0
  66. package/dist/common/utils/index.d.ts +5 -0
  67. package/dist/common/utils/index.js +22 -0
  68. package/dist/common/utils/index.js.map +1 -0
  69. package/dist/common/utils/multipart.d.ts +34 -0
  70. package/dist/common/utils/multipart.js +81 -0
  71. package/dist/common/utils/multipart.js.map +1 -0
  72. package/dist/common/utils/sleep.d.ts +4 -0
  73. package/dist/common/utils/sleep.js +12 -0
  74. package/dist/common/utils/sleep.js.map +1 -0
  75. package/dist/common/utils/stream.d.ts +15 -0
  76. package/dist/common/utils/stream.js +50 -0
  77. package/dist/common/utils/stream.js.map +1 -0
  78. package/dist/common/utils/url.d.ts +20 -0
  79. package/dist/common/utils/url.js +67 -0
  80. package/dist/common/utils/url.js.map +1 -0
  81. package/dist/common/version.d.ts +2 -0
  82. package/dist/common/version.js +4 -0
  83. package/dist/common/version.js.map +1 -0
  84. package/dist/config.d.ts +22 -2
  85. package/dist/config.js +2 -2
  86. package/dist/config.js.map +1 -1
  87. package/dist/connection/compression.d.ts +2 -2
  88. package/dist/connection/compression.js +4 -4
  89. package/dist/connection/compression.js.map +1 -1
  90. package/dist/connection/create_connection.d.ts +1 -1
  91. package/dist/connection/node_base_connection.d.ts +3 -3
  92. package/dist/connection/node_base_connection.js +22 -22
  93. package/dist/connection/node_base_connection.js.map +1 -1
  94. package/dist/connection/node_custom_agent_connection.js +2 -2
  95. package/dist/connection/node_custom_agent_connection.js.map +1 -1
  96. package/dist/connection/node_http_connection.js +2 -2
  97. package/dist/connection/node_http_connection.js.map +1 -1
  98. package/dist/connection/node_https_connection.d.ts +1 -1
  99. package/dist/connection/node_https_connection.js +3 -3
  100. package/dist/connection/node_https_connection.js.map +1 -1
  101. package/dist/connection/socket_pool.d.ts +1 -1
  102. package/dist/connection/socket_pool.js +30 -30
  103. package/dist/connection/socket_pool.js.map +1 -1
  104. package/dist/connection/stream.d.ts +1 -1
  105. package/dist/connection/stream.js +9 -9
  106. package/dist/connection/stream.js.map +1 -1
  107. package/dist/index.d.ts +9 -7
  108. package/dist/index.js +26 -24
  109. package/dist/index.js.map +1 -1
  110. package/dist/result_set.d.ts +1 -1
  111. package/dist/result_set.js +10 -10
  112. package/dist/result_set.js.map +1 -1
  113. package/dist/utils/encoder.d.ts +1 -1
  114. package/dist/utils/encoder.js +5 -5
  115. package/dist/utils/encoder.js.map +1 -1
  116. package/dist/version.d.ts +1 -1
  117. package/dist/version.js +1 -1
  118. package/dist/version.js.map +1 -1
  119. package/package.json +10 -7
  120. package/skills/AGENTS.md +8 -0
  121. package/skills/clickhouse-js-node-rowbinary/AGENTS.md +44 -0
  122. package/skills/clickhouse-js-node-rowbinary/CHANGELOG.md +49 -0
  123. package/skills/clickhouse-js-node-rowbinary/EXAMPLES.md +48 -0
  124. package/skills/clickhouse-js-node-rowbinary/README.md +319 -0
  125. package/skills/clickhouse-js-node-rowbinary/SKILL.md +111 -0
  126. package/skills/clickhouse-js-node-rowbinary/case-studies/iot-rowbinary-vs-json.md +83 -0
  127. package/skills/clickhouse-js-node-rowbinary/case-studies/ledger-rowbinary-vs-json.md +103 -0
  128. package/skills/clickhouse-js-node-rowbinary/case-studies/logs-json-wins.md +86 -0
  129. package/skills/clickhouse-js-node-rowbinary/case-studies/wasm-vs-js.md +172 -0
  130. package/skills/clickhouse-js-node-rowbinary/reader.md +126 -0
  131. package/skills/clickhouse-js-node-rowbinary/src/examples/carts.ts +75 -0
  132. package/skills/clickhouse-js-node-rowbinary/src/examples/events.ts +51 -0
  133. package/skills/clickhouse-js-node-rowbinary/src/examples/iot.ts +158 -0
  134. package/skills/clickhouse-js-node-rowbinary/src/examples/ledger.ts +98 -0
  135. package/skills/clickhouse-js-node-rowbinary/src/examples/logs.ts +73 -0
  136. package/skills/clickhouse-js-node-rowbinary/src/examples/observability.ts +141 -0
  137. package/skills/clickhouse-js-node-rowbinary/src/examples/orders.ts +66 -0
  138. package/skills/clickhouse-js-node-rowbinary/src/examples/profiles.ts +60 -0
  139. package/skills/clickhouse-js-node-rowbinary/src/examples/telemetry.ts +102 -0
  140. package/skills/clickhouse-js-node-rowbinary/src/readers/aggregateFunction.ts +34 -0
  141. package/skills/clickhouse-js-node-rowbinary/src/readers/bool.ts +10 -0
  142. package/skills/clickhouse-js-node-rowbinary/src/readers/columnar.ts +125 -0
  143. package/skills/clickhouse-js-node-rowbinary/src/readers/compile.ts +328 -0
  144. package/skills/clickhouse-js-node-rowbinary/src/readers/composite.ts +181 -0
  145. package/skills/clickhouse-js-node-rowbinary/src/readers/core.ts +77 -0
  146. package/skills/clickhouse-js-node-rowbinary/src/readers/datetime.ts +113 -0
  147. package/skills/clickhouse-js-node-rowbinary/src/readers/decimals.ts +57 -0
  148. package/skills/clickhouse-js-node-rowbinary/src/readers/dynamic.ts +332 -0
  149. package/skills/clickhouse-js-node-rowbinary/src/readers/enums.ts +40 -0
  150. package/skills/clickhouse-js-node-rowbinary/src/readers/floats.ts +32 -0
  151. package/skills/clickhouse-js-node-rowbinary/src/readers/geo.ts +109 -0
  152. package/skills/clickhouse-js-node-rowbinary/src/readers/header.ts +29 -0
  153. package/skills/clickhouse-js-node-rowbinary/src/readers/integers.ts +95 -0
  154. package/skills/clickhouse-js-node-rowbinary/src/readers/interval.ts +54 -0
  155. package/skills/clickhouse-js-node-rowbinary/src/readers/ip.ts +93 -0
  156. package/skills/clickhouse-js-node-rowbinary/src/readers/json.ts +33 -0
  157. package/skills/clickhouse-js-node-rowbinary/src/readers/lowCardinality.ts +18 -0
  158. package/skills/clickhouse-js-node-rowbinary/src/readers/nested.ts +23 -0
  159. package/skills/clickhouse-js-node-rowbinary/src/readers/nothing.ts +29 -0
  160. package/skills/clickhouse-js-node-rowbinary/src/readers/reader.ts +68 -0
  161. package/skills/clickhouse-js-node-rowbinary/src/readers/rowBinaryWithNamesAndTypes.ts +155 -0
  162. package/skills/clickhouse-js-node-rowbinary/src/readers/rows.ts +58 -0
  163. package/skills/clickhouse-js-node-rowbinary/src/readers/simpleAggregateFunction.ts +20 -0
  164. package/skills/clickhouse-js-node-rowbinary/src/readers/stream.ts +276 -0
  165. package/skills/clickhouse-js-node-rowbinary/src/readers/strings.ts +55 -0
  166. package/skills/clickhouse-js-node-rowbinary/src/readers/time.ts +61 -0
  167. package/skills/clickhouse-js-node-rowbinary/src/readers/uuid.ts +153 -0
  168. package/skills/clickhouse-js-node-rowbinary/src/readers/varint.ts +70 -0
  169. package/skills/clickhouse-js-node-rowbinary/src/writers/aggregateFunction.ts +18 -0
  170. package/skills/clickhouse-js-node-rowbinary/src/writers/bool.ts +10 -0
  171. package/skills/clickhouse-js-node-rowbinary/src/writers/composite.ts +140 -0
  172. package/skills/clickhouse-js-node-rowbinary/src/writers/core.ts +92 -0
  173. package/skills/clickhouse-js-node-rowbinary/src/writers/datetime.ts +123 -0
  174. package/skills/clickhouse-js-node-rowbinary/src/writers/decimals.ts +51 -0
  175. package/skills/clickhouse-js-node-rowbinary/src/writers/enums.ts +18 -0
  176. package/skills/clickhouse-js-node-rowbinary/src/writers/floats.ts +40 -0
  177. package/skills/clickhouse-js-node-rowbinary/src/writers/geo.ts +125 -0
  178. package/skills/clickhouse-js-node-rowbinary/src/writers/integers.ts +90 -0
  179. package/skills/clickhouse-js-node-rowbinary/src/writers/interval.ts +11 -0
  180. package/skills/clickhouse-js-node-rowbinary/src/writers/ip.ts +121 -0
  181. package/skills/clickhouse-js-node-rowbinary/src/writers/lowCardinality.ts +12 -0
  182. package/skills/clickhouse-js-node-rowbinary/src/writers/nested.ts +17 -0
  183. package/skills/clickhouse-js-node-rowbinary/src/writers/nothing.ts +21 -0
  184. package/skills/clickhouse-js-node-rowbinary/src/writers/rows.ts +144 -0
  185. package/skills/clickhouse-js-node-rowbinary/src/writers/simpleAggregateFunction.ts +12 -0
  186. package/skills/clickhouse-js-node-rowbinary/src/writers/strings.ts +77 -0
  187. package/skills/clickhouse-js-node-rowbinary/src/writers/time.ts +54 -0
  188. package/skills/clickhouse-js-node-rowbinary/src/writers/uuid.ts +60 -0
  189. package/skills/clickhouse-js-node-rowbinary/src/writers/varint.ts +64 -0
  190. package/skills/clickhouse-js-node-rowbinary/src/writers/writer.ts +101 -0
  191. package/skills/clickhouse-js-node-rowbinary/writer.md +96 -0
@@ -0,0 +1,594 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimpleColumnTypes = exports.ColumnTypeParseError = void 0;
4
+ exports.parseColumnType = parseColumnType;
5
+ exports.parseDecimalType = parseDecimalType;
6
+ exports.parseEnumType = parseEnumType;
7
+ exports.parseMapType = parseMapType;
8
+ exports.parseTupleType = parseTupleType;
9
+ exports.parseArrayType = parseArrayType;
10
+ exports.parseDateTimeType = parseDateTimeType;
11
+ exports.parseDateTime64Type = parseDateTime64Type;
12
+ exports.parseFixedStringType = parseFixedStringType;
13
+ exports.asNullableType = asNullableType;
14
+ exports.getElementsTypes = getElementsTypes;
15
+ /** @deprecated Superseded by the `@clickhouse/datatype-parser` package (`parseDataType` + its `Node` AST); slated for removal in a future major version. */
16
+ class ColumnTypeParseError extends Error {
17
+ args;
18
+ constructor(message, args) {
19
+ super(message);
20
+ this.args = args ?? {};
21
+ // Set the prototype explicitly, see:
22
+ // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
23
+ Object.setPrototypeOf(this, ColumnTypeParseError.prototype);
24
+ }
25
+ }
26
+ exports.ColumnTypeParseError = ColumnTypeParseError;
27
+ /** @deprecated Superseded by the `@clickhouse/datatype-parser` package (`parseDataType` + its `Node` AST); slated for removal in a future major version. */
28
+ exports.SimpleColumnTypes = [
29
+ "Bool",
30
+ "UInt8",
31
+ "Int8",
32
+ "UInt16",
33
+ "Int16",
34
+ "UInt32",
35
+ "Int32",
36
+ "UInt64",
37
+ "Int64",
38
+ "UInt128",
39
+ "Int128",
40
+ "UInt256",
41
+ "Int256",
42
+ "Float32",
43
+ "Float64",
44
+ "String",
45
+ "UUID",
46
+ "Date",
47
+ "Date32",
48
+ "IPv4",
49
+ "IPv6",
50
+ ];
51
+ /**
52
+ * @deprecated Superseded by the standalone `@clickhouse/datatype-parser` package
53
+ * — use `parseDataType` and its `Node` AST instead. That parser is
54
+ * server-faithful and already handles the source types listed below as
55
+ * unsupported here (Geo, (Simple)AggregateFunction, Nested, JSON, Dynamic,
56
+ * Variant). Slated for removal in a future major version.
57
+ *
58
+ * @experimental - incomplete, unstable API;
59
+ * originally intended to be used for RowBinary/Native header parsing internally.
60
+ * Currently unsupported source types:
61
+ * * Geo
62
+ * * (Simple)AggregateFunction
63
+ * * Nested
64
+ * * Old/new JSON
65
+ * * Dynamic
66
+ * * Variant
67
+ */
68
+ function parseColumnType(sourceType) {
69
+ let columnType = sourceType;
70
+ let isNullable = false;
71
+ if (columnType.startsWith(LowCardinalityPrefix)) {
72
+ columnType = columnType.slice(LowCardinalityPrefix.length, -1);
73
+ }
74
+ if (columnType.startsWith(NullablePrefix)) {
75
+ columnType = columnType.slice(NullablePrefix.length, -1);
76
+ isNullable = true;
77
+ }
78
+ let result;
79
+ if (exports.SimpleColumnTypes.includes(columnType)) {
80
+ result = {
81
+ type: "Simple",
82
+ columnType: columnType,
83
+ sourceType,
84
+ };
85
+ }
86
+ else if (columnType.startsWith(DecimalPrefix)) {
87
+ result = parseDecimalType({
88
+ sourceType,
89
+ columnType,
90
+ });
91
+ }
92
+ else if (columnType.startsWith(DateTime64Prefix)) {
93
+ result = parseDateTime64Type({ sourceType, columnType });
94
+ }
95
+ else if (columnType.startsWith(DateTimePrefix)) {
96
+ result = parseDateTimeType({ sourceType, columnType });
97
+ }
98
+ else if (columnType.startsWith(FixedStringPrefix)) {
99
+ result = parseFixedStringType({ sourceType, columnType });
100
+ }
101
+ else if (columnType.startsWith(Enum8Prefix) ||
102
+ columnType.startsWith(Enum16Prefix)) {
103
+ result = parseEnumType({ sourceType, columnType });
104
+ }
105
+ else if (columnType.startsWith(ArrayPrefix)) {
106
+ result = parseArrayType({ sourceType, columnType });
107
+ }
108
+ else if (columnType.startsWith(MapPrefix)) {
109
+ result = parseMapType({ sourceType, columnType });
110
+ }
111
+ else if (columnType.startsWith(TuplePrefix)) {
112
+ result = parseTupleType({ sourceType, columnType });
113
+ }
114
+ else {
115
+ throw new ColumnTypeParseError("Unsupported column type", { columnType });
116
+ }
117
+ if (isNullable) {
118
+ return asNullableType(result, sourceType);
119
+ }
120
+ else {
121
+ return result;
122
+ }
123
+ }
124
+ function parseDecimalType({ columnType, sourceType, }) {
125
+ if (!columnType.startsWith(DecimalPrefix) ||
126
+ columnType.length < DecimalPrefix.length + 5 // Decimal(1, 0) is the shortest valid definition
127
+ ) {
128
+ throw new ColumnTypeParseError("Invalid Decimal type", {
129
+ sourceType,
130
+ columnType,
131
+ });
132
+ }
133
+ const split = columnType.slice(DecimalPrefix.length, -1).split(", ");
134
+ if (split.length !== 2) {
135
+ throw new ColumnTypeParseError("Expected Decimal type to have both precision and scale", {
136
+ sourceType,
137
+ columnType,
138
+ split,
139
+ });
140
+ }
141
+ // SAFETY: `split` length is checked to be exactly 2 above
142
+ const [precisionStr, scaleStr] = split;
143
+ let intSize = 32;
144
+ const precision = parseInt(precisionStr, 10);
145
+ if (Number.isNaN(precision) || precision < 1 || precision > 76) {
146
+ throw new ColumnTypeParseError("Invalid Decimal precision", {
147
+ columnType,
148
+ sourceType,
149
+ precision,
150
+ });
151
+ }
152
+ const scale = parseInt(scaleStr, 10);
153
+ if (Number.isNaN(scale) || scale < 0 || scale > precision) {
154
+ throw new ColumnTypeParseError("Invalid Decimal scale", {
155
+ columnType,
156
+ sourceType,
157
+ precision,
158
+ scale,
159
+ });
160
+ }
161
+ if (precision > 38) {
162
+ intSize = 256;
163
+ }
164
+ else if (precision > 18) {
165
+ intSize = 128;
166
+ }
167
+ else if (precision > 9) {
168
+ intSize = 64;
169
+ }
170
+ return {
171
+ type: "Decimal",
172
+ params: {
173
+ precision,
174
+ scale,
175
+ intSize,
176
+ },
177
+ sourceType,
178
+ };
179
+ }
180
+ /**
181
+ * Unescape backslash escape sequences in enum names.
182
+ * Recognized escapes are decoded using ClickHouse-style string escaping:
183
+ * `\\n` -> newline, `\\t` -> tab, `\\r` -> carriage return, `\\\\` -> `\\`,
184
+ * and `\\'` -> `'`.
185
+ * For any other escaped character, the backslash is removed and the following
186
+ * character is kept verbatim to preserve the previous permissive behavior.
187
+ */
188
+ function unescapeEnumName(escaped) {
189
+ let unescaped = "";
190
+ let i = 0;
191
+ while (i < escaped.length) {
192
+ if (escaped.charCodeAt(i) === BackslashASCII && i + 1 < escaped.length) {
193
+ i++;
194
+ switch (escaped[i]) {
195
+ case "n":
196
+ unescaped += "\n";
197
+ break;
198
+ case "t":
199
+ unescaped += "\t";
200
+ break;
201
+ case "r":
202
+ unescaped += "\r";
203
+ break;
204
+ case "\\":
205
+ unescaped += "\\";
206
+ break;
207
+ case "'":
208
+ unescaped += "'";
209
+ break;
210
+ default:
211
+ // Preserve previous behavior for unknown escape sequences by
212
+ // dropping the backslash and keeping the escaped character.
213
+ unescaped += escaped[i];
214
+ break;
215
+ }
216
+ }
217
+ else {
218
+ unescaped += escaped[i];
219
+ }
220
+ i++;
221
+ }
222
+ return unescaped;
223
+ }
224
+ function parseEnumType({ columnType, sourceType, }) {
225
+ let intSize;
226
+ if (columnType.startsWith(Enum8Prefix)) {
227
+ columnType = columnType.slice(Enum8Prefix.length, -1);
228
+ intSize = 8;
229
+ }
230
+ else if (columnType.startsWith(Enum16Prefix)) {
231
+ columnType = columnType.slice(Enum16Prefix.length, -1);
232
+ intSize = 16;
233
+ }
234
+ else {
235
+ throw new ColumnTypeParseError("Expected Enum to be either Enum8 or Enum16", {
236
+ columnType,
237
+ sourceType,
238
+ });
239
+ }
240
+ // The minimal allowed Enum definition is Enum8('' = 0), i.e. 6 chars inside.
241
+ if (columnType.length < 6) {
242
+ throw new ColumnTypeParseError("Invalid Enum type values", {
243
+ columnType,
244
+ sourceType,
245
+ });
246
+ }
247
+ const names = [];
248
+ const indices = [];
249
+ let parsingName = true; // false when parsing the index
250
+ let charEscaped = false; // we should ignore escaped ticks
251
+ let startIndex = 1; // Skip the first '
252
+ // Should support the most complicated enums, such as Enum8('f\'' = 1, 'x =' = 2, 'b\'\'\'' = 3, '\'c=4=' = 42, '4' = 100)
253
+ for (let i = 1; i < columnType.length; i++) {
254
+ if (parsingName) {
255
+ if (charEscaped) {
256
+ charEscaped = false;
257
+ }
258
+ else {
259
+ if (columnType.charCodeAt(i) === BackslashASCII) {
260
+ charEscaped = true;
261
+ }
262
+ else if (columnType.charCodeAt(i) === SingleQuoteASCII) {
263
+ // non-escaped closing tick - push the name
264
+ const rawName = columnType.slice(startIndex, i);
265
+ // Unescape the name by removing backslash escape sequences
266
+ const name = unescapeEnumName(rawName);
267
+ if (names.includes(name)) {
268
+ throw new ColumnTypeParseError("Duplicate Enum name", {
269
+ columnType,
270
+ sourceType,
271
+ name,
272
+ names,
273
+ indices,
274
+ });
275
+ }
276
+ names.push(name);
277
+ i += 4; // skip ` = ` and the first digit, as it will always have at least one.
278
+ startIndex = i;
279
+ parsingName = false;
280
+ }
281
+ }
282
+ }
283
+ // Parsing the index, skipping next iterations until the first non-digit one
284
+ else if (columnType.charCodeAt(i) < ZeroASCII ||
285
+ columnType.charCodeAt(i) > NineASCII) {
286
+ pushEnumIndex(startIndex, i);
287
+ // the char at this index should be comma.
288
+ i += 2; // skip ` '`, but not the first char - ClickHouse allows something like Enum8('foo' = 0, '' = 42)
289
+ startIndex = i + 1;
290
+ parsingName = true;
291
+ charEscaped = false;
292
+ }
293
+ }
294
+ // Push the last index
295
+ pushEnumIndex(startIndex, columnType.length);
296
+ if (names.length !== indices.length) {
297
+ throw new ColumnTypeParseError("Expected Enum to have the same number of names and indices", { columnType, sourceType, names, indices });
298
+ }
299
+ const values = {};
300
+ for (let i = 0; i < names.length; i++) {
301
+ const idx = indices[i];
302
+ const name = names[i];
303
+ // SAFETY: `names.length !== indices.length` is checked and throws above, so both indexed values are always defined.
304
+ values[idx] = name;
305
+ }
306
+ return {
307
+ type: "Enum",
308
+ values,
309
+ intSize,
310
+ sourceType,
311
+ };
312
+ function pushEnumIndex(start, end) {
313
+ const index = parseInt(columnType.slice(start, end), 10);
314
+ if (Number.isNaN(index) || index < 0) {
315
+ throw new ColumnTypeParseError("Expected Enum index to be a valid number", {
316
+ columnType,
317
+ sourceType,
318
+ names,
319
+ indices,
320
+ index,
321
+ start,
322
+ end,
323
+ });
324
+ }
325
+ if (indices.includes(index)) {
326
+ throw new ColumnTypeParseError("Duplicate Enum index", {
327
+ columnType,
328
+ sourceType,
329
+ index,
330
+ names,
331
+ indices,
332
+ });
333
+ }
334
+ indices.push(index);
335
+ }
336
+ }
337
+ function parseMapType({ columnType, sourceType, }) {
338
+ if (!columnType.startsWith(MapPrefix) ||
339
+ columnType.length < MapPrefix.length + 11 // the shortest definition seems to be Map(Int8, Int8)
340
+ ) {
341
+ throw new ColumnTypeParseError("Invalid Map type", {
342
+ columnType,
343
+ sourceType,
344
+ });
345
+ }
346
+ columnType = columnType.slice(MapPrefix.length, -1);
347
+ const [keyType, valueType] = getElementsTypes({ columnType, sourceType }, 2);
348
+ const key = parseColumnType(keyType);
349
+ if (key.type === "DateTime64" ||
350
+ key.type === "Nullable" ||
351
+ key.type === "Array" ||
352
+ key.type === "Map" ||
353
+ key.type === "Decimal" ||
354
+ key.type === "Tuple") {
355
+ throw new ColumnTypeParseError("Invalid Map key type", {
356
+ key,
357
+ sourceType,
358
+ });
359
+ }
360
+ const value = parseColumnType(valueType);
361
+ return {
362
+ type: "Map",
363
+ key,
364
+ value,
365
+ sourceType,
366
+ };
367
+ }
368
+ function parseTupleType({ columnType, sourceType, }) {
369
+ if (!columnType.startsWith(TuplePrefix) ||
370
+ columnType.length < TuplePrefix.length + 5 // Tuple(Int8) is the shortest valid definition
371
+ ) {
372
+ throw new ColumnTypeParseError("Invalid Tuple type", {
373
+ columnType,
374
+ sourceType,
375
+ });
376
+ }
377
+ columnType = columnType.slice(TuplePrefix.length, -1);
378
+ const elements = getElementsTypes({ columnType, sourceType }, 1).map((type) => parseColumnType(type));
379
+ return {
380
+ type: "Tuple",
381
+ elements,
382
+ sourceType,
383
+ };
384
+ }
385
+ function parseArrayType({ columnType, sourceType, }) {
386
+ if (!columnType.startsWith(ArrayPrefix) ||
387
+ columnType.length < ArrayPrefix.length + 5 // Array(Int8) is the shortest valid definition
388
+ ) {
389
+ throw new ColumnTypeParseError("Invalid Array type", {
390
+ columnType,
391
+ sourceType,
392
+ });
393
+ }
394
+ let dimensions = 0;
395
+ while (columnType.length > 0) {
396
+ if (columnType.startsWith(ArrayPrefix)) {
397
+ columnType = columnType.slice(ArrayPrefix.length, -1); // Array(T) -> T
398
+ dimensions++;
399
+ }
400
+ else {
401
+ break;
402
+ }
403
+ }
404
+ if (dimensions === 0 || dimensions > 10) {
405
+ // TODO: check how many we can handle; max 10 seems more than enough.
406
+ throw new ColumnTypeParseError("Expected Array to have between 1 and 10 dimensions", { columnType });
407
+ }
408
+ const value = parseColumnType(columnType);
409
+ if (value.type === "Array") {
410
+ throw new ColumnTypeParseError("Unexpected Array as value type", {
411
+ columnType,
412
+ sourceType,
413
+ });
414
+ }
415
+ return {
416
+ type: "Array",
417
+ value,
418
+ dimensions,
419
+ sourceType,
420
+ };
421
+ }
422
+ function parseDateTimeType({ columnType, sourceType, }) {
423
+ if (columnType.startsWith(DateTimeWithTimezonePrefix) &&
424
+ columnType.length > DateTimeWithTimezonePrefix.length + 4 // DateTime('GB') has the least amount of chars
425
+ ) {
426
+ const timezone = columnType.slice(DateTimeWithTimezonePrefix.length + 1, -2);
427
+ return {
428
+ type: "DateTime",
429
+ timezone,
430
+ sourceType,
431
+ };
432
+ }
433
+ else if (columnType.startsWith(DateTimePrefix) &&
434
+ columnType.length === DateTimePrefix.length) {
435
+ return {
436
+ type: "DateTime",
437
+ timezone: null,
438
+ sourceType,
439
+ };
440
+ }
441
+ else {
442
+ throw new ColumnTypeParseError("Invalid DateTime type", {
443
+ columnType,
444
+ sourceType,
445
+ });
446
+ }
447
+ }
448
+ function parseDateTime64Type({ columnType, sourceType, }) {
449
+ if (!columnType.startsWith(DateTime64Prefix) ||
450
+ columnType.length < DateTime64Prefix.length + 2 // should at least have a precision
451
+ ) {
452
+ throw new ColumnTypeParseError("Invalid DateTime64 type", {
453
+ columnType,
454
+ sourceType,
455
+ });
456
+ }
457
+ const precision = parseInt(columnType[DateTime64Prefix.length] ?? "", 10);
458
+ if (Number.isNaN(precision) || precision < 0 || precision > 9) {
459
+ throw new ColumnTypeParseError("Invalid DateTime64 precision", {
460
+ columnType,
461
+ sourceType,
462
+ precision,
463
+ });
464
+ }
465
+ let timezone = null;
466
+ if (columnType.length > DateTime64Prefix.length + 2) {
467
+ // e.g. DateTime64(3, 'UTC') -> UTC
468
+ timezone = columnType.slice(DateTime64Prefix.length + 4, -2);
469
+ }
470
+ return {
471
+ type: "DateTime64",
472
+ timezone,
473
+ precision,
474
+ sourceType,
475
+ };
476
+ }
477
+ function parseFixedStringType({ columnType, sourceType, }) {
478
+ if (!columnType.startsWith(FixedStringPrefix) ||
479
+ columnType.length < FixedStringPrefix.length + 2 // i.e. at least FixedString(1)
480
+ ) {
481
+ throw new ColumnTypeParseError("Invalid FixedString type", {
482
+ columnType,
483
+ sourceType,
484
+ });
485
+ }
486
+ const sizeBytes = parseInt(columnType.slice(FixedStringPrefix.length, -1), 10);
487
+ if (Number.isNaN(sizeBytes) || sizeBytes < 1) {
488
+ throw new ColumnTypeParseError("Invalid FixedString size in bytes", {
489
+ columnType,
490
+ sourceType,
491
+ sizeBytes,
492
+ });
493
+ }
494
+ return {
495
+ type: "FixedString",
496
+ sizeBytes,
497
+ sourceType,
498
+ };
499
+ }
500
+ function asNullableType(value, sourceType) {
501
+ if (value.type === "Array" ||
502
+ value.type === "Map" ||
503
+ value.type === "Tuple" ||
504
+ value.type === "Nullable") {
505
+ throw new ColumnTypeParseError(`${value.type} cannot be Nullable`, {
506
+ sourceType,
507
+ });
508
+ }
509
+ if (value.sourceType.startsWith(NullablePrefix)) {
510
+ value.sourceType = value.sourceType.slice(NullablePrefix.length, -1);
511
+ }
512
+ return {
513
+ type: "Nullable",
514
+ sourceType,
515
+ value,
516
+ };
517
+ }
518
+ /** Used for Map key/value types and Tuple elements.
519
+ * * `String, UInt8` results in [`String`, `UInt8`].
520
+ * * `String, UInt8, Array(String)` results in [`String`, `UInt8`, `Array(String)`].
521
+ * * Throws if parsed values are below the required minimum. */
522
+ function getElementsTypes({ columnType, sourceType }, minElements) {
523
+ const elements = [];
524
+ /** Consider the element type parsed once we reach a comma outside of parens AND after an unescaped tick.
525
+ * The most complicated cases are values names in the self-defined Enum types:
526
+ * * `Tuple(Enum8('f\'()' = 1))` -> `f\'()`
527
+ * * `Tuple(Enum8('(' = 1))` -> `(`
528
+ * See also: {@link parseEnumType }, which works similarly (but has to deal with the indices following the names). */
529
+ let openParens = 0;
530
+ let quoteOpen = false;
531
+ let charEscaped = false;
532
+ let lastElementIndex = 0;
533
+ for (let i = 0; i < columnType.length; i++) {
534
+ if (charEscaped) {
535
+ charEscaped = false;
536
+ }
537
+ else if (columnType.charCodeAt(i) === BackslashASCII) {
538
+ charEscaped = true;
539
+ }
540
+ else if (columnType.charCodeAt(i) === SingleQuoteASCII) {
541
+ quoteOpen = !quoteOpen; // unescaped quote
542
+ }
543
+ else {
544
+ if (!quoteOpen) {
545
+ if (columnType.charCodeAt(i) === LeftParenASCII) {
546
+ openParens++;
547
+ }
548
+ else if (columnType.charCodeAt(i) === RightParenASCII) {
549
+ openParens--;
550
+ }
551
+ else if (columnType.charCodeAt(i) === CommaASCII) {
552
+ if (openParens === 0) {
553
+ elements.push(columnType.slice(lastElementIndex, i));
554
+ i += 2; // skip ', '
555
+ lastElementIndex = i;
556
+ }
557
+ }
558
+ }
559
+ }
560
+ }
561
+ // Push the remaining part of the type if it seems to be valid (at least all parentheses are closed)
562
+ if (!openParens && lastElementIndex < columnType.length - 1) {
563
+ elements.push(columnType.slice(lastElementIndex));
564
+ }
565
+ if (elements.length < minElements) {
566
+ throw new ColumnTypeParseError("Expected more elements in the type", {
567
+ sourceType,
568
+ columnType,
569
+ elements,
570
+ minElements,
571
+ });
572
+ }
573
+ return elements;
574
+ }
575
+ const NullablePrefix = "Nullable(";
576
+ const LowCardinalityPrefix = "LowCardinality(";
577
+ const DecimalPrefix = "Decimal(";
578
+ const ArrayPrefix = "Array(";
579
+ const MapPrefix = "Map(";
580
+ const Enum8Prefix = "Enum8(";
581
+ const Enum16Prefix = "Enum16(";
582
+ const TuplePrefix = "Tuple(";
583
+ const DateTimePrefix = "DateTime";
584
+ const DateTimeWithTimezonePrefix = "DateTime(";
585
+ const DateTime64Prefix = "DateTime64(";
586
+ const FixedStringPrefix = "FixedString(";
587
+ const SingleQuoteASCII = 39;
588
+ const LeftParenASCII = 40;
589
+ const RightParenASCII = 41;
590
+ const CommaASCII = 44;
591
+ const ZeroASCII = 48;
592
+ const NineASCII = 57;
593
+ const BackslashASCII = 92;
594
+ //# sourceMappingURL=column_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column_types.js","sourceRoot":"","sources":["../../../src/common/parse/column_types.ts"],"names":[],"mappings":";;;AA4MA,0CA+CC;AAED,4CA4DC;AA8CD,sCA+HC;AAED,oCAuCC;AAED,wCAsBC;AAED,wCA2CC;AAED,8CAgCC;AAED,kDAgCC;AAED,oDA6BC;AAED,wCAsBC;AAMD,4CAmDC;AAxwBD,4JAA4J;AAC5J,MAAa,oBAAqB,SAAQ,KAAK;IACpC,IAAI,CAA0B;IACvC,YAAY,OAAe,EAAE,IAA8B;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,qCAAqC;QACrC,gIAAgI;QAChI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACF;AAVD,oDAUC;AAED,4JAA4J;AAC/I,QAAA,iBAAiB,GAAG;IAC/B,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;CACE,CAAC;AAuJX;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,eAAe,CAAC,UAAkB;IAChD,IAAI,UAAU,GAAG,UAAU,CAAC;IAC5B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAChD,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1C,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,IAAI,MAAwB,CAAC;IAC7B,IAAK,yBAAyC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,MAAM,GAAG;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,UAA8B;YAC1C,UAAU;SACX,CAAC;IACJ,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAChD,MAAM,GAAG,gBAAgB,CAAC;YACxB,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnD,MAAM,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,iBAAiB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,oBAAoB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5D,CAAC;SAAM,IACL,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC;QAClC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EACnC,CAAC;QACD,MAAM,GAAG,aAAa,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,cAAc,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,MAAM,GAAG,YAAY,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,cAAc,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,oBAAoB,CAAC,yBAAyB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,UAAU,GACY;IACtB,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC;QACrC,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,iDAAiD;MAC9F,CAAC;QACD,MAAM,IAAI,oBAAoB,CAAC,sBAAsB,EAAE;YACrD,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,oBAAoB,CAC5B,wDAAwD,EACxD;YACE,UAAU;YACV,UAAU;YACV,KAAK;SACN,CACF,CAAC;IACJ,CAAC;IACD,0DAA0D;IAC1D,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,KAAyB,CAAC;IAC3D,IAAI,OAAO,GAA6B,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,oBAAoB,CAAC,2BAA2B,EAAE;YAC1D,UAAU;YACV,UAAU;YACV,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1D,MAAM,IAAI,oBAAoB,CAAC,uBAAuB,EAAE;YACtD,UAAU;YACV,UAAU;YACV,SAAS;YACT,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QACnB,OAAO,GAAG,GAAG,CAAC;IAChB,CAAC;SAAM,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QAC1B,OAAO,GAAG,GAAG,CAAC;IAChB,CAAC;SAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN,SAAS;YACT,KAAK;YACL,OAAO;SACR;QACD,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,cAAc,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACvE,CAAC,EAAE,CAAC;YACJ,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,KAAK,GAAG;oBACN,SAAS,IAAI,IAAI,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,SAAS,IAAI,IAAI,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,SAAS,IAAI,IAAI,CAAC;oBAClB,MAAM;gBACR,KAAK,IAAI;oBACP,SAAS,IAAI,IAAI,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,SAAS,IAAI,GAAG,CAAC;oBACjB,MAAM;gBACR;oBACE,6DAA6D;oBAC7D,4DAA4D;oBAC5D,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxB,MAAM;YACV,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,UAAU,GACY;IACtB,IAAI,OAAe,CAAC;IACpB,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,GAAG,CAAC,CAAC;IACd,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,oBAAoB,CAC5B,4CAA4C,EAC5C;YACE,UAAU;YACV,UAAU;SACX,CACF,CAAC;IACJ,CAAC;IACD,6EAA6E;IAC7E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,EAAE;YACzD,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,CAAC,+BAA+B;IACvD,IAAI,WAAW,GAAG,KAAK,CAAC,CAAC,iCAAiC;IAC1D,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,mBAAmB;IAEvC,0HAA0H;IAC1H,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,GAAG,KAAK,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;oBAChD,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;qBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;oBACzD,2CAA2C;oBAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBAChD,2DAA2D;oBAC3D,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACzB,MAAM,IAAI,oBAAoB,CAAC,qBAAqB,EAAE;4BACpD,UAAU;4BACV,UAAU;4BACV,IAAI;4BACJ,KAAK;4BACL,OAAO;yBACR,CAAC,CAAC;oBACL,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjB,CAAC,IAAI,CAAC,CAAC,CAAC,uEAAuE;oBAC/E,UAAU,GAAG,CAAC,CAAC;oBACf,WAAW,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QACD,4EAA4E;aACvE,IACH,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;YACpC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,EACpC,CAAC;YACD,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC7B,0CAA0C;YAC1C,CAAC,IAAI,CAAC,CAAC,CAAC,iGAAiG;YACzG,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,WAAW,GAAG,IAAI,CAAC;YACnB,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,oBAAoB,CAC5B,4DAA4D,EAC5D,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAC3C,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAA+B,EAAE,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,oHAAoH;QACpH,MAAM,CAAC,GAAI,CAAC,GAAG,IAAK,CAAC;IACvB,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM;QACN,OAAO;QACP,UAAU;KACX,CAAC;IAEF,SAAS,aAAa,CAAC,KAAa,EAAE,GAAW;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,oBAAoB,CAC5B,0CAA0C,EAC1C;gBACE,UAAU;gBACV,UAAU;gBACV,KAAK;gBACL,OAAO;gBACP,KAAK;gBACL,KAAK;gBACL,GAAG;aACJ,CACF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,oBAAoB,CAAC,sBAAsB,EAAE;gBACrD,UAAU;gBACV,UAAU;gBACV,KAAK;gBACL,KAAK;gBACL,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,UAAU,GACY;IACtB,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QACjC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,sDAAsD;MAChG,CAAC;QACD,MAAM,IAAI,oBAAoB,CAAC,kBAAkB,EAAE;YACjD,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IACD,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,gBAAgB,CAC3C,EAAE,UAAU,EAAE,UAAU,EAAE,EAC1B,CAAC,CAC+B,CAAC;IACnC,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACrC,IACE,GAAG,CAAC,IAAI,KAAK,YAAY;QACzB,GAAG,CAAC,IAAI,KAAK,UAAU;QACvB,GAAG,CAAC,IAAI,KAAK,OAAO;QACpB,GAAG,CAAC,IAAI,KAAK,KAAK;QAClB,GAAG,CAAC,IAAI,KAAK,SAAS;QACtB,GAAG,CAAC,IAAI,KAAK,OAAO,EACpB,CAAC;QACD,MAAM,IAAI,oBAAoB,CAAC,sBAAsB,EAAE;YACrD,GAAG;YACH,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG;QACH,KAAK;QACL,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,UAAU,GACY;IACtB,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC;QACnC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,+CAA+C;MAC1F,CAAC;QACD,MAAM,IAAI,oBAAoB,CAAC,oBAAoB,EAAE;YACnD,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IACD,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5E,eAAe,CAAC,IAAI,CAAC,CACtB,CAAC;IACF,OAAO;QACL,IAAI,EAAE,OAAO;QACb,QAAQ;QACR,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,UAAU,GACY;IACtB,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC;QACnC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,+CAA+C;MAC1F,CAAC;QACD,MAAM,IAAI,oBAAoB,CAAC,oBAAoB,EAAE;YACnD,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;YACvE,UAAU,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;QACxC,qEAAqE;QACrE,MAAM,IAAI,oBAAoB,CAC5B,oDAAoD,EACpD,EAAE,UAAU,EAAE,CACf,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,oBAAoB,CAAC,gCAAgC,EAAE;YAC/D,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK;QACL,UAAU;QACV,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,UAAU,GACY;IACtB,IACE,UAAU,CAAC,UAAU,CAAC,0BAA0B,CAAC;QACjD,UAAU,CAAC,MAAM,GAAG,0BAA0B,CAAC,MAAM,GAAG,CAAC,CAAC,+CAA+C;MACzG,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAC/B,0BAA0B,CAAC,MAAM,GAAG,CAAC,EACrC,CAAC,CAAC,CACH,CAAC;QACF,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ;YACR,UAAU;SACX,CAAC;IACJ,CAAC;SAAM,IACL,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC;QACrC,UAAU,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM,EAC3C,CAAC;QACD,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,UAAU;SACX,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,oBAAoB,CAAC,uBAAuB,EAAE;YACtD,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,EAClC,UAAU,EACV,UAAU,GACY;IACtB,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACxC,UAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAmC;MACnF,CAAC;QACD,MAAM,IAAI,oBAAoB,CAAC,yBAAyB,EAAE;YACxD,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,oBAAoB,CAAC,8BAA8B,EAAE;YAC7D,UAAU;YACV,UAAU;YACV,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,UAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,mCAAmC;QACnC,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,QAAQ;QACR,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAAC,EACnC,UAAU,EACV,UAAU,GACY;IACtB,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACzC,UAAU,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,+BAA+B;MAChF,CAAC;QACD,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,EAAE;YACzD,UAAU;YACV,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CACxB,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAC9C,EAAE,CACH,CAAC;IACF,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,oBAAoB,CAAC,mCAAmC,EAAE;YAClE,UAAU;YACV,UAAU;YACV,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAC5B,KAAuB,EACvB,UAAkB;IAElB,IACE,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,KAAK,CAAC,IAAI,KAAK,KAAK;QACpB,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,KAAK,CAAC,IAAI,KAAK,UAAU,EACzB,CAAC;QACD,MAAM,IAAI,oBAAoB,CAAC,GAAG,KAAK,CAAC,IAAI,qBAAqB,EAAE;YACjE,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,UAAU;QACV,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;gEAGgE;AAChE,SAAgB,gBAAgB,CAC9B,EAAE,UAAU,EAAE,UAAU,EAAyB,EACjD,WAAmB;IAEnB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B;;;;0HAIsH;IACtH,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;YACvD,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;YACzD,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;oBAChD,UAAU,EAAE,CAAC;gBACf,CAAC;qBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;oBACxD,UAAU,EAAE,CAAC;gBACf,CAAC;qBAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;oBACnD,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;wBACrB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;wBACrD,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY;wBACpB,gBAAgB,GAAG,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oGAAoG;IACpG,IAAI,CAAC,UAAU,IAAI,gBAAgB,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,oBAAoB,CAAC,oCAAoC,EAAE;YACnE,UAAU;YACV,UAAU;YACV,QAAQ;YACR,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AASD,MAAM,cAAc,GAAG,WAAoB,CAAC;AAC5C,MAAM,oBAAoB,GAAG,iBAA0B,CAAC;AACxD,MAAM,aAAa,GAAG,UAAmB,CAAC;AAC1C,MAAM,WAAW,GAAG,QAAiB,CAAC;AACtC,MAAM,SAAS,GAAG,MAAe,CAAC;AAClC,MAAM,WAAW,GAAG,QAAiB,CAAC;AACtC,MAAM,YAAY,GAAG,SAAkB,CAAC;AACxC,MAAM,WAAW,GAAG,QAAiB,CAAC;AACtC,MAAM,cAAc,GAAG,UAAmB,CAAC;AAC3C,MAAM,0BAA0B,GAAG,WAAoB,CAAC;AACxD,MAAM,gBAAgB,GAAG,aAAsB,CAAC;AAChD,MAAM,iBAAiB,GAAG,cAAuB,CAAC;AAElD,MAAM,gBAAgB,GAAG,EAAW,CAAC;AACrC,MAAM,cAAc,GAAG,EAAW,CAAC;AACnC,MAAM,eAAe,GAAG,EAAW,CAAC;AACpC,MAAM,UAAU,GAAG,EAAW,CAAC;AAC/B,MAAM,SAAS,GAAG,EAAW,CAAC;AAC9B,MAAM,SAAS,GAAG,EAAW,CAAC;AAC9B,MAAM,cAAc,GAAG,EAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./column_types";
2
+ export * from "./json_handling";
@@ -0,0 +1,19 @@
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("./column_types"), exports);
18
+ __exportStar(require("./json_handling"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/parse/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,kDAAgC"}
@@ -0,0 +1,19 @@
1
+ export interface JSONHandling {
2
+ /**
3
+ * Custom parser for JSON strings
4
+ *
5
+ * @param input stringified JSON
6
+ * @default JSON.parse // See {@link JSON.parse}
7
+ * @returns parsed object
8
+ */
9
+ parse: <T>(input: string) => T;
10
+ /**
11
+ * Custom stringifier for JSON objects
12
+ *
13
+ * @param input any JSON-compatible object
14
+ * @default JSON.stringify // See {@link JSON.stringify}
15
+ * @returns stringified JSON
16
+ */
17
+ stringify: <T = any>(input: T) => string;
18
+ }
19
+ export declare const defaultJSONHandling: JSONHandling;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultJSONHandling = void 0;
4
+ exports.defaultJSONHandling = {
5
+ parse: JSON.parse,
6
+ stringify: JSON.stringify,
7
+ };
8
+ //# sourceMappingURL=json_handling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json_handling.js","sourceRoot":"","sources":["../../../src/common/parse/json_handling.ts"],"names":[],"mappings":";;;AAmBa,QAAA,mBAAmB,GAAiB;IAC/C,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,SAAS,EAAE,IAAI,CAAC,SAAS;CAC1B,CAAC"}