@fluid-app/fluid-cli-portal 0.1.1 → 0.1.2
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/index.d.mts +6 -112
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -152
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
import { FluidPlugin } from "@fluid-app/fluid-cli";
|
|
2
|
+
import { CliError, FluidPlugin, Result } from "@fluid-app/fluid-cli";
|
|
3
3
|
|
|
4
4
|
//#region src/types.d.ts
|
|
5
5
|
/**
|
|
@@ -133,112 +133,6 @@ declare function runPackageManager(args: string[], cwd: string): Promise<void>;
|
|
|
133
133
|
*/
|
|
134
134
|
declare function installDependencies(cwd: string): Promise<void>;
|
|
135
135
|
//#endregion
|
|
136
|
-
//#region src/utils/result.d.ts
|
|
137
|
-
/**
|
|
138
|
-
* Result type utilities for type-safe error handling
|
|
139
|
-
*
|
|
140
|
-
* The Result<T, E> pattern provides a discriminated union for fallible operations,
|
|
141
|
-
* enabling exhaustive handling without try/catch blocks.
|
|
142
|
-
*/
|
|
143
|
-
/**
|
|
144
|
-
* Successful result containing a value of type T
|
|
145
|
-
*/
|
|
146
|
-
interface Success<T> {
|
|
147
|
-
readonly success: true;
|
|
148
|
-
readonly value: T;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Failed result containing an error of type E
|
|
152
|
-
*/
|
|
153
|
-
interface Failure<E> {
|
|
154
|
-
readonly success: false;
|
|
155
|
-
readonly error: E;
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Result type - discriminated union of Success and Failure
|
|
159
|
-
* The `success` field serves as the discriminant for type narrowing
|
|
160
|
-
*/
|
|
161
|
-
type Result<T, E = Error> = Success<T> | Failure<E>;
|
|
162
|
-
/**
|
|
163
|
-
* Create a successful result
|
|
164
|
-
*/
|
|
165
|
-
declare function success<T>(value: T): Success<T>;
|
|
166
|
-
/**
|
|
167
|
-
* Create a failed result
|
|
168
|
-
*/
|
|
169
|
-
declare function failure<E>(error: E): Failure<E>;
|
|
170
|
-
/**
|
|
171
|
-
* Type guard for successful results
|
|
172
|
-
*/
|
|
173
|
-
declare function isSuccess<T, E>(result: Result<T, E>): result is Success<T>;
|
|
174
|
-
/**
|
|
175
|
-
* Type guard for failed results
|
|
176
|
-
*/
|
|
177
|
-
declare function isFailure<T, E>(result: Result<T, E>): result is Failure<E>;
|
|
178
|
-
/**
|
|
179
|
-
* Wrap a function that may throw into a Result-returning function
|
|
180
|
-
*/
|
|
181
|
-
declare function tryCatch<T>(fn: () => T): Result<T, Error>;
|
|
182
|
-
/**
|
|
183
|
-
* Wrap an async function that may throw into a Result-returning function
|
|
184
|
-
*/
|
|
185
|
-
declare function tryCatchAsync<T>(fn: () => Promise<T>): Promise<Result<T, Error>>;
|
|
186
|
-
/**
|
|
187
|
-
* Extract value from Result or throw error
|
|
188
|
-
* Use sparingly - prefer pattern matching with isSuccess/isFailure
|
|
189
|
-
*/
|
|
190
|
-
declare function unwrap<T, E>(result: Result<T, E>): T;
|
|
191
|
-
/**
|
|
192
|
-
* Extract value from Result or return a default value
|
|
193
|
-
*/
|
|
194
|
-
declare function unwrapOr<T, E>(result: Result<T, E>, defaultValue: T): T;
|
|
195
|
-
/**
|
|
196
|
-
* Map over a successful Result value
|
|
197
|
-
*/
|
|
198
|
-
declare function mapResult<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
|
|
199
|
-
/**
|
|
200
|
-
* Map over a failed Result error
|
|
201
|
-
*/
|
|
202
|
-
declare function mapError<T, E, F>(result: Result<T, E>, fn: (error: E) => F): Result<T, F>;
|
|
203
|
-
/**
|
|
204
|
-
* Type guard to check if a value is an Error instance
|
|
205
|
-
*
|
|
206
|
-
* @example
|
|
207
|
-
* ```ts
|
|
208
|
-
* catch (error) {
|
|
209
|
-
* if (isError(error)) {
|
|
210
|
-
* console.log(error.message); // TypeScript knows this is an Error
|
|
211
|
-
* }
|
|
212
|
-
* }
|
|
213
|
-
* ```
|
|
214
|
-
*/
|
|
215
|
-
declare function isError(value: unknown): value is Error;
|
|
216
|
-
/**
|
|
217
|
-
* Type guard for Node.js system errors (with `code` property)
|
|
218
|
-
*
|
|
219
|
-
* @example
|
|
220
|
-
* ```ts
|
|
221
|
-
* catch (error) {
|
|
222
|
-
* if (isNodeError(error) && error.code === "ENOENT") {
|
|
223
|
-
* console.log("File not found");
|
|
224
|
-
* }
|
|
225
|
-
* }
|
|
226
|
-
* ```
|
|
227
|
-
*/
|
|
228
|
-
declare function isNodeError(value: unknown): value is NodeJS.ErrnoException;
|
|
229
|
-
/**
|
|
230
|
-
* Extract error message safely from unknown catch parameter.
|
|
231
|
-
* Prefer type guards (isError, isNodeError) when you need the full error object.
|
|
232
|
-
*
|
|
233
|
-
* @example
|
|
234
|
-
* ```ts
|
|
235
|
-
* catch (error) {
|
|
236
|
-
* console.log("Error: " + getErrorMessage(error));
|
|
237
|
-
* }
|
|
238
|
-
* ```
|
|
239
|
-
*/
|
|
240
|
-
declare function getErrorMessage(error: unknown): string;
|
|
241
|
-
//#endregion
|
|
242
136
|
//#region src/utils/file-system.d.ts
|
|
243
137
|
/**
|
|
244
138
|
* Error types for file system operations
|
|
@@ -257,7 +151,7 @@ type FileSystemErrorCode = (typeof FILE_SYSTEM_ERRORS)[keyof typeof FILE_SYSTEM_
|
|
|
257
151
|
/**
|
|
258
152
|
* Structured file system error with code for pattern matching
|
|
259
153
|
*/
|
|
260
|
-
interface FileSystemError {
|
|
154
|
+
interface FileSystemError extends CliError {
|
|
261
155
|
readonly code: FileSystemErrorCode;
|
|
262
156
|
readonly message: string;
|
|
263
157
|
readonly path?: string;
|
|
@@ -386,7 +280,7 @@ interface CloudRunConfig {
|
|
|
386
280
|
/**
|
|
387
281
|
* Structured error for Cloud Run operations
|
|
388
282
|
*/
|
|
389
|
-
interface CloudRunError {
|
|
283
|
+
interface CloudRunError extends CliError {
|
|
390
284
|
readonly code: string;
|
|
391
285
|
readonly message: string;
|
|
392
286
|
readonly details?: string;
|
|
@@ -462,7 +356,7 @@ type FluidApiErrorCode = (typeof FLUID_API_ERROR)[keyof typeof FLUID_API_ERROR][
|
|
|
462
356
|
/**
|
|
463
357
|
* Structured Fluid API error with code for pattern matching
|
|
464
358
|
*/
|
|
465
|
-
interface FluidApiError {
|
|
359
|
+
interface FluidApiError extends CliError {
|
|
466
360
|
readonly code: string;
|
|
467
361
|
readonly message: string;
|
|
468
362
|
readonly details?: string;
|
|
@@ -547,7 +441,7 @@ declare const TURSO_ERROR: {
|
|
|
547
441
|
/**
|
|
548
442
|
* Structured Turso error with code for pattern matching
|
|
549
443
|
*/
|
|
550
|
-
interface TursoError {
|
|
444
|
+
interface TursoError extends CliError {
|
|
551
445
|
readonly code: string;
|
|
552
446
|
readonly message: string;
|
|
553
447
|
readonly details?: string;
|
|
@@ -676,5 +570,5 @@ declare function provisionDatabase(config: TursoConfig, projectName: string, loc
|
|
|
676
570
|
//#region src/index.d.ts
|
|
677
571
|
declare const plugin: FluidPlugin;
|
|
678
572
|
//#endregion
|
|
679
|
-
export { type BuildOptions, CLOUD_RUN_ERRORS, type CloudRunConfig, type CloudRunDeployCallbacks, type CloudRunError, type CloudRunResult, type CreateOptions, type DeployOptions, type DestroyOptions, type DevOptions, FILE_SYSTEM_ERRORS, FLUID_API_ERROR, type
|
|
573
|
+
export { type BuildOptions, CLOUD_RUN_ERRORS, type CloudRunConfig, type CloudRunDeployCallbacks, type CloudRunError, type CloudRunResult, type CreateOptions, type DeployOptions, type DestroyOptions, type DevOptions, FILE_SYSTEM_ERRORS, FLUID_API_ERROR, type FileSystemError, type FileSystemErrorCode, type FluidApiError, type FluidApiErrorCode, type FluidCompany, type ProjectConfig, type ResolvedTursoConfig, type SelectedPageTemplate, TEMPLATES, TURSO_ERROR, type TemplateName, type TemplatePaths, type TemplateVariables, type TursoConfig, type TursoConfigSource, type TursoDatabase, type TursoError, type TursoOrg, type TursoProvisionCallbacks, copyTemplate, copyTemplateSafe, createCommand, createDatabase, createDatabaseToken, createDirectory, createDirectorySafe, plugin as default, deleteCloudRunService, deleteDatabase, deployToCloudRun, destroyCommand, directoryExists, ensureGroup, fetchLocations, fileExists, getGcpProject, getInstallCommand, getRunCommand, getSdkVersion, getSdkVersionSafe, getTemplatePaths, installDependencies, isTemplateName, parseOrgList, pathExists, promptProjectConfig, provisionDatabase, readFileSafe, resolveFluidApiKey, resolveTursoConfig, runPackageManager, validateFluidApiKey, validateGcloudAuth, validateGcloudInstalled, validateLocation, validateTursoConfig, writeFileSafe };
|
|
680
574
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/utils/package-manager.ts","../src/utils/
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/utils/package-manager.ts","../src/utils/file-system.ts","../src/utils/prompts.ts","../src/commands/create.ts","../src/commands/destroy.ts","../src/utils/cloud-run.ts","../src/utils/fluid-api.ts","../src/utils/turso.ts","../src/index.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -7,6 +7,7 @@ import prompts from "prompts";
|
|
|
7
7
|
import { existsSync } from "node:fs";
|
|
8
8
|
import { fileURLToPath } from "node:url";
|
|
9
9
|
import Handlebars from "handlebars";
|
|
10
|
+
import { failure, getErrorMessage, success } from "@fluid-app/fluid-cli";
|
|
10
11
|
import { execa } from "execa";
|
|
11
12
|
import fs from "fs-extra";
|
|
12
13
|
import path from "path";
|
|
@@ -99,133 +100,6 @@ async function promptProjectConfig(projectName, options) {
|
|
|
99
100
|
};
|
|
100
101
|
}
|
|
101
102
|
//#endregion
|
|
102
|
-
//#region src/utils/result.ts
|
|
103
|
-
/**
|
|
104
|
-
* Create a successful result
|
|
105
|
-
*/
|
|
106
|
-
function success(value) {
|
|
107
|
-
return {
|
|
108
|
-
success: true,
|
|
109
|
-
value
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Create a failed result
|
|
114
|
-
*/
|
|
115
|
-
function failure(error) {
|
|
116
|
-
return {
|
|
117
|
-
success: false,
|
|
118
|
-
error
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Type guard for successful results
|
|
123
|
-
*/
|
|
124
|
-
function isSuccess(result) {
|
|
125
|
-
return result.success === true;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Type guard for failed results
|
|
129
|
-
*/
|
|
130
|
-
function isFailure(result) {
|
|
131
|
-
return result.success === false;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Wrap a function that may throw into a Result-returning function
|
|
135
|
-
*/
|
|
136
|
-
function tryCatch(fn) {
|
|
137
|
-
try {
|
|
138
|
-
return success(fn());
|
|
139
|
-
} catch (error) {
|
|
140
|
-
return failure(error instanceof Error ? error : new Error(String(error)));
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Wrap an async function that may throw into a Result-returning function
|
|
145
|
-
*/
|
|
146
|
-
async function tryCatchAsync(fn) {
|
|
147
|
-
try {
|
|
148
|
-
return success(await fn());
|
|
149
|
-
} catch (error) {
|
|
150
|
-
return failure(error instanceof Error ? error : new Error(String(error)));
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Extract value from Result or throw error
|
|
155
|
-
* Use sparingly - prefer pattern matching with isSuccess/isFailure
|
|
156
|
-
*/
|
|
157
|
-
function unwrap(result) {
|
|
158
|
-
if (isSuccess(result)) return result.value;
|
|
159
|
-
throw result.error;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Extract value from Result or return a default value
|
|
163
|
-
*/
|
|
164
|
-
function unwrapOr(result, defaultValue) {
|
|
165
|
-
if (isSuccess(result)) return result.value;
|
|
166
|
-
return defaultValue;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Map over a successful Result value
|
|
170
|
-
*/
|
|
171
|
-
function mapResult(result, fn) {
|
|
172
|
-
if (isSuccess(result)) return success(fn(result.value));
|
|
173
|
-
return result;
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Map over a failed Result error
|
|
177
|
-
*/
|
|
178
|
-
function mapError(result, fn) {
|
|
179
|
-
if (isFailure(result)) return failure(fn(result.error));
|
|
180
|
-
return result;
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Type guard to check if a value is an Error instance
|
|
184
|
-
*
|
|
185
|
-
* @example
|
|
186
|
-
* ```ts
|
|
187
|
-
* catch (error) {
|
|
188
|
-
* if (isError(error)) {
|
|
189
|
-
* console.log(error.message); // TypeScript knows this is an Error
|
|
190
|
-
* }
|
|
191
|
-
* }
|
|
192
|
-
* ```
|
|
193
|
-
*/
|
|
194
|
-
function isError(value) {
|
|
195
|
-
return value instanceof Error;
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Type guard for Node.js system errors (with `code` property)
|
|
199
|
-
*
|
|
200
|
-
* @example
|
|
201
|
-
* ```ts
|
|
202
|
-
* catch (error) {
|
|
203
|
-
* if (isNodeError(error) && error.code === "ENOENT") {
|
|
204
|
-
* console.log("File not found");
|
|
205
|
-
* }
|
|
206
|
-
* }
|
|
207
|
-
* ```
|
|
208
|
-
*/
|
|
209
|
-
function isNodeError(value) {
|
|
210
|
-
return value instanceof Error && "code" in value;
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Extract error message safely from unknown catch parameter.
|
|
214
|
-
* Prefer type guards (isError, isNodeError) when you need the full error object.
|
|
215
|
-
*
|
|
216
|
-
* @example
|
|
217
|
-
* ```ts
|
|
218
|
-
* catch (error) {
|
|
219
|
-
* console.log("Error: " + getErrorMessage(error));
|
|
220
|
-
* }
|
|
221
|
-
* ```
|
|
222
|
-
*/
|
|
223
|
-
function getErrorMessage(error) {
|
|
224
|
-
if (error instanceof Error) return error.message;
|
|
225
|
-
if (typeof error === "string") return error;
|
|
226
|
-
return String(error);
|
|
227
|
-
}
|
|
228
|
-
//#endregion
|
|
229
103
|
//#region src/utils/file-system.ts
|
|
230
104
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
231
105
|
/**
|
|
@@ -645,17 +519,6 @@ function registerBuildCommand(ctx) {
|
|
|
645
519
|
}
|
|
646
520
|
//#endregion
|
|
647
521
|
//#region src/utils/turso.ts
|
|
648
|
-
/**
|
|
649
|
-
* Turso database provisioning utilities
|
|
650
|
-
*
|
|
651
|
-
* This module provides functions for provisioning Turso databases
|
|
652
|
-
* using the Turso Platform REST API for Fluid portal app deployments.
|
|
653
|
-
*
|
|
654
|
-
* Credential resolution order:
|
|
655
|
-
* 1. Environment variables (TURSO_API_TOKEN + TURSO_ORG) — CI/CD
|
|
656
|
-
* 2. --turso-org flag > single org > "fluid" org > current org > interactive prompt
|
|
657
|
-
* 3. Fail with instructions for both options
|
|
658
|
-
*/
|
|
659
522
|
const TURSO_API_BASE = "https://api.turso.tech/v1";
|
|
660
523
|
const TURSO_ERROR = {
|
|
661
524
|
MISSING_TOKEN: {
|
|
@@ -1110,12 +973,6 @@ async function provisionDatabase(config, projectName, location, callbacks) {
|
|
|
1110
973
|
//#endregion
|
|
1111
974
|
//#region src/utils/cloud-run.ts
|
|
1112
975
|
/**
|
|
1113
|
-
* Cloud Run deployment utilities
|
|
1114
|
-
*
|
|
1115
|
-
* This module provides functions for deploying Fluid portal apps to Google Cloud Run
|
|
1116
|
-
* using the gcloud CLI via execa for programmatic deployments.
|
|
1117
|
-
*/
|
|
1118
|
-
/**
|
|
1119
976
|
* Cloud Run error codes and default messages
|
|
1120
977
|
*/
|
|
1121
978
|
const CLOUD_RUN_ERRORS = {
|
|
@@ -1363,13 +1220,6 @@ async function deleteCloudRunService(config) {
|
|
|
1363
1220
|
}
|
|
1364
1221
|
//#endregion
|
|
1365
1222
|
//#region src/utils/fluid-api.ts
|
|
1366
|
-
/**
|
|
1367
|
-
* Fluid API validation utilities
|
|
1368
|
-
*
|
|
1369
|
-
* This module provides functions for validating Fluid API keys
|
|
1370
|
-
* before deploying or destroying infrastructure. Ensures the deployer
|
|
1371
|
-
* has a valid company token before touching Cloud Run or Turso resources.
|
|
1372
|
-
*/
|
|
1373
1223
|
const FLUID_API_BASE$1 = "https://api.fluid.app";
|
|
1374
1224
|
const FLUID_API_ERROR = {
|
|
1375
1225
|
MISSING_API_KEY: {
|
|
@@ -2225,6 +2075,6 @@ const plugin = {
|
|
|
2225
2075
|
}
|
|
2226
2076
|
};
|
|
2227
2077
|
//#endregion
|
|
2228
|
-
export { CLOUD_RUN_ERRORS, FILE_SYSTEM_ERRORS, FLUID_API_ERROR, TEMPLATES, TURSO_ERROR, copyTemplate, copyTemplateSafe, createCommand, createDatabase, createDatabaseToken, createDirectory, createDirectorySafe, plugin as default, deleteCloudRunService, deleteDatabase, deployToCloudRun, destroyCommand, directoryExists, ensureGroup,
|
|
2078
|
+
export { CLOUD_RUN_ERRORS, FILE_SYSTEM_ERRORS, FLUID_API_ERROR, TEMPLATES, TURSO_ERROR, copyTemplate, copyTemplateSafe, createCommand, createDatabase, createDatabaseToken, createDirectory, createDirectorySafe, plugin as default, deleteCloudRunService, deleteDatabase, deployToCloudRun, destroyCommand, directoryExists, ensureGroup, fetchLocations, fileExists, getGcpProject, getInstallCommand, getRunCommand, getSdkVersion, getSdkVersionSafe, getTemplatePaths, installDependencies, isTemplateName, parseOrgList, pathExists, promptProjectConfig, provisionDatabase, readFileSafe, resolveFluidApiKey, resolveTursoConfig, runPackageManager, validateFluidApiKey, validateGcloudAuth, validateGcloudInstalled, validateLocation, validateTursoConfig, writeFileSafe };
|
|
2229
2079
|
|
|
2230
2080
|
//# sourceMappingURL=index.mjs.map
|