flingit 0.0.11 → 0.0.13
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/README.md +8 -1
- package/dist/cli/commands/db.d.ts +11 -0
- package/dist/cli/commands/db.d.ts.map +1 -1
- package/dist/cli/commands/db.js +60 -48
- package/dist/cli/commands/db.js.map +1 -1
- package/dist/cli/commands/dev.d.ts +9 -0
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +96 -100
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/feedback.d.ts +23 -0
- package/dist/cli/commands/feedback.d.ts.map +1 -1
- package/dist/cli/commands/feedback.js +60 -73
- package/dist/cli/commands/feedback.js.map +1 -1
- package/dist/cli/commands/init.d.ts +9 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +96 -107
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/launch.d.ts +11 -1
- package/dist/cli/commands/launch.d.ts.map +1 -1
- package/dist/cli/commands/launch.js +32 -36
- package/dist/cli/commands/launch.js.map +1 -1
- package/dist/cli/commands/login.d.ts +30 -0
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +71 -58
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/logs.d.ts +39 -0
- package/dist/cli/commands/logs.d.ts.map +1 -1
- package/dist/cli/commands/logs.js +121 -90
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/onboard.d.ts +1 -1
- package/dist/cli/commands/onboard.d.ts.map +1 -1
- package/dist/cli/commands/onboard.js +94 -41
- package/dist/cli/commands/onboard.js.map +1 -1
- package/dist/cli/commands/plugin.d.ts +43 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +229 -211
- package/dist/cli/commands/plugin.js.map +1 -1
- package/dist/cli/commands/project.d.ts +27 -0
- package/dist/cli/commands/project.d.ts.map +1 -1
- package/dist/cli/commands/project.js +101 -85
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/push.d.ts +39 -0
- package/dist/cli/commands/push.d.ts.map +1 -1
- package/dist/cli/commands/push.js +152 -118
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/commands/storage.d.ts +32 -0
- package/dist/cli/commands/storage.d.ts.map +1 -1
- package/dist/cli/commands/storage.js +180 -140
- package/dist/cli/commands/storage.js.map +1 -1
- package/dist/cli/commands/tunnel.d.ts +41 -0
- package/dist/cli/commands/tunnel.d.ts.map +1 -0
- package/dist/cli/commands/tunnel.js +210 -0
- package/dist/cli/commands/tunnel.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +15 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.js +82 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/index.js +35 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/cli-io-impl.d.ts +64 -0
- package/dist/cli/utils/cli-io-impl.d.ts.map +1 -0
- package/dist/cli/utils/cli-io-impl.js +521 -0
- package/dist/cli/utils/cli-io-impl.js.map +1 -0
- package/dist/cli/utils/cli-io.d.ts +350 -0
- package/dist/cli/utils/cli-io.d.ts.map +1 -0
- package/dist/cli/utils/cli-io.js +13 -0
- package/dist/cli/utils/cli-io.js.map +1 -0
- package/dist/cli/utils/config.d.ts +60 -2
- package/dist/cli/utils/config.d.ts.map +1 -1
- package/dist/cli/utils/config.js +158 -37
- package/dist/cli/utils/config.js.map +1 -1
- package/dist/cli/utils/project.d.ts +60 -0
- package/dist/cli/utils/project.d.ts.map +1 -1
- package/dist/cli/utils/project.js +112 -2
- package/dist/cli/utils/project.js.map +1 -1
- package/dist/cli/utils/prompt-new-project.d.ts +7 -3
- package/dist/cli/utils/prompt-new-project.d.ts.map +1 -1
- package/dist/cli/utils/prompt-new-project.js +12 -17
- package/dist/cli/utils/prompt-new-project.js.map +1 -1
- package/dist/cli/utils/registry.d.ts +2 -2
- package/dist/cli/utils/registry.d.ts.map +1 -1
- package/dist/cli/utils/registry.js +13 -3
- package/dist/cli/utils/registry.js.map +1 -1
- package/dist/runtime/log.d.ts.map +1 -1
- package/dist/runtime/log.js +8 -4
- package/dist/runtime/log.js.map +1 -1
- package/dist/runtime/storage.js +1 -1
- package/dist/runtime/storage.js.map +1 -1
- package/package.json +3 -2
- package/templates/default/CLAUDE.md +1 -0
- package/templates/default/skills/fling/.hash +1 -0
- package/templates/default/skills/fling/SKILL.md +12 -4
- /package/templates/default/skills/{discord/SKILL.md → fling/DISCORD.md} +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Fling
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Small Software Platform** — Build and deploy small apps and tools through conversation.
|
|
4
4
|
|
|
5
5
|
[Watch the demo](https://www.loom.com/share/5add6a6ff897441cadeb67e3ee477b14)
|
|
6
6
|
|
|
@@ -24,6 +24,13 @@ That's it. This creates a project at `~/fling`, sets up the environment, and ope
|
|
|
24
24
|
|
|
25
25
|
Requires Node.js 22 or later.
|
|
26
26
|
|
|
27
|
+
## Principles
|
|
28
|
+
|
|
29
|
+
- Small Software
|
|
30
|
+
- Super low friction
|
|
31
|
+
- You own the agent
|
|
32
|
+
- Batteries included
|
|
33
|
+
|
|
27
34
|
## How It Works
|
|
28
35
|
|
|
29
36
|
Fling provides four primitives (more to come) that Claude uses to build your tools:
|
|
@@ -5,5 +5,16 @@
|
|
|
5
5
|
* With --prod: operates on deployed D1 database (requires login)
|
|
6
6
|
*/
|
|
7
7
|
import { Command } from "commander";
|
|
8
|
+
import type { DbIO } from "../utils/cli-io.js";
|
|
8
9
|
export declare const dbCommand: Command;
|
|
10
|
+
/**
|
|
11
|
+
* Reset the local database (delete all database files).
|
|
12
|
+
*/
|
|
13
|
+
export declare function resetLocalDatabase(io: DbIO): void;
|
|
14
|
+
/**
|
|
15
|
+
* Execute SQL query on the local SQLite database.
|
|
16
|
+
*/
|
|
17
|
+
export declare function executeLocalQuery(query: string, options: {
|
|
18
|
+
json?: boolean;
|
|
19
|
+
}, io: DbIO): void;
|
|
9
20
|
//# sourceMappingURL=db.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AA4B/C,eAAO,MAAM,SAAS,SAepB,CAAC;AAEH;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,CAcjD;AA4CD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,CA2D5F"}
|
package/dist/cli/commands/db.js
CHANGED
|
@@ -5,14 +5,18 @@
|
|
|
5
5
|
* With --prod: operates on deployed D1 database (requires login)
|
|
6
6
|
*/
|
|
7
7
|
import { Command } from "commander";
|
|
8
|
-
import { existsSync, rmSync, mkdirSync } from "node:fs";
|
|
9
8
|
import { join, dirname } from "node:path";
|
|
10
|
-
import Database from "better-sqlite3";
|
|
11
9
|
import { platformFetch } from "../utils/config.js";
|
|
12
10
|
import { getTargetEnv, requireProdAuth } from "../utils/environment.js";
|
|
13
11
|
import { DB_PATH_PARTS } from "../../runtime/db.js";
|
|
14
12
|
import { getProjectName } from "../utils/project-name.js";
|
|
15
|
-
|
|
13
|
+
import { defaultDbIO } from "../utils/cli-io-impl.js";
|
|
14
|
+
/**
|
|
15
|
+
* Get the database path for the current working directory.
|
|
16
|
+
*/
|
|
17
|
+
function getDbPath(io) {
|
|
18
|
+
return join(io.process.cwd(), ...DB_PATH_PARTS);
|
|
19
|
+
}
|
|
16
20
|
export const dbCommand = new Command("db")
|
|
17
21
|
.description("Database management commands (local SQLite or production D1)")
|
|
18
22
|
.addHelpText("after", `
|
|
@@ -29,6 +33,21 @@ Examples:
|
|
|
29
33
|
fling db sql "SELECT * FROM users" Query local database
|
|
30
34
|
fling --prod db sql "SELECT count(*) FROM logs" Query production D1
|
|
31
35
|
`);
|
|
36
|
+
/**
|
|
37
|
+
* Reset the local database (delete all database files).
|
|
38
|
+
*/
|
|
39
|
+
export function resetLocalDatabase(io) {
|
|
40
|
+
const dbPath = getDbPath(io);
|
|
41
|
+
if (!io.file.exists(dbPath)) {
|
|
42
|
+
io.console.log("Database does not exist. Nothing to reset.");
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
// Remove database and WAL files
|
|
46
|
+
io.file.remove(dbPath, { force: true });
|
|
47
|
+
io.file.remove(`${dbPath}-wal`, { force: true });
|
|
48
|
+
io.file.remove(`${dbPath}-shm`, { force: true });
|
|
49
|
+
io.console.log("Local database has been reset.");
|
|
50
|
+
}
|
|
32
51
|
dbCommand
|
|
33
52
|
.command("reset")
|
|
34
53
|
.description("Delete the local database file (irreversible)")
|
|
@@ -39,16 +58,8 @@ Migrations will re-run on next 'fling dev'.
|
|
|
39
58
|
Note: This command only works with the local database.
|
|
40
59
|
There is no reset for production D1 (use SQL to drop tables).
|
|
41
60
|
`)
|
|
42
|
-
.action(
|
|
43
|
-
|
|
44
|
-
console.log("Database does not exist. Nothing to reset.");
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
// Remove database and WAL files
|
|
48
|
-
rmSync(DB_PATH, { force: true });
|
|
49
|
-
rmSync(`${DB_PATH}-wal`, { force: true });
|
|
50
|
-
rmSync(`${DB_PATH}-shm`, { force: true });
|
|
51
|
-
console.log("Local database has been reset.");
|
|
61
|
+
.action(() => {
|
|
62
|
+
resetLocalDatabase(defaultDbIO);
|
|
52
63
|
});
|
|
53
64
|
dbCommand
|
|
54
65
|
.command("sql")
|
|
@@ -71,26 +82,27 @@ Examples:
|
|
|
71
82
|
const env = getTargetEnv(command);
|
|
72
83
|
if (env === "prod") {
|
|
73
84
|
requireProdAuth(env);
|
|
74
|
-
await executeD1Query(query, options);
|
|
85
|
+
await executeD1Query(query, options, defaultDbIO);
|
|
75
86
|
}
|
|
76
87
|
else {
|
|
77
|
-
|
|
88
|
+
executeLocalQuery(query, options, defaultDbIO);
|
|
78
89
|
}
|
|
79
90
|
});
|
|
80
91
|
/**
|
|
81
92
|
* Execute SQL query on the local SQLite database.
|
|
82
93
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
94
|
+
export function executeLocalQuery(query, options, io) {
|
|
95
|
+
const dbPath = getDbPath(io);
|
|
96
|
+
if (!io.file.exists(dbPath)) {
|
|
85
97
|
// Ensure directory exists
|
|
86
|
-
const dir = dirname(
|
|
87
|
-
if (!
|
|
88
|
-
|
|
98
|
+
const dir = dirname(dbPath);
|
|
99
|
+
if (!io.file.exists(dir)) {
|
|
100
|
+
io.file.mkdir(dir, { recursive: true });
|
|
89
101
|
}
|
|
90
|
-
console.log("Database not found. It will be created.");
|
|
102
|
+
io.console.log("Database not found. It will be created.");
|
|
91
103
|
}
|
|
92
104
|
try {
|
|
93
|
-
const db =
|
|
105
|
+
const db = io.database.open(dbPath);
|
|
94
106
|
const stmt = db.prepare(query);
|
|
95
107
|
// Check if this is a SELECT query (returns data)
|
|
96
108
|
// better-sqlite3 requires using .all() for SELECT and .run() for others
|
|
@@ -98,41 +110,41 @@ async function executeLocalQuery(query, options) {
|
|
|
98
110
|
if (isSelect) {
|
|
99
111
|
const rows = stmt.all();
|
|
100
112
|
if (options.json) {
|
|
101
|
-
console.log(JSON.stringify({ results: rows }, null, 2));
|
|
113
|
+
io.console.log(JSON.stringify({ results: rows }, null, 2));
|
|
102
114
|
db.close();
|
|
103
115
|
return;
|
|
104
116
|
}
|
|
105
117
|
if (rows.length === 0) {
|
|
106
|
-
console.log("Query returned no rows");
|
|
118
|
+
io.console.log("Query returned no rows");
|
|
107
119
|
db.close();
|
|
108
120
|
return;
|
|
109
121
|
}
|
|
110
|
-
printRows(rows);
|
|
111
|
-
console.log(`\n${rows.length} row(s) returned`);
|
|
122
|
+
printRows(rows, io);
|
|
123
|
+
io.console.log(`\n${rows.length} row(s) returned`);
|
|
112
124
|
}
|
|
113
125
|
else {
|
|
114
126
|
const result = stmt.run();
|
|
115
127
|
if (options.json) {
|
|
116
|
-
console.log(JSON.stringify({
|
|
128
|
+
io.console.log(JSON.stringify({
|
|
117
129
|
changes: result.changes,
|
|
118
130
|
lastInsertRowid: result.lastInsertRowid,
|
|
119
131
|
}, null, 2));
|
|
120
132
|
db.close();
|
|
121
133
|
return;
|
|
122
134
|
}
|
|
123
|
-
console.log(`Query executed: ${result.changes} row(s) affected`);
|
|
135
|
+
io.console.log(`Query executed: ${result.changes} row(s) affected`);
|
|
124
136
|
}
|
|
125
137
|
db.close();
|
|
126
138
|
}
|
|
127
139
|
catch (error) {
|
|
128
|
-
console.error(`Error: ${error instanceof Error ? error.message : "Query failed"}`);
|
|
129
|
-
process.exit(1);
|
|
140
|
+
io.console.error(`Error: ${error instanceof Error ? error.message : "Query failed"}`);
|
|
141
|
+
io.process.exit(1);
|
|
130
142
|
}
|
|
131
143
|
}
|
|
132
144
|
/**
|
|
133
145
|
* Execute SQL query on the deployed D1 database.
|
|
134
146
|
*/
|
|
135
|
-
async function executeD1Query(query, options) {
|
|
147
|
+
async function executeD1Query(query, options, io) {
|
|
136
148
|
try {
|
|
137
149
|
const projectName = getProjectName();
|
|
138
150
|
const response = await platformFetch(`/project/${encodeURIComponent(projectName)}/sql`, {
|
|
@@ -144,46 +156,46 @@ async function executeD1Query(query, options) {
|
|
|
144
156
|
});
|
|
145
157
|
const data = (await response.json());
|
|
146
158
|
if (!response.ok) {
|
|
147
|
-
console.error(`Error: ${data.error ?? `API error (${response.status})`}`);
|
|
148
|
-
process.exit(1);
|
|
159
|
+
io.console.error(`Error: ${data.error ?? `API error (${response.status})`}`);
|
|
160
|
+
io.process.exit(1);
|
|
149
161
|
}
|
|
150
162
|
if (!data.results || data.results.length === 0) {
|
|
151
|
-
console.log("Query executed successfully (no results)");
|
|
163
|
+
io.console.log("Query executed successfully (no results)");
|
|
152
164
|
return;
|
|
153
165
|
}
|
|
154
166
|
const [result] = data.results;
|
|
155
167
|
if (!result) {
|
|
156
|
-
console.log("Query executed successfully (no results)");
|
|
168
|
+
io.console.log("Query executed successfully (no results)");
|
|
157
169
|
return;
|
|
158
170
|
}
|
|
159
171
|
if (options.json) {
|
|
160
172
|
// Raw JSON output
|
|
161
|
-
console.log(JSON.stringify(result, null, 2));
|
|
173
|
+
io.console.log(JSON.stringify(result, null, 2));
|
|
162
174
|
return;
|
|
163
175
|
}
|
|
164
176
|
// Formatted output
|
|
165
177
|
const rows = result.results;
|
|
166
178
|
if (rows.length === 0) {
|
|
167
|
-
console.log("Query returned no rows");
|
|
168
|
-
console.log(`\nMeta: ${result.meta.changes} changes, ${result.meta.duration.toFixed(2)}ms`);
|
|
179
|
+
io.console.log("Query returned no rows");
|
|
180
|
+
io.console.log(`\nMeta: ${result.meta.changes} changes, ${result.meta.duration.toFixed(2)}ms`);
|
|
169
181
|
return;
|
|
170
182
|
}
|
|
171
|
-
printRows(rows);
|
|
172
|
-
console.log(`\n${rows.length} row(s) returned`);
|
|
173
|
-
console.log(`Meta: ${result.meta.changes} changes, ${result.meta.duration.toFixed(2)}ms`);
|
|
183
|
+
printRows(rows, io);
|
|
184
|
+
io.console.log(`\n${rows.length} row(s) returned`);
|
|
185
|
+
io.console.log(`Meta: ${result.meta.changes} changes, ${result.meta.duration.toFixed(2)}ms`);
|
|
174
186
|
}
|
|
175
187
|
catch (error) {
|
|
176
|
-
console.error(`Error: ${error instanceof Error ? error.message : "Query failed"}`);
|
|
177
|
-
process.exit(1);
|
|
188
|
+
io.console.error(`Error: ${error instanceof Error ? error.message : "Query failed"}`);
|
|
189
|
+
io.process.exit(1);
|
|
178
190
|
}
|
|
179
191
|
}
|
|
180
192
|
/**
|
|
181
193
|
* Print rows in a formatted table.
|
|
182
194
|
*/
|
|
183
|
-
function printRows(rows) {
|
|
195
|
+
function printRows(rows, io) {
|
|
184
196
|
const [firstRow] = rows;
|
|
185
197
|
if (!firstRow) {
|
|
186
|
-
console.log("Query returned no rows");
|
|
198
|
+
io.console.log("Query returned no rows");
|
|
187
199
|
return;
|
|
188
200
|
}
|
|
189
201
|
const columns = Object.keys(firstRow);
|
|
@@ -205,14 +217,14 @@ function printRows(rows) {
|
|
|
205
217
|
const header = columns
|
|
206
218
|
.map((col, i) => col.padEnd(widths[i] ?? 0))
|
|
207
219
|
.join(" | ");
|
|
208
|
-
console.log(header);
|
|
209
|
-
console.log(widths.map((w) => "-".repeat(w)).join("-+-"));
|
|
220
|
+
io.console.log(header);
|
|
221
|
+
io.console.log(widths.map((w) => "-".repeat(w)).join("-+-"));
|
|
210
222
|
// Print rows
|
|
211
223
|
for (const row of rows) {
|
|
212
224
|
const line = columns
|
|
213
225
|
.map((col, i) => stringify(row[col]).padEnd(widths[i] ?? 0))
|
|
214
226
|
.join(" | ");
|
|
215
|
-
console.log(line);
|
|
227
|
+
io.console.log(line);
|
|
216
228
|
}
|
|
217
229
|
}
|
|
218
230
|
//# sourceMappingURL=db.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/cli/commands/db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/cli/commands/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,5 +11,14 @@
|
|
|
11
11
|
* catching bundling issues (like WASM) early.
|
|
12
12
|
*/
|
|
13
13
|
import { Command } from "commander";
|
|
14
|
+
import type { DevIO } from "../utils/cli-io.js";
|
|
15
|
+
export interface DevOptions {
|
|
16
|
+
port: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Run the dev command logic.
|
|
20
|
+
* Extracted for testability via dependency injection.
|
|
21
|
+
*/
|
|
22
|
+
export declare function runDev(options: DevOptions, io: DevIO): Promise<void>;
|
|
14
23
|
export declare const devCommand: Command;
|
|
15
24
|
//# sourceMappingURL=dev.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA0V1E;AAED,eAAO,MAAM,UAAU,SA8BnB,CAAC"}
|