@kya-os/create-mcpi-app 1.8.23 → 1.8.24
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test$colon$coverage.log +522 -262
- package/.turbo/turbo-test.log +202 -91
- package/dist/cli-runner.d.ts +2 -0
- package/dist/cli-runner.d.ts.map +1 -0
- package/dist/cli-runner.js +390 -0
- package/dist/cli-runner.js.map +1 -0
- package/dist/helpers/fetch-cloudflare-mcpi-template.js +2 -2
- package/dist/helpers/fetch-mcpi-template.js +1 -1
- package/dist/helpers/fetch-mcpi-template.js.map +1 -1
- package/dist/index.js +5 -432
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
import { Command } from "commander";
|
|
6
|
+
import inquirer from "inquirer";
|
|
7
|
+
import ora from "ora";
|
|
8
|
+
import { checkNodeVersion } from "./utils/check-node.js";
|
|
9
|
+
import { createProject } from "./helpers/create.js";
|
|
10
|
+
import { createKYAOSBanner } from "./effects/index.js";
|
|
11
|
+
import { validateProjectName, validateDirectoryAvailability, } from "./utils/validate-project-name.js";
|
|
12
|
+
import { resetIdentity, regenerateIdentity, } from "./helpers/identity-manager.js";
|
|
13
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
+
const __dirname = path.dirname(__filename);
|
|
15
|
+
const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "../package.json"), "utf8"));
|
|
16
|
+
export async function runCLI(argv = process.argv) {
|
|
17
|
+
checkNodeVersion();
|
|
18
|
+
const program = new Command()
|
|
19
|
+
.name("create-mcpi-app")
|
|
20
|
+
.description("Create a new MCP-I application with identity features built-in")
|
|
21
|
+
.version(packageJson.version, "-v, --version", "Output the current version of create-mcpi-app.")
|
|
22
|
+
.argument("[directory]")
|
|
23
|
+
.usage("[directory] [options]")
|
|
24
|
+
.helpOption("-h, --help", "Display help message.")
|
|
25
|
+
.option("-y, --yes", "Skip confirmation prompt", false)
|
|
26
|
+
.option("--use-npm", "Use npm as package manager (default: use npm)")
|
|
27
|
+
.option("--use-yarn", "Use yarn as package manager")
|
|
28
|
+
.option("--use-pnpm", "Use pnpm as package manager")
|
|
29
|
+
.option("--skip-install", "Skip installing dependencies", false)
|
|
30
|
+
.option("--skip-identity", "Skip identity generation", false)
|
|
31
|
+
.option("--no-identity", "Create plain MCP project without identity features")
|
|
32
|
+
.option("--vercel", "Add Vercel support for deployment", false)
|
|
33
|
+
.option("--http", "Enable HTTP transport", false)
|
|
34
|
+
.option("--stdio", "Enable STDIO transport", false)
|
|
35
|
+
.option("--local", "Use local mcp-i dependency", false)
|
|
36
|
+
.option("--mcpi-version <version>", "Specify MCP-I version (e.g., ^1.2.7)")
|
|
37
|
+
.option("--no-animation", "Skip the black hole animation", false)
|
|
38
|
+
.option("--fast", "Use shorter animation duration", false)
|
|
39
|
+
.option("--platform <name>", "Deployment platform: node (default), cloudflare", "node")
|
|
40
|
+
.option("--mode <name>", "Server mode: mcp-i (default), verifier", "mcp-i")
|
|
41
|
+
.option("--template <name>", "[DEPRECATED] Use --platform and --mode instead")
|
|
42
|
+
.option("--apikey <key>", "AgentShield API key for Cloudflare deployment")
|
|
43
|
+
.option("--project <id>", "AgentShield Project ID for Cloudflare deployment (enables project-scoped tool protection)")
|
|
44
|
+
.action(async (projectDir, options) => {
|
|
45
|
+
console.log(chalk.bold(`\ncreate-mcpi-app@${packageJson.version}`));
|
|
46
|
+
const banner = await createKYAOSBanner();
|
|
47
|
+
console.log(chalk.cyan(banner));
|
|
48
|
+
console.log(chalk.dim("\nEnhanced with identity features by MCP-I\n"));
|
|
49
|
+
if (!projectDir) {
|
|
50
|
+
const answers = await inquirer.prompt([
|
|
51
|
+
{
|
|
52
|
+
type: "input",
|
|
53
|
+
name: "projectDir",
|
|
54
|
+
message: "What is your project named?",
|
|
55
|
+
default: "my-mcpi-app",
|
|
56
|
+
},
|
|
57
|
+
]);
|
|
58
|
+
projectDir = answers.projectDir;
|
|
59
|
+
}
|
|
60
|
+
const resolvedProjectPath = path.resolve(process.cwd(), projectDir);
|
|
61
|
+
const projectName = path.basename(resolvedProjectPath);
|
|
62
|
+
const nameValidation = validateProjectName(projectName);
|
|
63
|
+
if (!nameValidation.valid) {
|
|
64
|
+
console.error(chalk.red("Invalid project name:"));
|
|
65
|
+
for (const issue of nameValidation.issues) {
|
|
66
|
+
console.error(chalk.red(` - ${issue}`));
|
|
67
|
+
}
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
const dirValidation = validateDirectoryAvailability(resolvedProjectPath);
|
|
71
|
+
if (!dirValidation.valid) {
|
|
72
|
+
console.error(chalk.red("Directory validation failed:"));
|
|
73
|
+
for (const issue of dirValidation.issues) {
|
|
74
|
+
console.error(chalk.red(` - ${issue}`));
|
|
75
|
+
}
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
let packageManager = "npm";
|
|
79
|
+
let useLocalXmcp = options.local;
|
|
80
|
+
let mcpiVersion = options.mcpiVersion;
|
|
81
|
+
let deployToVercel = options.vercel;
|
|
82
|
+
let skipInstall = options.skipInstall;
|
|
83
|
+
let skipIdentity = options.skipIdentity || !options.identity;
|
|
84
|
+
let transports = ["http"];
|
|
85
|
+
let agentName = projectName;
|
|
86
|
+
let agentDescription = "MCP-I server with identity features";
|
|
87
|
+
let agentRepository = "";
|
|
88
|
+
let platform = options.platform || "node";
|
|
89
|
+
let mode = options.mode || "mcp-i";
|
|
90
|
+
if (options.template) {
|
|
91
|
+
console.log(chalk.yellow("⚠️ --template is deprecated. Use --platform and --mode instead."));
|
|
92
|
+
if (options.template === "cloudflare") {
|
|
93
|
+
platform = "cloudflare";
|
|
94
|
+
mode = "verifier";
|
|
95
|
+
}
|
|
96
|
+
else if (options.template === "default") {
|
|
97
|
+
platform = "node";
|
|
98
|
+
mode = "mcp-i";
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const validCombinations = [
|
|
102
|
+
{ platform: "node", mode: "mcp-i" },
|
|
103
|
+
{ platform: "cloudflare", mode: "mcp-i" },
|
|
104
|
+
{ platform: "cloudflare", mode: "verifier" },
|
|
105
|
+
];
|
|
106
|
+
const isValid = validCombinations.some((combo) => combo.platform === platform && combo.mode === mode);
|
|
107
|
+
if (!isValid) {
|
|
108
|
+
console.error(chalk.red(`\n❌ Invalid platform/mode combination: ${platform}/${mode}`));
|
|
109
|
+
console.log(chalk.yellow("\nSupported combinations:"));
|
|
110
|
+
console.log(chalk.cyan(" - node + mcp-i (default)"));
|
|
111
|
+
console.log(chalk.cyan(" - cloudflare + mcp-i"));
|
|
112
|
+
console.log(chalk.cyan(" - cloudflare + verifier"));
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
if (options.http || options.stdio) {
|
|
116
|
+
transports = [];
|
|
117
|
+
if (options.http)
|
|
118
|
+
transports.push("http");
|
|
119
|
+
if (options.stdio)
|
|
120
|
+
transports.push("stdio");
|
|
121
|
+
}
|
|
122
|
+
if (!options.yes) {
|
|
123
|
+
if (options.useYarn)
|
|
124
|
+
packageManager = "yarn";
|
|
125
|
+
if (options.usePnpm)
|
|
126
|
+
packageManager = "pnpm";
|
|
127
|
+
if (!options.useYarn && !options.usePnpm && !options.useNpm) {
|
|
128
|
+
const pmAnswers = await inquirer.prompt([
|
|
129
|
+
{
|
|
130
|
+
type: "list",
|
|
131
|
+
name: "packageManager",
|
|
132
|
+
message: "Select a package manager:",
|
|
133
|
+
choices: [
|
|
134
|
+
{ name: "npm", value: "npm" },
|
|
135
|
+
{ name: "yarn", value: "yarn" },
|
|
136
|
+
{ name: "pnpm", value: "pnpm" },
|
|
137
|
+
],
|
|
138
|
+
default: "npm",
|
|
139
|
+
},
|
|
140
|
+
]);
|
|
141
|
+
packageManager = pmAnswers.packageManager;
|
|
142
|
+
}
|
|
143
|
+
if (!options.http && !options.stdio) {
|
|
144
|
+
const transportAnswers = await inquirer.prompt([
|
|
145
|
+
{
|
|
146
|
+
type: "checkbox",
|
|
147
|
+
name: "transports",
|
|
148
|
+
message: "Select the transports you want to use:",
|
|
149
|
+
choices: [
|
|
150
|
+
{
|
|
151
|
+
name: "HTTP (runs on a server)",
|
|
152
|
+
value: "http",
|
|
153
|
+
checked: true,
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: "STDIO (runs on the user's machine)",
|
|
157
|
+
value: "stdio",
|
|
158
|
+
checked: false,
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
validate: (input) => {
|
|
162
|
+
if (input.length === 0) {
|
|
163
|
+
return "You must select at least one transport.";
|
|
164
|
+
}
|
|
165
|
+
return true;
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
]);
|
|
169
|
+
transports = transportAnswers.transports;
|
|
170
|
+
}
|
|
171
|
+
if (!options.vercel &&
|
|
172
|
+
transports.includes("http") &&
|
|
173
|
+
platform === "node") {
|
|
174
|
+
const vercelAnswers = await inquirer.prompt([
|
|
175
|
+
{
|
|
176
|
+
type: "confirm",
|
|
177
|
+
name: "deployToVercel",
|
|
178
|
+
message: "Add Vercel deployment support?",
|
|
179
|
+
default: true,
|
|
180
|
+
},
|
|
181
|
+
]);
|
|
182
|
+
deployToVercel = vercelAnswers.deployToVercel;
|
|
183
|
+
}
|
|
184
|
+
if (!skipIdentity) {
|
|
185
|
+
console.log(chalk.blue("\n🤖 Agent Configuration:"));
|
|
186
|
+
const sanitizedProjectName = projectName
|
|
187
|
+
.toLowerCase()
|
|
188
|
+
.replace(/[^a-z0-9-]/g, "-")
|
|
189
|
+
.replace(/-+/g, "-")
|
|
190
|
+
.replace(/^-|-$/g, "");
|
|
191
|
+
const agentInfo = await inquirer.prompt([
|
|
192
|
+
{
|
|
193
|
+
type: "input",
|
|
194
|
+
name: "name",
|
|
195
|
+
message: "What's your agent name?",
|
|
196
|
+
default: sanitizedProjectName,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: "input",
|
|
200
|
+
name: "description",
|
|
201
|
+
message: "Brief description of your agent:",
|
|
202
|
+
default: "XMCP-I server with identity features",
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
type: "input",
|
|
206
|
+
name: "repository",
|
|
207
|
+
message: "Repository URL (optional):",
|
|
208
|
+
default: "",
|
|
209
|
+
},
|
|
210
|
+
]);
|
|
211
|
+
agentName = agentInfo.name;
|
|
212
|
+
agentDescription = agentInfo.description;
|
|
213
|
+
agentRepository = agentInfo.repository;
|
|
214
|
+
}
|
|
215
|
+
console.log();
|
|
216
|
+
console.log(`Creating a new xmcp app in ${chalk.green(resolvedProjectPath)}.\n`);
|
|
217
|
+
const { confirmed } = await inquirer.prompt([
|
|
218
|
+
{
|
|
219
|
+
type: "confirm",
|
|
220
|
+
name: "confirmed",
|
|
221
|
+
message: "Ok to continue?",
|
|
222
|
+
default: true,
|
|
223
|
+
},
|
|
224
|
+
]);
|
|
225
|
+
if (!confirmed) {
|
|
226
|
+
console.log(chalk.yellow("Aborting installation."));
|
|
227
|
+
process.exit(0);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
if (options.useYarn)
|
|
232
|
+
packageManager = "yarn";
|
|
233
|
+
if (options.usePnpm)
|
|
234
|
+
packageManager = "pnpm";
|
|
235
|
+
}
|
|
236
|
+
const spinner = ora("Creating your xmcp-i app with identity features...").start();
|
|
237
|
+
try {
|
|
238
|
+
spinner.text = "Scaffolding project structure...";
|
|
239
|
+
const result = await createProject({
|
|
240
|
+
projectPath: resolvedProjectPath,
|
|
241
|
+
projectName,
|
|
242
|
+
packageManager,
|
|
243
|
+
transports: transports,
|
|
244
|
+
packageVersion: packageJson.version,
|
|
245
|
+
useLocalXmcp,
|
|
246
|
+
mcpiVersion,
|
|
247
|
+
deployToVercel,
|
|
248
|
+
skipInstall,
|
|
249
|
+
agentName,
|
|
250
|
+
agentDescription,
|
|
251
|
+
agentRepository,
|
|
252
|
+
skipIdentity,
|
|
253
|
+
skipAnimation: options.noAnimation === false ? true : false,
|
|
254
|
+
fastAnimation: options.fast,
|
|
255
|
+
spinner,
|
|
256
|
+
platform,
|
|
257
|
+
mode,
|
|
258
|
+
template: options.template || "default",
|
|
259
|
+
apikey: options.apikey,
|
|
260
|
+
projectId: options.project,
|
|
261
|
+
});
|
|
262
|
+
if (!result.success) {
|
|
263
|
+
spinner.fail(chalk.red("Failed to create the project."));
|
|
264
|
+
if (result.warnings) {
|
|
265
|
+
for (const warning of result.warnings) {
|
|
266
|
+
console.error(chalk.red(` ${warning}`));
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
process.exit(1);
|
|
270
|
+
}
|
|
271
|
+
if (result.warnings && result.warnings.length > 0) {
|
|
272
|
+
spinner.warn(chalk.yellow("Your xmcp-i app is ready with warnings"));
|
|
273
|
+
for (const warning of result.warnings) {
|
|
274
|
+
console.warn(chalk.yellow(` ⚠️ ${warning}`));
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
spinner.succeed(chalk.green("Your xmcp-i app is ready"));
|
|
279
|
+
}
|
|
280
|
+
console.log();
|
|
281
|
+
console.log("Next Steps:");
|
|
282
|
+
if (platform === "cloudflare") {
|
|
283
|
+
console.log("1. Install dependencies:");
|
|
284
|
+
if (resolvedProjectPath !== process.cwd()) {
|
|
285
|
+
console.log(` cd ${chalk.cyan(projectDir)}`);
|
|
286
|
+
}
|
|
287
|
+
if (skipInstall) {
|
|
288
|
+
if (packageManager === "yarn") {
|
|
289
|
+
console.log(` ${chalk.cyan("yarn install")}`);
|
|
290
|
+
}
|
|
291
|
+
else if (packageManager === "pnpm") {
|
|
292
|
+
console.log(` ${chalk.cyan("pnpm install")}`);
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
console.log(` ${chalk.cyan("npm install")}`);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
console.log();
|
|
299
|
+
console.log("2. Create KV namespaces (creates both NONCE and PROOF):");
|
|
300
|
+
console.log(` ${chalk.cyan(`${packageManager === "npm" ? "npm run" : packageManager} kv:create`)}`);
|
|
301
|
+
console.log(chalk.gray(" Copy both namespace IDs from output and update wrangler.toml"));
|
|
302
|
+
console.log();
|
|
303
|
+
console.log("3. Test locally:");
|
|
304
|
+
console.log(` ${chalk.cyan(`${packageManager === "npm" ? "npm run" : packageManager} dev`)}`);
|
|
305
|
+
console.log();
|
|
306
|
+
console.log("4. Deploy when you're ready:");
|
|
307
|
+
console.log(` ${chalk.cyan(`${packageManager === "npm" ? "npm run" : packageManager} deploy`)}`);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
let stepCounter = 1;
|
|
311
|
+
if (skipInstall) {
|
|
312
|
+
console.log(`${stepCounter}. Install dependencies:`);
|
|
313
|
+
if (resolvedProjectPath !== process.cwd()) {
|
|
314
|
+
console.log(` cd ${chalk.cyan(projectDir)}`);
|
|
315
|
+
}
|
|
316
|
+
if (packageManager === "yarn") {
|
|
317
|
+
console.log(` ${chalk.cyan("yarn install")}`);
|
|
318
|
+
}
|
|
319
|
+
else if (packageManager === "pnpm") {
|
|
320
|
+
console.log(` ${chalk.cyan("pnpm install")}`);
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
console.log(` ${chalk.cyan("npm install")}`);
|
|
324
|
+
}
|
|
325
|
+
console.log();
|
|
326
|
+
stepCounter++;
|
|
327
|
+
}
|
|
328
|
+
if (!skipIdentity) {
|
|
329
|
+
console.log(`${stepCounter}. Initialize identity:`);
|
|
330
|
+
if (!skipInstall && resolvedProjectPath !== process.cwd()) {
|
|
331
|
+
console.log(` cd ${chalk.cyan(projectDir)}`);
|
|
332
|
+
}
|
|
333
|
+
console.log(` ${chalk.cyan(`${packageManager === "npm" ? "npm run" : packageManager} init`)}`);
|
|
334
|
+
console.log();
|
|
335
|
+
stepCounter++;
|
|
336
|
+
}
|
|
337
|
+
console.log(`${stepCounter}. Start development server:`);
|
|
338
|
+
if (skipIdentity &&
|
|
339
|
+
!skipInstall &&
|
|
340
|
+
resolvedProjectPath !== process.cwd()) {
|
|
341
|
+
console.log(` cd ${chalk.cyan(projectDir)}`);
|
|
342
|
+
}
|
|
343
|
+
console.log(` ${chalk.cyan(`${packageManager === "npm" ? "npm run" : packageManager} dev`)}`);
|
|
344
|
+
console.log();
|
|
345
|
+
stepCounter++;
|
|
346
|
+
console.log(`${stepCounter}. Deploy when ready:`);
|
|
347
|
+
console.log(` ${chalk.cyan(`${packageManager === "npm" ? "npm run" : packageManager} start`)}`);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
spinner.fail(chalk.red("Failed to create the project."));
|
|
352
|
+
console.error(error);
|
|
353
|
+
process.exit(1);
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
program
|
|
357
|
+
.command("reset-identity")
|
|
358
|
+
.description("Reset the current project's identity (removes identity files)")
|
|
359
|
+
.option("-d, --dir <directory>", "Project directory (defaults to current directory)")
|
|
360
|
+
.action(async (options) => {
|
|
361
|
+
try {
|
|
362
|
+
const projectPath = options.dir
|
|
363
|
+
? path.resolve(process.cwd(), options.dir)
|
|
364
|
+
: process.cwd();
|
|
365
|
+
await resetIdentity(projectPath);
|
|
366
|
+
}
|
|
367
|
+
catch (error) {
|
|
368
|
+
console.error(chalk.red("Failed to reset identity:"), error);
|
|
369
|
+
process.exit(1);
|
|
370
|
+
}
|
|
371
|
+
});
|
|
372
|
+
program
|
|
373
|
+
.command("regenerate-identity")
|
|
374
|
+
.description("Regenerate the current project's identity (creates new DID and keys)")
|
|
375
|
+
.option("-d, --dir <directory>", "Project directory (defaults to current directory)")
|
|
376
|
+
.action(async (options) => {
|
|
377
|
+
try {
|
|
378
|
+
const projectPath = options.dir
|
|
379
|
+
? path.resolve(process.cwd(), options.dir)
|
|
380
|
+
: process.cwd();
|
|
381
|
+
await regenerateIdentity(projectPath);
|
|
382
|
+
}
|
|
383
|
+
catch (error) {
|
|
384
|
+
console.error(chalk.red("Failed to regenerate identity:"), error);
|
|
385
|
+
process.exit(1);
|
|
386
|
+
}
|
|
387
|
+
});
|
|
388
|
+
await program.parseAsync(argv);
|
|
389
|
+
}
|
|
390
|
+
//# sourceMappingURL=cli-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-runner.js","sourceRoot":"","sources":["../src/cli-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,7 +80,7 @@ export async function fetchCloudflareMcpiTemplate(targetDir, options) {
|
|
|
80
80
|
"kv:create-tool-protection": `wrangler kv:namespace create ${projectNameUpper}_${KV_BINDING_NAMES[4]}`,
|
|
81
81
|
},
|
|
82
82
|
dependencies: {
|
|
83
|
-
"@kya-os/mcp-i-cloudflare": "1.6.
|
|
83
|
+
"@kya-os/mcp-i-cloudflare": "1.6.23",
|
|
84
84
|
"@modelcontextprotocol/sdk": "1.19.1",
|
|
85
85
|
agents: "0.2.21",
|
|
86
86
|
hono: "4.6.3",
|
|
@@ -657,7 +657,7 @@ dist
|
|
|
657
657
|
await runCommand(packageManager, ["install"], targetDir);
|
|
658
658
|
// 13a. Verify installed version matches expected version
|
|
659
659
|
console.log(chalk.blue("\n🔍 Verifying package versions..."));
|
|
660
|
-
const expectedVersion = "1.6.
|
|
660
|
+
const expectedVersion = "1.6.23";
|
|
661
661
|
try {
|
|
662
662
|
const installedPackagePath = path.join(targetDir, "node_modules", "@kya-os", "mcp-i-cloudflare", "package.json");
|
|
663
663
|
if (fs.existsSync(installedPackagePath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-mcpi-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-mcpi-template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAQ/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,UAAmC,EAAE;IAErC,MAAM,EAAE,cAAc,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEjE,uEAAuE;IACvE,mEAAmE;IACnE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,kDAAkD,WAAW,KAAK,CACnE,CACF,CAAC;QAEF,+DAA+D;QAC/D,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAChC,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE;gBACZ,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC;gBACtC,eAAe,EAAE,WAAW;gBAC5B,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"fetch-mcpi-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-mcpi-template.ts"],"names":[],"mappings":"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"}
|