flingit 0.0.9 → 0.0.11
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/commands/admin.d.ts.map +1 -1
- package/dist/cli/commands/admin.js +29 -16
- package/dist/cli/commands/admin.js.map +1 -1
- package/dist/cli/commands/cron.d.ts.map +1 -1
- package/dist/cli/commands/cron.js +7 -3
- package/dist/cli/commands/cron.js.map +1 -1
- package/dist/cli/commands/db.d.ts.map +1 -1
- package/dist/cli/commands/db.js +5 -2
- package/dist/cli/commands/db.js.map +1 -1
- package/dist/cli/commands/feedback.d.ts.map +1 -1
- package/dist/cli/commands/feedback.js +6 -1
- package/dist/cli/commands/feedback.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +5 -20
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/launch.d.ts.map +1 -1
- package/dist/cli/commands/launch.js +5 -59
- package/dist/cli/commands/launch.js.map +1 -1
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +7 -2
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/logs.d.ts.map +1 -1
- package/dist/cli/commands/logs.js +3 -1
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/onboard.js +1 -1
- package/dist/cli/commands/plugin.d.ts +8 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -0
- package/dist/cli/commands/plugin.js +407 -0
- package/dist/cli/commands/plugin.js.map +1 -0
- package/dist/cli/commands/project.d.ts.map +1 -1
- package/dist/cli/commands/project.js +3 -1
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/push.d.ts.map +1 -1
- package/dist/cli/commands/push.js +128 -12
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/commands/register.d.ts +25 -0
- package/dist/cli/commands/register.d.ts.map +1 -1
- package/dist/cli/commands/register.js +30 -13
- package/dist/cli/commands/register.js.map +1 -1
- package/dist/cli/commands/secret.d.ts +9 -0
- package/dist/cli/commands/secret.d.ts.map +1 -1
- package/dist/cli/commands/secret.js +40 -50
- package/dist/cli/commands/secret.js.map +1 -1
- package/dist/cli/commands/storage.d.ts +10 -0
- package/dist/cli/commands/storage.d.ts.map +1 -0
- package/dist/cli/commands/storage.js +459 -0
- package/dist/cli/commands/storage.js.map +1 -0
- package/dist/cli/commands/tun.d.ts.map +1 -1
- package/dist/cli/commands/tun.js +3 -2
- package/dist/cli/commands/tun.js.map +1 -1
- package/dist/cli/deploy/bundler.d.ts +15 -0
- package/dist/cli/deploy/bundler.d.ts.map +1 -1
- package/dist/cli/deploy/bundler.js +86 -2
- package/dist/cli/deploy/bundler.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/config.d.ts +12 -0
- package/dist/cli/utils/config.d.ts.map +1 -1
- package/dist/cli/utils/config.js +23 -3
- package/dist/cli/utils/config.js.map +1 -1
- package/dist/cli/utils/environment.d.ts +12 -0
- package/dist/cli/utils/environment.d.ts.map +1 -1
- package/dist/cli/utils/environment.js +40 -6
- package/dist/cli/utils/environment.js.map +1 -1
- package/dist/cli/utils/launch-io-impl.d.ts +13 -0
- package/dist/cli/utils/launch-io-impl.d.ts.map +1 -0
- package/dist/cli/utils/launch-io-impl.js +51 -0
- package/dist/cli/utils/launch-io-impl.js.map +1 -0
- package/dist/cli/utils/launch-io.d.ts +42 -0
- package/dist/cli/utils/launch-io.d.ts.map +1 -0
- package/dist/cli/utils/launch-io.js +8 -0
- package/dist/cli/utils/launch-io.js.map +1 -0
- package/dist/cli/utils/project-name.d.ts +17 -0
- package/dist/cli/utils/project-name.d.ts.map +1 -0
- package/dist/cli/utils/project-name.js +33 -0
- package/dist/cli/utils/project-name.js.map +1 -0
- package/dist/cli/utils/prompt-new-project.d.ts +12 -0
- package/dist/cli/utils/prompt-new-project.d.ts.map +1 -0
- package/dist/cli/utils/prompt-new-project.js +66 -0
- package/dist/cli/utils/prompt-new-project.js.map +1 -0
- package/dist/cli/utils/version-check.d.ts +30 -0
- package/dist/cli/utils/version-check.d.ts.map +1 -0
- package/dist/cli/utils/version-check.js +43 -0
- package/dist/cli/utils/version-check.js.map +1 -0
- package/dist/client/assets/index-BqVrS7t9.js +40 -0
- package/dist/client/assets/index-DSLUsCtO.css +1 -0
- package/dist/client/index.html +14 -0
- package/dist/client/vite.svg +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/db.d.ts +5 -0
- package/dist/runtime/db.d.ts.map +1 -1
- package/dist/runtime/db.js +6 -1
- package/dist/runtime/db.js.map +1 -1
- package/dist/runtime/discord.d.ts +171 -0
- package/dist/runtime/discord.d.ts.map +1 -0
- package/dist/runtime/discord.js +192 -0
- package/dist/runtime/discord.js.map +1 -0
- package/dist/runtime/secrets.d.ts +28 -0
- package/dist/runtime/secrets.d.ts.map +1 -1
- package/dist/runtime/secrets.js +77 -20
- package/dist/runtime/secrets.js.map +1 -1
- package/dist/runtime/storage.d.ts +29 -0
- package/dist/runtime/storage.d.ts.map +1 -0
- package/dist/runtime/storage.js +456 -0
- package/dist/runtime/storage.js.map +1 -0
- package/dist/shared/constants.d.ts +12 -0
- package/dist/shared/constants.d.ts.map +1 -0
- package/dist/shared/constants.js +12 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/discord-types.d.ts +130 -0
- package/dist/shared/discord-types.d.ts.map +1 -0
- package/dist/shared/discord-types.js +8 -0
- package/dist/shared/discord-types.js.map +1 -0
- package/dist/shared/random-code.d.ts +6 -0
- package/dist/shared/random-code.d.ts.map +1 -0
- package/dist/shared/random-code.js +23 -0
- package/dist/shared/random-code.js.map +1 -0
- package/dist/types/storage.d.ts +154 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js +8 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/worker-runtime/discord.d.ts +61 -0
- package/dist/worker-runtime/discord.d.ts.map +1 -0
- package/dist/worker-runtime/discord.js +181 -0
- package/dist/worker-runtime/discord.js.map +1 -0
- package/dist/worker-runtime/index.d.ts +21 -1
- package/dist/worker-runtime/index.d.ts.map +1 -1
- package/dist/worker-runtime/index.js +102 -0
- package/dist/worker-runtime/index.js.map +1 -1
- package/package.json +9 -2
- package/templates/default/CLAUDE.md +65 -11
- package/templates/default/skills/discord/SKILL.md +328 -0
- package/templates/default/skills/fling/API.md +208 -0
- package/templates/default/skills/fling/SKILL.md +51 -8
- package/dist/cli/deploy/worker-entry.d.ts +0 -14
- package/dist/cli/deploy/worker-entry.d.ts.map +0 -1
- package/dist/cli/deploy/worker-entry.js +0 -60
- package/dist/cli/deploy/worker-entry.js.map +0 -1
- package/dist/cli/deploy/wrangler-config.d.ts +0 -20
- package/dist/cli/deploy/wrangler-config.d.ts.map +0 -1
- package/dist/cli/deploy/wrangler-config.js +0 -54
- package/dist/cli/deploy/wrangler-config.js.map +0 -1
- package/dist/cli/loaders/register-wasm.d.ts +0 -12
- package/dist/cli/loaders/register-wasm.d.ts.map +0 -1
- package/dist/cli/loaders/register-wasm.js +0 -19
- package/dist/cli/loaders/register-wasm.js.map +0 -1
- package/dist/cli/loaders/wasm-hooks.d.ts +0 -61
- package/dist/cli/loaders/wasm-hooks.d.ts.map +0 -1
- package/dist/cli/loaders/wasm-hooks.js +0 -63
- package/dist/cli/loaders/wasm-hooks.js.map +0 -1
|
@@ -144,6 +144,13 @@ function getWorkerRuntimePath() {
|
|
|
144
144
|
// From dist/cli/deploy/ -> dist/worker-runtime/index.js
|
|
145
145
|
return join(__dirname, "..", "..", "worker-runtime", "index.js");
|
|
146
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Get the path to the worker runtime Discord module.
|
|
149
|
+
*/
|
|
150
|
+
function getWorkerRuntimeDiscordPath() {
|
|
151
|
+
// From dist/cli/deploy/ -> dist/worker-runtime/discord.js
|
|
152
|
+
return join(__dirname, "..", "..", "worker-runtime", "discord.js");
|
|
153
|
+
}
|
|
147
154
|
/**
|
|
148
155
|
* Bundle user's app.ts for platform deployment.
|
|
149
156
|
*
|
|
@@ -163,6 +170,7 @@ function getWorkerRuntimePath() {
|
|
|
163
170
|
export async function bundleForPlatform(projectDir, verbose = false) {
|
|
164
171
|
const appPath = join(projectDir, "src", "worker", "index.ts");
|
|
165
172
|
const workerRuntimePath = getWorkerRuntimePath();
|
|
173
|
+
const workerRuntimeDiscordPath = getWorkerRuntimeDiscordPath();
|
|
166
174
|
if (!existsSync(appPath)) {
|
|
167
175
|
throw new Error("Worker entry point not found: src/worker/index.ts\n\n" +
|
|
168
176
|
"This file is your backend API entry point.\n" +
|
|
@@ -175,7 +183,7 @@ export async function bundleForPlatform(projectDir, verbose = false) {
|
|
|
175
183
|
}
|
|
176
184
|
// Create the worker entry code that wraps the user's app
|
|
177
185
|
const entryCode = `
|
|
178
|
-
import { __initEnv, __getApp, __runMigrations, __getCronHandlers } from "${workerRuntimePath}";
|
|
186
|
+
import { __initEnv, __getApp, __runMigrations, __getCronHandlers, __getPendingInteractionReply } from "${workerRuntimePath}";
|
|
179
187
|
|
|
180
188
|
let initialized = false;
|
|
181
189
|
let initError = null;
|
|
@@ -265,6 +273,25 @@ export default {
|
|
|
265
273
|
return handleCronRequest(request, env);
|
|
266
274
|
}
|
|
267
275
|
|
|
276
|
+
// Handle Discord interactions (forwarded from platform)
|
|
277
|
+
if (url.pathname === "/discord" && request.method === "POST") {
|
|
278
|
+
await ensureInit(env);
|
|
279
|
+
const response = await __getApp().fetch(request, env, ctx);
|
|
280
|
+
|
|
281
|
+
// Check if the handler stored a pending interaction reply.
|
|
282
|
+
// Return it in the response body so the Discord worker can
|
|
283
|
+
// send it to Discord (dispatch namespace workers can't fetch
|
|
284
|
+
// external URLs directly).
|
|
285
|
+
const pendingReply = __getPendingInteractionReply();
|
|
286
|
+
if (pendingReply) {
|
|
287
|
+
return new Response(JSON.stringify({ _discordReply: pendingReply }), {
|
|
288
|
+
headers: { "Content-Type": "application/json" },
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
return response;
|
|
293
|
+
}
|
|
294
|
+
|
|
268
295
|
await ensureInit(env);
|
|
269
296
|
return __getApp().fetch(request, env, ctx);
|
|
270
297
|
}
|
|
@@ -291,6 +318,9 @@ export default {
|
|
|
291
318
|
write: false,
|
|
292
319
|
external: [], // Bundle everything (except WASM which is marked external by plugin)
|
|
293
320
|
alias: {
|
|
321
|
+
// Redirect 'flingit/plugin/discord' to worker runtime discord module
|
|
322
|
+
// (longest-match wins in esbuild >=0.17.11)
|
|
323
|
+
"flingit/plugin/discord": workerRuntimeDiscordPath,
|
|
294
324
|
// Redirect 'flingit' imports to worker runtime
|
|
295
325
|
flingit: workerRuntimePath,
|
|
296
326
|
},
|
|
@@ -318,12 +348,17 @@ export default {
|
|
|
318
348
|
if (verbose && Object.keys(cronSchedules).length > 0) {
|
|
319
349
|
console.log("[verbose] Found cron schedules:", cronSchedules);
|
|
320
350
|
}
|
|
351
|
+
// Extract Discord commands from bundled code
|
|
352
|
+
const discordCommands = extractDiscordCommands(code);
|
|
353
|
+
if (verbose && discordCommands.length > 0) {
|
|
354
|
+
console.log("[verbose] Found Discord commands:", discordCommands);
|
|
355
|
+
}
|
|
321
356
|
// Get tracked WASM modules
|
|
322
357
|
const wasmModules = getWasmModules();
|
|
323
358
|
if (verbose && wasmModules.length > 0) {
|
|
324
359
|
console.log("[verbose] Found WASM modules:", wasmModules.map((m) => m.importPath));
|
|
325
360
|
}
|
|
326
|
-
return { code, cronSchedules, wasmModules };
|
|
361
|
+
return { code, cronSchedules, discordCommands, wasmModules };
|
|
327
362
|
}
|
|
328
363
|
/**
|
|
329
364
|
* Extract cron schedules from bundled JavaScript code.
|
|
@@ -351,4 +386,53 @@ export function extractCronSchedules(code) {
|
|
|
351
386
|
}
|
|
352
387
|
return schedules;
|
|
353
388
|
}
|
|
389
|
+
/**
|
|
390
|
+
* Extract Discord slash commands from bundled JavaScript code.
|
|
391
|
+
* Looks for defineCommands([...]) calls and extracts command definitions.
|
|
392
|
+
*
|
|
393
|
+
* This uses a simple approach: find the defineCommands call and extract
|
|
394
|
+
* command objects with name and description properties.
|
|
395
|
+
*
|
|
396
|
+
* @param code - The bundled JavaScript code
|
|
397
|
+
* @returns Array of Discord slash command definitions
|
|
398
|
+
*/
|
|
399
|
+
export function extractDiscordCommands(code) {
|
|
400
|
+
const commands = [];
|
|
401
|
+
// Look for defineCommands call with array argument
|
|
402
|
+
// This regex finds the start of the defineCommands call
|
|
403
|
+
const defineCommandsStart = /\bdefineCommands\s*\(\s*\[/g;
|
|
404
|
+
let startMatch;
|
|
405
|
+
while ((startMatch = defineCommandsStart.exec(code)) !== null) {
|
|
406
|
+
const startIndex = startMatch.index + startMatch[0].length;
|
|
407
|
+
// Find the matching closing bracket
|
|
408
|
+
let depth = 1;
|
|
409
|
+
let endIndex = startIndex;
|
|
410
|
+
for (let i = startIndex; i < code.length && depth > 0; i++) {
|
|
411
|
+
if (code[i] === "[" || code[i] === "{") {
|
|
412
|
+
depth++;
|
|
413
|
+
}
|
|
414
|
+
else if (code[i] === "]" || code[i] === "}") {
|
|
415
|
+
depth--;
|
|
416
|
+
}
|
|
417
|
+
endIndex = i;
|
|
418
|
+
}
|
|
419
|
+
// Extract the array content
|
|
420
|
+
const arrayContent = "[" + code.slice(startIndex, endIndex);
|
|
421
|
+
// Try to parse individual command objects from the array
|
|
422
|
+
// Look for { name: "...", description: "..." } patterns
|
|
423
|
+
const commandRegex = /\{\s*name\s*:\s*["'`]([^"'`]+)["'`]\s*,\s*description\s*:\s*["'`]([^"'`]+)["'`]/g;
|
|
424
|
+
let cmdMatch;
|
|
425
|
+
while ((cmdMatch = commandRegex.exec(arrayContent)) !== null) {
|
|
426
|
+
const name = cmdMatch[1];
|
|
427
|
+
const description = cmdMatch[2];
|
|
428
|
+
if (name && description) {
|
|
429
|
+
// Check if this command already exists (avoid duplicates)
|
|
430
|
+
if (!commands.some((c) => c.name === name)) {
|
|
431
|
+
commands.push({ name, description });
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
return commands;
|
|
437
|
+
}
|
|
354
438
|
//# sourceMappingURL=bundler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/cli/deploy/bundler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAe,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/cli/deploy/bundler.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -43,6 +43,8 @@ import { projectCommand } from "./commands/project.js";
|
|
|
43
43
|
import { adminCommand } from "./commands/admin.js";
|
|
44
44
|
import { cronCommand } from "./commands/cron.js";
|
|
45
45
|
import { tunCommand } from "./commands/tun.js";
|
|
46
|
+
import { storageCommand } from "./commands/storage.js";
|
|
47
|
+
import { pluginCommand } from "./commands/plugin.js";
|
|
46
48
|
import { launch } from "./commands/launch.js";
|
|
47
49
|
const program = new Command();
|
|
48
50
|
program
|
|
@@ -83,6 +85,8 @@ program.addCommand(feedbackCommand);
|
|
|
83
85
|
program.addCommand(projectCommand);
|
|
84
86
|
program.addCommand(cronCommand);
|
|
85
87
|
program.addCommand(tunCommand);
|
|
88
|
+
program.addCommand(storageCommand);
|
|
89
|
+
program.addCommand(pluginCommand);
|
|
86
90
|
program.addCommand(adminCommand);
|
|
87
91
|
// If no command specified, run the default launch action
|
|
88
92
|
if (process.argv.length === 2) {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,9 +31,21 @@ export declare function getApiUrl(): string;
|
|
|
31
31
|
* Set the API URL (for development/testing).
|
|
32
32
|
*/
|
|
33
33
|
export declare function setApiUrl(url: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Type for platform fetch function.
|
|
36
|
+
*/
|
|
37
|
+
export type PlatformFetchFn = (path: string, options?: RequestInit) => Promise<Response>;
|
|
34
38
|
/**
|
|
35
39
|
* Make an authenticated request to the platform API.
|
|
36
40
|
* Content-Type is NOT set automatically - caller must set it if needed.
|
|
37
41
|
*/
|
|
38
42
|
export declare function platformFetch(path: string, options?: RequestInit): Promise<Response>;
|
|
43
|
+
/**
|
|
44
|
+
* Set the platform fetch implementation. Used for testing.
|
|
45
|
+
*/
|
|
46
|
+
export declare function setPlatformFetch(fn: PlatformFetchFn): void;
|
|
47
|
+
/**
|
|
48
|
+
* Reset to the default platform fetch implementation.
|
|
49
|
+
*/
|
|
50
|
+
export declare function resetPlatformFetch(): void;
|
|
39
51
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiCH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAKxC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG5C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CASlC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG3C;AAED;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiCH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAKxC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG5C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CASlC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG3C;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AA2BzF;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC,CAEnB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
|
package/dist/cli/utils/config.js
CHANGED
|
@@ -86,10 +86,9 @@ export function setApiUrl(url) {
|
|
|
86
86
|
writeFileSync(API_URL_FILE, url);
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
|
-
*
|
|
90
|
-
* Content-Type is NOT set automatically - caller must set it if needed.
|
|
89
|
+
* The actual implementation of platformFetch.
|
|
91
90
|
*/
|
|
92
|
-
|
|
91
|
+
async function defaultPlatformFetch(path, options = {}) {
|
|
93
92
|
const token = getToken();
|
|
94
93
|
if (!token) {
|
|
95
94
|
throw new Error("Not logged in. Run 'fling login' first.");
|
|
@@ -102,4 +101,25 @@ export async function platformFetch(path, options = {}) {
|
|
|
102
101
|
headers,
|
|
103
102
|
});
|
|
104
103
|
}
|
|
104
|
+
// Injectable platform fetch - can be replaced for testing
|
|
105
|
+
let _platformFetchImpl = defaultPlatformFetch;
|
|
106
|
+
/**
|
|
107
|
+
* Make an authenticated request to the platform API.
|
|
108
|
+
* Content-Type is NOT set automatically - caller must set it if needed.
|
|
109
|
+
*/
|
|
110
|
+
export function platformFetch(path, options = {}) {
|
|
111
|
+
return _platformFetchImpl(path, options);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Set the platform fetch implementation. Used for testing.
|
|
115
|
+
*/
|
|
116
|
+
export function setPlatformFetch(fn) {
|
|
117
|
+
_platformFetchImpl = fn;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Reset to the default platform fetch implementation.
|
|
121
|
+
*/
|
|
122
|
+
export function resetPlatformFetch() {
|
|
123
|
+
_platformFetchImpl = defaultPlatformFetch;
|
|
124
|
+
}
|
|
105
125
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;GAGG;AACH,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC/C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;AAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAEjD,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD;;GAEG;AACH,SAAS,eAAe;IACtB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,eAAe,EAAE,CAAC;IAClB,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,EAAE,KAAK,IAAI,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,eAAe,EAAE,CAAC;IAClB,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,4 +14,16 @@ export declare function getTargetEnv(command: Command): TargetEnv;
|
|
|
14
14
|
* Exits with helpful error message if not logged in.
|
|
15
15
|
*/
|
|
16
16
|
export declare function requireProdAuth(env: TargetEnv): void;
|
|
17
|
+
/**
|
|
18
|
+
* Set the getTargetEnv implementation. Used for testing.
|
|
19
|
+
*/
|
|
20
|
+
export declare function setGetTargetEnv(fn: (command: Command) => TargetEnv): void;
|
|
21
|
+
/**
|
|
22
|
+
* Set the requireProdAuth implementation. Used for testing.
|
|
23
|
+
*/
|
|
24
|
+
export declare function setRequireProdAuth(fn: (env: TargetEnv) => void): void;
|
|
25
|
+
/**
|
|
26
|
+
* Reset to default implementations.
|
|
27
|
+
*/
|
|
28
|
+
export declare function resetEnvironmentUtils(): void;
|
|
17
29
|
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AA2BzC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAExD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,GAAG,IAAI,CAEzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI,CAErE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C"}
|
|
@@ -4,18 +4,16 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { isLoggedIn } from "./config.js";
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
* Handles type casting internally so callers don't need to.
|
|
7
|
+
* Default implementation of getTargetEnv.
|
|
9
8
|
*/
|
|
10
|
-
|
|
9
|
+
function defaultGetTargetEnv(command) {
|
|
11
10
|
const opts = command.optsWithGlobals();
|
|
12
11
|
return opts["prod"] ? "prod" : "local";
|
|
13
12
|
}
|
|
14
13
|
/**
|
|
15
|
-
*
|
|
16
|
-
* Exits with helpful error message if not logged in.
|
|
14
|
+
* Default implementation of requireProdAuth.
|
|
17
15
|
*/
|
|
18
|
-
|
|
16
|
+
function defaultRequireProdAuth(env) {
|
|
19
17
|
if (env === "prod" && !isLoggedIn()) {
|
|
20
18
|
console.error("Error: Not logged in - cannot access production environment.\n");
|
|
21
19
|
console.error("To connect to Fling platform, run:");
|
|
@@ -24,4 +22,40 @@ export function requireProdAuth(env) {
|
|
|
24
22
|
process.exit(1);
|
|
25
23
|
}
|
|
26
24
|
}
|
|
25
|
+
// Injectable implementations - can be replaced for testing
|
|
26
|
+
let _getTargetEnvImpl = defaultGetTargetEnv;
|
|
27
|
+
let _requireProdAuthImpl = defaultRequireProdAuth;
|
|
28
|
+
/**
|
|
29
|
+
* Get target environment from a Command's global options.
|
|
30
|
+
* Handles type casting internally so callers don't need to.
|
|
31
|
+
*/
|
|
32
|
+
export function getTargetEnv(command) {
|
|
33
|
+
return _getTargetEnvImpl(command);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Require login when targeting prod environment.
|
|
37
|
+
* Exits with helpful error message if not logged in.
|
|
38
|
+
*/
|
|
39
|
+
export function requireProdAuth(env) {
|
|
40
|
+
_requireProdAuthImpl(env);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Set the getTargetEnv implementation. Used for testing.
|
|
44
|
+
*/
|
|
45
|
+
export function setGetTargetEnv(fn) {
|
|
46
|
+
_getTargetEnvImpl = fn;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Set the requireProdAuth implementation. Used for testing.
|
|
50
|
+
*/
|
|
51
|
+
export function setRequireProdAuth(fn) {
|
|
52
|
+
_requireProdAuthImpl = fn;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Reset to default implementations.
|
|
56
|
+
*/
|
|
57
|
+
export function resetEnvironmentUtils() {
|
|
58
|
+
_getTargetEnvImpl = defaultGetTargetEnv;
|
|
59
|
+
_requireProdAuthImpl = defaultRequireProdAuth;
|
|
60
|
+
}
|
|
27
61
|
//# sourceMappingURL=environment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/cli/utils/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/cli/utils/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IACvC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,GAAc;IAC5C,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAChF,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,IAAI,iBAAiB,GAAoC,mBAAmB,CAAC;AAC7E,IAAI,oBAAoB,GAA6B,sBAAsB,CAAC;AAE5E;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAc;IAC5C,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAmC;IACjE,iBAAiB,GAAG,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAA4B;IAC7D,oBAAoB,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,iBAAiB,GAAG,mBAAmB,CAAC;IACxC,oBAAoB,GAAG,sBAAsB,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default implementation of LaunchIO using real dependencies.
|
|
3
|
+
*/
|
|
4
|
+
import type { LaunchIO } from "./launch-io.js";
|
|
5
|
+
/**
|
|
6
|
+
* Create the default LaunchIO implementation using real dependencies.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createDefaultLaunchIO(): LaunchIO;
|
|
9
|
+
/**
|
|
10
|
+
* Default LaunchIO instance.
|
|
11
|
+
*/
|
|
12
|
+
export declare const defaultLaunchIO: LaunchIO;
|
|
13
|
+
//# sourceMappingURL=launch-io-impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch-io-impl.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/launch-io-impl.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,CAiDhD;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,UAA0B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default implementation of LaunchIO using real dependencies.
|
|
3
|
+
*/
|
|
4
|
+
import { existsSync, readdirSync } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { homedir } from "node:os";
|
|
7
|
+
import * as p from "@clack/prompts";
|
|
8
|
+
/**
|
|
9
|
+
* Create the default LaunchIO implementation using real dependencies.
|
|
10
|
+
*/
|
|
11
|
+
export function createDefaultLaunchIO() {
|
|
12
|
+
const flingHome = join(homedir(), "fling");
|
|
13
|
+
const cwd = process.cwd();
|
|
14
|
+
return {
|
|
15
|
+
user: {
|
|
16
|
+
async select(opts) {
|
|
17
|
+
return p.select(opts);
|
|
18
|
+
},
|
|
19
|
+
async text(opts) {
|
|
20
|
+
return p.text(opts);
|
|
21
|
+
},
|
|
22
|
+
isCancel: p.isCancel,
|
|
23
|
+
},
|
|
24
|
+
file: {
|
|
25
|
+
exists(path) {
|
|
26
|
+
return existsSync(path);
|
|
27
|
+
},
|
|
28
|
+
isProjectRoot(dir) {
|
|
29
|
+
return existsSync(join(dir, ".claude", "skills", "fling"));
|
|
30
|
+
},
|
|
31
|
+
isDirEmpty(dir) {
|
|
32
|
+
try {
|
|
33
|
+
return readdirSync(dir).length === 0;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
paths: {
|
|
41
|
+
flingHome,
|
|
42
|
+
cwd,
|
|
43
|
+
homedir: homedir(),
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Default LaunchIO instance.
|
|
49
|
+
*/
|
|
50
|
+
export const defaultLaunchIO = createDefaultLaunchIO();
|
|
51
|
+
//# sourceMappingURL=launch-io-impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch-io-impl.js","sourceRoot":"","sources":["../../../src/cli/utils/launch-io-impl.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAGpC;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,CAAC,MAAM,CAAmB,IAG9B;gBACC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAsC,CAErD,CAAC;YACJ,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,IAGV;gBACC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YAED,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB;QAED,IAAI,EAAE;YACJ,MAAM,CAAC,IAAY;gBACjB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAED,aAAa,CAAC,GAAW;gBACvB,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,CAAC;YAED,UAAU,CAAC,GAAW;gBACpB,IAAI,CAAC;oBACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;gBACvC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;SACF;QAED,KAAK,EAAE;YACL,SAAS;YACT,GAAG;YACH,OAAO,EAAE,OAAO,EAAE;SACnB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* I/O abstraction interfaces for launch flow.
|
|
3
|
+
*
|
|
4
|
+
* These interfaces allow the launch logic to be tested without
|
|
5
|
+
* mocking individual modules.
|
|
6
|
+
*/
|
|
7
|
+
export interface LaunchUserIO {
|
|
8
|
+
select<T extends string>(opts: {
|
|
9
|
+
message: string;
|
|
10
|
+
options: Array<{
|
|
11
|
+
value: T;
|
|
12
|
+
label: string;
|
|
13
|
+
}>;
|
|
14
|
+
}): Promise<T | symbol>;
|
|
15
|
+
text(opts: {
|
|
16
|
+
message: string;
|
|
17
|
+
placeholder?: string;
|
|
18
|
+
}): Promise<string | symbol>;
|
|
19
|
+
isCancel(value: unknown): value is symbol;
|
|
20
|
+
}
|
|
21
|
+
export interface LaunchFileIO {
|
|
22
|
+
exists(path: string): boolean;
|
|
23
|
+
isProjectRoot(path: string): boolean;
|
|
24
|
+
isDirEmpty(path: string): boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface LaunchPaths {
|
|
27
|
+
flingHome: string;
|
|
28
|
+
cwd: string;
|
|
29
|
+
homedir: string;
|
|
30
|
+
}
|
|
31
|
+
export interface LaunchIO {
|
|
32
|
+
user: LaunchUserIO;
|
|
33
|
+
file: LaunchFileIO;
|
|
34
|
+
paths: LaunchPaths;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Result from promptNewProject.
|
|
38
|
+
* - string: path to project directory (existing or new)
|
|
39
|
+
* - null: user cancelled
|
|
40
|
+
*/
|
|
41
|
+
export type PromptNewProjectResult = string | null;
|
|
42
|
+
//# sourceMappingURL=launch-io.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch-io.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/launch-io.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,CAAC,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7C,GAAG,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAExB,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAE7B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC;CAC3C;AAMD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAMD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;CACpB;AAMD;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch-io.js","sourceRoot":"","sources":["../../../src/cli/utils/launch-io.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project name utilities.
|
|
3
|
+
*
|
|
4
|
+
* Reads the project name from package.json, with backwards compatibility
|
|
5
|
+
* for projects that don't have a projectName set.
|
|
6
|
+
*/
|
|
7
|
+
import { DEFAULT_PROJECT_NAME } from "../../shared/constants.js";
|
|
8
|
+
export { DEFAULT_PROJECT_NAME };
|
|
9
|
+
/**
|
|
10
|
+
* Read the project name from package.json's fling.projectName field.
|
|
11
|
+
* Returns DEFAULT_PROJECT_NAME if the field is not present (backwards compatibility).
|
|
12
|
+
*
|
|
13
|
+
* @param projectDir - The project directory (defaults to current working directory)
|
|
14
|
+
* @returns The project name, or DEFAULT_PROJECT_NAME if not set
|
|
15
|
+
*/
|
|
16
|
+
export declare function getProjectName(projectDir?: string): string;
|
|
17
|
+
//# sourceMappingURL=project-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-name.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/project-name.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAQhC;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,GAAE,MAAsB,GAAG,MAAM,CAczE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project name utilities.
|
|
3
|
+
*
|
|
4
|
+
* Reads the project name from package.json, with backwards compatibility
|
|
5
|
+
* for projects that don't have a projectName set.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
8
|
+
import { join } from "node:path";
|
|
9
|
+
import { DEFAULT_PROJECT_NAME } from "../../shared/constants.js";
|
|
10
|
+
// Re-export for consumers
|
|
11
|
+
export { DEFAULT_PROJECT_NAME };
|
|
12
|
+
/**
|
|
13
|
+
* Read the project name from package.json's fling.projectName field.
|
|
14
|
+
* Returns DEFAULT_PROJECT_NAME if the field is not present (backwards compatibility).
|
|
15
|
+
*
|
|
16
|
+
* @param projectDir - The project directory (defaults to current working directory)
|
|
17
|
+
* @returns The project name, or DEFAULT_PROJECT_NAME if not set
|
|
18
|
+
*/
|
|
19
|
+
export function getProjectName(projectDir = process.cwd()) {
|
|
20
|
+
const packageJsonPath = join(projectDir, "package.json");
|
|
21
|
+
if (!existsSync(packageJsonPath)) {
|
|
22
|
+
return DEFAULT_PROJECT_NAME;
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const content = readFileSync(packageJsonPath, "utf-8");
|
|
26
|
+
const pkg = JSON.parse(content);
|
|
27
|
+
return pkg.fling?.projectName ?? DEFAULT_PROJECT_NAME;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return DEFAULT_PROJECT_NAME;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=project-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-name.js","sourceRoot":"","sources":["../../../src/cli/utils/project-name.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,0BAA0B;AAC1B,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAQhC;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,aAAqB,OAAO,CAAC,GAAG,EAAE;IAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAEzD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;QAC/C,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,IAAI,oBAAoB,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oBAAoB,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt the user to select where to create or open a Fling project.
|
|
3
|
+
*/
|
|
4
|
+
import type { LaunchIO, PromptNewProjectResult } from "./launch-io.js";
|
|
5
|
+
/**
|
|
6
|
+
* Prompt the user to create a new project or open an existing one.
|
|
7
|
+
*
|
|
8
|
+
* @param io - The launch I/O context
|
|
9
|
+
* @returns The chosen directory path, or null if cancelled
|
|
10
|
+
*/
|
|
11
|
+
export declare function promptNewProject(io: LaunchIO): Promise<PromptNewProjectResult>;
|
|
12
|
+
//# sourceMappingURL=prompt-new-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-new-project.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/prompt-new-project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEvE;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,QAAQ,GACX,OAAO,CAAC,sBAAsB,CAAC,CAiEjC"}
|