@apiconvert/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,20 @@
1
+ # @apiconvert/core
2
+
3
+ Shared contracts and rule schemas for Apiconvert.
4
+
5
+ ## Rules Schema
6
+
7
+ The canonical JSON Schema for conversion rules lives at `schemas/rules/rules.schema.json` in this repository. Both the .NET and npm packages reference that schema as the single source of truth.
8
+
9
+ GitHub source (for reference):
10
+ ```
11
+ https://github.com/jonassaa/apiconvert-core/blob/main/schemas/rules/rules.schema.json
12
+ ```
13
+
14
+ ## Exports
15
+
16
+ This package exports TypeScript types for conversion rules, generation contracts, and shared enums.
17
+
18
+ ## Conversion API
19
+
20
+ `runConversionCase` is implemented and powers the shared conversion case runner used by the npm tests.
@@ -0,0 +1,94 @@
1
+ export declare enum DataFormat {
2
+ Json = "json",
3
+ Xml = "xml",
4
+ Query = "query"
5
+ }
6
+ export declare enum TransformType {
7
+ ToLowerCase = "toLowerCase",
8
+ ToUpperCase = "toUpperCase",
9
+ Number = "number",
10
+ Boolean = "boolean",
11
+ Concat = "concat"
12
+ }
13
+ export declare enum ConditionOperator {
14
+ Exists = "exists",
15
+ Equals = "equals",
16
+ NotEquals = "notEquals",
17
+ Includes = "includes",
18
+ Gt = "gt",
19
+ Lt = "lt"
20
+ }
21
+ export interface ConditionRule {
22
+ path: string;
23
+ operator: ConditionOperator;
24
+ value?: string | null;
25
+ }
26
+ export interface ValueSource {
27
+ type: string;
28
+ path?: string | null;
29
+ value?: string | null;
30
+ transform?: TransformType | null;
31
+ condition?: ConditionRule | null;
32
+ trueValue?: string | null;
33
+ falseValue?: string | null;
34
+ }
35
+ export interface FieldRule {
36
+ outputPath: string;
37
+ source: ValueSource;
38
+ defaultValue?: string | null;
39
+ }
40
+ export interface ArrayRule {
41
+ inputPath: string;
42
+ outputPath: string;
43
+ itemMappings: FieldRule[];
44
+ coerceSingle?: boolean;
45
+ }
46
+ export interface ConversionRules {
47
+ version?: number;
48
+ inputFormat?: DataFormat;
49
+ outputFormat?: DataFormat;
50
+ fieldMappings?: FieldRule[];
51
+ arrayMappings?: ArrayRule[];
52
+ }
53
+ export interface LegacyMappingRow {
54
+ outputPath: string;
55
+ sourceType?: string | null;
56
+ sourceValue?: string | null;
57
+ transformType?: TransformType | null;
58
+ defaultValue?: string | null;
59
+ }
60
+ export interface LegacyMappingConfig {
61
+ version?: number;
62
+ rows: LegacyMappingRow[];
63
+ }
64
+ export interface ConversionResult {
65
+ output?: unknown;
66
+ errors: string[];
67
+ }
68
+ export interface ConversionRulesGenerationRequest {
69
+ inputFormat: DataFormat;
70
+ outputFormat: DataFormat;
71
+ inputSample: string;
72
+ outputSample: string;
73
+ model?: string | null;
74
+ }
75
+ export interface ConversionRulesGenerator {
76
+ generate(request: ConversionRulesGenerationRequest, options?: {
77
+ signal?: AbortSignal;
78
+ }): Promise<ConversionRules>;
79
+ }
80
+ export declare const rulesSchemaPath = "/schemas/rules/rules.schema.json";
81
+ export declare function normalizeConversionRules(raw: unknown): ConversionRules;
82
+ export declare function applyConversion(input: unknown, rawRules: unknown): ConversionResult;
83
+ export declare function parsePayload(text: string, format: DataFormat): {
84
+ value: unknown;
85
+ error?: string;
86
+ };
87
+ export declare function formatPayload(value: unknown, format: DataFormat, pretty: boolean): string;
88
+ export declare function runConversionCase(args: {
89
+ rulesText: string;
90
+ inputText: string;
91
+ inputExtension: string;
92
+ outputExtension: string;
93
+ }): Promise<string>;
94
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,672 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rulesSchemaPath = exports.ConditionOperator = exports.TransformType = exports.DataFormat = void 0;
4
+ exports.normalizeConversionRules = normalizeConversionRules;
5
+ exports.applyConversion = applyConversion;
6
+ exports.parsePayload = parsePayload;
7
+ exports.formatPayload = formatPayload;
8
+ exports.runConversionCase = runConversionCase;
9
+ const fast_xml_parser_1 = require("fast-xml-parser");
10
+ var DataFormat;
11
+ (function (DataFormat) {
12
+ DataFormat["Json"] = "json";
13
+ DataFormat["Xml"] = "xml";
14
+ DataFormat["Query"] = "query";
15
+ })(DataFormat || (exports.DataFormat = DataFormat = {}));
16
+ var TransformType;
17
+ (function (TransformType) {
18
+ TransformType["ToLowerCase"] = "toLowerCase";
19
+ TransformType["ToUpperCase"] = "toUpperCase";
20
+ TransformType["Number"] = "number";
21
+ TransformType["Boolean"] = "boolean";
22
+ TransformType["Concat"] = "concat";
23
+ })(TransformType || (exports.TransformType = TransformType = {}));
24
+ var ConditionOperator;
25
+ (function (ConditionOperator) {
26
+ ConditionOperator["Exists"] = "exists";
27
+ ConditionOperator["Equals"] = "equals";
28
+ ConditionOperator["NotEquals"] = "notEquals";
29
+ ConditionOperator["Includes"] = "includes";
30
+ ConditionOperator["Gt"] = "gt";
31
+ ConditionOperator["Lt"] = "lt";
32
+ })(ConditionOperator || (exports.ConditionOperator = ConditionOperator = {}));
33
+ exports.rulesSchemaPath = "/schemas/rules/rules.schema.json";
34
+ function normalizeConversionRules(raw) {
35
+ if (raw && typeof raw === "object" && !Array.isArray(raw)) {
36
+ if (isConversionRules(raw)) {
37
+ return normalizeRules(raw);
38
+ }
39
+ if (isLegacyConfig(raw)) {
40
+ return normalizeLegacyRules(raw);
41
+ }
42
+ return emptyRules();
43
+ }
44
+ if (typeof raw === "string") {
45
+ try {
46
+ const parsed = JSON.parse(raw);
47
+ return normalizeConversionRules(parsed);
48
+ }
49
+ catch {
50
+ return emptyRules();
51
+ }
52
+ }
53
+ return emptyRules();
54
+ }
55
+ function applyConversion(input, rawRules) {
56
+ const rules = normalizeConversionRules(rawRules);
57
+ const fieldMappings = rules.fieldMappings ?? [];
58
+ const arrayMappings = rules.arrayMappings ?? [];
59
+ if (fieldMappings.length === 0 && arrayMappings.length === 0) {
60
+ return { output: input ?? {}, errors: [] };
61
+ }
62
+ const output = {};
63
+ const errors = [];
64
+ applyFieldMappings(input, null, fieldMappings, output, errors, "Field");
65
+ arrayMappings.forEach((arrayRule, index) => {
66
+ const value = getValueByPath(input, arrayRule.inputPath ?? "");
67
+ let items = Array.isArray(value) ? value : null;
68
+ if (!items && arrayRule.coerceSingle && value != null) {
69
+ items = [value];
70
+ }
71
+ if (!items) {
72
+ errors.push(`Array ${index + 1}: input path did not resolve to an array (${arrayRule.inputPath}).`);
73
+ return;
74
+ }
75
+ const mappedItems = [];
76
+ items.forEach((item) => {
77
+ const itemOutput = {};
78
+ applyFieldMappings(input, item, arrayRule.itemMappings ?? [], itemOutput, errors, `Array ${index + 1} item`);
79
+ mappedItems.push(itemOutput);
80
+ });
81
+ if (!arrayRule.outputPath || arrayRule.outputPath.trim().length === 0) {
82
+ errors.push(`Array ${index + 1}: output path is required.`);
83
+ return;
84
+ }
85
+ setValueByPath(output, arrayRule.outputPath, mappedItems);
86
+ });
87
+ return { output, errors };
88
+ }
89
+ function parsePayload(text, format) {
90
+ try {
91
+ switch (format) {
92
+ case DataFormat.Xml:
93
+ return { value: parseXml(text) };
94
+ case DataFormat.Query:
95
+ return { value: parseQueryString(text) };
96
+ default:
97
+ return { value: parseJson(text) };
98
+ }
99
+ }
100
+ catch (error) {
101
+ return { value: null, error: error instanceof Error ? error.message : String(error) };
102
+ }
103
+ }
104
+ function formatPayload(value, format, pretty) {
105
+ switch (format) {
106
+ case DataFormat.Xml:
107
+ return formatXml(value);
108
+ case DataFormat.Query:
109
+ return formatQueryString(value);
110
+ default:
111
+ return JSON.stringify(sanitizeForJson(value ?? {}), null, pretty ? 2 : 0);
112
+ }
113
+ }
114
+ async function runConversionCase(args) {
115
+ const rules = normalizeConversionRules(args.rulesText);
116
+ const inputFormat = extensionToFormat(args.inputExtension);
117
+ const outputFormat = extensionToFormat(args.outputExtension);
118
+ const inputValue = inputFormat ? parsePayloadOrThrow(args.inputText, inputFormat) : args.inputText;
119
+ const result = applyConversion(inputValue, rules);
120
+ if (result.errors.length > 0) {
121
+ throw new Error(`Conversion errors: ${result.errors.join("; ")}`);
122
+ }
123
+ if (!outputFormat) {
124
+ return result.output == null ? "" : String(result.output);
125
+ }
126
+ return formatPayload(result.output, outputFormat, false);
127
+ }
128
+ function parsePayloadOrThrow(text, format) {
129
+ const { value, error } = parsePayload(text, format);
130
+ if (error) {
131
+ throw new Error(error);
132
+ }
133
+ return value;
134
+ }
135
+ function extensionToFormat(extension) {
136
+ const ext = extension.toLowerCase();
137
+ if (ext === "json")
138
+ return DataFormat.Json;
139
+ if (ext === "xml")
140
+ return DataFormat.Xml;
141
+ if (ext === "txt")
142
+ return DataFormat.Query;
143
+ return null;
144
+ }
145
+ function normalizeRules(rules) {
146
+ return {
147
+ version: rules.version ?? 2,
148
+ inputFormat: rules.inputFormat ?? DataFormat.Json,
149
+ outputFormat: rules.outputFormat ?? DataFormat.Json,
150
+ fieldMappings: (rules.fieldMappings ?? []).map((rule) => ({
151
+ outputPath: rule.outputPath,
152
+ source: rule.source ?? { type: "path" },
153
+ defaultValue: rule.defaultValue ?? ""
154
+ })),
155
+ arrayMappings: (rules.arrayMappings ?? []).map((mapping) => ({
156
+ inputPath: mapping.inputPath,
157
+ outputPath: mapping.outputPath,
158
+ coerceSingle: mapping.coerceSingle ?? false,
159
+ itemMappings: (mapping.itemMappings ?? []).map((rule) => ({
160
+ outputPath: rule.outputPath,
161
+ source: rule.source ?? { type: "path" },
162
+ defaultValue: rule.defaultValue ?? ""
163
+ }))
164
+ }))
165
+ };
166
+ }
167
+ function normalizeLegacyRules(legacy) {
168
+ const rows = legacy.rows ?? [];
169
+ const fieldMappings = rows.map((row) => {
170
+ const sourceType = row.sourceType ?? "path";
171
+ let source;
172
+ if (sourceType === "constant") {
173
+ source = { type: "constant", value: row.sourceValue ?? "" };
174
+ }
175
+ else if (sourceType === "transform") {
176
+ source = {
177
+ type: "transform",
178
+ path: row.sourceValue ?? "",
179
+ transform: row.transformType ?? TransformType.ToLowerCase
180
+ };
181
+ }
182
+ else {
183
+ source = { type: "path", path: row.sourceValue ?? "" };
184
+ }
185
+ return {
186
+ outputPath: row.outputPath,
187
+ source,
188
+ defaultValue: row.defaultValue ?? ""
189
+ };
190
+ });
191
+ return {
192
+ version: 2,
193
+ inputFormat: DataFormat.Json,
194
+ outputFormat: DataFormat.Json,
195
+ fieldMappings,
196
+ arrayMappings: []
197
+ };
198
+ }
199
+ function emptyRules() {
200
+ return {
201
+ version: 2,
202
+ inputFormat: DataFormat.Json,
203
+ outputFormat: DataFormat.Json,
204
+ fieldMappings: [],
205
+ arrayMappings: []
206
+ };
207
+ }
208
+ function isConversionRules(value) {
209
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
210
+ return false;
211
+ }
212
+ const record = value;
213
+ return record.version === 2 || "fieldMappings" in record || "arrayMappings" in record;
214
+ }
215
+ function isLegacyConfig(value) {
216
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
217
+ return false;
218
+ }
219
+ const record = value;
220
+ return Array.isArray(record.rows);
221
+ }
222
+ function applyFieldMappings(root, item, mappings, output, errors, label) {
223
+ mappings.forEach((rule, index) => {
224
+ if (!rule.outputPath || rule.outputPath.trim().length === 0) {
225
+ errors.push(`${label} ${index + 1}: output path is required.`);
226
+ return;
227
+ }
228
+ let value = resolveSourceValue(root, item, rule.source);
229
+ if ((value == null || value === "") && rule.defaultValue) {
230
+ value = parsePrimitive(rule.defaultValue);
231
+ }
232
+ setValueByPath(output, rule.outputPath, value);
233
+ });
234
+ }
235
+ function resolveSourceValue(root, item, source) {
236
+ switch (source.type) {
237
+ case "constant":
238
+ return parsePrimitive(source.value ?? "");
239
+ case "path":
240
+ return resolvePathValue(root, item, source.path ?? "");
241
+ case "transform": {
242
+ if (source.transform === TransformType.Concat) {
243
+ const tokens = (source.path ?? "")
244
+ .split(",")
245
+ .map((token) => token.trim())
246
+ .filter((token) => token.length > 0);
247
+ let result = "";
248
+ for (const token of tokens) {
249
+ if (token.toLowerCase().startsWith("const:")) {
250
+ result += token.slice("const:".length);
251
+ continue;
252
+ }
253
+ const resolved = resolvePathValue(root, item, token);
254
+ result += resolved == null ? "" : String(resolved);
255
+ }
256
+ return result;
257
+ }
258
+ const baseValue = resolvePathValue(root, item, source.path ?? "");
259
+ return resolveTransform(baseValue, source.transform ?? TransformType.ToLowerCase);
260
+ }
261
+ case "condition": {
262
+ if (!source.condition) {
263
+ return null;
264
+ }
265
+ const matched = evaluateCondition(root, item, source.condition);
266
+ const resolved = matched ? source.trueValue : source.falseValue;
267
+ return parsePrimitive(resolved ?? "");
268
+ }
269
+ default:
270
+ return null;
271
+ }
272
+ }
273
+ function resolvePathValue(root, item, path) {
274
+ if (!path || path.trim().length === 0)
275
+ return null;
276
+ if (path === "$")
277
+ return root;
278
+ if (path.startsWith("$.", 0)) {
279
+ return getValueByPath(root, path.slice(2));
280
+ }
281
+ if (path.startsWith("$[", 0)) {
282
+ return getValueByPath(root, path.slice(1));
283
+ }
284
+ if (item != null) {
285
+ return getValueByPath(item, path);
286
+ }
287
+ return getValueByPath(root, path);
288
+ }
289
+ function evaluateCondition(root, item, condition) {
290
+ const value = resolvePathValue(root, item, condition.path);
291
+ const compareValue = condition.value != null ? parsePrimitive(condition.value) : null;
292
+ switch (condition.operator) {
293
+ case ConditionOperator.Exists:
294
+ return value != null;
295
+ case ConditionOperator.Equals:
296
+ return Object.is(value, compareValue);
297
+ case ConditionOperator.NotEquals:
298
+ return !Object.is(value, compareValue);
299
+ case ConditionOperator.Includes:
300
+ return includesValue(value, compareValue);
301
+ case ConditionOperator.Gt:
302
+ return toNumber(value) > toNumber(compareValue);
303
+ case ConditionOperator.Lt:
304
+ return toNumber(value) < toNumber(compareValue);
305
+ default:
306
+ return false;
307
+ }
308
+ }
309
+ function includesValue(value, compareValue) {
310
+ if (typeof value === "string" && typeof compareValue === "string") {
311
+ return value.includes(compareValue);
312
+ }
313
+ if (Array.isArray(value)) {
314
+ return value.some((item) => Object.is(item, compareValue));
315
+ }
316
+ return false;
317
+ }
318
+ function resolveTransform(value, transform) {
319
+ switch (transform) {
320
+ case TransformType.ToLowerCase:
321
+ return typeof value === "string" ? value.toLowerCase() : value;
322
+ case TransformType.ToUpperCase:
323
+ return typeof value === "string" ? value.toUpperCase() : value;
324
+ case TransformType.Number:
325
+ return value == null || value === "" ? value : toNumber(value);
326
+ case TransformType.Boolean:
327
+ if (typeof value === "boolean")
328
+ return value;
329
+ if (typeof value === "string") {
330
+ return ["true", "1", "yes", "y"].includes(value.toLowerCase());
331
+ }
332
+ return value != null;
333
+ default:
334
+ return value;
335
+ }
336
+ }
337
+ function getValueByPath(input, path) {
338
+ if (input == null || !path || path.trim().length === 0)
339
+ return null;
340
+ const parts = path.split(".").map((part) => part.trim());
341
+ let current = input;
342
+ for (const part of parts) {
343
+ if (current == null)
344
+ return null;
345
+ const arrayMatch = part.match(/^(\w+)\[(\d+)\]$/);
346
+ if (arrayMatch) {
347
+ const key = arrayMatch[1];
348
+ const index = Number.parseInt(arrayMatch[2], 10);
349
+ if (!isRecord(current) || !(key in current))
350
+ return null;
351
+ const next = current[key];
352
+ if (!Array.isArray(next) || index >= next.length)
353
+ return null;
354
+ current = next[index];
355
+ continue;
356
+ }
357
+ if (/^\d+$/.test(part)) {
358
+ const index = Number.parseInt(part, 10);
359
+ if (!Array.isArray(current) || index >= current.length)
360
+ return null;
361
+ current = current[index];
362
+ continue;
363
+ }
364
+ if (!isRecord(current) || !(part in current))
365
+ return null;
366
+ current = current[part];
367
+ }
368
+ return current;
369
+ }
370
+ function setValueByPath(target, path, value) {
371
+ const parts = path.split(".").map((part) => part.trim());
372
+ let current = target;
373
+ for (let index = 0; index < parts.length; index += 1) {
374
+ const part = parts[index];
375
+ const isLast = index === parts.length - 1;
376
+ if (isLast) {
377
+ current[part] = value;
378
+ return;
379
+ }
380
+ const next = current[part];
381
+ if (!isRecord(next)) {
382
+ current[part] = {};
383
+ }
384
+ current = current[part];
385
+ }
386
+ }
387
+ function parsePrimitive(value) {
388
+ if (value === "true")
389
+ return true;
390
+ if (value === "false")
391
+ return false;
392
+ if (value === "null")
393
+ return null;
394
+ if (value === "undefined")
395
+ return null;
396
+ const parsed = Number.parseFloat(value);
397
+ if (!Number.isNaN(parsed) && isFinite(parsed))
398
+ return parsed;
399
+ return value;
400
+ }
401
+ function toNumber(value) {
402
+ if (value == null)
403
+ return Number.NaN;
404
+ if (typeof value === "number")
405
+ return value;
406
+ if (typeof value === "string") {
407
+ const parsed = Number.parseFloat(value);
408
+ return Number.isNaN(parsed) ? Number.NaN : parsed;
409
+ }
410
+ if (typeof value === "boolean")
411
+ return value ? 1 : 0;
412
+ const coerced = Number(value);
413
+ return Number.isNaN(coerced) ? Number.NaN : coerced;
414
+ }
415
+ function parseJson(text) {
416
+ return JSON.parse(text);
417
+ }
418
+ function parseXml(text) {
419
+ const parser = new fast_xml_parser_1.XMLParser({
420
+ ignoreAttributes: false,
421
+ attributeNamePrefix: "@_",
422
+ textNodeName: "#text",
423
+ trimValues: false,
424
+ parseTagValue: false,
425
+ parseAttributeValue: false
426
+ });
427
+ const parsed = parser.parse(text);
428
+ return normalizeXmlValue(parsed);
429
+ }
430
+ function formatXml(value) {
431
+ if (!isRecord(value) || Object.keys(value).length === 0) {
432
+ return new fast_xml_parser_1.XMLBuilder({
433
+ ignoreAttributes: false,
434
+ attributeNamePrefix: "@_",
435
+ textNodeName: "#text",
436
+ format: false
437
+ }).build({ root: null });
438
+ }
439
+ const builder = new fast_xml_parser_1.XMLBuilder({
440
+ ignoreAttributes: false,
441
+ attributeNamePrefix: "@_",
442
+ textNodeName: "#text",
443
+ format: false
444
+ });
445
+ const keys = Object.keys(value);
446
+ if (keys.length === 1) {
447
+ const rootKey = keys[0];
448
+ return builder.build({ [rootKey]: value[rootKey] });
449
+ }
450
+ return builder.build({ root: value });
451
+ }
452
+ function normalizeXmlValue(value) {
453
+ if (Array.isArray(value)) {
454
+ return value.map((item) => normalizeXmlValue(item));
455
+ }
456
+ if (isRecord(value)) {
457
+ const normalized = {};
458
+ for (const [key, child] of Object.entries(value)) {
459
+ if (key === "#text" && typeof child === "string") {
460
+ normalized[key] = parsePrimitive(child.trim());
461
+ continue;
462
+ }
463
+ if (typeof child === "string") {
464
+ normalized[key] = parsePrimitive(child.trim());
465
+ continue;
466
+ }
467
+ normalized[key] = normalizeXmlValue(child);
468
+ }
469
+ return normalized;
470
+ }
471
+ if (typeof value === "string") {
472
+ return parsePrimitive(value.trim());
473
+ }
474
+ return value;
475
+ }
476
+ function parseQueryString(text) {
477
+ const trimmed = text.trim();
478
+ if (!trimmed)
479
+ return {};
480
+ const query = trimmed.startsWith("?") ? trimmed.slice(1) : trimmed;
481
+ const result = {};
482
+ const pairs = query.split("&").filter((pair) => pair.length > 0);
483
+ for (const pair of pairs) {
484
+ const splitIndex = pair.indexOf("=");
485
+ const rawKey = splitIndex >= 0 ? pair.slice(0, splitIndex) : pair;
486
+ const rawValue = splitIndex >= 0 ? pair.slice(splitIndex + 1) : "";
487
+ const key = decodeURIComponent(rawKey.replace(/\+/g, " "));
488
+ const value = decodeURIComponent(rawValue.replace(/\+/g, " "));
489
+ const path = parseQueryKey(key);
490
+ setQueryValue(result, path, value);
491
+ }
492
+ return result;
493
+ }
494
+ function formatQueryString(value) {
495
+ if (!isRecord(value)) {
496
+ throw new Error("Query output must be an object.");
497
+ }
498
+ const pairs = [];
499
+ const keys = Object.keys(value).sort((a, b) => a.localeCompare(b));
500
+ keys.forEach((key) => {
501
+ addQueryPair(pairs, key, value[key]);
502
+ });
503
+ return pairs
504
+ .map((pair) => `${encodeURIComponent(pair.key)}=${encodeURIComponent(pair.value)}`)
505
+ .join("&");
506
+ }
507
+ function parseQueryKey(key) {
508
+ const parts = [];
509
+ const matcher = /([^\[.\]]+)|\[(.*?)\]/g;
510
+ let match;
511
+ while ((match = matcher.exec(key)) !== null) {
512
+ const token = match[1] ?? match[2] ?? "";
513
+ if (!token)
514
+ continue;
515
+ const number = Number.parseInt(token, 10);
516
+ if (!Number.isNaN(number) && number.toString() === token) {
517
+ parts.push(number);
518
+ }
519
+ else {
520
+ parts.push(token);
521
+ }
522
+ }
523
+ if (parts.length === 0) {
524
+ parts.push(key);
525
+ }
526
+ return parts;
527
+ }
528
+ function setQueryValue(target, path, value) {
529
+ let current = target;
530
+ let parent = null;
531
+ let parentKey = null;
532
+ const ensureObjectContainer = (valueToCheck) => {
533
+ if (isRecord(valueToCheck))
534
+ return valueToCheck;
535
+ const next = {};
536
+ if (parent != null && parentKey != null) {
537
+ if (Array.isArray(parent)) {
538
+ parent[parentKey] = next;
539
+ }
540
+ else if (isRecord(parent)) {
541
+ parent[parentKey.toString()] = next;
542
+ }
543
+ }
544
+ return next;
545
+ };
546
+ const ensureArrayContainer = (valueToCheck) => {
547
+ if (Array.isArray(valueToCheck))
548
+ return valueToCheck;
549
+ const next = [];
550
+ if (parent != null && parentKey != null) {
551
+ if (Array.isArray(parent)) {
552
+ parent[parentKey] = next;
553
+ }
554
+ else if (isRecord(parent)) {
555
+ parent[parentKey.toString()] = next;
556
+ }
557
+ }
558
+ return next;
559
+ };
560
+ path.forEach((segment, index) => {
561
+ const isLast = index === path.length - 1;
562
+ const nextSegment = index + 1 < path.length ? path[index + 1] : null;
563
+ if (typeof segment === "number") {
564
+ const arrayContainer = ensureArrayContainer(current);
565
+ if (isLast) {
566
+ const existing = arrayContainer[segment];
567
+ if (existing == null) {
568
+ ensureListSize(arrayContainer, segment + 1);
569
+ arrayContainer[segment] = value;
570
+ }
571
+ else if (Array.isArray(existing)) {
572
+ existing.push(value);
573
+ }
574
+ else {
575
+ arrayContainer[segment] = [existing, value];
576
+ }
577
+ return;
578
+ }
579
+ parent = arrayContainer;
580
+ parentKey = segment;
581
+ ensureListSize(arrayContainer, segment + 1);
582
+ const existingValue = arrayContainer[segment];
583
+ const shouldBeArray = typeof nextSegment === "number";
584
+ if (existingValue == null ||
585
+ (shouldBeArray && !Array.isArray(existingValue)) ||
586
+ (!shouldBeArray && !isRecord(existingValue))) {
587
+ arrayContainer[segment] = shouldBeArray ? [] : {};
588
+ }
589
+ current = arrayContainer[segment];
590
+ return;
591
+ }
592
+ const objectContainer = ensureObjectContainer(current);
593
+ const key = segment;
594
+ if (isLast) {
595
+ const existing = objectContainer[key];
596
+ if (existing === undefined) {
597
+ objectContainer[key] = value;
598
+ }
599
+ else if (Array.isArray(existing)) {
600
+ existing.push(value);
601
+ }
602
+ else {
603
+ objectContainer[key] = [existing, value];
604
+ }
605
+ return;
606
+ }
607
+ parent = objectContainer;
608
+ parentKey = key;
609
+ const next = objectContainer[key];
610
+ const shouldBeArray = typeof nextSegment === "number";
611
+ if (next == null || (shouldBeArray && !Array.isArray(next)) || (!shouldBeArray && !isRecord(next))) {
612
+ objectContainer[key] = shouldBeArray ? [] : {};
613
+ }
614
+ current = objectContainer[key];
615
+ });
616
+ }
617
+ function ensureListSize(list, size) {
618
+ while (list.length < size) {
619
+ list.push(null);
620
+ }
621
+ }
622
+ function addQueryPair(pairs, key, value) {
623
+ if (value == null) {
624
+ pairs.push({ key, value: "" });
625
+ return;
626
+ }
627
+ if (Array.isArray(value)) {
628
+ value.forEach((item) => {
629
+ if (isRecord(item) || Array.isArray(item)) {
630
+ pairs.push({ key, value: JSON.stringify(sanitizeForJson(item)) });
631
+ }
632
+ else if (item == null) {
633
+ pairs.push({ key, value: "" });
634
+ }
635
+ else {
636
+ pairs.push({ key, value: String(item) });
637
+ }
638
+ });
639
+ return;
640
+ }
641
+ if (isRecord(value)) {
642
+ const keys = Object.keys(value).sort((a, b) => a.localeCompare(b));
643
+ keys.forEach((childKey) => {
644
+ const nextKey = key.length === 0 ? childKey : `${key}.${childKey}`;
645
+ addQueryPair(pairs, nextKey, value[childKey]);
646
+ });
647
+ return;
648
+ }
649
+ if (!key)
650
+ return;
651
+ pairs.push({ key, value: String(value) });
652
+ }
653
+ function isRecord(value) {
654
+ return !!value && typeof value === "object" && !Array.isArray(value);
655
+ }
656
+ function sanitizeForJson(value) {
657
+ if (Array.isArray(value)) {
658
+ return value.map((item) => sanitizeForJson(item));
659
+ }
660
+ if (isRecord(value)) {
661
+ const result = {};
662
+ Object.entries(value).forEach(([key, child]) => {
663
+ if (child === null) {
664
+ return;
665
+ }
666
+ result[key] = sanitizeForJson(child);
667
+ });
668
+ return result;
669
+ }
670
+ return value;
671
+ }
672
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAiGA,4DAqBC;AAED,0CA4CC;AAED,oCAaC;AAED,sCASC;AAED,8CAsBC;AAtND,qDAAwD;AAExD,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,6BAAe,CAAA;AACjB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,4CAA2B,CAAA;IAC3B,4CAA2B,CAAA;IAC3B,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;AACnB,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAED,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;IACjB,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;IACvB,0CAAqB,CAAA;IACrB,8BAAS,CAAA;IACT,8BAAS,CAAA;AACX,CAAC,EAPW,iBAAiB,iCAAjB,iBAAiB,QAO5B;AAwEY,QAAA,eAAe,GAAG,kCAAkC,CAAC;AAElE,SAAgB,wBAAwB,CAAC,GAAY;IACnD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,UAAU,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,SAAgB,eAAe,CAAC,KAAc,EAAE,QAAiB;IAC/D,MAAM,KAAK,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;IAChD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;IAEhD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAExE,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC/D,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,YAAY,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACtD,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CACT,SAAS,KAAK,GAAG,CAAC,6CAA6C,SAAS,CAAC,SAAS,IAAI,CACvF,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAc,EAAE,CAAC;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,UAAU,GAA4B,EAAE,CAAC;YAC/C,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7G,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,SAAgB,YAAY,CAAC,IAAY,EAAE,MAAkB;IAC3D,IAAI,CAAC;QACH,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,UAAU,CAAC,GAAG;gBACjB,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,KAAK,UAAU,CAAC,KAAK;gBACnB,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C;gBACE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,KAAc,EAAE,MAAkB,EAAE,MAAe;IAC/E,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU,CAAC,GAAG;YACjB,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,UAAU,CAAC,KAAK;YACnB,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAClC;YACE,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,IAKvC;IACC,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACnG,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAElD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,MAAkB;IAC3D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC;IAC3C,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,UAAU,CAAC,GAAG,CAAC;IACzC,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,KAAsB;IAC5C,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC;QAC3B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI;QACjD,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC,IAAI;QACnD,aAAa,EAAE,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;SACtC,CAAC,CAAC;QACH,aAAa,EAAE,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3D,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;YAC3C,YAAY,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxD,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBACvC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;aACtC,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA2B;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC;QAC5C,IAAI,MAAmB,CAAC;QACxB,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAC9D,CAAC;aAAM,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,GAAG;gBACP,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;gBAC3B,SAAS,EAAE,GAAG,CAAC,aAAa,IAAI,aAAa,CAAC,WAAW;aAC1D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QACzD,CAAC;QACD,OAAO;YACL,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,MAAM;YACN,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;SACrC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,UAAU,CAAC,IAAI;QAC5B,YAAY,EAAE,UAAU,CAAC,IAAI;QAC7B,aAAa;QACb,aAAa,EAAE,EAAE;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU;IACjB,OAAO;QACL,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,UAAU,CAAC,IAAI;QAC5B,YAAY,EAAE,UAAU,CAAC,IAAI;QAC7B,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,eAAe,IAAI,MAAM,IAAI,eAAe,IAAI,MAAM,CAAC;AACxF,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAa,EACb,IAAa,EACb,QAAqB,EACrB,MAA+B,EAC/B,MAAgB,EAChB,KAAa;IAEb,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACzD,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QACD,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa,EAAE,IAAa,EAAE,MAAmB;IAC3E,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU;YACb,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5C,KAAK,MAAM;YACT,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACzD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,MAAM,CAAC,SAAS,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;qBAC/B,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;qBAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvC,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC7C,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACvC,SAAS;oBACX,CAAC;oBACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;oBACrD,MAAM,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAClE,OAAO,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;QACpF,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAChE,OAAO,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa,EAAE,IAAa,EAAE,IAAY;IAClE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa,EAAE,IAAa,EAAE,SAAwB;IAC/E,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,QAAQ,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3B,KAAK,iBAAiB,CAAC,MAAM;YAC3B,OAAO,KAAK,IAAI,IAAI,CAAC;QACvB,KAAK,iBAAiB,CAAC,MAAM;YAC3B,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACxC,KAAK,iBAAiB,CAAC,SAAS;YAC9B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACzC,KAAK,iBAAiB,CAAC,QAAQ;YAC7B,OAAO,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC5C,KAAK,iBAAiB,CAAC,EAAE;YACvB,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD,KAAK,iBAAiB,CAAC,EAAE;YACvB,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,YAAqB;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QAClE,OAAO,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,SAAwB;IAChE,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,KAAK,aAAa,CAAC,MAAM;YACvB,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,KAAK,aAAa,CAAC,OAAO;YACxB,IAAI,OAAO,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,KAAK,IAAI,IAAI,CAAC;QACvB;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAY;IAClD,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzD,MAAM,IAAI,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACpE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1D,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B,EAAE,IAAY,EAAE,KAAc;IACnF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,OAAO,GAA4B,MAAM,CAAC;IAC9C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACtB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAA4B,CAAC;IACrD,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACtD,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC;QAC3B,gBAAgB,EAAE,KAAK;QACvB,mBAAmB,EAAE,IAAI;QACzB,YAAY,EAAE,OAAO;QACrB,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,KAAK;QACpB,mBAAmB,EAAE,KAAK;KAC3B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;IAC7D,OAAO,iBAAiB,CAAC,MAAM,CAA4B,CAAC;AAC9D,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,4BAAU,CAAC;YACpB,gBAAgB,EAAE,KAAK;YACvB,mBAAmB,EAAE,IAAI;YACzB,YAAY,EAAE,OAAO;YACrB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,4BAAU,CAAC;QAC7B,gBAAgB,EAAE,KAAK;QACvB,mBAAmB,EAAE,IAAI;QACzB,YAAY,EAAE,OAAO;QACrB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,GAAG,KAAK,OAAO,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACjD,UAAU,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/C,SAAS;YACX,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,UAAU,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/C,SAAS;YACX,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACnE,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,KAAK,GAA0C,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SAClF,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IACzC,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,MAA+B,EAAE,IAA4B,EAAE,KAAa;IACjG,IAAI,OAAO,GAAY,MAAM,CAAC;IAC9B,IAAI,MAAM,GAAY,IAAI,CAAC;IAC3B,IAAI,SAAS,GAA2B,IAAI,CAAC;IAE7C,MAAM,qBAAqB,GAAG,CAAC,YAAqB,EAA2B,EAAE;QAC/E,IAAI,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAC;QAChD,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,MAAM,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,SAAmB,CAAC,GAAG,IAAI,CAAC;YACrC,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,YAAqB,EAAa,EAAE;QAChE,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAC;QACrD,MAAM,IAAI,GAAc,EAAE,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,SAAmB,CAAC,GAAG,IAAI,CAAC;YACrC,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAErE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;gBACzC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;oBACrB,cAAc,CAAC,cAAc,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;oBAC5C,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;gBAClC,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,GAAG,cAAc,CAAC;YACxB,SAAS,GAAG,OAAO,CAAC;YACpB,cAAc,CAAC,cAAc,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAC5C,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,aAAa,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC;YACtD,IACE,aAAa,IAAI,IAAI;gBACrB,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAChD,CAAC,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAC5C,CAAC;gBACD,cAAc,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,CAAC;YACD,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,OAAO,CAAC;QACpB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC/B,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,GAAG,eAAe,CAAC;QACzB,SAAS,GAAG,GAAG,CAAC;QAChB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC;QACtD,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACnG,eAAe,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,IAAe,EAAE,IAAY;IACnD,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAA4C,EAAE,GAAW,EAAE,KAAc;IAC7F,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;iBAAM,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;YACnE,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC7C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@apiconvert/core",
3
+ "version": "0.0.1",
4
+ "description": "Apiconvert core contracts and schemas for conversion rules.",
5
+ "license": "GPL-3.0-or-later",
6
+ "type": "commonjs",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "files": [
10
+ "dist",
11
+ "schemas",
12
+ "README.md"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc -p tsconfig.json"
16
+ },
17
+ "dependencies": {
18
+ "fast-xml-parser": "^5.3.4"
19
+ },
20
+ "devDependencies": {
21
+ "typescript": "^5.4.5"
22
+ }
23
+ }