clawfire 0.6.3 → 0.6.4
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.js +1 -1
- package/dist/{dev-server-NWB66EJT.js → dev-server-7JCKX7OD.js} +61 -0
- package/dist/dev.cjs +61 -0
- package/dist/dev.cjs.map +1 -1
- package/dist/dev.js +61 -0
- package/dist/dev.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -269,7 +269,7 @@ async function runDevServer() {
|
|
|
269
269
|
const port = portArg ? parseInt(portArg.split("=")[1], 10) : 3e3;
|
|
270
270
|
const apiPort = apiPortArg ? parseInt(apiPortArg.split("=")[1], 10) : 3456;
|
|
271
271
|
const noHotReload = args.includes("--no-hot-reload");
|
|
272
|
-
const { startDevServer } = await import("./dev-server-
|
|
272
|
+
const { startDevServer } = await import("./dev-server-7JCKX7OD.js");
|
|
273
273
|
await startDevServer({
|
|
274
274
|
projectDir,
|
|
275
275
|
port,
|
|
@@ -3003,8 +3003,48 @@ var FirebaseSetup = class {
|
|
|
3003
3003
|
return { success: true, message: `${service} enabled in firebase.json.` };
|
|
3004
3004
|
}
|
|
3005
3005
|
// ─── Firestore Database Automation ──────────────────────────────────
|
|
3006
|
+
/**
|
|
3007
|
+
* Enable Firestore API via gcloud CLI.
|
|
3008
|
+
* Required before creating a database for the first time.
|
|
3009
|
+
*/
|
|
3010
|
+
async enableFirestoreApi() {
|
|
3011
|
+
const state = this.loadState();
|
|
3012
|
+
let projectId = state.projectId || "";
|
|
3013
|
+
if (!projectId) {
|
|
3014
|
+
const firebasercPath = resolve4(this.projectDir, ".firebaserc");
|
|
3015
|
+
if (existsSync5(firebasercPath)) {
|
|
3016
|
+
try {
|
|
3017
|
+
const rc = JSON.parse(readFileSync4(firebasercPath, "utf-8"));
|
|
3018
|
+
projectId = rc?.projects?.default || "";
|
|
3019
|
+
} catch {
|
|
3020
|
+
}
|
|
3021
|
+
}
|
|
3022
|
+
}
|
|
3023
|
+
if (!projectId) {
|
|
3024
|
+
return { success: false, message: "No project ID found. Select a project first." };
|
|
3025
|
+
}
|
|
3026
|
+
try {
|
|
3027
|
+
await this.execTimeout(
|
|
3028
|
+
"gcloud",
|
|
3029
|
+
["services", "enable", "firestore.googleapis.com", "--project", projectId],
|
|
3030
|
+
6e4
|
|
3031
|
+
);
|
|
3032
|
+
return { success: true, message: "Firestore API enabled." };
|
|
3033
|
+
} catch (err) {
|
|
3034
|
+
const msg = err instanceof Error ? err.message : "Unknown error";
|
|
3035
|
+
if (msg.includes("ENOENT") || msg.includes("not found") || msg.includes("command not found")) {
|
|
3036
|
+
return {
|
|
3037
|
+
success: false,
|
|
3038
|
+
message: `gcloud CLI not found. Please enable the Firestore API manually:
|
|
3039
|
+
https://console.developers.google.com/apis/api/firestore.googleapis.com/overview?project=${projectId}`
|
|
3040
|
+
};
|
|
3041
|
+
}
|
|
3042
|
+
return { success: false, message: `Failed to enable Firestore API: ${msg}` };
|
|
3043
|
+
}
|
|
3044
|
+
}
|
|
3006
3045
|
/**
|
|
3007
3046
|
* Create Firestore database via CLI.
|
|
3047
|
+
* Automatically enables Firestore API if needed.
|
|
3008
3048
|
* Handles "ALREADY_EXISTS" gracefully — returns success.
|
|
3009
3049
|
*/
|
|
3010
3050
|
async createFirestoreDatabase(location = "nam5") {
|
|
@@ -3020,6 +3060,27 @@ var FirebaseSetup = class {
|
|
|
3020
3060
|
if (msg.includes("ALREADY_EXISTS") || msg.includes("already exists")) {
|
|
3021
3061
|
return { success: true, message: "Firestore database already exists." };
|
|
3022
3062
|
}
|
|
3063
|
+
if (msg.includes("403") || msg.includes("has not been used") || msg.includes("is disabled")) {
|
|
3064
|
+
const enableResult = await this.enableFirestoreApi();
|
|
3065
|
+
if (!enableResult.success) {
|
|
3066
|
+
return enableResult;
|
|
3067
|
+
}
|
|
3068
|
+
await new Promise((r) => setTimeout(r, 5e3));
|
|
3069
|
+
try {
|
|
3070
|
+
await this.execTimeout(
|
|
3071
|
+
"firebase",
|
|
3072
|
+
["firestore:databases:create", "(default)", "--location", location, "--json"],
|
|
3073
|
+
6e4
|
|
3074
|
+
);
|
|
3075
|
+
return { success: true, message: `Firestore API enabled and database created (location: ${location}).` };
|
|
3076
|
+
} catch (retryErr) {
|
|
3077
|
+
const retryMsg = retryErr instanceof Error ? retryErr.message : "Unknown error";
|
|
3078
|
+
if (retryMsg.includes("ALREADY_EXISTS") || retryMsg.includes("already exists")) {
|
|
3079
|
+
return { success: true, message: "Firestore database already exists." };
|
|
3080
|
+
}
|
|
3081
|
+
return { success: false, message: `Failed to create Firestore database after enabling API: ${retryMsg}` };
|
|
3082
|
+
}
|
|
3083
|
+
}
|
|
3023
3084
|
return { success: false, message: `Failed to create Firestore database: ${msg}` };
|
|
3024
3085
|
}
|
|
3025
3086
|
}
|
package/dist/dev.cjs
CHANGED
|
@@ -3415,8 +3415,48 @@ var FirebaseSetup = class {
|
|
|
3415
3415
|
return { success: true, message: `${service} enabled in firebase.json.` };
|
|
3416
3416
|
}
|
|
3417
3417
|
// ─── Firestore Database Automation ──────────────────────────────────
|
|
3418
|
+
/**
|
|
3419
|
+
* Enable Firestore API via gcloud CLI.
|
|
3420
|
+
* Required before creating a database for the first time.
|
|
3421
|
+
*/
|
|
3422
|
+
async enableFirestoreApi() {
|
|
3423
|
+
const state = this.loadState();
|
|
3424
|
+
let projectId = state.projectId || "";
|
|
3425
|
+
if (!projectId) {
|
|
3426
|
+
const firebasercPath = (0, import_node_path4.resolve)(this.projectDir, ".firebaserc");
|
|
3427
|
+
if ((0, import_node_fs4.existsSync)(firebasercPath)) {
|
|
3428
|
+
try {
|
|
3429
|
+
const rc = JSON.parse((0, import_node_fs4.readFileSync)(firebasercPath, "utf-8"));
|
|
3430
|
+
projectId = rc?.projects?.default || "";
|
|
3431
|
+
} catch {
|
|
3432
|
+
}
|
|
3433
|
+
}
|
|
3434
|
+
}
|
|
3435
|
+
if (!projectId) {
|
|
3436
|
+
return { success: false, message: "No project ID found. Select a project first." };
|
|
3437
|
+
}
|
|
3438
|
+
try {
|
|
3439
|
+
await this.execTimeout(
|
|
3440
|
+
"gcloud",
|
|
3441
|
+
["services", "enable", "firestore.googleapis.com", "--project", projectId],
|
|
3442
|
+
6e4
|
|
3443
|
+
);
|
|
3444
|
+
return { success: true, message: "Firestore API enabled." };
|
|
3445
|
+
} catch (err) {
|
|
3446
|
+
const msg = err instanceof Error ? err.message : "Unknown error";
|
|
3447
|
+
if (msg.includes("ENOENT") || msg.includes("not found") || msg.includes("command not found")) {
|
|
3448
|
+
return {
|
|
3449
|
+
success: false,
|
|
3450
|
+
message: `gcloud CLI not found. Please enable the Firestore API manually:
|
|
3451
|
+
https://console.developers.google.com/apis/api/firestore.googleapis.com/overview?project=${projectId}`
|
|
3452
|
+
};
|
|
3453
|
+
}
|
|
3454
|
+
return { success: false, message: `Failed to enable Firestore API: ${msg}` };
|
|
3455
|
+
}
|
|
3456
|
+
}
|
|
3418
3457
|
/**
|
|
3419
3458
|
* Create Firestore database via CLI.
|
|
3459
|
+
* Automatically enables Firestore API if needed.
|
|
3420
3460
|
* Handles "ALREADY_EXISTS" gracefully — returns success.
|
|
3421
3461
|
*/
|
|
3422
3462
|
async createFirestoreDatabase(location = "nam5") {
|
|
@@ -3432,6 +3472,27 @@ var FirebaseSetup = class {
|
|
|
3432
3472
|
if (msg.includes("ALREADY_EXISTS") || msg.includes("already exists")) {
|
|
3433
3473
|
return { success: true, message: "Firestore database already exists." };
|
|
3434
3474
|
}
|
|
3475
|
+
if (msg.includes("403") || msg.includes("has not been used") || msg.includes("is disabled")) {
|
|
3476
|
+
const enableResult = await this.enableFirestoreApi();
|
|
3477
|
+
if (!enableResult.success) {
|
|
3478
|
+
return enableResult;
|
|
3479
|
+
}
|
|
3480
|
+
await new Promise((r) => setTimeout(r, 5e3));
|
|
3481
|
+
try {
|
|
3482
|
+
await this.execTimeout(
|
|
3483
|
+
"firebase",
|
|
3484
|
+
["firestore:databases:create", "(default)", "--location", location, "--json"],
|
|
3485
|
+
6e4
|
|
3486
|
+
);
|
|
3487
|
+
return { success: true, message: `Firestore API enabled and database created (location: ${location}).` };
|
|
3488
|
+
} catch (retryErr) {
|
|
3489
|
+
const retryMsg = retryErr instanceof Error ? retryErr.message : "Unknown error";
|
|
3490
|
+
if (retryMsg.includes("ALREADY_EXISTS") || retryMsg.includes("already exists")) {
|
|
3491
|
+
return { success: true, message: "Firestore database already exists." };
|
|
3492
|
+
}
|
|
3493
|
+
return { success: false, message: `Failed to create Firestore database after enabling API: ${retryMsg}` };
|
|
3494
|
+
}
|
|
3495
|
+
}
|
|
3435
3496
|
return { success: false, message: `Failed to create Firestore database: ${msg}` };
|
|
3436
3497
|
}
|
|
3437
3498
|
}
|