@elaraai/east-node-io 0.0.1-beta.1 → 0.0.1-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compression/gzip.d.ts +108 -0
- package/dist/compression/gzip.d.ts.map +1 -0
- package/dist/compression/gzip.js +153 -0
- package/dist/compression/gzip.js.map +1 -0
- package/dist/compression/index.d.ts +308 -0
- package/dist/compression/index.d.ts.map +1 -0
- package/dist/compression/index.js +289 -0
- package/dist/compression/index.js.map +1 -0
- package/dist/compression/tar.d.ts +115 -0
- package/dist/compression/tar.d.ts.map +1 -0
- package/dist/compression/tar.js +254 -0
- package/dist/compression/tar.js.map +1 -0
- package/dist/compression/types.d.ts +124 -0
- package/dist/compression/types.d.ts.map +1 -0
- package/dist/compression/types.js +106 -0
- package/dist/compression/types.js.map +1 -0
- package/dist/compression/zip.d.ts +121 -0
- package/dist/compression/zip.d.ts.map +1 -0
- package/dist/compression/zip.js +200 -0
- package/dist/compression/zip.js.map +1 -0
- package/dist/connection/index.d.ts +78 -0
- package/dist/connection/index.d.ts.map +1 -0
- package/dist/connection/index.js +134 -0
- package/dist/connection/index.js.map +1 -0
- package/dist/format/index.d.ts +421 -0
- package/dist/format/index.d.ts.map +1 -0
- package/dist/format/index.js +326 -0
- package/dist/format/index.js.map +1 -0
- package/dist/format/types.d.ts +176 -0
- package/dist/format/types.d.ts.map +1 -0
- package/dist/format/types.js +122 -0
- package/dist/format/types.js.map +1 -0
- package/dist/format/xlsx.d.ts +178 -0
- package/dist/format/xlsx.d.ts.map +1 -0
- package/dist/format/xlsx.js +313 -0
- package/dist/format/xlsx.js.map +1 -0
- package/dist/format/xml.d.ts +302 -0
- package/dist/format/xml.d.ts.map +1 -0
- package/dist/format/xml.js +602 -0
- package/dist/format/xml.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/nosql/index.d.ts +503 -0
- package/dist/nosql/index.d.ts.map +1 -0
- package/dist/nosql/index.js +483 -0
- package/dist/nosql/index.js.map +1 -0
- package/dist/nosql/mongodb.d.ts +306 -0
- package/dist/nosql/mongodb.d.ts.map +1 -0
- package/dist/nosql/mongodb.js +552 -0
- package/dist/nosql/mongodb.js.map +1 -0
- package/dist/nosql/redis.d.ts +268 -0
- package/dist/nosql/redis.d.ts.map +1 -0
- package/dist/nosql/redis.js +371 -0
- package/dist/nosql/redis.js.map +1 -0
- package/dist/nosql/types.d.ts +70 -0
- package/dist/nosql/types.d.ts.map +1 -0
- package/dist/nosql/types.js +79 -0
- package/dist/nosql/types.js.map +1 -0
- package/dist/sql/index.d.ts +777 -0
- package/dist/sql/index.d.ts.map +1 -0
- package/dist/sql/index.js +515 -0
- package/dist/sql/index.js.map +1 -0
- package/dist/sql/mysql.d.ts +238 -0
- package/dist/sql/mysql.d.ts.map +1 -0
- package/dist/sql/mysql.js +396 -0
- package/dist/sql/mysql.js.map +1 -0
- package/dist/sql/postgres.d.ts +237 -0
- package/dist/sql/postgres.d.ts.map +1 -0
- package/dist/sql/postgres.js +381 -0
- package/dist/sql/postgres.js.map +1 -0
- package/dist/sql/sqlite.d.ts +217 -0
- package/dist/sql/sqlite.d.ts.map +1 -0
- package/dist/sql/sqlite.js +366 -0
- package/dist/sql/sqlite.js.map +1 -0
- package/dist/sql/types.d.ts +205 -0
- package/dist/sql/types.d.ts.map +1 -0
- package/dist/sql/types.js +175 -0
- package/dist/sql/types.js.map +1 -0
- package/dist/storage/index.d.ts +304 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +234 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/s3.d.ts +373 -0
- package/dist/storage/s3.d.ts.map +1 -0
- package/dist/storage/s3.js +502 -0
- package/dist/storage/s3.js.map +1 -0
- package/dist/storage/types.d.ts +117 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +94 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/transfer/ftp.d.ts +333 -0
- package/dist/transfer/ftp.d.ts.map +1 -0
- package/dist/transfer/ftp.js +437 -0
- package/dist/transfer/ftp.js.map +1 -0
- package/dist/transfer/index.d.ts +456 -0
- package/dist/transfer/index.d.ts.map +1 -0
- package/dist/transfer/index.js +414 -0
- package/dist/transfer/index.js.map +1 -0
- package/dist/transfer/sftp.d.ts +333 -0
- package/dist/transfer/sftp.d.ts.map +1 -0
- package/dist/transfer/sftp.js +436 -0
- package/dist/transfer/sftp.js.map +1 -0
- package/dist/transfer/types.d.ts +108 -0
- package/dist/transfer/types.d.ts.map +1 -0
- package/dist/transfer/types.js +110 -0
- package/dist/transfer/types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1,602 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { East, BlobType, RecursiveType, StructType, StringType, DictType, ArrayType, VariantType, BooleanType, OptionType, variant, SortedMap } from "@elaraai/east";
|
|
6
|
+
import { EastError } from "@elaraai/east/internal";
|
|
7
|
+
// XML Type Definitions
|
|
8
|
+
/**
|
|
9
|
+
* XmlNode represents an XML element with its tag, attributes, and children.
|
|
10
|
+
*
|
|
11
|
+
* Children can be either TEXT nodes (string content) or ELEMENT nodes (nested XML elements).
|
|
12
|
+
* This recursive structure allows representing arbitrary XML trees.
|
|
13
|
+
*/
|
|
14
|
+
export const XmlNode = RecursiveType(self => StructType({
|
|
15
|
+
tag: StringType, // Element tag name (e.g., "book")
|
|
16
|
+
attributes: DictType(StringType, StringType), // Attributes map (e.g., {"id": "123"})
|
|
17
|
+
children: ArrayType(VariantType({
|
|
18
|
+
TEXT: StringType, // Text content
|
|
19
|
+
ELEMENT: self, // Nested element (recursive)
|
|
20
|
+
})),
|
|
21
|
+
}));
|
|
22
|
+
// Configuration Types
|
|
23
|
+
export const XmlParseConfig = StructType({
|
|
24
|
+
preserveWhitespace: BooleanType, // Default: false (trim text nodes)
|
|
25
|
+
decodeEntities: BooleanType, // Default: true (< -> <, etc.)
|
|
26
|
+
});
|
|
27
|
+
export const XmlSerializeConfig = StructType({
|
|
28
|
+
indent: OptionType(StringType), // Default: none, Example: " " for 2 spaces
|
|
29
|
+
includeXmlDeclaration: BooleanType, // Default: true (<?xml version="1.0"?>)
|
|
30
|
+
encodeEntities: BooleanType, // Default: true (< -> <, etc.)
|
|
31
|
+
selfClosingTags: BooleanType, // Default: true (<br/> vs <br></br>)
|
|
32
|
+
});
|
|
33
|
+
// Platform Functions
|
|
34
|
+
/**
|
|
35
|
+
* Parses XML data from a binary blob into a recursive tree structure.
|
|
36
|
+
*
|
|
37
|
+
* Converts XML-formatted binary data into an {@link XmlNode} recursive structure,
|
|
38
|
+
* where each node contains a tag name, attributes dictionary, and children array.
|
|
39
|
+
* Children can be either TEXT nodes (string content) or ELEMENT nodes (nested elements).
|
|
40
|
+
*
|
|
41
|
+
* Supports XML declarations, namespaces (as attributes), CDATA sections,
|
|
42
|
+
* entity decoding, comments (ignored), processing instructions (ignored),
|
|
43
|
+
* and configurable whitespace handling.
|
|
44
|
+
*
|
|
45
|
+
* This is a platform function for the East language, enabling XML parsing
|
|
46
|
+
* in East programs running on Node.js.
|
|
47
|
+
*
|
|
48
|
+
* @param blob - The XML data as a binary blob (UTF-8 encoded)
|
|
49
|
+
* @param config - Parsing configuration including whitespace and entity handling options
|
|
50
|
+
* @returns An {@link XmlNode} representing the root element of the XML document
|
|
51
|
+
*
|
|
52
|
+
* @throws {EastError} When XML is malformed with specific error messages:
|
|
53
|
+
* - "Expected '<' at line N, column M" - Missing opening tag bracket
|
|
54
|
+
* - "Invalid tag name at line N, column M" - Tag name contains invalid characters
|
|
55
|
+
* - "Expected '=' after attribute name at line N, column M" - Missing equals in attribute
|
|
56
|
+
* - "Expected quote for attribute value at line N, column M" - Attribute value not quoted
|
|
57
|
+
* - "Unclosed attribute value at line N, column M" - Missing closing quote
|
|
58
|
+
* - "Expected '>' at line N, column M" - Missing closing bracket
|
|
59
|
+
* - "Mismatched closing tag: expected '</X>', found '</Y>' at line N, column M" - Tag mismatch
|
|
60
|
+
* - "Expected '>' in closing tag at line N, column M" - Malformed closing tag
|
|
61
|
+
* - "Unclosed comment at line N, column M" - Comment not properly closed
|
|
62
|
+
* - "Unclosed CDATA section at line N, column M" - CDATA not properly closed
|
|
63
|
+
* - "Empty XML document" - No root element found
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* const parseXML = East.function([BlobType], XmlNode, ($, xmlBlob) => {
|
|
68
|
+
* const config = $.const(East.value({
|
|
69
|
+
* preserveWhitespace: false,
|
|
70
|
+
* decodeEntities: true,
|
|
71
|
+
* }, XmlParseConfig));
|
|
72
|
+
*
|
|
73
|
+
* return xml_parse(xmlBlob, config);
|
|
74
|
+
* // Returns: { tag: "book", attributes: {"id": "123"}, children: [...] }
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @remarks
|
|
79
|
+
* - Skips XML declarations (`<?xml version="1.0"?>`) and processing instructions
|
|
80
|
+
* - Ignores comments (`<!-- comment -->`) - they are not preserved
|
|
81
|
+
* - Handles CDATA sections (`<![CDATA[...]]>`) as text without entity decoding
|
|
82
|
+
* - Decodes predefined entities (`<`, `>`, `&`, `"`, `'`)
|
|
83
|
+
* - Decodes numeric entities (decimal `A` and hexadecimal `A`)
|
|
84
|
+
* - Namespaces are treated as regular attributes (e.g., `xmlns:foo="..."`)
|
|
85
|
+
* - Preserves namespace prefixes in tag names (e.g., `foo:element`)
|
|
86
|
+
* - Skips UTF-8 BOM (0xEF 0xBB 0xBF) if present at start
|
|
87
|
+
* - Tracks line and column numbers for precise error reporting
|
|
88
|
+
*/
|
|
89
|
+
export const xml_parse = East.platform("xml_parse", [BlobType, XmlParseConfig], XmlNode);
|
|
90
|
+
/**
|
|
91
|
+
* Serializes a recursive XML tree structure into XML-formatted binary data.
|
|
92
|
+
*
|
|
93
|
+
* Converts an {@link XmlNode} recursive structure into XML-formatted binary data.
|
|
94
|
+
* Supports configurable indentation, XML declarations, entity encoding,
|
|
95
|
+
* and self-closing tag formatting.
|
|
96
|
+
*
|
|
97
|
+
* This is a platform function for the East language, enabling XML serialization
|
|
98
|
+
* in East programs running on Node.js.
|
|
99
|
+
*
|
|
100
|
+
* @param node - The {@link XmlNode} root element to serialize
|
|
101
|
+
* @param config - Serialization configuration including indentation and formatting options
|
|
102
|
+
* @returns A binary blob containing the XML-formatted data (UTF-8 encoded)
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```ts
|
|
106
|
+
* const serializeXML = East.function([XmlNode], BlobType, ($, doc) => {
|
|
107
|
+
* const config = $.const(East.value({
|
|
108
|
+
* indent: variant('some', " "),
|
|
109
|
+
* includeXmlDeclaration: true,
|
|
110
|
+
* encodeEntities: true,
|
|
111
|
+
* selfClosingTags: true,
|
|
112
|
+
* }, XmlSerializeConfig));
|
|
113
|
+
*
|
|
114
|
+
* return xml_serialize(doc, config);
|
|
115
|
+
* // Returns blob that decodes to:
|
|
116
|
+
* // <?xml version="1.0" encoding="UTF-8"?>
|
|
117
|
+
* // <book id="123">
|
|
118
|
+
* // <title>East Guide</title>
|
|
119
|
+
* // </book>
|
|
120
|
+
* });
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* @remarks
|
|
124
|
+
* - Automatically encodes special characters (`<`, `>`, `&`, `"`, `'`) when encodeEntities is true
|
|
125
|
+
* - Attributes are serialized in the order they appear in the dictionary (sorted)
|
|
126
|
+
* - Empty elements are serialized as self-closing tags (`<br/>`) when selfClosingTags is true
|
|
127
|
+
* - Mixed content (text and elements) avoids extra newlines for simple text-only content
|
|
128
|
+
* - Indentation is applied recursively to nested elements
|
|
129
|
+
* - XML declaration includes `version="1.0"` and `encoding="UTF-8"` when enabled
|
|
130
|
+
*/
|
|
131
|
+
export const xml_serialize = East.platform("xml_serialize", [XmlNode, XmlSerializeConfig], BlobType);
|
|
132
|
+
/**
|
|
133
|
+
* Node.js implementation of XML platform functions.
|
|
134
|
+
*
|
|
135
|
+
* Pass this array to {@link East.compile} to enable XML operations.
|
|
136
|
+
*/
|
|
137
|
+
const XmlImpl = [
|
|
138
|
+
xml_parse.implement((blob, config) => {
|
|
139
|
+
try {
|
|
140
|
+
return parseXml(blob, config);
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
if (err instanceof EastError)
|
|
144
|
+
throw err;
|
|
145
|
+
throw new EastError(`XML parsing failed: ${err.message}`, {
|
|
146
|
+
location: { filename: "xml_parse", line: 0n, column: 0n },
|
|
147
|
+
cause: err
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}),
|
|
151
|
+
xml_serialize.implement((node, config) => {
|
|
152
|
+
try {
|
|
153
|
+
return serializeXml(node, config);
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
if (err instanceof EastError)
|
|
157
|
+
throw err;
|
|
158
|
+
throw new EastError(`XML serialization failed: ${err.message}`, {
|
|
159
|
+
location: { filename: "xml_serialize", line: 0n, column: 0n },
|
|
160
|
+
cause: err
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}),
|
|
164
|
+
];
|
|
165
|
+
/**
|
|
166
|
+
* Grouped XML platform functions.
|
|
167
|
+
*
|
|
168
|
+
* Provides XML parsing and serialization operations for East programs.
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```ts
|
|
172
|
+
* import { East, BlobType } from "@elaraai/east";
|
|
173
|
+
* import { XML, XmlParseConfig, XmlNode } from "@elaraai/east-node-std";
|
|
174
|
+
*
|
|
175
|
+
* const parseXML = East.function([BlobType], XmlNode, ($, xmlBlob) => {
|
|
176
|
+
* const config = $.const(East.value({
|
|
177
|
+
* preserveWhitespace: false,
|
|
178
|
+
* decodeEntities: true,
|
|
179
|
+
* }, XmlParseConfig));
|
|
180
|
+
*
|
|
181
|
+
* return XML.parse(xmlBlob, config);
|
|
182
|
+
* });
|
|
183
|
+
*
|
|
184
|
+
* const compiled = East.compile(parseXML.toIR(), XML.Implementation);
|
|
185
|
+
* const xmlData = new TextEncoder().encode("<book id='123'><title>East Guide</title></book>");
|
|
186
|
+
* compiled(xmlData); // Returns parsed XML tree
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export const XML = {
|
|
190
|
+
/**
|
|
191
|
+
* Parses XML data from a binary blob into a recursive tree structure.
|
|
192
|
+
*
|
|
193
|
+
* Converts XML-formatted binary data into an XmlNode recursive structure.
|
|
194
|
+
* Supports XML declarations, namespaces, CDATA, entity decoding, and comments.
|
|
195
|
+
*
|
|
196
|
+
* @param blob - The XML data as a binary blob (UTF-8 encoded)
|
|
197
|
+
* @param config - Parsing configuration
|
|
198
|
+
* @returns An XmlNode representing the root element
|
|
199
|
+
* @throws {EastError} When XML is malformed
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```ts
|
|
203
|
+
* const parseXML = East.function([BlobType], XmlNode, ($, xmlBlob) => {
|
|
204
|
+
* const config = $.const(East.value({
|
|
205
|
+
* preserveWhitespace: false,
|
|
206
|
+
* decodeEntities: true,
|
|
207
|
+
* }, XmlParseConfig));
|
|
208
|
+
*
|
|
209
|
+
* return XML.parse(xmlBlob, config);
|
|
210
|
+
* });
|
|
211
|
+
*
|
|
212
|
+
* const compiled = East.compile(parseXML.toIR(), XML.Implementation);
|
|
213
|
+
* const xmlData = new TextEncoder().encode("<book><title>East</title></book>");
|
|
214
|
+
* compiled(xmlData); // Returns: { tag: "book", attributes: Map{}, children: [...] }
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
parse: xml_parse,
|
|
218
|
+
/**
|
|
219
|
+
* Serializes a recursive XML tree structure into XML-formatted binary data.
|
|
220
|
+
*
|
|
221
|
+
* Converts an XmlNode recursive structure into XML-formatted binary data.
|
|
222
|
+
* Supports indentation, XML declarations, entity encoding, and self-closing tags.
|
|
223
|
+
*
|
|
224
|
+
* @param node - The XmlNode root element to serialize
|
|
225
|
+
* @param config - Serialization configuration
|
|
226
|
+
* @returns A binary blob containing the XML-formatted data
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* ```ts
|
|
230
|
+
* const serializeXML = East.function([XmlNode], BlobType, ($, doc) => {
|
|
231
|
+
* const config = $.const(East.value({
|
|
232
|
+
* indent: variant('some', " "),
|
|
233
|
+
* includeXmlDeclaration: true,
|
|
234
|
+
* encodeEntities: true,
|
|
235
|
+
* selfClosingTags: true,
|
|
236
|
+
* }, XmlSerializeConfig));
|
|
237
|
+
*
|
|
238
|
+
* return XML.serialize(doc, config);
|
|
239
|
+
* });
|
|
240
|
+
*
|
|
241
|
+
* const compiled = East.compile(serializeXML.toIR(), XML.Implementation);
|
|
242
|
+
* const xmlNode = { tag: "book", attributes: new Map(), children: [] };
|
|
243
|
+
* compiled(xmlNode); // Returns blob: "<?xml version=\"1.0\"?>\n<book/>"
|
|
244
|
+
* ```
|
|
245
|
+
*/
|
|
246
|
+
serialize: xml_serialize,
|
|
247
|
+
/**
|
|
248
|
+
* Node.js implementation of XML platform functions.
|
|
249
|
+
*
|
|
250
|
+
* Pass this to {@link East.compile} to enable XML operations.
|
|
251
|
+
*/
|
|
252
|
+
Implementation: XmlImpl,
|
|
253
|
+
/**
|
|
254
|
+
* Type definitions for XML operations.
|
|
255
|
+
*/
|
|
256
|
+
Types: {
|
|
257
|
+
/**
|
|
258
|
+
* XML parsing configuration type.
|
|
259
|
+
*/
|
|
260
|
+
ParseConfig: XmlParseConfig,
|
|
261
|
+
/**
|
|
262
|
+
* XML serialization configuration type.
|
|
263
|
+
*/
|
|
264
|
+
SerializeConfig: XmlSerializeConfig,
|
|
265
|
+
/**
|
|
266
|
+
* XML node recursive type (element with tag, attributes, and children).
|
|
267
|
+
*/
|
|
268
|
+
Node: XmlNode,
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
// Export for backwards compatibility
|
|
272
|
+
export { XmlImpl };
|
|
273
|
+
// Helper Functions
|
|
274
|
+
function parseXml(blob, config) {
|
|
275
|
+
const decoder = new TextDecoder();
|
|
276
|
+
let xml = decoder.decode(blob);
|
|
277
|
+
// Skip UTF-8 BOM if present
|
|
278
|
+
if (xml.charCodeAt(0) === 0xFEFF) {
|
|
279
|
+
xml = xml.substring(1);
|
|
280
|
+
}
|
|
281
|
+
const { preserveWhitespace, decodeEntities } = config;
|
|
282
|
+
let pos = 0;
|
|
283
|
+
let line = 1n;
|
|
284
|
+
let column = 1n;
|
|
285
|
+
// Helper: advance position tracking
|
|
286
|
+
const advance = (count = 1) => {
|
|
287
|
+
for (let i = 0; i < count; i++) {
|
|
288
|
+
if (xml[pos + i] === '\n') {
|
|
289
|
+
line++;
|
|
290
|
+
column = 1n;
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
column++;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
pos += count;
|
|
297
|
+
};
|
|
298
|
+
// Helper: skip whitespace
|
|
299
|
+
const skipWhitespace = () => {
|
|
300
|
+
while (pos < xml.length && /\s/.test(xml[pos])) {
|
|
301
|
+
advance();
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
// Helper: decode XML entities
|
|
305
|
+
const decodeXmlEntities = (text) => {
|
|
306
|
+
if (!decodeEntities)
|
|
307
|
+
return text;
|
|
308
|
+
return text
|
|
309
|
+
.replace(/</g, '<')
|
|
310
|
+
.replace(/>/g, '>')
|
|
311
|
+
.replace(/&/g, '&')
|
|
312
|
+
.replace(/"/g, '"')
|
|
313
|
+
.replace(/'/g, "'")
|
|
314
|
+
.replace(/&#(\d+);/g, (_, num) => String.fromCharCode(parseInt(num, 10)))
|
|
315
|
+
.replace(/&#x([0-9a-fA-F]+);/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)));
|
|
316
|
+
};
|
|
317
|
+
// Helper: parse element
|
|
318
|
+
const parseElement = () => {
|
|
319
|
+
// Expect '<'
|
|
320
|
+
if (xml[pos] !== '<') {
|
|
321
|
+
throw new EastError(`Expected '<' at line ${line}, column ${column}`, {
|
|
322
|
+
location: { filename: "xml_parse", line, column }
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
advance(); // skip '<'
|
|
326
|
+
// Parse tag name
|
|
327
|
+
const tagStart = pos;
|
|
328
|
+
while (pos < xml.length && /[a-zA-Z0-9:_-]/.test(xml[pos])) {
|
|
329
|
+
advance();
|
|
330
|
+
}
|
|
331
|
+
const tag = xml.substring(tagStart, pos);
|
|
332
|
+
if (tag.length === 0) {
|
|
333
|
+
throw new EastError(`Invalid tag name at line ${line}, column ${column}`, {
|
|
334
|
+
location: { filename: "xml_parse", line, column }
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
// Parse attributes
|
|
338
|
+
const attributes = new SortedMap();
|
|
339
|
+
while (pos < xml.length) {
|
|
340
|
+
skipWhitespace();
|
|
341
|
+
// Check for end of opening tag
|
|
342
|
+
if (xml[pos] === '>' || (xml[pos] === '/' && xml[pos + 1] === '>')) {
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
// Parse attribute name
|
|
346
|
+
const attrNameStart = pos;
|
|
347
|
+
while (pos < xml.length && /[a-zA-Z0-9:_-]/.test(xml[pos])) {
|
|
348
|
+
advance();
|
|
349
|
+
}
|
|
350
|
+
const attrName = xml.substring(attrNameStart, pos);
|
|
351
|
+
if (attrName.length === 0) {
|
|
352
|
+
throw new EastError(`Invalid attribute name at line ${line}, column ${column}`, {
|
|
353
|
+
location: { filename: "xml_parse", line, column }
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
skipWhitespace();
|
|
357
|
+
// Expect '='
|
|
358
|
+
if (xml[pos] !== '=') {
|
|
359
|
+
throw new EastError(`Expected '=' after attribute name at line ${line}, column ${column}`, {
|
|
360
|
+
location: { filename: "xml_parse", line, column }
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
advance(); // skip '='
|
|
364
|
+
skipWhitespace();
|
|
365
|
+
// Parse attribute value
|
|
366
|
+
const quote = xml[pos];
|
|
367
|
+
if (quote !== '"' && quote !== "'") {
|
|
368
|
+
throw new EastError(`Expected quote for attribute value at line ${line}, column ${column}`, {
|
|
369
|
+
location: { filename: "xml_parse", line, column }
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
advance(); // skip opening quote
|
|
373
|
+
const valueStart = pos;
|
|
374
|
+
while (pos < xml.length && xml[pos] !== quote) {
|
|
375
|
+
advance();
|
|
376
|
+
}
|
|
377
|
+
if (pos >= xml.length) {
|
|
378
|
+
throw new EastError(`Unclosed attribute value at line ${line}, column ${column}`, {
|
|
379
|
+
location: { filename: "xml_parse", line, column }
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
const attrValue = decodeXmlEntities(xml.substring(valueStart, pos));
|
|
383
|
+
advance(); // skip closing quote
|
|
384
|
+
attributes.set(attrName, attrValue);
|
|
385
|
+
}
|
|
386
|
+
// Check for self-closing tag
|
|
387
|
+
if (xml[pos] === '/' && xml[pos + 1] === '>') {
|
|
388
|
+
advance(2); // skip '/>'
|
|
389
|
+
return {
|
|
390
|
+
tag,
|
|
391
|
+
attributes,
|
|
392
|
+
children: [],
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
// Expect '>'
|
|
396
|
+
if (xml[pos] !== '>') {
|
|
397
|
+
throw new EastError(`Expected '>' at line ${line}, column ${column}`, {
|
|
398
|
+
location: { filename: "xml_parse", line, column }
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
advance(); // skip '>'
|
|
402
|
+
// Parse children
|
|
403
|
+
const children = [];
|
|
404
|
+
while (pos < xml.length) {
|
|
405
|
+
// Check for closing tag
|
|
406
|
+
if (xml[pos] === '<' && xml[pos + 1] === '/') {
|
|
407
|
+
advance(2); // skip '</'
|
|
408
|
+
// Parse closing tag name
|
|
409
|
+
const closeTagStart = pos;
|
|
410
|
+
while (pos < xml.length && /[a-zA-Z0-9:_-]/.test(xml[pos])) {
|
|
411
|
+
advance();
|
|
412
|
+
}
|
|
413
|
+
const closeTag = xml.substring(closeTagStart, pos);
|
|
414
|
+
if (closeTag !== tag) {
|
|
415
|
+
throw new EastError(`Mismatched closing tag: expected '</${tag}>', found '</${closeTag}>' at line ${line}, column ${column}`, {
|
|
416
|
+
location: { filename: "xml_parse", line, column }
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
skipWhitespace();
|
|
420
|
+
if (xml[pos] !== '>') {
|
|
421
|
+
throw new EastError(`Expected '>' in closing tag at line ${line}, column ${column}`, {
|
|
422
|
+
location: { filename: "xml_parse", line, column }
|
|
423
|
+
});
|
|
424
|
+
}
|
|
425
|
+
advance(); // skip '>'
|
|
426
|
+
break;
|
|
427
|
+
}
|
|
428
|
+
// Check for CDATA section
|
|
429
|
+
else if (xml.substring(pos, pos + 9) === '<![CDATA[') {
|
|
430
|
+
advance(9); // skip '<![CDATA['
|
|
431
|
+
const cdataStart = pos;
|
|
432
|
+
while (pos < xml.length && xml.substring(pos, pos + 3) !== ']]>') {
|
|
433
|
+
advance();
|
|
434
|
+
}
|
|
435
|
+
if (pos >= xml.length) {
|
|
436
|
+
throw new EastError(`Unclosed CDATA section at line ${line}, column ${column}`, {
|
|
437
|
+
location: { filename: "xml_parse", line, column }
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
let cdataText = xml.substring(cdataStart, pos);
|
|
441
|
+
advance(3); // skip ']]>'
|
|
442
|
+
// CDATA content is preserved as-is, no entity decoding
|
|
443
|
+
// But whitespace trimming still applies based on config
|
|
444
|
+
if (!preserveWhitespace) {
|
|
445
|
+
cdataText = cdataText.trim();
|
|
446
|
+
}
|
|
447
|
+
if (cdataText.length > 0) {
|
|
448
|
+
children.push(variant('TEXT', cdataText));
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
// Check for comment
|
|
452
|
+
else if (xml.substring(pos, pos + 4) === '<!--') {
|
|
453
|
+
advance(4); // skip '<!--'
|
|
454
|
+
while (pos < xml.length && xml.substring(pos, pos + 3) !== '-->') {
|
|
455
|
+
advance();
|
|
456
|
+
}
|
|
457
|
+
if (pos >= xml.length) {
|
|
458
|
+
throw new EastError(`Unclosed comment at line ${line}, column ${column}`, {
|
|
459
|
+
location: { filename: "xml_parse", line, column }
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
advance(3); // skip '-->'
|
|
463
|
+
// Comments are ignored by default
|
|
464
|
+
}
|
|
465
|
+
// Check for nested element
|
|
466
|
+
else if (xml[pos] === '<') {
|
|
467
|
+
const childElement = parseElement();
|
|
468
|
+
children.push(variant('ELEMENT', childElement));
|
|
469
|
+
}
|
|
470
|
+
// Parse text content
|
|
471
|
+
else {
|
|
472
|
+
const textStart = pos;
|
|
473
|
+
while (pos < xml.length && xml[pos] !== '<') {
|
|
474
|
+
advance();
|
|
475
|
+
}
|
|
476
|
+
let text = xml.substring(textStart, pos);
|
|
477
|
+
if (!preserveWhitespace) {
|
|
478
|
+
text = text.trim();
|
|
479
|
+
}
|
|
480
|
+
if (text.length > 0) {
|
|
481
|
+
text = decodeXmlEntities(text);
|
|
482
|
+
children.push(variant('TEXT', text));
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
return {
|
|
487
|
+
tag,
|
|
488
|
+
attributes,
|
|
489
|
+
children,
|
|
490
|
+
};
|
|
491
|
+
};
|
|
492
|
+
// Skip XML declaration and processing instructions
|
|
493
|
+
while (pos < xml.length) {
|
|
494
|
+
skipWhitespace();
|
|
495
|
+
if (xml.substring(pos, pos + 2) === '<?') {
|
|
496
|
+
// Skip processing instruction
|
|
497
|
+
while (pos < xml.length && xml.substring(pos, pos + 2) !== '?>') {
|
|
498
|
+
advance();
|
|
499
|
+
}
|
|
500
|
+
if (pos < xml.length) {
|
|
501
|
+
advance(2); // skip '?>'
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
else if (xml.substring(pos, pos + 4) === '<!--') {
|
|
505
|
+
// Skip comment
|
|
506
|
+
advance(4);
|
|
507
|
+
while (pos < xml.length && xml.substring(pos, pos + 3) !== '-->') {
|
|
508
|
+
advance();
|
|
509
|
+
}
|
|
510
|
+
if (pos < xml.length) {
|
|
511
|
+
advance(3); // skip '-->'
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
break;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
skipWhitespace();
|
|
519
|
+
if (pos >= xml.length) {
|
|
520
|
+
throw new EastError('Empty XML document', {
|
|
521
|
+
location: { filename: "xml_parse", line: 1n, column: 1n }
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
return parseElement();
|
|
525
|
+
}
|
|
526
|
+
function serializeXml(node, config) {
|
|
527
|
+
const { indent, includeXmlDeclaration, encodeEntities, selfClosingTags } = config;
|
|
528
|
+
const indentStr = indent.type === 'some' ? indent.value : '';
|
|
529
|
+
const useIndent = indentStr.length > 0;
|
|
530
|
+
// Helper: encode XML entities
|
|
531
|
+
const encodeXmlEntities = (text) => {
|
|
532
|
+
if (!encodeEntities)
|
|
533
|
+
return text;
|
|
534
|
+
return text
|
|
535
|
+
.replace(/&/g, '&')
|
|
536
|
+
.replace(/</g, '<')
|
|
537
|
+
.replace(/>/g, '>')
|
|
538
|
+
.replace(/"/g, '"')
|
|
539
|
+
.replace(/'/g, ''');
|
|
540
|
+
};
|
|
541
|
+
// Helper: serialize element recursively
|
|
542
|
+
const serializeElement = (node, depth) => {
|
|
543
|
+
const currentIndent = useIndent ? indentStr.repeat(depth) : '';
|
|
544
|
+
const nextIndent = useIndent ? indentStr.repeat(depth + 1) : '';
|
|
545
|
+
let result = currentIndent + '<' + node.tag;
|
|
546
|
+
// Serialize attributes (Dict keys are sorted alphabetically)
|
|
547
|
+
const attrs = Array.from(node.attributes.entries());
|
|
548
|
+
for (const [name, value] of attrs) {
|
|
549
|
+
result += ' ' + name + '="' + encodeXmlEntities(value) + '"';
|
|
550
|
+
}
|
|
551
|
+
// Check if element has children
|
|
552
|
+
if (node.children.length === 0) {
|
|
553
|
+
if (selfClosingTags) {
|
|
554
|
+
result += '/>';
|
|
555
|
+
}
|
|
556
|
+
else {
|
|
557
|
+
result += '></' + node.tag + '>';
|
|
558
|
+
}
|
|
559
|
+
return result;
|
|
560
|
+
}
|
|
561
|
+
result += '>';
|
|
562
|
+
// Check if children are all text (avoid extra newlines for simple text content)
|
|
563
|
+
const allText = node.children.every(child => child.type === 'TEXT');
|
|
564
|
+
if (!allText && useIndent) {
|
|
565
|
+
result += '\n';
|
|
566
|
+
}
|
|
567
|
+
// Serialize children
|
|
568
|
+
for (const child of node.children) {
|
|
569
|
+
if (child.type === 'TEXT') {
|
|
570
|
+
const text = encodeXmlEntities(child.value);
|
|
571
|
+
if (allText) {
|
|
572
|
+
result += text;
|
|
573
|
+
}
|
|
574
|
+
else if (useIndent) {
|
|
575
|
+
result += nextIndent + text + '\n';
|
|
576
|
+
}
|
|
577
|
+
else {
|
|
578
|
+
result += text;
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
else {
|
|
582
|
+
// ELEMENT
|
|
583
|
+
result += serializeElement(child.value, depth + 1);
|
|
584
|
+
if (useIndent) {
|
|
585
|
+
result += '\n';
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
if (!allText && useIndent) {
|
|
590
|
+
result += currentIndent;
|
|
591
|
+
}
|
|
592
|
+
result += '</' + node.tag + '>';
|
|
593
|
+
return result;
|
|
594
|
+
};
|
|
595
|
+
let xml = '';
|
|
596
|
+
if (includeXmlDeclaration) {
|
|
597
|
+
xml += '<?xml version="1.0" encoding="UTF-8"?>\n';
|
|
598
|
+
}
|
|
599
|
+
xml += serializeElement(node, 0);
|
|
600
|
+
return new TextEncoder().encode(xml);
|
|
601
|
+
}
|
|
602
|
+
//# sourceMappingURL=xml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml.js","sourceRoot":"","sources":["../../src/format/xml.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAoB,SAAS,EAAE,MAAM,eAAe,CAAC;AAEvL,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,uBAAuB;AAEvB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CACxC,UAAU,CAAC;IACP,GAAG,EAAE,UAAU,EAAiC,kCAAkC;IAClF,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,EAAG,uCAAuC;IACtF,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC;QAC5B,IAAI,EAAE,UAAU,EAA4B,eAAe;QAC3D,OAAO,EAAE,IAAI,EAA+B,6BAA6B;KAC5E,CAAC,CAAC;CACN,CAAC,CACL,CAAC;AAIF,sBAAsB;AAEtB,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACrC,kBAAkB,EAAE,WAAW,EAAS,mCAAmC;IAC3E,cAAc,EAAE,WAAW,EAAa,kCAAkC;CAC7E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;IACzC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAAU,4CAA4C;IACpF,qBAAqB,EAAE,WAAW,EAAM,wCAAwC;IAChF,cAAc,EAAE,WAAW,EAAa,kCAAkC;IAC1E,eAAe,EAAE,WAAW,EAAY,qCAAqC;CAChF,CAAC,CAAC;AAEH,qBAAqB;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,QAAQ,CAAC,CAAC;AAErG;;;;GAIG;AACH,MAAM,OAAO,GAAuB;IAChC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAgB,EAAE,MAA0C,EAAE,EAAE;QACjF,IAAI,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,GAAG,YAAY,SAAS;gBAAE,MAAM,GAAG,CAAC;YACxC,MAAM,IAAI,SAAS,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,EAAE;gBACtD,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACzD,KAAK,EAAE,GAAG;aACb,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC;IAEF,aAAa,CAAC,SAAS,CAAC,CAAC,IAAkB,EAAE,MAA8C,EAAE,EAAE;QAC3F,IAAI,CAAC;YACD,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,GAAG,YAAY,SAAS;gBAAE,MAAM,GAAG,CAAC;YACxC,MAAM,IAAI,SAAS,CAAC,6BAA6B,GAAG,CAAC,OAAO,EAAE,EAAE;gBAC5D,QAAQ,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC7D,KAAK,EAAE,GAAG;aACb,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC;CACL,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACf;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,EAAE,SAAS;IAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,SAAS,EAAE,aAAa;IAExB;;;;OAIG;IACH,cAAc,EAAE,OAAO;IAEvB;;OAEG;IACH,KAAK,EAAE;QACH;;WAEG;QACH,WAAW,EAAE,cAAc;QAE3B;;WAEG;QACH,eAAe,EAAE,kBAAkB;QAEnC;;WAEG;QACH,IAAI,EAAE,OAAO;KAChB;CACK,CAAC;AAEX,qCAAqC;AACrC,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,mBAAmB;AAEnB,SAAS,QAAQ,CACb,IAAgB,EAChB,MAA0C;IAE1C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/B,4BAA4B;IAC5B,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC/B,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAEtD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,oCAAoC;IACpC,MAAM,OAAO,GAAG,CAAC,QAAgB,CAAC,EAAE,EAAE;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxB,IAAI,EAAE,CAAC;gBACP,MAAM,GAAG,EAAE,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACJ,MAAM,EAAE,CAAC;YACb,CAAC;QACL,CAAC;QACD,GAAG,IAAI,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,0BAA0B;IAC1B,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC,CAAC;IAEF,8BAA8B;IAC9B,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAU,EAAE;QAC/C,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEjC,OAAO,IAAI;aACN,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;aACtB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;aACxE,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC;IAEF,wBAAwB;IACxB,MAAM,YAAY,GAAG,GAAiB,EAAE;QACpC,aAAa;QACb,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,SAAS,CAAC,wBAAwB,IAAI,YAAY,MAAM,EAAE,EAAE;gBAClE,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;aACpD,CAAC,CAAC;QACP,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,WAAW;QAEtB,iBAAiB;QACjB,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC;YAC1D,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEzC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,SAAS,CAAC,4BAA4B,IAAI,YAAY,MAAM,EAAE,EAAE;gBACtE,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;aACpD,CAAC,CAAC;QACP,CAAC;QAED,mBAAmB;QACnB,MAAM,UAAU,GAAG,IAAI,SAAS,EAAkB,CAAC;QAEnD,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,cAAc,EAAE,CAAC;YAEjB,+BAA+B;YAC/B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACjE,MAAM;YACV,CAAC;YAED,uBAAuB;YACvB,MAAM,aAAa,GAAG,GAAG,CAAC;YAC1B,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC;gBAC1D,OAAO,EAAE,CAAC;YACd,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAEnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,SAAS,CAAC,kCAAkC,IAAI,YAAY,MAAM,EAAE,EAAE;oBAC5E,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;iBACpD,CAAC,CAAC;YACP,CAAC;YAED,cAAc,EAAE,CAAC;YAEjB,aAAa;YACb,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;gBACnB,MAAM,IAAI,SAAS,CAAC,6CAA6C,IAAI,YAAY,MAAM,EAAE,EAAE;oBACvF,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;iBACpD,CAAC,CAAC;YACP,CAAC;YACD,OAAO,EAAE,CAAC,CAAC,WAAW;YAEtB,cAAc,EAAE,CAAC;YAEjB,wBAAwB;YACxB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBACjC,MAAM,IAAI,SAAS,CAAC,8CAA8C,IAAI,YAAY,MAAM,EAAE,EAAE;oBACxF,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;iBACpD,CAAC,CAAC;YACP,CAAC;YACD,OAAO,EAAE,CAAC,CAAC,qBAAqB;YAEhC,MAAM,UAAU,GAAG,GAAG,CAAC;YACvB,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC5C,OAAO,EAAE,CAAC;YACd,CAAC;YAED,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,SAAS,CAAC,oCAAoC,IAAI,YAAY,MAAM,EAAE,EAAE;oBAC9E,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;iBACpD,CAAC,CAAC;YACP,CAAC;YAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;YACpE,OAAO,EAAE,CAAC,CAAC,qBAAqB;YAEhC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;QAED,6BAA6B;QAC7B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;YACxB,OAAO;gBACH,GAAG;gBACH,UAAU;gBACV,QAAQ,EAAE,EAAE;aACf,CAAC;QACN,CAAC;QAED,aAAa;QACb,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,SAAS,CAAC,wBAAwB,IAAI,YAAY,MAAM,EAAE,EAAE;gBAClE,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;aACpD,CAAC,CAAC;QACP,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,WAAW;QAEtB,iBAAiB;QACjB,MAAM,QAAQ,GAAU,EAAE,CAAC;QAE3B,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,wBAAwB;YACxB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;gBAExB,yBAAyB;gBACzB,MAAM,aAAa,GAAG,GAAG,CAAC;gBAC1B,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC;oBAC1D,OAAO,EAAE,CAAC;gBACd,CAAC;gBACD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;gBAEnD,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;oBACnB,MAAM,IAAI,SAAS,CAAC,uCAAuC,GAAG,gBAAgB,QAAQ,cAAc,IAAI,YAAY,MAAM,EAAE,EAAE;wBAC1H,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;qBACpD,CAAC,CAAC;gBACP,CAAC;gBAED,cAAc,EAAE,CAAC;gBAEjB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;oBACnB,MAAM,IAAI,SAAS,CAAC,uCAAuC,IAAI,YAAY,MAAM,EAAE,EAAE;wBACjF,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;qBACpD,CAAC,CAAC;gBACP,CAAC;gBACD,OAAO,EAAE,CAAC,CAAC,WAAW;gBAEtB,MAAM;YACV,CAAC;YACD,0BAA0B;iBACrB,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;gBACnD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;gBAE/B,MAAM,UAAU,GAAG,GAAG,CAAC;gBACvB,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC/D,OAAO,EAAE,CAAC;gBACd,CAAC;gBAED,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACpB,MAAM,IAAI,SAAS,CAAC,kCAAkC,IAAI,YAAY,MAAM,EAAE,EAAE;wBAC5E,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;qBACpD,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAC/C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;gBAEzB,uDAAuD;gBACvD,wDAAwD;gBACxD,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACtB,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;gBACjC,CAAC;gBAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACL,CAAC;YACD,oBAAoB;iBACf,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;gBAE1B,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC/D,OAAO,EAAE,CAAC;gBACd,CAAC;gBAED,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACpB,MAAM,IAAI,SAAS,CAAC,4BAA4B,IAAI,YAAY,MAAM,EAAE,EAAE;wBACtE,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;qBACpD,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;gBACzB,kCAAkC;YACtC,CAAC;YACD,2BAA2B;iBACtB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxB,MAAM,YAAY,GAAG,YAAY,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,qBAAqB;iBAChB,CAAC;gBACF,MAAM,SAAS,GAAG,GAAG,CAAC;gBACtB,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;oBAC1C,OAAO,EAAE,CAAC;gBACd,CAAC;gBAED,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAEzC,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACtB,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACvB,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClB,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC/B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO;YACH,GAAG;YACH,UAAU;YACV,QAAQ;SACX,CAAC;IACN,CAAC,CAAC;IAEF,mDAAmD;IACnD,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,cAAc,EAAE,CAAC;QAEjB,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvC,8BAA8B;YAC9B,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC9D,OAAO,EAAE,CAAC;YACd,CAAC;YACD,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;YAC5B,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YAChD,eAAe;YACf,OAAO,CAAC,CAAC,CAAC,CAAC;YACX,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC/D,OAAO,EAAE,CAAC;YACd,CAAC;YACD,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;YAC7B,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM;QACV,CAAC;IACL,CAAC;IAED,cAAc,EAAE,CAAC;IAEjB,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,SAAS,CAAC,oBAAoB,EAAE;YACtC,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAC5D,CAAC,CAAC;IACP,CAAC;IAED,OAAO,YAAY,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CACjB,IAAkB,EAClB,MAA8C;IAE9C,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAClF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAEvC,8BAA8B;IAC9B,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAU,EAAE;QAC/C,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEjC,OAAO,IAAI;aACN,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;aACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;aACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,wCAAwC;IACxC,MAAM,gBAAgB,GAAG,CAAC,IAAkB,EAAE,KAAa,EAAU,EAAE;QACnE,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhE,IAAI,MAAM,GAAG,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAE5C,6DAA6D;QAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QACjE,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,IAAI,IAAI,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACrC,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,CAAC;QAEd,gFAAgF;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAEpE,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,IAAI,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,OAAO,EAAE,CAAC;oBACV,MAAM,IAAI,IAAI,CAAC;gBACnB,CAAC;qBAAM,IAAI,SAAS,EAAE,CAAC;oBACnB,MAAM,IAAI,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,IAAI,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,UAAU;gBACV,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACnD,IAAI,SAAS,EAAE,CAAC;oBACZ,MAAM,IAAI,IAAI,CAAC;gBACnB,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,aAAa,CAAC;QAC5B,CAAC;QAED,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEhC,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,IAAI,qBAAqB,EAAE,CAAC;QACxB,GAAG,IAAI,0CAA0C,CAAC;IACtD,CAAC;IAED,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEjC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* East Node IO - I/O platform functions for the East language on Node.js
|
|
7
|
+
*
|
|
8
|
+
* Provides type-safe I/O operations for East programs including:
|
|
9
|
+
* - SQL databases (SQLite, PostgreSQL, MySQL)
|
|
10
|
+
* - Cloud storage (S3)
|
|
11
|
+
* - File transfer (FTP, SFTP)
|
|
12
|
+
* - NoSQL databases (Redis, MongoDB)
|
|
13
|
+
* - File formats (XLSX/Excel, CSV, XML)
|
|
14
|
+
* - Compression (gzip, zip, tar)
|
|
15
|
+
*
|
|
16
|
+
* @packageDocumentation
|
|
17
|
+
*/
|
|
18
|
+
export * from "./sql/index.js";
|
|
19
|
+
export * from "./storage/index.js";
|
|
20
|
+
export * from "./transfer/index.js";
|
|
21
|
+
export * from "./nosql/index.js";
|
|
22
|
+
export * from "./format/index.js";
|
|
23
|
+
export * from "./compression/index.js";
|
|
24
|
+
export * as EastNodeIO from './index.js';
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;GAYG;AAGH,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC;AAGnC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,wBAAwB,CAAC;AAGvC,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC"}
|