simple-scaffold 2.2.2 → 2.3.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/cmd.js +16 -16
- package/cmd.js.map +1 -1
- package/config.d.ts +2 -2
- package/config.js +31 -19
- package/config.js.map +1 -1
- package/file.d.ts +1 -1
- package/file.js +6 -8
- package/file.js.map +1 -1
- package/logger.js +4 -4
- package/logger.js.map +1 -1
- package/package.json +10 -18
- package/parser.d.ts +2 -2
- package/parser.js +3 -3
- package/scaffold.js +33 -26
- package/scaffold.js.map +1 -1
- package/types.d.ts +13 -4
- package/types.js.map +1 -1
- package/utils.d.ts +24 -0
- package/utils.js +42 -0
- package/utils.js.map +1 -1
package/cmd.js
CHANGED
|
@@ -8,13 +8,13 @@ exports.parseCliArgs = parseCliArgs;
|
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
10
10
|
const massarg_1 = require("massarg");
|
|
11
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
12
11
|
const types_1 = require("./types");
|
|
13
12
|
const scaffold_1 = require("./scaffold");
|
|
14
13
|
const config_1 = require("./config");
|
|
15
14
|
const logger_1 = require("./logger");
|
|
16
15
|
const command_1 = require("massarg/command");
|
|
17
16
|
const file_1 = require("./file");
|
|
17
|
+
const utils_1 = require("./utils");
|
|
18
18
|
async function parseCliArgs(args = process.argv.slice(2)) {
|
|
19
19
|
const isProjectRoot = Boolean(await promises_1.default.stat(node_path_1.default.join(__dirname, "package.json")).catch(() => false));
|
|
20
20
|
const pkgFile = await promises_1.default.readFile(node_path_1.default.resolve(__dirname, isProjectRoot ? "." : "..", "package.json"));
|
|
@@ -33,10 +33,10 @@ async function parseCliArgs(args = process.argv.slice(2)) {
|
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
(0, logger_1.log)(config, types_1.LogLevel.info, `Simple Scaffold v${pkg.version}`);
|
|
36
|
-
|
|
36
|
+
config.tmpDir = (0, file_1.getUniqueTmpPath)();
|
|
37
37
|
try {
|
|
38
38
|
(0, logger_1.log)(config, types_1.LogLevel.debug, "Parsing config file...", config);
|
|
39
|
-
const parsed = await (0, config_1.parseConfigFile)(config
|
|
39
|
+
const parsed = await (0, config_1.parseConfigFile)(config);
|
|
40
40
|
await (0, scaffold_1.Scaffold)(parsed);
|
|
41
41
|
}
|
|
42
42
|
catch (e) {
|
|
@@ -44,8 +44,8 @@ async function parseCliArgs(args = process.argv.slice(2)) {
|
|
|
44
44
|
(0, logger_1.log)(config, types_1.LogLevel.error, message);
|
|
45
45
|
}
|
|
46
46
|
finally {
|
|
47
|
-
(0, logger_1.log)(config, types_1.LogLevel.debug, "Cleaning up temporary files...",
|
|
48
|
-
await promises_1.default.rm(
|
|
47
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, "Cleaning up temporary files...", config.tmpDir);
|
|
48
|
+
await promises_1.default.rm(config.tmpDir, { recursive: true, force: true });
|
|
49
49
|
}
|
|
50
50
|
})
|
|
51
51
|
.option({
|
|
@@ -133,7 +133,7 @@ async function parseCliArgs(args = process.argv.slice(2)) {
|
|
|
133
133
|
aliases: ["l"],
|
|
134
134
|
defaultValue: types_1.LogLevel.info,
|
|
135
135
|
description: "Determine amount of logs to display. The values are: " +
|
|
136
|
-
`${
|
|
136
|
+
`${utils_1.colorize.bold `\`none | debug | info | warn | error\``}. ` +
|
|
137
137
|
"The provided level will display messages of the same level or higher.",
|
|
138
138
|
parse: (v) => {
|
|
139
139
|
const val = v.toLowerCase();
|
|
@@ -167,7 +167,6 @@ async function parseCliArgs(args = process.argv.slice(2)) {
|
|
|
167
167
|
aliases: ["ls"],
|
|
168
168
|
description: "List all available templates for a given config. See `list -h` for more information.",
|
|
169
169
|
run: async (_config) => {
|
|
170
|
-
const tmpPath = (0, file_1.getUniqueTmpPath)();
|
|
171
170
|
const config = {
|
|
172
171
|
templates: [],
|
|
173
172
|
name: "",
|
|
@@ -176,12 +175,13 @@ async function parseCliArgs(args = process.argv.slice(2)) {
|
|
|
176
175
|
subdir: false,
|
|
177
176
|
overwrite: false,
|
|
178
177
|
dryRun: false,
|
|
178
|
+
tmpDir: (0, file_1.getUniqueTmpPath)(),
|
|
179
179
|
..._config,
|
|
180
180
|
config: _config.config ?? (!_config.git ? process.cwd() : undefined),
|
|
181
181
|
};
|
|
182
182
|
try {
|
|
183
|
-
const file = await (0, config_1.getConfigFile)(config
|
|
184
|
-
console.log(
|
|
183
|
+
const file = await (0, config_1.getConfigFile)(config);
|
|
184
|
+
console.log(utils_1.colorize.underline `Available templates:\n`);
|
|
185
185
|
console.log(Object.keys(file).join("\n"));
|
|
186
186
|
}
|
|
187
187
|
catch (e) {
|
|
@@ -189,8 +189,8 @@ async function parseCliArgs(args = process.argv.slice(2)) {
|
|
|
189
189
|
(0, logger_1.log)(config, types_1.LogLevel.error, message);
|
|
190
190
|
}
|
|
191
191
|
finally {
|
|
192
|
-
(0, logger_1.log)(config, types_1.LogLevel.debug, "Cleaning up temporary files...",
|
|
193
|
-
await promises_1.default.rm(
|
|
192
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, "Cleaning up temporary files...", config.tmpDir);
|
|
193
|
+
await promises_1.default.rm(config.tmpDir, { recursive: true, force: true });
|
|
194
194
|
}
|
|
195
195
|
},
|
|
196
196
|
})
|
|
@@ -209,7 +209,7 @@ async function parseCliArgs(args = process.argv.slice(2)) {
|
|
|
209
209
|
aliases: ["l"],
|
|
210
210
|
defaultValue: types_1.LogLevel.none,
|
|
211
211
|
description: "Determine amount of logs to display. The values are: " +
|
|
212
|
-
`${
|
|
212
|
+
`${utils_1.colorize.bold `\`none | debug | info | warn | error\``}. ` +
|
|
213
213
|
"The provided level will display messages of the same level or higher.",
|
|
214
214
|
parse: (v) => {
|
|
215
215
|
const val = v.toLowerCase();
|
|
@@ -246,7 +246,7 @@ async function parseCliArgs(args = process.argv.slice(2)) {
|
|
|
246
246
|
bindOption: true,
|
|
247
247
|
lineLength: 100,
|
|
248
248
|
useGlobalTableColumns: true,
|
|
249
|
-
usageText: [
|
|
249
|
+
usageText: [utils_1.colorize.yellow `simple-scaffold`, utils_1.colorize.gray `[options]`, utils_1.colorize.cyan `<name>`].join(" "),
|
|
250
250
|
optionOptions: {
|
|
251
251
|
displayNegations: true,
|
|
252
252
|
},
|
|
@@ -254,9 +254,9 @@ async function parseCliArgs(args = process.argv.slice(2)) {
|
|
|
254
254
|
`Version: ${pkg.version}`,
|
|
255
255
|
`Copyright © Chen Asraf 2017-${new Date().getFullYear()}`,
|
|
256
256
|
``,
|
|
257
|
-
`Documentation: ${
|
|
258
|
-
`NPM: ${
|
|
259
|
-
`GitHub: ${
|
|
257
|
+
`Documentation: ${utils_1.colorize.underline `https://chenasraf.github.io/simple-scaffold`}`,
|
|
258
|
+
`NPM: ${utils_1.colorize.underline `https://npmjs.com/package/simple-scaffold`}`,
|
|
259
|
+
`GitHub: ${utils_1.colorize.underline `https://github.com/chenasraf/simple-scaffold`}`,
|
|
260
260
|
].join("\n"),
|
|
261
261
|
})
|
|
262
262
|
.parse(args);
|
package/cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":";;;;;;AAaA,oCA8PC;AAzQD,0DAA4B;AAC5B,gEAAiC;AACjC,qCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":"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"}
|
package/config.d.ts
CHANGED
|
@@ -4,9 +4,9 @@ export declare function getOptionValueForFile<T>(config: ScaffoldConfig, filePat
|
|
|
4
4
|
/** @internal */
|
|
5
5
|
export declare function parseAppendData(value: string, options: ScaffoldCmdConfig): unknown;
|
|
6
6
|
/** @internal */
|
|
7
|
-
export declare function getConfigFile(config: ScaffoldCmdConfig
|
|
7
|
+
export declare function getConfigFile(config: ScaffoldCmdConfig): Promise<ScaffoldConfigMap>;
|
|
8
8
|
/** @internal */
|
|
9
|
-
export declare function parseConfigFile(config: ScaffoldCmdConfig
|
|
9
|
+
export declare function parseConfigFile(config: ScaffoldCmdConfig): Promise<ScaffoldConfig>;
|
|
10
10
|
/** @internal */
|
|
11
11
|
export declare function githubPartToUrl(part: string): string;
|
|
12
12
|
/** @internal */
|
package/config.js
CHANGED
|
@@ -48,7 +48,7 @@ function getOptionValueForFile(config, filePath, fn, defaultValue) {
|
|
|
48
48
|
if (typeof fn !== "function") {
|
|
49
49
|
return defaultValue ?? fn;
|
|
50
50
|
}
|
|
51
|
-
return fn(filePath, node_path_1.default.dirname((0, parser_1.handlebarsParse)(config, filePath, {
|
|
51
|
+
return fn(filePath, node_path_1.default.dirname((0, parser_1.handlebarsParse)(config, filePath, { asPath: true }).toString()), node_path_1.default.basename((0, parser_1.handlebarsParse)(config, filePath, { asPath: true }).toString()));
|
|
52
52
|
}
|
|
53
53
|
/** @internal */
|
|
54
54
|
function parseAppendData(value, options) {
|
|
@@ -64,7 +64,7 @@ function isWrappedWithQuotes(string) {
|
|
|
64
64
|
return (string.startsWith('"') && string.endsWith('"')) || (string.startsWith("'") && string.endsWith("'"));
|
|
65
65
|
}
|
|
66
66
|
/** @internal */
|
|
67
|
-
async function getConfigFile(config
|
|
67
|
+
async function getConfigFile(config) {
|
|
68
68
|
if (config.git && !config.git.includes("://")) {
|
|
69
69
|
(0, logger_1.log)(config, types_1.LogLevel.info, `Loading config from GitHub ${config.git}`);
|
|
70
70
|
config.git = githubPartToUrl(config.git);
|
|
@@ -74,7 +74,7 @@ async function getConfigFile(config, tmpPath) {
|
|
|
74
74
|
const configPath = isGit ? config.git : configFilename;
|
|
75
75
|
(0, logger_1.log)(config, types_1.LogLevel.info, `Loading config from file ${configFilename}`);
|
|
76
76
|
const configPromise = await (isGit
|
|
77
|
-
? getRemoteConfig({ git: configPath, config: configFilename, logLevel: config.logLevel,
|
|
77
|
+
? getRemoteConfig({ git: configPath, config: configFilename, logLevel: config.logLevel, tmpDir: config.tmpDir })
|
|
78
78
|
: getLocalConfig({ config: configFilename, logLevel: config.logLevel }));
|
|
79
79
|
// resolve the config
|
|
80
80
|
let configImport = await (0, utils_1.resolve)(configPromise, config);
|
|
@@ -86,22 +86,34 @@ async function getConfigFile(config, tmpPath) {
|
|
|
86
86
|
return configImport;
|
|
87
87
|
}
|
|
88
88
|
/** @internal */
|
|
89
|
-
async function parseConfigFile(config
|
|
90
|
-
let output = {
|
|
89
|
+
async function parseConfigFile(config) {
|
|
90
|
+
let output = {
|
|
91
|
+
name: config.name,
|
|
92
|
+
templates: [],
|
|
93
|
+
output: config.output,
|
|
94
|
+
logLevel: config.logLevel,
|
|
95
|
+
dryRun: config.dryRun,
|
|
96
|
+
data: config.data,
|
|
97
|
+
subdir: config.subdir,
|
|
98
|
+
overwrite: config.overwrite,
|
|
99
|
+
subdirHelper: config.subdirHelper,
|
|
100
|
+
beforeWrite: undefined,
|
|
101
|
+
tmpDir: config.tmpDir,
|
|
102
|
+
};
|
|
91
103
|
if (config.quiet) {
|
|
92
104
|
config.logLevel = types_1.LogLevel.none;
|
|
93
105
|
}
|
|
94
106
|
const shouldLoadConfig = Boolean(config.config || config.git);
|
|
95
107
|
if (shouldLoadConfig) {
|
|
96
108
|
const key = config.key ?? "default";
|
|
97
|
-
const configImport = await getConfigFile(config
|
|
109
|
+
const configImport = await getConfigFile(config);
|
|
98
110
|
if (!configImport[key]) {
|
|
99
111
|
throw new Error(`Template "${key}" not found in ${config.config}`);
|
|
100
112
|
}
|
|
101
113
|
const imported = configImport[key];
|
|
102
114
|
(0, logger_1.log)(config, types_1.LogLevel.debug, "Imported result", imported);
|
|
103
115
|
output = {
|
|
104
|
-
...
|
|
116
|
+
...output,
|
|
105
117
|
...imported,
|
|
106
118
|
beforeWrite: undefined,
|
|
107
119
|
data: {
|
|
@@ -147,7 +159,7 @@ async function getLocalConfig(config) {
|
|
|
147
159
|
}
|
|
148
160
|
/** @internal */
|
|
149
161
|
async function getRemoteConfig(config) {
|
|
150
|
-
const { config: configFile, git,
|
|
162
|
+
const { config: configFile, git, tmpDir, ...logConfig } = config;
|
|
151
163
|
(0, logger_1.log)(logConfig, types_1.LogLevel.info, `Loading config from remote ${git}, file ${configFile}`);
|
|
152
164
|
const url = new URL(git);
|
|
153
165
|
const isHttp = url.protocol === "http:" || url.protocol === "https:";
|
|
@@ -155,7 +167,7 @@ async function getRemoteConfig(config) {
|
|
|
155
167
|
if (!isGit) {
|
|
156
168
|
throw new Error(`Unsupported protocol ${url.protocol}`);
|
|
157
169
|
}
|
|
158
|
-
return (0, git_1.getGitConfig)(url, configFile,
|
|
170
|
+
return (0, git_1.getGitConfig)(url, configFile, tmpDir, logConfig);
|
|
159
171
|
}
|
|
160
172
|
/** @internal */
|
|
161
173
|
async function findConfigFile(root) {
|
|
@@ -174,13 +186,13 @@ async function findConfigFile(root) {
|
|
|
174
186
|
}
|
|
175
187
|
function wrapBeforeWrite(config, beforeWrite) {
|
|
176
188
|
return async (content, rawContent, outputFile) => {
|
|
177
|
-
const
|
|
178
|
-
await (0, file_1.createDirIfNotExists)(node_path_1.default.dirname(
|
|
189
|
+
const tmpDir = node_path_1.default.join((0, file_1.getUniqueTmpPath)(), node_path_1.default.basename(outputFile));
|
|
190
|
+
await (0, file_1.createDirIfNotExists)(node_path_1.default.dirname(tmpDir), config);
|
|
179
191
|
const ext = node_path_1.default.extname(outputFile);
|
|
180
|
-
const rawTmpPath =
|
|
192
|
+
const rawTmpPath = tmpDir.replace(ext, ".raw" + ext);
|
|
181
193
|
try {
|
|
182
194
|
(0, logger_1.log)(config, types_1.LogLevel.debug, "Parsing beforeWrite command", beforeWrite);
|
|
183
|
-
let cmd = await prepareBeforeWriteCmd({ beforeWrite,
|
|
195
|
+
let cmd = await prepareBeforeWriteCmd({ beforeWrite, tmpDir, content, rawTmpPath, rawContent });
|
|
184
196
|
const result = await new Promise((resolve, reject) => {
|
|
185
197
|
(0, logger_1.log)(config, types_1.LogLevel.debug, "Running parsed beforeWrite command:", cmd);
|
|
186
198
|
const proc = (0, node_child_process_1.exec)(cmd);
|
|
@@ -204,26 +216,26 @@ function wrapBeforeWrite(config, beforeWrite) {
|
|
|
204
216
|
return undefined;
|
|
205
217
|
}
|
|
206
218
|
finally {
|
|
207
|
-
await promises_1.default.rm(
|
|
219
|
+
await promises_1.default.rm(tmpDir, { force: true });
|
|
208
220
|
await promises_1.default.rm(rawTmpPath, { force: true });
|
|
209
221
|
}
|
|
210
222
|
};
|
|
211
223
|
}
|
|
212
|
-
async function prepareBeforeWriteCmd({ beforeWrite,
|
|
224
|
+
async function prepareBeforeWriteCmd({ beforeWrite, tmpDir, content, rawTmpPath, rawContent, }) {
|
|
213
225
|
let cmd = "";
|
|
214
226
|
const pathReg = /\{\{\s*path\s*\}\}/gi;
|
|
215
227
|
const rawPathReg = /\{\{\s*rawpath\s*\}\}/gi;
|
|
216
228
|
if (pathReg.test(beforeWrite)) {
|
|
217
|
-
await promises_1.default.writeFile(
|
|
218
|
-
cmd = beforeWrite.replaceAll(pathReg,
|
|
229
|
+
await promises_1.default.writeFile(tmpDir, content);
|
|
230
|
+
cmd = beforeWrite.replaceAll(pathReg, tmpDir);
|
|
219
231
|
}
|
|
220
232
|
if (rawPathReg.test(beforeWrite)) {
|
|
221
233
|
await promises_1.default.writeFile(rawTmpPath, rawContent);
|
|
222
234
|
cmd = beforeWrite.replaceAll(rawPathReg, rawTmpPath);
|
|
223
235
|
}
|
|
224
236
|
if (!cmd) {
|
|
225
|
-
await promises_1.default.writeFile(
|
|
226
|
-
cmd = [beforeWrite,
|
|
237
|
+
await promises_1.default.writeFile(tmpDir, content);
|
|
238
|
+
cmd = [beforeWrite, tmpDir].join(" ");
|
|
227
239
|
}
|
|
228
240
|
return cmd;
|
|
229
241
|
}
|
package/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,sDAcC;AAGD,0CAQC;AAOD,sCAyBC;AAGD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/file.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export declare function isDir(path: string): Promise<boolean>;
|
|
|
5
5
|
export declare function removeGlob(template: string): string;
|
|
6
6
|
export declare function makeRelativePath(str: string): string;
|
|
7
7
|
export declare function getBasePath(relPath: string): string;
|
|
8
|
-
export declare function getFileList(
|
|
8
|
+
export declare function getFileList(config: ScaffoldConfig, templates: string[]): Promise<string[]>;
|
|
9
9
|
export interface GlobInfo {
|
|
10
10
|
nonGlobTemplate: string;
|
|
11
11
|
origTemplate: string;
|
package/file.js
CHANGED
|
@@ -78,10 +78,9 @@ function getBasePath(relPath) {
|
|
|
78
78
|
.replace(process.cwd() + node_path_1.default.sep, "")
|
|
79
79
|
.replace(process.cwd(), "");
|
|
80
80
|
}
|
|
81
|
-
async function getFileList(
|
|
82
|
-
|
|
83
|
-
(0,
|
|
84
|
-
return (await (0, glob_1.glob)(template, {
|
|
81
|
+
async function getFileList(config, templates) {
|
|
82
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, `Getting file list for glob list: ${templates}`);
|
|
83
|
+
return (await (0, glob_1.glob)(templates, {
|
|
85
84
|
dot: true,
|
|
86
85
|
nodir: true,
|
|
87
86
|
})).map(node_path_1.default.normalize);
|
|
@@ -104,10 +103,9 @@ async function getTemplateGlobInfo(config, template) {
|
|
|
104
103
|
async function getTemplateFileInfo(config, { templatePath, basePath }) {
|
|
105
104
|
const inputPath = node_path_1.default.resolve(process.cwd(), templatePath);
|
|
106
105
|
const outputPathOpt = (0, config_1.getOptionValueForFile)(config, inputPath, config.output);
|
|
107
|
-
const outputDir = getOutputDir(config, outputPathOpt, basePath);
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
}).toString();
|
|
106
|
+
const outputDir = getOutputDir(config, outputPathOpt, basePath.replace(config.tmpDir, "./"));
|
|
107
|
+
const rawOutputPath = node_path_1.default.join(outputDir, node_path_1.default.basename(inputPath));
|
|
108
|
+
const outputPath = (0, parser_1.handlebarsParse)(config, rawOutputPath, { asPath: true }).toString();
|
|
111
109
|
const exists = await pathExists(outputPath);
|
|
112
110
|
return { inputPath, outputPathOpt, outputDir, outputPath, exists };
|
|
113
111
|
}
|
package/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;;;AAaA,oDA0BC;AAED,gCAUC;AAED,sBAGC;AAED,gCAEC;AAED,4CAEC;AAED,kCAKC;AAED,
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"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"}
|
package/logger.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.logInputFile = logInputFile;
|
|
|
8
8
|
exports.logInitStep = logInitStep;
|
|
9
9
|
const util_1 = __importDefault(require("util"));
|
|
10
10
|
const types_1 = require("./types");
|
|
11
|
-
const
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
12
|
function log(config, level, ...obj) {
|
|
13
13
|
const priority = {
|
|
14
14
|
[types_1.LogLevel.none]: 0,
|
|
@@ -27,14 +27,14 @@ function log(config, level, ...obj) {
|
|
|
27
27
|
[types_1.LogLevel.warning]: "yellow",
|
|
28
28
|
[types_1.LogLevel.error]: "red",
|
|
29
29
|
};
|
|
30
|
-
const
|
|
30
|
+
const colorFn = utils_1.colorize[levelColor[level]];
|
|
31
31
|
const key = level === types_1.LogLevel.error ? "error" : level === types_1.LogLevel.warning ? "warn" : "log";
|
|
32
32
|
const logFn = console[key];
|
|
33
33
|
logFn(...obj.map((i) => i instanceof Error
|
|
34
|
-
?
|
|
34
|
+
? colorFn(i, JSON.stringify(i, undefined, 1), i.stack)
|
|
35
35
|
: typeof i === "object"
|
|
36
36
|
? util_1.default.inspect(i, { depth: null, colors: true })
|
|
37
|
-
:
|
|
37
|
+
: colorFn(i)));
|
|
38
38
|
}
|
|
39
39
|
function logInputFile(config, data) {
|
|
40
40
|
log(config, types_1.LogLevel.debug, data);
|
package/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;AAIA,kBAiCC;AAED,oCAcC;AAED,kCAeC;AAtED,gDAAuB;AACvB,mCAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "simple-scaffold",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"description": "Generate any file structure - from single components to entire app boilerplates, with a single command.",
|
|
5
5
|
"homepage": "https://chenasraf.github.io/simple-scaffold",
|
|
6
6
|
"repository": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"bin": {
|
|
14
14
|
"simple-scaffold": "cmd.js"
|
|
15
15
|
},
|
|
16
|
-
"packageManager": "pnpm@9.0
|
|
16
|
+
"packageManager": "pnpm@9.9.0",
|
|
17
17
|
"keywords": [
|
|
18
18
|
"javascript",
|
|
19
19
|
"cli",
|
|
@@ -26,41 +26,33 @@
|
|
|
26
26
|
"scaffolding"
|
|
27
27
|
],
|
|
28
28
|
"scripts": {
|
|
29
|
-
"clean": "
|
|
29
|
+
"clean": "rimraf dist",
|
|
30
30
|
"build": "pnpm clean && tsc && chmod -R +x ./dist && cp ./package.json ./README.md ./dist/",
|
|
31
31
|
"dev": "tsc --watch",
|
|
32
32
|
"start": "ts-node src/scaffold.ts",
|
|
33
33
|
"test": "jest",
|
|
34
|
+
"coverage": "open coverage/lcov-report/index.html",
|
|
34
35
|
"cmd": "ts-node src/cmd.ts",
|
|
35
36
|
"docs:build": "cd docs && pnpm build",
|
|
36
37
|
"docs:watch": "cd docs && pnpm start",
|
|
37
38
|
"audit-fix": "pnpm audit --fix",
|
|
38
|
-
"
|
|
39
|
+
"ci": "pnpm install --frozen-lockfile"
|
|
39
40
|
},
|
|
40
41
|
"dependencies": {
|
|
41
|
-
"
|
|
42
|
-
"date-fns": "^3.6.0",
|
|
42
|
+
"date-fns": "^4.0.0",
|
|
43
43
|
"glob": "^11.0.0",
|
|
44
44
|
"handlebars": "^4.7.8",
|
|
45
45
|
"massarg": "2.0.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@
|
|
49
|
-
"@semantic-release/exec": "^6.0.3",
|
|
50
|
-
"@semantic-release/git": "^10.0.1",
|
|
51
|
-
"@semantic-release/release-notes-generator": "^14.0.1",
|
|
52
|
-
"@types/jest": "^29.5.12",
|
|
48
|
+
"@types/jest": "^29.5.13",
|
|
53
49
|
"@types/mock-fs": "^4.13.4",
|
|
54
|
-
"@types/node": "^22.5.
|
|
55
|
-
"@types/semantic-release": "^20.0.6",
|
|
56
|
-
"conventional-changelog": "^6.0.0",
|
|
57
|
-
"conventional-changelog-cli": "^5.0.0",
|
|
50
|
+
"@types/node": "^22.5.5",
|
|
58
51
|
"jest": "^29.7.0",
|
|
59
52
|
"mock-fs": "^5.2.0",
|
|
60
|
-
"
|
|
61
|
-
"semantic-release-conventional-commits": "^3.0.0",
|
|
53
|
+
"rimraf": "^6.0.1",
|
|
62
54
|
"ts-jest": "^29.2.5",
|
|
63
55
|
"ts-node": "^10.9.2",
|
|
64
|
-
"typescript": "^5.
|
|
56
|
+
"typescript": "^5.6.2"
|
|
65
57
|
}
|
|
66
58
|
}
|
package/parser.d.ts
CHANGED
|
@@ -6,6 +6,6 @@ export declare function nowHelper(formatString: string, durationDifference: numb
|
|
|
6
6
|
export declare function dateHelper(date: string, formatString: string): string;
|
|
7
7
|
export declare function dateHelper(date: string, formatString: string, durationDifference: number, durationType: keyof Duration): string;
|
|
8
8
|
export declare function registerHelpers(config: ScaffoldConfig): void;
|
|
9
|
-
export declare function handlebarsParse(config: ScaffoldConfig, templateBuffer: Buffer | string, {
|
|
10
|
-
|
|
9
|
+
export declare function handlebarsParse(config: ScaffoldConfig, templateBuffer: Buffer | string, { asPath }?: {
|
|
10
|
+
asPath?: boolean;
|
|
11
11
|
}): Buffer;
|
package/parser.js
CHANGED
|
@@ -77,16 +77,16 @@ function registerHelpers(config) {
|
|
|
77
77
|
handlebars_1.default.registerHelper(helperName, _helpers[helperName]);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
function handlebarsParse(config, templateBuffer, {
|
|
80
|
+
function handlebarsParse(config, templateBuffer, { asPath = false } = {}) {
|
|
81
81
|
const { data } = config;
|
|
82
82
|
try {
|
|
83
83
|
let str = templateBuffer.toString();
|
|
84
|
-
if (
|
|
84
|
+
if (asPath) {
|
|
85
85
|
str = str.replace(/\\/g, "/");
|
|
86
86
|
}
|
|
87
87
|
const parser = handlebars_1.default.compile(str, { noEscape: true });
|
|
88
88
|
let outputContents = parser(data);
|
|
89
|
-
if (
|
|
89
|
+
if (asPath && node_path_1.default.sep !== "/") {
|
|
90
90
|
outputContents = outputContents.replace(/\//g, "\\");
|
|
91
91
|
}
|
|
92
92
|
return Buffer.from(outputContents);
|
package/scaffold.js
CHANGED
|
@@ -56,37 +56,43 @@ async function Scaffold(config) {
|
|
|
56
56
|
try {
|
|
57
57
|
config.data = { name: config.name, ...config.data };
|
|
58
58
|
(0, logger_1.logInitStep)(config);
|
|
59
|
-
|
|
59
|
+
const excludes = config.templates.filter((t) => t.startsWith("!"));
|
|
60
|
+
const includes = config.templates.filter((t) => !t.startsWith("!"));
|
|
61
|
+
const templates = [];
|
|
62
|
+
for (let _template of includes) {
|
|
60
63
|
try {
|
|
61
64
|
const { nonGlobTemplate, origTemplate, isDirOrGlob, isGlob, template } = await (0, file_1.getTemplateGlobInfo)(config, _template);
|
|
62
|
-
|
|
63
|
-
(0, logger_1.log)(config, types_1.LogLevel.debug, "Iterating files", { files, template });
|
|
64
|
-
for (const inputFilePath of files) {
|
|
65
|
-
if (await (0, file_1.isDir)(inputFilePath)) {
|
|
66
|
-
continue;
|
|
67
|
-
}
|
|
68
|
-
const relPath = (0, file_1.makeRelativePath)(node_path_1.default.dirname((0, file_1.removeGlob)(inputFilePath).replace(nonGlobTemplate, "")));
|
|
69
|
-
const basePath = (0, file_1.getBasePath)(relPath);
|
|
70
|
-
(0, logger_1.logInputFile)(config, {
|
|
71
|
-
originalTemplate: origTemplate,
|
|
72
|
-
relativePath: relPath,
|
|
73
|
-
parsedTemplate: template,
|
|
74
|
-
inputFilePath,
|
|
75
|
-
nonGlobTemplate,
|
|
76
|
-
basePath,
|
|
77
|
-
isDirOrGlob,
|
|
78
|
-
isGlob,
|
|
79
|
-
});
|
|
80
|
-
await (0, file_1.handleTemplateFile)(config, {
|
|
81
|
-
templatePath: inputFilePath,
|
|
82
|
-
basePath,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
65
|
+
templates.push({ nonGlobTemplate, origTemplate, isDirOrGlob, isGlob, template });
|
|
85
66
|
}
|
|
86
67
|
catch (e) {
|
|
87
68
|
(0, utils_1.handleErr)(e);
|
|
88
69
|
}
|
|
89
70
|
}
|
|
71
|
+
for (const tpl of templates) {
|
|
72
|
+
const files = await (0, file_1.getFileList)(config, [tpl.template, ...excludes]);
|
|
73
|
+
for (const file of files) {
|
|
74
|
+
if (await (0, file_1.isDir)(file)) {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, "Iterating files", { files, file });
|
|
78
|
+
const relPath = (0, file_1.makeRelativePath)(node_path_1.default.dirname((0, file_1.removeGlob)(file).replace(tpl.nonGlobTemplate, "")));
|
|
79
|
+
const basePath = (0, file_1.getBasePath)(relPath);
|
|
80
|
+
(0, logger_1.logInputFile)(config, {
|
|
81
|
+
originalTemplate: tpl.origTemplate,
|
|
82
|
+
relativePath: relPath,
|
|
83
|
+
parsedTemplate: tpl.template,
|
|
84
|
+
inputFilePath: file,
|
|
85
|
+
nonGlobTemplate: tpl.nonGlobTemplate,
|
|
86
|
+
basePath,
|
|
87
|
+
isDirOrGlob: tpl.isDirOrGlob,
|
|
88
|
+
isGlob: tpl.isGlob,
|
|
89
|
+
});
|
|
90
|
+
await (0, file_1.handleTemplateFile)(config, {
|
|
91
|
+
templatePath: file,
|
|
92
|
+
basePath,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
90
96
|
}
|
|
91
97
|
catch (e) {
|
|
92
98
|
(0, logger_1.log)(config, types_1.LogLevel.error, e);
|
|
@@ -111,6 +117,7 @@ pathOrUrl,
|
|
|
111
117
|
config,
|
|
112
118
|
/** Any overrides to the loaded config */
|
|
113
119
|
overrides) {
|
|
120
|
+
const tmpPath = node_path_1.default.resolve(node_os_1.default.tmpdir(), `scaffold-config-${Date.now()}`);
|
|
114
121
|
const _cmdConfig = {
|
|
115
122
|
dryRun: false,
|
|
116
123
|
output: process.cwd(),
|
|
@@ -121,11 +128,11 @@ overrides) {
|
|
|
121
128
|
quiet: false,
|
|
122
129
|
config: pathOrUrl,
|
|
123
130
|
version: false,
|
|
131
|
+
tmpDir: tmpPath,
|
|
124
132
|
...config,
|
|
125
133
|
};
|
|
126
|
-
const tmpPath = node_path_1.default.resolve(node_os_1.default.tmpdir(), `scaffold-config-${Date.now()}`);
|
|
127
134
|
const _overrides = (0, utils_1.resolve)(overrides, _cmdConfig);
|
|
128
|
-
const _config = await (0, config_1.parseConfigFile)(_cmdConfig
|
|
135
|
+
const _config = await (0, config_1.parseConfigFile)(_cmdConfig);
|
|
129
136
|
return Scaffold({ ..._config, ..._overrides });
|
|
130
137
|
};
|
|
131
138
|
exports.default = Scaffold;
|
package/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/types.d.ts
CHANGED
|
@@ -20,6 +20,11 @@ export interface ScaffoldConfig {
|
|
|
20
20
|
* Template files to use as input. You may provide multiple files, each of which can be a relative or absolute path,
|
|
21
21
|
* or a glob pattern for multiple file matching easily.
|
|
22
22
|
*
|
|
23
|
+
* You may omit files from output by prepending a `!` to their glob pattern.
|
|
24
|
+
*
|
|
25
|
+
* For example, `["components/**", "!components/README.md"]` will include everything in the directory `components`
|
|
26
|
+
* except the `README.md` file inside.
|
|
27
|
+
*
|
|
23
28
|
* @default Current working directory
|
|
24
29
|
*/
|
|
25
30
|
templates: string[];
|
|
@@ -145,6 +150,8 @@ export interface ScaffoldConfig {
|
|
|
145
150
|
* contents-only, after further modifications - or `undefined` to use the original content (i.e. `content.toString()`)
|
|
146
151
|
*/
|
|
147
152
|
beforeWrite?(content: Buffer, rawContent: Buffer, outputPath: string): string | Buffer | undefined | Promise<string | Buffer | undefined>;
|
|
153
|
+
/** @internal */
|
|
154
|
+
tmpDir?: string;
|
|
148
155
|
}
|
|
149
156
|
/**
|
|
150
157
|
* The names of the available helper functions that relate to text capitalization.
|
|
@@ -298,7 +305,9 @@ export type FileResponseHandler<T> = (fullPath: string, basedir: string, basenam
|
|
|
298
305
|
export type FileResponse<T> = T | FileResponseHandler<T>;
|
|
299
306
|
/**
|
|
300
307
|
* The Scaffold config for CLI
|
|
301
|
-
* Contains less and more specific options than {@link ScaffoldConfig}
|
|
308
|
+
* Contains less and more specific options than {@link ScaffoldConfig}.
|
|
309
|
+
*
|
|
310
|
+
* For more information about each option, see {@link ScaffoldConfig}.
|
|
302
311
|
*/
|
|
303
312
|
export type ScaffoldCmdConfig = {
|
|
304
313
|
/** The name of the scaffold template to use. */
|
|
@@ -337,6 +346,8 @@ export type ScaffoldCmdConfig = {
|
|
|
337
346
|
version: boolean;
|
|
338
347
|
/** Run a script before writing the files. This can be a command or a path to a file. The file contents will be passed to the given command. */
|
|
339
348
|
beforeWrite?: string;
|
|
349
|
+
/** @internal */
|
|
350
|
+
tmpDir?: string;
|
|
340
351
|
};
|
|
341
352
|
/**
|
|
342
353
|
* A mapping of scaffold template keys to their configurations.
|
|
@@ -371,9 +382,7 @@ export type LogConfig = Pick<ScaffoldConfig, "logLevel">;
|
|
|
371
382
|
/** @internal */
|
|
372
383
|
export type ConfigLoadConfig = LogConfig & Pick<ScaffoldCmdConfig, "config">;
|
|
373
384
|
/** @internal */
|
|
374
|
-
export type RemoteConfigLoadConfig = LogConfig & Pick<ScaffoldCmdConfig, "config" | "git"
|
|
375
|
-
tmpPath: string;
|
|
376
|
-
};
|
|
385
|
+
export type RemoteConfigLoadConfig = LogConfig & Pick<ScaffoldCmdConfig, "config" | "git" | "tmpDir">;
|
|
377
386
|
/** @internal */
|
|
378
387
|
export type MinimalConfig = Pick<ScaffoldCmdConfig, "name" | "key">;
|
|
379
388
|
export type ListCommandCliOptions = Pick<ScaffoldCmdConfig, "config" | "git" | "logLevel" | "quiet">;
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA2QA;;;;;;;;;;GAUG;AAEU,QAAA,QAAQ,GAAG;IACtB,oBAAoB;IACpB,IAAI,EAAE,MAAM;IACZ,oFAAoF;IACpF,KAAK,EAAE,OAAO;IACd;;;;OAIG;IACH,IAAI,EAAE,MAAM;IACZ,qFAAqF;IACrF,OAAO,EAAE,SAAS;IAClB,+FAA+F;IAC/F,KAAK,EAAE,OAAO;CACN,CAAA"}
|
package/utils.d.ts
CHANGED
|
@@ -2,3 +2,27 @@ import { Resolver } from "./types";
|
|
|
2
2
|
export declare function handleErr(err: NodeJS.ErrnoException | null): void;
|
|
3
3
|
export declare function resolve<T, R = T>(resolver: Resolver<T, R>, arg: T): R;
|
|
4
4
|
export declare function wrapNoopResolver<T, R = T>(value: Resolver<T, R>): Resolver<T, R>;
|
|
5
|
+
declare const colorMap: {
|
|
6
|
+
readonly reset: 0;
|
|
7
|
+
readonly dim: 2;
|
|
8
|
+
readonly bold: 1;
|
|
9
|
+
readonly italic: 3;
|
|
10
|
+
readonly underline: 4;
|
|
11
|
+
readonly red: 31;
|
|
12
|
+
readonly green: 32;
|
|
13
|
+
readonly yellow: 33;
|
|
14
|
+
readonly blue: 34;
|
|
15
|
+
readonly magenta: 35;
|
|
16
|
+
readonly cyan: 36;
|
|
17
|
+
readonly white: 37;
|
|
18
|
+
readonly gray: 90;
|
|
19
|
+
};
|
|
20
|
+
export type TermColor = keyof typeof colorMap;
|
|
21
|
+
declare function _colorize(text: string, color: TermColor): string;
|
|
22
|
+
declare const createColorize: (color: TermColor) => (template: TemplateStringsArray | unknown, ...params: unknown[]) => string;
|
|
23
|
+
type TemplateStringsFn = ReturnType<typeof createColorize> & ((text: string) => string);
|
|
24
|
+
type TemplateStringsFns = {
|
|
25
|
+
[key in TermColor]: TemplateStringsFn;
|
|
26
|
+
};
|
|
27
|
+
export declare const colorize: typeof _colorize & TemplateStringsFns;
|
|
28
|
+
export {};
|
package/utils.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.colorize = void 0;
|
|
3
4
|
exports.handleErr = handleErr;
|
|
4
5
|
exports.resolve = resolve;
|
|
5
6
|
exports.wrapNoopResolver = wrapNoopResolver;
|
|
@@ -16,4 +17,45 @@ function wrapNoopResolver(value) {
|
|
|
16
17
|
}
|
|
17
18
|
return (_) => value;
|
|
18
19
|
}
|
|
20
|
+
const colorMap = {
|
|
21
|
+
reset: 0,
|
|
22
|
+
dim: 2,
|
|
23
|
+
bold: 1,
|
|
24
|
+
italic: 3,
|
|
25
|
+
underline: 4,
|
|
26
|
+
red: 31,
|
|
27
|
+
green: 32,
|
|
28
|
+
yellow: 33,
|
|
29
|
+
blue: 34,
|
|
30
|
+
magenta: 35,
|
|
31
|
+
cyan: 36,
|
|
32
|
+
white: 37,
|
|
33
|
+
gray: 90,
|
|
34
|
+
};
|
|
35
|
+
function _colorize(text, color) {
|
|
36
|
+
const c = colorMap[color];
|
|
37
|
+
let r = 0;
|
|
38
|
+
if (c > 1 && c < 30) {
|
|
39
|
+
r = c + 20;
|
|
40
|
+
}
|
|
41
|
+
else if (c === 1) {
|
|
42
|
+
r = 23;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
r = 0;
|
|
46
|
+
}
|
|
47
|
+
return `\x1b[${c}m${text}\x1b[${r}m`;
|
|
48
|
+
}
|
|
49
|
+
function isTemplateStringArray(template) {
|
|
50
|
+
return Array.isArray(template) && typeof template[0] === "string";
|
|
51
|
+
}
|
|
52
|
+
const createColorize = (color) => (template, ...params) => {
|
|
53
|
+
return isTemplateStringArray(template)
|
|
54
|
+
? _colorize(template.reduce((acc, str, i) => acc + str + (params[i] ?? ""), ""), color)
|
|
55
|
+
: _colorize(String(template), color);
|
|
56
|
+
};
|
|
57
|
+
exports.colorize = Object.assign(_colorize, Object.entries(colorMap).reduce((acc, [key]) => {
|
|
58
|
+
acc[key] = createColorize(key);
|
|
59
|
+
return acc;
|
|
60
|
+
}, {}));
|
|
19
61
|
//# sourceMappingURL=utils.js.map
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEA,8BAEC;AAED,0BAEC;AAED,4CAMC;AAdD,SAAgB,SAAS,CAAC,GAAiC;IACzD,IAAI,GAAG;QAAE,MAAM,GAAG,CAAA;AACpB,CAAC;AAED,SAAgB,OAAO,CAAW,QAAwB,EAAE,GAAM;IAChE,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,QAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,QAAc,CAAA;AAC9F,CAAC;AAED,SAAgB,gBAAgB,CAAW,KAAqB;IAC9D,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAA;AACrB,CAAC;AAED,MAAM,QAAQ,GAAG;IACf,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;CACA,CAAA;AAIV,SAAS,SAAS,CAAC,IAAY,EAAE,KAAgB;IAC/C,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAA;IAC1B,IAAI,CAAC,GAAG,CAAC,CAAA;IAET,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACpB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;IACZ,CAAC;SAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,CAAC,GAAG,EAAE,CAAA;IACR,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,CAAC,CAAA;IACP,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAA;AACtC,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAwC;IACrE,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAA;AACnE,CAAC;AAED,MAAM,cAAc,GAClB,CAAC,KAAgB,EAAE,EAAE,CACnB,CAAC,QAAwC,EAAE,GAAG,MAAiB,EAAU,EAAE;IACzE,OAAO,qBAAqB,CAAC,QAAQ,CAAC;QACpC,CAAC,CAAC,SAAS,CACR,QAAiC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAC7F,KAAK,CACN;QACD,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAA;AACxC,CAAC,CAAA;AAKQ,QAAA,QAAQ,GAA0C,MAAM,CAAC,MAAM,CAC1E,SAAS,EACT,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;IACb,GAAG,CAAC,GAAgB,CAAC,GAAG,cAAc,CAAC,GAAgB,CAAC,CAAA;IACxD,OAAO,GAAG,CAAA;AACZ,CAAC,EACD,EAA0C,CAC3C,CACF,CAAA"}
|