ts-rails 1.0.8 → 1.0.10
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/cli.js +7 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/generate-controller.js +24 -9
- package/dist/commands/generate-controller.js.map +1 -1
- package/dist/commands/generate-resource.js +5 -3
- package/dist/commands/generate-resource.js.map +1 -1
- package/dist/commands/generate-scaffold.js +49 -9
- package/dist/commands/generate-scaffold.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -17,10 +17,14 @@ program
|
|
|
17
17
|
.argument("<type>", "Type of code to generate (scaffold, resource, controller, service, mailer, job, channel)")
|
|
18
18
|
.argument("<name>", "Name of the resource")
|
|
19
19
|
.argument("[fields...]", "Fields for the resource")
|
|
20
|
-
.
|
|
20
|
+
.option("--api", "Generate API-only resource")
|
|
21
|
+
.action((type, name, fields, options) => {
|
|
21
22
|
const commandFile = path_1.default.join(__dirname, "commands", `generate-${type}.js`);
|
|
23
|
+
const spawnArgs = [name, ...fields];
|
|
24
|
+
if (options.api)
|
|
25
|
+
spawnArgs.push("--api");
|
|
22
26
|
if (fs_1.default.existsSync(commandFile)) {
|
|
23
|
-
const child = (0, child_process_1.spawn)("node", [commandFile,
|
|
27
|
+
const child = (0, child_process_1.spawn)("node", [commandFile, ...spawnArgs], {
|
|
24
28
|
stdio: "inherit",
|
|
25
29
|
cwd: process.cwd(),
|
|
26
30
|
shell: true,
|
|
@@ -32,7 +36,7 @@ program
|
|
|
32
36
|
else {
|
|
33
37
|
const tsCommandFile = path_1.default.join(__dirname, "..", "commands", `generate-${type}.ts`);
|
|
34
38
|
if (fs_1.default.existsSync(tsCommandFile)) {
|
|
35
|
-
const child = (0, child_process_1.spawn)("npx", ["ts-node", tsCommandFile,
|
|
39
|
+
const child = (0, child_process_1.spawn)("npx", ["ts-node", tsCommandFile, ...spawnArgs], {
|
|
36
40
|
stdio: "inherit",
|
|
37
41
|
cwd: process.cwd(),
|
|
38
42
|
shell: true,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";;;;;;AAEA,iDAAsC;AACtC,yCAAoC;AACpC,4CAAoB;AACpB,gDAAwB;AAExB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEnE,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,eAAe,CAAC;KAC5B,QAAQ,CACP,QAAQ,EACR,0FAA0F,CAC3F;KACA,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KAC1C,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC;KAClD,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,10 @@ if (args.length < 1) {
|
|
|
11
11
|
console.error("Usage: yarn g:controller Name [action action...]");
|
|
12
12
|
process.exit(1);
|
|
13
13
|
}
|
|
14
|
-
const
|
|
15
|
-
const
|
|
14
|
+
const isApi = args.includes("--api");
|
|
15
|
+
const cleanArgs = args.filter(arg => arg !== "--api");
|
|
16
|
+
const inputName = cleanArgs[0];
|
|
17
|
+
const actions = cleanArgs.slice(1);
|
|
16
18
|
const parts = inputName.split(/[:/]/);
|
|
17
19
|
const rawName = parts.pop();
|
|
18
20
|
const subDir = parts.join("/").toLowerCase();
|
|
@@ -32,7 +34,18 @@ if (parts.length > 0) {
|
|
|
32
34
|
parentImport = `./${lastNamespace}.controller`;
|
|
33
35
|
}
|
|
34
36
|
const targetActions = actions.length > 0 ? actions : ["index", "show", "new", "edit", "create", "update", "destroy"];
|
|
35
|
-
const template =
|
|
37
|
+
const template = isApi
|
|
38
|
+
? `import { ${parentClass} } from "${parentImport}";
|
|
39
|
+
|
|
40
|
+
export class ${className} extends ${parentClass} {
|
|
41
|
+
${targetActions.filter(a => !['new', 'edit'].includes(a)).map(action => `
|
|
42
|
+
async ${action}() {
|
|
43
|
+
// TODO: logic for ${action}
|
|
44
|
+
this.renderJson({ action: "${action}" });
|
|
45
|
+
}`).join('\n')}
|
|
46
|
+
}
|
|
47
|
+
`
|
|
48
|
+
: `import { FlashType } from "@configs/enum";
|
|
36
49
|
import { ${parentClass} } from "${parentImport}";
|
|
37
50
|
|
|
38
51
|
export class ${className} extends ${parentClass} {
|
|
@@ -76,19 +89,21 @@ const writeFile = (filePath, content) => {
|
|
|
76
89
|
console.log(`\x1b[32mCREATE\x1b[0m ${path_1.default.relative(root, filePath)}`);
|
|
77
90
|
};
|
|
78
91
|
writeFile(controllerPath, template);
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
92
|
+
if (!isApi) {
|
|
93
|
+
targetActions.forEach((action) => {
|
|
94
|
+
const viewPath = path_1.default.join(viewsDir, `${action}.pug`);
|
|
95
|
+
const viewTemplate = `extends ../layouts/application
|
|
82
96
|
|
|
83
97
|
block content
|
|
84
98
|
h1 ${className}#${action}
|
|
85
99
|
p Find me in app/views/${viewBase}.view/${action}.pug
|
|
86
100
|
`;
|
|
87
|
-
|
|
88
|
-
});
|
|
101
|
+
writeFile(viewPath, viewTemplate);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
89
104
|
console.log(`
|
|
90
105
|
\x1b[33mNext Steps:\x1b[0m
|
|
91
106
|
Register routes in \x1b[35mapp/routes/index.ts\x1b[0m:
|
|
92
|
-
this.resource("${namePlural}", ${className});
|
|
107
|
+
this.resource("${namePlural}", ${className}${isApi ? ", { api: true }" : ""});
|
|
93
108
|
`);
|
|
94
109
|
//# sourceMappingURL=generate-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-controller.js","sourceRoot":"","sources":["../../commands/generate-controller.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,0DAAkC;AAElC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-controller.js","sourceRoot":"","sources":["../../commands/generate-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,9 @@ if (args.length < 1) {
|
|
|
11
11
|
console.error("Usage: yarn g:resource ModelName field:type");
|
|
12
12
|
process.exit(1);
|
|
13
13
|
}
|
|
14
|
-
const
|
|
14
|
+
const isApi = args.includes("--api");
|
|
15
|
+
const cleanArgs = args.filter(arg => arg !== "--api");
|
|
16
|
+
const inputName = cleanArgs[0];
|
|
15
17
|
const parts = inputName.split(/[:/]/);
|
|
16
18
|
const rawName = parts.pop();
|
|
17
19
|
const subDir = parts.join("/").toLowerCase();
|
|
@@ -43,7 +45,7 @@ export class ${className} extends ${parentClass} {
|
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
async create() {
|
|
46
|
-
const params = await this.params.permit(${
|
|
48
|
+
const params = await this.params.permit(${cleanArgs.slice(1).map(f => `'${f.split(':')[0]}'`).join(", ")});
|
|
47
49
|
const item = await models.${rawName.toLowerCase()}.create({ data: params });
|
|
48
50
|
this.renderJson(item, 201);
|
|
49
51
|
}
|
|
@@ -54,7 +56,7 @@ import { ${className} } from "@controllers/${subDir ? subDir + "/" : ""}${namePl
|
|
|
54
56
|
|
|
55
57
|
export class ${rawName}Route extends RailsRoute {
|
|
56
58
|
draw() {
|
|
57
|
-
this.resource("${namePlural}", ${className}, { only: ["index", "show", "create"] });
|
|
59
|
+
this.resource("${namePlural}", ${className}, { only: ["index", "show", "create"]${isApi ? ", api: true" : ""} });
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
62
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-resource.js","sourceRoot":"","sources":["../../commands/generate-resource.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,0DAAkC;AAElC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-resource.js","sourceRoot":"","sources":["../../commands/generate-resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,9 @@ if (args.length < 1) {
|
|
|
11
11
|
console.error("Usage: yarn scaffold ModelName field:type field:type");
|
|
12
12
|
process.exit(1);
|
|
13
13
|
}
|
|
14
|
-
const
|
|
14
|
+
const isApi = args.includes("--api");
|
|
15
|
+
const cleanArgs = args.filter(arg => arg !== "--api");
|
|
16
|
+
const inputName = cleanArgs[0];
|
|
15
17
|
const parts = inputName.split(/[:/]/);
|
|
16
18
|
const rawModelName = parts.pop();
|
|
17
19
|
const subDir = parts.join("/").toLowerCase();
|
|
@@ -21,7 +23,7 @@ const modelPlural = (0, pluralize_1.default)(modelLower);
|
|
|
21
23
|
const className = parts.map(p => p.charAt(0).toUpperCase() + p.slice(1).toLowerCase()).join("") +
|
|
22
24
|
modelName.charAt(0).toUpperCase() + modelName.slice(1).toLowerCase() + "Controller";
|
|
23
25
|
const viewBase = [...parts, modelPlural].map(p => p.toLowerCase()).join(".");
|
|
24
|
-
const fields =
|
|
26
|
+
const fields = cleanArgs.slice(1).map((f) => {
|
|
25
27
|
const [name, type] = f.split(":");
|
|
26
28
|
return { name, type: type || "string" };
|
|
27
29
|
});
|
|
@@ -41,7 +43,43 @@ if (parts.length > 0) {
|
|
|
41
43
|
parentClass = lastNamespace.charAt(0).toUpperCase() + lastNamespace.slice(1) + "Controller";
|
|
42
44
|
parentImport = `./${lastNamespace}.controller`;
|
|
43
45
|
}
|
|
44
|
-
const controllerTemplate =
|
|
46
|
+
const controllerTemplate = isApi
|
|
47
|
+
? `import { ${parentClass} } from "${parentImport}";
|
|
48
|
+
import models from "@models";
|
|
49
|
+
|
|
50
|
+
export class ${className} extends ${parentClass} {
|
|
51
|
+
async index() {
|
|
52
|
+
const ${modelPlural} = await models.${modelLower}.findMany();
|
|
53
|
+
this.renderJson(${modelPlural});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async show() {
|
|
57
|
+
const ${modelLower} = await models.${modelLower}.findUnique({ where: { id: this.req.params.id } });
|
|
58
|
+
this.renderJson(${modelLower});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async create() {
|
|
62
|
+
const params = await this.params.permit(${fields.map((f) => `'${f.name}'`).join(", ")});
|
|
63
|
+
const ${modelLower} = await models.${modelLower}.create({ data: params });
|
|
64
|
+
this.renderJson(${modelLower}, 201);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
async update() {
|
|
68
|
+
const params = await this.params.permit(${fields.map((f) => `'${f.name}'`).join(", ")});
|
|
69
|
+
const ${modelLower} = await models.${modelLower}.update({
|
|
70
|
+
where: { id: this.req.params.id },
|
|
71
|
+
data: params,
|
|
72
|
+
});
|
|
73
|
+
this.renderJson(${modelLower});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async destroy() {
|
|
77
|
+
await models.${modelLower}.delete({ where: { id: this.req.params.id } });
|
|
78
|
+
this.renderJson({ success: true });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
`
|
|
82
|
+
: `import { FlashType } from "@configs/enum";
|
|
45
83
|
import { ${parentClass} } from "${parentImport}";
|
|
46
84
|
import models from "@models";
|
|
47
85
|
|
|
@@ -94,7 +132,7 @@ import { ${className} } from "@controllers/${subDir ? subDir + "/" : ""}${modelP
|
|
|
94
132
|
|
|
95
133
|
export class ${modelName}Route extends RailsRoute {
|
|
96
134
|
draw() {
|
|
97
|
-
this.resource("${modelPlural}", ${className});
|
|
135
|
+
this.resource("${modelPlural}", ${className}${isApi ? ", { api: true }" : ""});
|
|
98
136
|
}
|
|
99
137
|
}
|
|
100
138
|
`;
|
|
@@ -183,11 +221,13 @@ const writeFile = (filePath, content) => {
|
|
|
183
221
|
writeFile(paths.controller, controllerTemplate);
|
|
184
222
|
writeFile(paths.test, testTemplate);
|
|
185
223
|
writeFile(paths.route, routeTemplate);
|
|
186
|
-
|
|
187
|
-
writeFile(path_1.default.join(paths.viewsDir, "
|
|
188
|
-
writeFile(path_1.default.join(paths.viewsDir, "
|
|
189
|
-
writeFile(path_1.default.join(paths.viewsDir, "
|
|
190
|
-
writeFile(path_1.default.join(paths.viewsDir, "
|
|
224
|
+
if (!isApi) {
|
|
225
|
+
writeFile(path_1.default.join(paths.viewsDir, "show.pug"), showView);
|
|
226
|
+
writeFile(path_1.default.join(paths.viewsDir, "index.pug"), indexView);
|
|
227
|
+
writeFile(path_1.default.join(paths.viewsDir, "_form.pug"), formView);
|
|
228
|
+
writeFile(path_1.default.join(paths.viewsDir, "new.pug"), newView);
|
|
229
|
+
writeFile(path_1.default.join(paths.viewsDir, "edit.pug"), editView);
|
|
230
|
+
}
|
|
191
231
|
const typeMap = {
|
|
192
232
|
string: "String",
|
|
193
233
|
int: "Int",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-scaffold.js","sourceRoot":"","sources":["../../commands/generate-scaffold.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,0DAAkC;AAElC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-scaffold.js","sourceRoot":"","sources":["../../commands/generate-scaffold.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,0DAAkC;AAElC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACrC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC;AAEtD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;AAClC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAE7C,MAAM,SAAS,GAAG,mBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACnD,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;AAC3C,MAAM,WAAW,GAAG,IAAA,mBAAS,EAAC,UAAU,CAAC,CAAC;AAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9E,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC;AAErG,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE7E,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IAC1C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAG3B,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;AACjE,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;AAClE,MAAM,KAAK,GAAG;IACZ,UAAU,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,WAAW,gBAAgB,CAAC;IACpE,IAAI,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,WAAW,qBAAqB,CAAC;IAChF,KAAK,EAAE,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,WAAW,WAAW,CAAC;IACvE,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,IAAI,WAAW,GAAG,uBAAuB,CAAC;AAC1C,IAAI,YAAY,GAAG,GAAG,CAAC;AAEvB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACrB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5F,YAAY,GAAG,KAAK,aAAa,aAAa,CAAC;AACjD,CAAC;AAGD,MAAM,kBAAkB,GAAG,KAAK;IAChC,CAAC,CAAC,YAAY,WAAW,YAAY,YAAY;;;eAGlC,SAAS,YAAY,WAAW;;YAEnC,WAAW,mBAAmB,UAAU;sBAC9B,WAAW;;;;YAIrB,UAAU,mBAAmB,UAAU;sBAC7B,UAAU;;;;8CAIc,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7E,UAAU,mBAAmB,UAAU;sBAC7B,UAAU;;;;8CAIc,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7E,UAAU,mBAAmB,UAAU;;;;sBAI7B,UAAU;;;;mBAIb,UAAU;;;;CAI5B;IACD,CAAC,CAAC;WACS,WAAW,YAAY,YAAY;;;eAG/B,SAAS,YAAY,WAAW;;YAEnC,WAAW,mBAAmB,UAAU;mBACjC,QAAQ,mBAAmB,WAAW;;;;YAI7C,UAAU,mBAAmB,UAAU;mBAChC,QAAQ,kBAAkB,UAAU;;;;mBAIpC,QAAQ,iBAAiB,UAAU;;;;YAI1C,UAAU,mBAAmB,UAAU;mBAChC,QAAQ,kBAAkB,UAAU;;;;8CAIT,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;mBACtE,UAAU;;uBAEN,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;;;;8CAIjB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;mBACtE,UAAU;;;;;uBAKN,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;;;;mBAI5C,UAAU;;uBAEN,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;;;CAG9D,CAAC;AAGF,MAAM,aAAa,GAAG;WACX,SAAS,yBAAyB,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;;eAEtE,SAAS;;qBAEH,WAAW,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;;;CAG/E,CAAC;AAGF,MAAM,YAAY,GAAG,YAAY,SAAS,eAAe,WAAW;;YAExD,SAAS;;6BAEQ,SAAS;;;;;;;;CAQrC,CAAC;AAGF,MAAM,SAAS,GAAG;;;;iBAID,SAAS;+BACK,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,cAAc,SAAS;;;;;EAK5F,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;qBAG3E,WAAW;;EAE9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;iDAEb,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;oDACrC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;oDACxC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;;CAE3F,CAAC;AAEF,MAAM,QAAQ,GAAG;;;;SAIR,SAAS;;uCAEqB,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,OAAO,UAAU;mCAC7D,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;;;;EAIzE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;iBACH,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjD,UAAU,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,QAAQ,GAAG;EACf,MAAM;KACL,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC;;qBAEU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;6BACxC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,IAAI,SAAS,CAC/D;KACA,IAAI,CAAC,EAAE,CAAC;;CAEV,CAAC;AAEF,MAAM,OAAO,GAAG;;;WAGL,SAAS;gCACY,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;mBACrD,UAAU;;CAE5B,CAAC;AAEF,MAAM,QAAQ,GAAG;;;YAGL,SAAS;iCACY,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,OAAO,UAAU;mBACvE,UAAU;;CAE5B,CAAC;AAGF,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,EAAE;IACtD,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,yBAAyB,cAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAChD,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACpC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;IACX,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3D,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;IAC7D,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5D,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACzD,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,OAAO,GAA2B;IACtC,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC;;;WAGD,SAAS;;OAEb,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;;;;;;cAM/F,SAAS,mBAAmB,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW;;iBAEjE,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,MAAM,SAAS;CACvE,CAAC,CAAC"}
|