react-query-lightbase-codegen 1.0.1 → 1.0.4
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/{lib/typescript → dist}/convertSwaggerFile.d.ts +0 -0
- package/{lib/src → dist}/convertSwaggerFile.js +7 -10
- package/dist/convertSwaggerFile.js.map +1 -0
- package/{lib/typescript → dist}/generateHooks.d.ts +0 -0
- package/dist/generateHooks.js +395 -0
- package/dist/generateHooks.js.map +1 -0
- package/{lib/typescript → dist}/generateImports.d.ts +0 -0
- package/dist/generateImports.js +28 -0
- package/dist/generateImports.js.map +1 -0
- package/{lib/typescript → dist}/generateSchemas.d.ts +0 -0
- package/dist/generateSchemas.js +97 -0
- package/dist/generateSchemas.js.map +1 -0
- package/{lib/typescript → dist}/importSpecs.d.ts +0 -0
- package/dist/importSpecs.js +81 -0
- package/dist/importSpecs.js.map +1 -0
- package/{lib/typescript → dist}/index.d.ts +0 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/{lib/typescript → dist}/utils.d.ts +0 -0
- package/{lib/src → dist}/utils.js +38 -53
- package/dist/utils.js.map +1 -0
- package/package.json +9 -27
- package/lib/commonjs/convertSwaggerFile.js +0 -37
- package/lib/commonjs/convertSwaggerFile.js.map +0 -1
- package/lib/commonjs/generateHooks.js +0 -492
- package/lib/commonjs/generateHooks.js.map +0 -1
- package/lib/commonjs/generateImports.js +0 -48
- package/lib/commonjs/generateImports.js.map +0 -1
- package/lib/commonjs/generateSchemas.js +0 -119
- package/lib/commonjs/generateSchemas.js.map +0 -1
- package/lib/commonjs/importSpecs.js +0 -117
- package/lib/commonjs/importSpecs.js.map +0 -1
- package/lib/commonjs/index.js +0 -22
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/utils.js +0 -212
- package/lib/commonjs/utils.js.map +0 -1
- package/lib/src/generateHooks.js +0 -249
- package/lib/src/generateImports.js +0 -29
- package/lib/src/generateSchemas.js +0 -108
- package/lib/src/importSpecs.js +0 -134
- package/lib/src/index.js +0 -7
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { readFileSync, writeFileSync, readdir, mkdirSync } from 'fs';
|
|
3
|
+
import { join, parse } from 'path';
|
|
4
|
+
import { convertSwaggerFile } from './convertSwaggerFile.js';
|
|
5
|
+
import { createHook } from './generateHooks.js';
|
|
6
|
+
import { generateImports } from './generateImports.js';
|
|
7
|
+
import { generateSchemas } from './generateSchemas.js';
|
|
8
|
+
export function importSpecs({ sourceDirectory, exportDirectory, apiDirectory, queryClientDir, headerFilters, overrides, }) {
|
|
9
|
+
readdir(sourceDirectory, function (err, filenames) {
|
|
10
|
+
if (err) {
|
|
11
|
+
console.log(err);
|
|
12
|
+
throw err;
|
|
13
|
+
}
|
|
14
|
+
filenames.map(async (filename) => {
|
|
15
|
+
try {
|
|
16
|
+
const data = readFileSync(join(process.cwd(), sourceDirectory + '/' + filename), 'utf-8');
|
|
17
|
+
const { ext } = parse(sourceDirectory + '/' + filename);
|
|
18
|
+
const format = ['.yaml', '.yml'].includes(ext.toLowerCase()) ? 'yaml' : 'json';
|
|
19
|
+
let spec = await convertSwaggerFile(data, format);
|
|
20
|
+
const schemaName = `useQueries${filename.split('.')[0]}.schema`;
|
|
21
|
+
const hooksName = `useQueries${filename.split('.')[0]}`;
|
|
22
|
+
const name = filename.split('.')[0];
|
|
23
|
+
mkdirSync(join(process.cwd(), `${exportDirectory}/${name}`), { recursive: true });
|
|
24
|
+
const operationIds = [];
|
|
25
|
+
let hooks = '';
|
|
26
|
+
let schemaImportsArray = [];
|
|
27
|
+
let collectedQueryImports = [];
|
|
28
|
+
Object.entries(spec.paths).forEach(([route, verbs]) => {
|
|
29
|
+
Object.entries(verbs).forEach(([verb, operation]) => {
|
|
30
|
+
if (['get', 'post', 'patch', 'put', 'delete'].includes(verb) && !operation.deprecated) {
|
|
31
|
+
const { implementation, imports, queryImports } = createHook({
|
|
32
|
+
operation,
|
|
33
|
+
verb,
|
|
34
|
+
route: (spec.basePath || '') + route,
|
|
35
|
+
operationIds,
|
|
36
|
+
parameters: verbs.parameters,
|
|
37
|
+
schemasComponents: spec.components,
|
|
38
|
+
headerFilters,
|
|
39
|
+
overrides,
|
|
40
|
+
});
|
|
41
|
+
hooks += implementation;
|
|
42
|
+
imports.forEach((element) => {
|
|
43
|
+
const formattedImport = element.replace('[]', '');
|
|
44
|
+
if (!schemaImportsArray.includes(formattedImport) &&
|
|
45
|
+
element !== 'void' &&
|
|
46
|
+
element !== 'string' &&
|
|
47
|
+
!element.includes('{')) {
|
|
48
|
+
schemaImportsArray.push(formattedImport);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
queryImports.forEach((element) => {
|
|
52
|
+
if (!schemaImportsArray.includes(element)) {
|
|
53
|
+
collectedQueryImports.push(element);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
const imports = generateImports({
|
|
60
|
+
apiDirectory,
|
|
61
|
+
queryClientDir,
|
|
62
|
+
schemaName,
|
|
63
|
+
schemaImports: schemaImportsArray,
|
|
64
|
+
queryImports: collectedQueryImports,
|
|
65
|
+
});
|
|
66
|
+
writeFileSync(join(process.cwd(), `${exportDirectory}/${name}/${hooksName}.tsx`), imports + hooks);
|
|
67
|
+
const schemas = generateSchemas({ spec });
|
|
68
|
+
writeFileSync(join(process.cwd(), `${exportDirectory}/${name}/${schemaName}.tsx`), schemas);
|
|
69
|
+
console.log(chalk.green(`🎉 [${filename}] Your OpenAPI spec has been converted into react query hooks`));
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (error.code === 'EISDIR') {
|
|
73
|
+
console.log(chalk.red('nested folder structure not supported'));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
console.log(chalk.red(`[${filename}]:`), chalk.red(error));
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=importSpecs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importSpecs.js","sourceRoot":"","sources":["../src/importSpecs.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC"}
|
|
File without changes
|
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var case_1 = require("case");
|
|
7
|
-
var pascal = case_1["default"].pascal;
|
|
8
|
-
var getDocs = function (data) {
|
|
9
|
-
return (0, exports.isReference)(data) ? '' : (0, exports.formatDescription)(data.description);
|
|
10
|
-
};
|
|
11
|
-
exports.getDocs = getDocs;
|
|
1
|
+
import lodash from 'lodash';
|
|
2
|
+
const { uniq, isEmpty } = lodash;
|
|
3
|
+
import pasCase from 'case';
|
|
4
|
+
const { pascal } = pasCase;
|
|
5
|
+
export const getDocs = (data) => isReference(data) ? '' : formatDescription(data.description);
|
|
12
6
|
/**
|
|
13
7
|
* Discriminator helper for `ReferenceObject`
|
|
14
8
|
*/
|
|
15
|
-
|
|
9
|
+
export const isReference = (property) => {
|
|
16
10
|
return Boolean(property.$ref);
|
|
17
11
|
};
|
|
18
|
-
exports.isReference = isReference;
|
|
19
12
|
/**
|
|
20
13
|
* Return the typescript equivalent of open-api data type
|
|
21
14
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
export const getScalar = (item) => {
|
|
16
|
+
const nullable = item.nullable ? ' | null' : '';
|
|
24
17
|
switch (item.type) {
|
|
25
18
|
case 'number':
|
|
26
19
|
case 'integer':
|
|
@@ -30,17 +23,16 @@ var getScalar = function (item) {
|
|
|
30
23
|
case 'array':
|
|
31
24
|
return getArray(item) + nullable;
|
|
32
25
|
case 'string':
|
|
33
|
-
return (item
|
|
26
|
+
return (item.enum ? `"${item.enum.join(`" | "`)}"` : 'string') + nullable;
|
|
34
27
|
case 'object':
|
|
35
28
|
default:
|
|
36
29
|
return getObject(item) + nullable;
|
|
37
30
|
}
|
|
38
31
|
};
|
|
39
|
-
exports.getScalar = getScalar;
|
|
40
32
|
/**
|
|
41
33
|
* Return the output type from the $ref
|
|
42
34
|
*/
|
|
43
|
-
|
|
35
|
+
const getRef = ($ref) => {
|
|
44
36
|
if ($ref.startsWith('#/components/schemas')) {
|
|
45
37
|
return pascal($ref.replace('#/components/schemas/', ''));
|
|
46
38
|
}
|
|
@@ -60,13 +52,13 @@ var getRef = function ($ref) {
|
|
|
60
52
|
/**
|
|
61
53
|
* Return the output type from an array
|
|
62
54
|
*/
|
|
63
|
-
|
|
55
|
+
const getArray = (item) => {
|
|
64
56
|
if (item.items) {
|
|
65
|
-
if (!
|
|
66
|
-
return
|
|
57
|
+
if (!isReference(item.items) && (item.items.oneOf || item.items.allOf || item.items.enum)) {
|
|
58
|
+
return `(${resolveValue(item.items)})[]`;
|
|
67
59
|
}
|
|
68
60
|
else {
|
|
69
|
-
return
|
|
61
|
+
return `${resolveValue(item.items)}[]`;
|
|
70
62
|
}
|
|
71
63
|
}
|
|
72
64
|
else {
|
|
@@ -76,15 +68,15 @@ var getArray = function (item) {
|
|
|
76
68
|
/**
|
|
77
69
|
* Return the output type from an object
|
|
78
70
|
*/
|
|
79
|
-
|
|
80
|
-
if (
|
|
71
|
+
const getObject = (item) => {
|
|
72
|
+
if (isReference(item)) {
|
|
81
73
|
return getRef(item.$ref);
|
|
82
74
|
}
|
|
83
75
|
if (item.allOf) {
|
|
84
|
-
return item.allOf.map(
|
|
76
|
+
return item.allOf.map(resolveValue).join(' & ');
|
|
85
77
|
}
|
|
86
78
|
if (item.oneOf) {
|
|
87
|
-
return item.oneOf.map(
|
|
79
|
+
return item.oneOf.map(resolveValue).join(' | ');
|
|
88
80
|
}
|
|
89
81
|
if (!item.type && !item.properties && !item.additionalProperties) {
|
|
90
82
|
return '{}';
|
|
@@ -95,17 +87,16 @@ var getObject = function (item) {
|
|
|
95
87
|
(!item.additionalProperties || item.additionalProperties === true || isEmpty(item.additionalProperties))) {
|
|
96
88
|
return '{[key: string]: any}';
|
|
97
89
|
}
|
|
98
|
-
|
|
90
|
+
const IdentifierRegexp = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/;
|
|
99
91
|
// Consolidation of item.properties & item.additionalProperties
|
|
100
|
-
|
|
92
|
+
let output = '{\n';
|
|
101
93
|
if (item.properties) {
|
|
102
94
|
output += Object.entries(item.properties)
|
|
103
|
-
.map(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return "".concat(doc, "\n").concat(processedKey).concat(isRequired ? '' : '?', ": ").concat((0, exports.resolveValue)(prop), ";");
|
|
95
|
+
.map(([key, prop]) => {
|
|
96
|
+
const doc = getDocs(prop);
|
|
97
|
+
const isRequired = (item.required || []).includes(key);
|
|
98
|
+
const processedKey = IdentifierRegexp.test(key) ? key : `"${key}"`;
|
|
99
|
+
return `${doc}\n${processedKey}${isRequired ? '' : '?'}: ${resolveValue(prop)};`;
|
|
109
100
|
})
|
|
110
101
|
.join('');
|
|
111
102
|
}
|
|
@@ -113,7 +104,7 @@ var getObject = function (item) {
|
|
|
113
104
|
if (item.properties) {
|
|
114
105
|
output += '\n';
|
|
115
106
|
}
|
|
116
|
-
output +=
|
|
107
|
+
output += `} & { [key: string]: ${item.additionalProperties === true ? 'any' : resolveValue(item.additionalProperties)}`;
|
|
117
108
|
}
|
|
118
109
|
if (item.properties || item.additionalProperties) {
|
|
119
110
|
if (output === '{\n') {
|
|
@@ -126,42 +117,36 @@ var getObject = function (item) {
|
|
|
126
117
|
/**
|
|
127
118
|
* Resolve the value of a schema object to a proper type definition.
|
|
128
119
|
*/
|
|
129
|
-
|
|
130
|
-
return (0, exports.isReference)(schema) ? getRef(schema.$ref) : (0, exports.getScalar)(schema);
|
|
131
|
-
};
|
|
132
|
-
exports.resolveValue = resolveValue;
|
|
120
|
+
export const resolveValue = (schema) => isReference(schema) ? getRef(schema.$ref) : getScalar(schema);
|
|
133
121
|
/**
|
|
134
122
|
* Format a description to code documentation.
|
|
135
123
|
*/
|
|
136
|
-
|
|
124
|
+
export const formatDescription = (description) => {
|
|
137
125
|
if (!description) {
|
|
138
126
|
return '';
|
|
139
127
|
}
|
|
140
|
-
return
|
|
128
|
+
return `\n/**\n${description
|
|
141
129
|
.split('\n')
|
|
142
|
-
.map(
|
|
143
|
-
.join('\n')
|
|
130
|
+
.map((i) => `* ${i}`)
|
|
131
|
+
.join('\n')}\n */`;
|
|
144
132
|
};
|
|
145
|
-
exports.formatDescription = formatDescription;
|
|
146
133
|
/**
|
|
147
134
|
* Extract responses / request types from open-api specs
|
|
148
135
|
*/
|
|
149
|
-
|
|
150
|
-
return uniq(responsesOrRequests.map(
|
|
151
|
-
var _ = _a[0], res = _a[1];
|
|
136
|
+
export const getResReqTypes = (responsesOrRequests) => {
|
|
137
|
+
return uniq(responsesOrRequests.map(([_, res]) => {
|
|
152
138
|
if (!res) {
|
|
153
139
|
return;
|
|
154
140
|
}
|
|
155
|
-
if (
|
|
141
|
+
if (isReference(res)) {
|
|
156
142
|
return getRef(res.$ref);
|
|
157
143
|
}
|
|
158
144
|
if (res.content) {
|
|
159
|
-
for (
|
|
160
|
-
var contentType = _b[_i];
|
|
145
|
+
for (let contentType of Object.keys(res.content)) {
|
|
161
146
|
if (contentType.startsWith('application/json') ||
|
|
162
147
|
contentType.startsWith('application/octet-stream')) {
|
|
163
|
-
|
|
164
|
-
return
|
|
148
|
+
const schema = res.content[contentType].schema;
|
|
149
|
+
return resolveValue(schema);
|
|
165
150
|
}
|
|
166
151
|
}
|
|
167
152
|
return;
|
|
@@ -169,4 +154,4 @@ var getResReqTypes = function (responsesOrRequests) {
|
|
|
169
154
|
return;
|
|
170
155
|
})).join(' | ');
|
|
171
156
|
};
|
|
172
|
-
|
|
157
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-query-lightbase-codegen",
|
|
3
3
|
"description": "Fully typed react query code generation tool based on openApi specifications",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.4",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"exports": "./
|
|
7
|
+
"exports": "./dist/index.js",
|
|
8
8
|
"files": [
|
|
9
9
|
"src",
|
|
10
|
-
"
|
|
11
|
-
"!**/__tests__",
|
|
12
|
-
"!**/__fixtures__",
|
|
13
|
-
"!**/__mocks__"
|
|
10
|
+
"dist"
|
|
14
11
|
],
|
|
15
12
|
"keywords": [
|
|
16
13
|
"rest",
|
|
@@ -39,14 +36,15 @@
|
|
|
39
36
|
},
|
|
40
37
|
"scripts": {
|
|
41
38
|
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
|
|
42
|
-
"tsc": "tsc -p tsconfig.json
|
|
43
|
-
"test": "node test/script.mjs && prettier --check ./test/generated/**/*.tsx --write && eslint ./test/generated/**/*.tsx --fix",
|
|
44
|
-
"
|
|
39
|
+
"tsc": "tsc -p tsconfig.json",
|
|
40
|
+
"test": "yarn tsc && node test/script.mjs && prettier --check ./test/generated/**/*.tsx --write && eslint ./test/generated/**/*.tsx --fix",
|
|
41
|
+
"deploy": "tsc && semantic-release --no-ci",
|
|
42
|
+
"prepare": "husky install"
|
|
45
43
|
},
|
|
46
44
|
"dependencies": {
|
|
47
45
|
"axios": "0.27.2",
|
|
48
46
|
"case": "1.6.3",
|
|
49
|
-
"chalk": "
|
|
47
|
+
"chalk": "5.0.1",
|
|
50
48
|
"js-yaml": "4.1.0",
|
|
51
49
|
"lodash": "4.17.21",
|
|
52
50
|
"openapi3-ts": "2.0.2",
|
|
@@ -75,23 +73,7 @@
|
|
|
75
73
|
"husky": "^8.0.1",
|
|
76
74
|
"prettier": "2.7.1",
|
|
77
75
|
"react": "17.0.2",
|
|
78
|
-
"react-native-builder-bob": "^0.18.3",
|
|
79
76
|
"semantic-release": "^19.0.3",
|
|
80
77
|
"typescript": "4.7.4"
|
|
81
|
-
}
|
|
82
|
-
"main": "lib/commonjs/index.js",
|
|
83
|
-
"react-native": "src/index.ts",
|
|
84
|
-
"types": "lib/typescript/src/index.d.ts",
|
|
85
|
-
"react-native-builder-bob": {
|
|
86
|
-
"source": "src",
|
|
87
|
-
"output": "lib",
|
|
88
|
-
"targets": [
|
|
89
|
-
"commonjs",
|
|
90
|
-
"typescript"
|
|
91
|
-
]
|
|
92
|
-
},
|
|
93
|
-
"eslintIgnore": [
|
|
94
|
-
"node_modules/",
|
|
95
|
-
"lib/"
|
|
96
|
-
]
|
|
78
|
+
}
|
|
97
79
|
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.convertSwaggerFile = void 0;
|
|
7
|
-
|
|
8
|
-
var _swagger2openapi = _interopRequireDefault(require("swagger2openapi"));
|
|
9
|
-
|
|
10
|
-
var _jsYaml = _interopRequireDefault(require("js-yaml"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Import and parse the openapi spec from a yaml/json
|
|
16
|
-
*/
|
|
17
|
-
const convertSwaggerFile = (data, extension) => {
|
|
18
|
-
const schema = extension === 'yaml' ? _jsYaml.default.load(data) : JSON.parse(data);
|
|
19
|
-
return new Promise((resolve, reject) => {
|
|
20
|
-
if (!schema.openapi || !schema.openapi.startsWith('3.')) {
|
|
21
|
-
_swagger2openapi.default.convertObj(schema, {}, (err, convertedObj) => {
|
|
22
|
-
if (err) {
|
|
23
|
-
reject(err);
|
|
24
|
-
} else {
|
|
25
|
-
// @ts-ignore
|
|
26
|
-
convertedObj.openapi.basePath = convertedObj.original.basePath;
|
|
27
|
-
resolve(convertedObj.openapi);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
} else {
|
|
31
|
-
resolve(schema);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
exports.convertSwaggerFile = convertSwaggerFile;
|
|
37
|
-
//# sourceMappingURL=convertSwaggerFile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["convertSwaggerFile","data","extension","schema","yaml","load","JSON","parse","Promise","resolve","reject","openapi","startsWith","swagger2openapi","convertObj","err","convertedObj","basePath","original"],"sources":["convertSwaggerFile.ts"],"sourcesContent":["import { OpenAPIObject } from 'openapi3-ts';\nimport swagger2openapi from 'swagger2openapi';\nimport yaml from 'js-yaml';\n\n/**\n * Import and parse the openapi spec from a yaml/json\n */\nexport const convertSwaggerFile = (data: string, extension: 'yaml' | 'json'): Promise<OpenAPIObject> => {\n const schema = extension === 'yaml' ? yaml.load(data) : JSON.parse(data);\n return new Promise((resolve, reject) => {\n if (!schema.openapi || !schema.openapi.startsWith('3.')) {\n swagger2openapi.convertObj(schema, {}, (err, convertedObj) => {\n if (err) {\n reject(err);\n } else {\n // @ts-ignore\n convertedObj.openapi.basePath = convertedObj.original.basePath;\n resolve(convertedObj.openapi);\n }\n });\n } else {\n resolve(schema);\n }\n });\n};\n"],"mappings":";;;;;;;AACA;;AACA;;;;AAEA;AACA;AACA;AACO,MAAMA,kBAAkB,GAAG,CAACC,IAAD,EAAeC,SAAf,KAAsE;EACtG,MAAMC,MAAM,GAAGD,SAAS,KAAK,MAAd,GAAuBE,eAAA,CAAKC,IAAL,CAAUJ,IAAV,CAAvB,GAAyCK,IAAI,CAACC,KAAL,CAAWN,IAAX,CAAxD;EACA,OAAO,IAAIO,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;IACtC,IAAI,CAACP,MAAM,CAACQ,OAAR,IAAmB,CAACR,MAAM,CAACQ,OAAP,CAAeC,UAAf,CAA0B,IAA1B,CAAxB,EAAyD;MACvDC,wBAAA,CAAgBC,UAAhB,CAA2BX,MAA3B,EAAmC,EAAnC,EAAuC,CAACY,GAAD,EAAMC,YAAN,KAAuB;QAC5D,IAAID,GAAJ,EAAS;UACPL,MAAM,CAACK,GAAD,CAAN;QACD,CAFD,MAEO;UACL;UACAC,YAAY,CAACL,OAAb,CAAqBM,QAArB,GAAgCD,YAAY,CAACE,QAAb,CAAsBD,QAAtD;UACAR,OAAO,CAACO,YAAY,CAACL,OAAd,CAAP;QACD;MACF,CARD;IASD,CAVD,MAUO;MACLF,OAAO,CAACN,MAAD,CAAP;IACD;EACF,CAdM,CAAP;AAeD,CAjBM"}
|