@kya-os/create-mcpi-app 1.2.15 → 1.2.17

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.
@@ -16,6 +16,7 @@ interface CreateProjectOptions {
16
16
  skipAnimation?: boolean;
17
17
  fastAnimation?: boolean;
18
18
  spinner?: any;
19
+ template?: string;
19
20
  }
20
21
  /**
21
22
  * Create a new MCP-I project with identity features
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/helpers/create.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA4CrD,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AASD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAmH3B"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/helpers/create.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA4CrD,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AASD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAiI3B"}
@@ -2,6 +2,7 @@ import path from "path";
2
2
  import fs from "fs-extra";
3
3
  import { fileURLToPath } from "url";
4
4
  import { fetchMCPITemplate } from "./fetch-mcpi-template.js";
5
+ import { fetchCloudflareTemplate } from "./fetch-cloudflare-template.js";
5
6
  import { renameFiles } from "./rename.js";
6
7
  import { install } from "./install.js";
7
8
  import { validateProjectStructure, ensureLockfile, } from "./validate-project-structure.js";
@@ -50,18 +51,27 @@ function createProjectDirectories(projectPath) {
50
51
  * Create a new MCP-I project with identity features
51
52
  */
52
53
  export async function createProject(options) {
53
- const { projectPath, projectName, packageManager, transports, packageVersion, useLocalXmcp, mcpiVersion, deployToVercel, skipInstall, agentName = projectName, agentDescription = "MCP-I server with identity features", agentRepository = "", skipIdentity = false, skipAnimation = false, fastAnimation = false, } = options;
54
+ const { projectPath, projectName, packageManager, transports, packageVersion, useLocalXmcp, mcpiVersion, deployToVercel, skipInstall, agentName = projectName, agentDescription = "MCP-I server with identity features", agentRepository = "", skipIdentity = false, skipAnimation = false, fastAnimation = false, template = "default", } = options;
54
55
  const warnings = [];
55
56
  let resolvedMcpiVersion = mcpiVersion;
56
57
  try {
57
58
  // Ensure the project directory exists
58
59
  fs.ensureDirSync(projectPath);
59
- // Scaffold MCP-I project with standalone @kya-os/mcp-i package
60
- console.log(chalk.blue("\nšŸ“ Scaffolding MCP-I project..."));
61
- await fetchMCPITemplate(projectPath, {
62
- mcpiVersion,
63
- packageManager,
64
- });
60
+ // Scaffold project based on template
61
+ console.log(chalk.blue("\nšŸ“ Scaffolding project..."));
62
+ if (template === "cloudflare") {
63
+ // Cloudflare Worker verifier template
64
+ await fetchCloudflareTemplate(projectPath, {
65
+ packageManager,
66
+ });
67
+ }
68
+ else {
69
+ // Default MCP-I server template
70
+ await fetchMCPITemplate(projectPath, {
71
+ mcpiVersion,
72
+ packageManager,
73
+ });
74
+ }
65
75
  // Capture the resolved version for the result
66
76
  const packageJsonPath = path.join(projectPath, "package.json");
67
77
  if (fs.existsSync(packageJsonPath)) {
@@ -92,25 +102,29 @@ export async function createProject(options) {
92
102
  spaces: 2,
93
103
  });
94
104
  }
95
- // Create necessary project directories
96
- createProjectDirectories(projectPath);
105
+ // Create necessary project directories (skip for cloudflare template)
106
+ if (template !== "cloudflare") {
107
+ createProjectDirectories(projectPath);
108
+ }
97
109
  // Install project dependencies
98
110
  if (!skipInstall) {
99
111
  install(projectPath, packageManager, packageVersion);
100
112
  // Ensure lockfile is properly created
101
113
  ensureLockfile(projectPath, packageManager);
102
114
  }
103
- // Validate project structure meets requirements
104
- const validation = validateProjectStructure(projectPath, !skipIdentity);
105
- if (!validation.valid) {
106
- console.warn(chalk.yellow("āš ļø Project structure validation issues:"));
107
- for (const issue of validation.issues) {
108
- console.warn(chalk.yellow(` - ${issue}`));
109
- warnings.push(...validation.issues);
115
+ // Validate project structure meets requirements (skip for cloudflare)
116
+ if (template !== "cloudflare") {
117
+ const validation = validateProjectStructure(projectPath, !skipIdentity);
118
+ if (!validation.valid) {
119
+ console.warn(chalk.yellow("āš ļø Project structure validation issues:"));
120
+ for (const issue of validation.issues) {
121
+ console.warn(chalk.yellow(` - ${issue}`));
122
+ warnings.push(...validation.issues);
123
+ }
110
124
  }
111
125
  }
112
- // Identity setup is now handled by the CLI after scaffolding
113
- if (!skipIdentity) {
126
+ // Identity setup is now handled by the CLI after scaffolding (not for cloudflare)
127
+ if (!skipIdentity && template !== "cloudflare") {
114
128
  console.log(chalk.blue("\nšŸ” Identity setup will be handled by the CLI"));
115
129
  console.log(chalk.gray(" Run 'mcpi init' after scaffolding to set up identity"));
116
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/helpers/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/helpers/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ interface CloudflareTemplateOptions {
2
+ verifierVersion?: string;
3
+ packageManager?: string;
4
+ }
5
+ /**
6
+ * Scaffold Cloudflare Worker verifier project
7
+ * This creates a standalone Worker verifier with KV nonce caching
8
+ */
9
+ export declare function fetchCloudflareTemplate(projectPath: string, options?: CloudflareTemplateOptions): Promise<void>;
10
+ export {};
11
+ //# sourceMappingURL=fetch-cloudflare-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-cloudflare-template.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-template.ts"],"names":[],"mappings":"AAQA,UAAU,yBAAyB;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,CA2Uf"}
@@ -0,0 +1,332 @@
1
+ import fs from "fs-extra";
2
+ import path from "path";
3
+ import chalk from "chalk";
4
+ import { fileURLToPath } from "url";
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+ /**
8
+ * Scaffold Cloudflare Worker verifier project
9
+ * This creates a standalone Worker verifier with KV nonce caching
10
+ */
11
+ export async function fetchCloudflareTemplate(projectPath, options = {}) {
12
+ const { verifierVersion = "^1.3.0", packageManager = "npm" } = options;
13
+ try {
14
+ console.log(chalk.blue(`šŸ“¦ Setting up Cloudflare Worker verifier with @kya-os/verifier@${verifierVersion}...`));
15
+ // Create package.json for Cloudflare Worker
16
+ const packageJson = {
17
+ name: path.basename(projectPath),
18
+ version: "1.0.0",
19
+ type: "module",
20
+ private: true,
21
+ scripts: {
22
+ dev: "wrangler dev",
23
+ deploy: "wrangler deploy",
24
+ "deploy:production": "wrangler deploy --env production",
25
+ "kv:create": "wrangler kv:namespace create NONCE_CACHE",
26
+ "kv:create:preview": "wrangler kv:namespace create NONCE_CACHE --preview",
27
+ tail: "wrangler tail",
28
+ test: "vitest",
29
+ },
30
+ dependencies: {
31
+ "@kya-os/verifier": verifierVersion,
32
+ },
33
+ devDependencies: {
34
+ "@cloudflare/workers-types": "^4.20240925.0",
35
+ "@cloudflare/vitest-pool-workers": "^0.5.0",
36
+ typescript: "^5.6.2",
37
+ vitest: "^2.1.1",
38
+ wrangler: "^3.78.12",
39
+ },
40
+ };
41
+ // Write package.json
42
+ fs.ensureDirSync(projectPath);
43
+ fs.writeJsonSync(path.join(projectPath, "package.json"), packageJson, { spaces: 2 });
44
+ // Create src directory
45
+ const srcDir = path.join(projectPath, "src");
46
+ fs.ensureDirSync(srcDir);
47
+ // Create Worker implementation
48
+ const workerContent = `import {
49
+ verifyWorker,
50
+ applyVerificationToResponse,
51
+ createConfigFromEnv,
52
+ type WorkerEnv,
53
+ } from "@kya-os/verifier/worker";
54
+
55
+ export default {
56
+ async fetch(request: Request, env: WorkerEnv): Promise<Response> {
57
+ const url = new URL(request.url);
58
+
59
+ // Health check endpoint
60
+ if (url.pathname === "/health") {
61
+ return new Response(
62
+ JSON.stringify({
63
+ status: "healthy",
64
+ timestamp: new Date().toISOString(),
65
+ }),
66
+ {
67
+ headers: { "Content-Type": "application/json" },
68
+ }
69
+ );
70
+ }
71
+
72
+ // Verification endpoint
73
+ if (url.pathname === "/verify") {
74
+ // Create config from environment variables
75
+ const config = createConfigFromEnv(env, {
76
+ allowMockData: false,
77
+ });
78
+
79
+ // Verify the proof
80
+ const result = await verifyWorker(request, config);
81
+
82
+ // If verification failed, return error response
83
+ if (!result.success) {
84
+ return applyVerificationToResponse(result);
85
+ }
86
+
87
+ // Check required scopes (example)
88
+ const requiredScopes = ["cart:add", "checkout"];
89
+ const hasRequiredScope = requiredScopes.some((scope) =>
90
+ result.proof?.scope?.includes(scope)
91
+ );
92
+
93
+ if (!hasRequiredScope) {
94
+ return new Response(
95
+ JSON.stringify({
96
+ verified: false,
97
+ error: "Insufficient permissions",
98
+ requiredScopes,
99
+ }),
100
+ {
101
+ status: 403,
102
+ headers: { "Content-Type": "application/json" },
103
+ }
104
+ );
105
+ }
106
+
107
+ // Success response with agent context
108
+ return new Response(
109
+ JSON.stringify({
110
+ verified: true,
111
+ agentDid: result.proof?.agentDid,
112
+ timestamp: new Date().toISOString(),
113
+ }),
114
+ {
115
+ headers: { "Content-Type": "application/json" },
116
+ }
117
+ );
118
+ }
119
+
120
+ return new Response("Not Found", { status: 404 });
121
+ },
122
+ };
123
+ `;
124
+ fs.writeFileSync(path.join(srcDir, "index.ts"), workerContent);
125
+ // Create wrangler.toml
126
+ const wranglerContent = `#:schema node_modules/wrangler/config-schema.json
127
+ name = "${path.basename(projectPath)}"
128
+ main = "src/index.ts"
129
+ compatibility_date = "2024-09-25"
130
+ node_compat = true
131
+
132
+ # KV Namespace for nonce cache
133
+ # Run: wrangler kv:namespace create NONCE_CACHE
134
+ # Then replace the id below with the output
135
+ [[kv_namespaces]]
136
+ binding = "NONCE_CACHE"
137
+ id = "YOUR_KV_NAMESPACE_ID"
138
+
139
+ # Environment variables (non-sensitive)
140
+ [vars]
141
+ KYA_API_URL = "https://knowthat.ai"
142
+ XMCP_I_TS_SKEW_SEC = "120"
143
+ XMCP_I_SESSION_TTL = "1800"
144
+
145
+ # Production environment
146
+ [env.production]
147
+ name = "${path.basename(projectPath)}-production"
148
+ vars = { KYA_API_URL = "https://knowthat.ai", XMCP_I_TS_SKEW_SEC = "60" }
149
+
150
+ [[env.production.kv_namespaces]]
151
+ binding = "NONCE_CACHE"
152
+ id = "YOUR_PRODUCTION_KV_NAMESPACE_ID"
153
+ `;
154
+ fs.writeFileSync(path.join(projectPath, "wrangler.toml"), wranglerContent);
155
+ // Create tsconfig.json
156
+ const tsconfigContent = {
157
+ compilerOptions: {
158
+ target: "ES2022",
159
+ module: "ES2022",
160
+ lib: ["ES2022"],
161
+ types: ["@cloudflare/workers-types"],
162
+ moduleResolution: "bundler",
163
+ resolveJsonModule: true,
164
+ allowSyntheticDefaultImports: true,
165
+ esModuleInterop: true,
166
+ strict: true,
167
+ skipLibCheck: true,
168
+ forceConsistentCasingInFileNames: true,
169
+ },
170
+ include: ["src/**/*"],
171
+ };
172
+ fs.writeJsonSync(path.join(projectPath, "tsconfig.json"), tsconfigContent, { spaces: 2 });
173
+ // Create .gitignore
174
+ const gitignoreContent = `node_modules/
175
+ dist/
176
+ .wrangler/
177
+ .dev.vars
178
+ .env
179
+ .env.local
180
+ *.log
181
+ `;
182
+ fs.writeFileSync(path.join(projectPath, ".gitignore"), gitignoreContent);
183
+ // Create README.md
184
+ const readmeContent = `# ${path.basename(projectPath)}
185
+
186
+ MCP-I proof verifier deployed on Cloudflare Workers with KV nonce caching.
187
+
188
+ ## Quick Start
189
+
190
+ ### 1. Install Dependencies
191
+
192
+ \`\`\`bash
193
+ ${packageManager} install
194
+ \`\`\`
195
+
196
+ ### 2. Create KV Namespace
197
+
198
+ \`\`\`bash
199
+ ${packageManager === "npm" ? "npm run" : packageManager} kv:create
200
+ \`\`\`
201
+
202
+ Copy the \`id\` from the output and update \`wrangler.toml\`:
203
+
204
+ \`\`\`toml
205
+ [[kv_namespaces]]
206
+ binding = "NONCE_CACHE"
207
+ id = "your-kv-namespace-id-here" # ← Update this
208
+ \`\`\`
209
+
210
+ ### 3. Test Locally
211
+
212
+ \`\`\`bash
213
+ ${packageManager === "npm" ? "npm run" : packageManager} dev
214
+ \`\`\`
215
+
216
+ Visit http://localhost:8787/health to verify it's running.
217
+
218
+ ### 4. Deploy to Cloudflare
219
+
220
+ \`\`\`bash
221
+ # Login to Cloudflare (first time only)
222
+ npx wrangler login
223
+
224
+ # Deploy to development
225
+ ${packageManager === "npm" ? "npm run" : packageManager} deploy
226
+
227
+ # Deploy to production
228
+ ${packageManager === "npm" ? "npm run" : packageManager} deploy:production
229
+ \`\`\`
230
+
231
+ ## API Endpoints
232
+
233
+ ### \`GET /health\`
234
+ Health check endpoint.
235
+
236
+ **Response:**
237
+ \`\`\`json
238
+ {
239
+ "status": "healthy",
240
+ "timestamp": "2024-10-09T12:00:00.000Z"
241
+ }
242
+ \`\`\`
243
+
244
+ ### \`POST /verify\`
245
+ Verify MCP-I cryptographic proof.
246
+
247
+ **Request:**
248
+ \`\`\`json
249
+ {
250
+ "proof": {
251
+ "agentDid": "did:web:example.com",
252
+ "timestamp": 1234567890,
253
+ "nonce": "abc123",
254
+ "signature": "...",
255
+ "publicKey": "..."
256
+ },
257
+ "requiredScopes": ["cart:add"]
258
+ }
259
+ \`\`\`
260
+
261
+ **Response (Success):**
262
+ \`\`\`json
263
+ {
264
+ "verified": true,
265
+ "agentDid": "did:web:example.com",
266
+ "timestamp": "2024-10-09T12:00:00.000Z"
267
+ }
268
+ \`\`\`
269
+
270
+ **Response (Failed):**
271
+ \`\`\`json
272
+ {
273
+ "verified": false,
274
+ "error": "Invalid signature"
275
+ }
276
+ \`\`\`
277
+
278
+ ## Configuration
279
+
280
+ ### Environment Variables (wrangler.toml)
281
+
282
+ - \`KYA_API_URL\` - KYA API endpoint (default: https://knowthat.ai)
283
+ - \`XMCP_I_TS_SKEW_SEC\` - Clock skew tolerance in seconds (default: 120)
284
+ - \`XMCP_I_SESSION_TTL\` - Session timeout in seconds (default: 1800)
285
+
286
+ ### KV Namespace
287
+
288
+ The Worker uses Cloudflare KV for distributed nonce caching to prevent replay attacks.
289
+
290
+ Create separate namespaces for development and production:
291
+
292
+ \`\`\`bash
293
+ # Development
294
+ ${packageManager === "npm" ? "npm run" : packageManager} kv:create
295
+
296
+ # Production (after deploying once)
297
+ wrangler kv:namespace create NONCE_CACHE --env production
298
+ \`\`\`
299
+
300
+ ## Testing
301
+
302
+ Send a test request:
303
+
304
+ \`\`\`bash
305
+ curl -X POST https://your-worker.workers.dev/verify \\
306
+ -H "Content-Type: application/json" \\
307
+ -d '{
308
+ "proof": {
309
+ "agentDid": "did:web:example.com",
310
+ "timestamp": 1234567890,
311
+ "nonce": "test123",
312
+ "signature": "...",
313
+ "publicKey": "..."
314
+ }
315
+ }'
316
+ \`\`\`
317
+
318
+ ## Learn More
319
+
320
+ - [MCP-I Documentation](https://github.com/kya-os/xmcp-i)
321
+ - [Cloudflare Workers Docs](https://developers.cloudflare.com/workers/)
322
+ - [Cloudflare KV Docs](https://developers.cloudflare.com/kv/)
323
+ `;
324
+ fs.writeFileSync(path.join(projectPath, "README.md"), readmeContent);
325
+ console.log(chalk.green("āœ… Cloudflare Worker verifier structure created"));
326
+ }
327
+ catch (error) {
328
+ console.error(chalk.red("Failed to set up Cloudflare Worker verifier:"), error);
329
+ throw error;
330
+ }
331
+ }
332
+ //# sourceMappingURL=fetch-cloudflare-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-cloudflare-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-cloudflare-template.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-mcpi-template.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-mcpi-template.ts"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAiKf"}
1
+ {"version":3,"file":"fetch-mcpi-template.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch-mcpi-template.ts"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAmKf"}
@@ -16,6 +16,7 @@ export async function fetchMCPITemplate(projectPath, options = {}) {
16
16
  dependencies: {
17
17
  "@kya-os/cli": "^1.2.7",
18
18
  "@kya-os/mcp-i": mcpiVersion,
19
+ "zod": "^3.24.4",
19
20
  },
20
21
  scripts: {
21
22
  dev: "mcpi dev",
@@ -29,6 +30,7 @@ export async function fetchMCPITemplate(projectPath, options = {}) {
29
30
  },
30
31
  devDependencies: {
31
32
  "@modelcontextprotocol/inspector": "^0.16.6",
33
+ "swc-loader": "^0.2.6",
32
34
  },
33
35
  };
34
36
  // Write package.json
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-mcpi-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-mcpi-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-mcpi-template.js","sourceRoot":"","sources":["../../src/helpers/fetch-mcpi-template.ts"],"names":[],"mappings":"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"}