@geekmidas/cli 1.10.28 → 1.10.29
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/CHANGELOG.md +9 -0
- package/dist/{fullstack-secrets-CsxU84eN.cjs → fullstack-secrets-Bchl2MDd.cjs} +2 -1
- package/dist/{fullstack-secrets-CsxU84eN.cjs.map → fullstack-secrets-Bchl2MDd.cjs.map} +1 -1
- package/dist/{fullstack-secrets-BDE7Sk93.mjs → fullstack-secrets-P84v8zWn.mjs} +2 -1
- package/dist/{fullstack-secrets-BDE7Sk93.mjs.map → fullstack-secrets-P84v8zWn.mjs.map} +1 -1
- package/dist/index.cjs +64 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +64 -18
- package/dist/index.mjs.map +1 -1
- package/dist/{reconcile-DF8t4HC7.cjs → reconcile-CZtzdrnc.cjs} +2 -2
- package/dist/{reconcile-DF8t4HC7.cjs.map → reconcile-CZtzdrnc.cjs.map} +1 -1
- package/dist/{reconcile-BjWhjfSp.mjs → reconcile-DAAKa0YR.mjs} +2 -2
- package/dist/{reconcile-BjWhjfSp.mjs.map → reconcile-DAAKa0YR.mjs.map} +1 -1
- package/package.json +5 -5
- package/src/init/__tests__/generators.spec.ts +5 -3
- package/src/init/generators/package.ts +1 -0
- package/src/init/generators/test.ts +61 -17
- package/src/setup/fullstack-secrets.ts +11 -0
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { __require } from "./chunk-Duj1WY3L.mjs";
|
|
|
3
3
|
import { getAppBuildOrder, getDependencyEnvVars, getDeployTargetError, isDeployTargetSupported } from "./workspace-D4z4A4cq.mjs";
|
|
4
4
|
import { getAppNameFromCwd, loadAppConfig, loadConfig, loadWorkspaceAppInfo, loadWorkspaceConfig, parseModuleConfig } from "./config-jsRYHOHU.mjs";
|
|
5
5
|
import { getCredentialsPath, getDokployCredentials, getDokployRegistryId, getDokployToken, removeDokployCredentials, storeDokployCredentials, storeDokployRegistryId } from "./credentials-s1kLcIzK.mjs";
|
|
6
|
-
import { createStageSecrets, generateConnectionUrls, generateDbPassword, generateDbUrl, generateFullstackCustomSecrets, generateLocalStackCredentials, generatePgBossUrl, generateSecurePassword, generateServiceCredentials, rotateServicePassword, writeDockerEnvFromSecrets } from "./fullstack-secrets-
|
|
6
|
+
import { createStageSecrets, generateConnectionUrls, generateDbPassword, generateDbUrl, generateFullstackCustomSecrets, generateLocalStackCredentials, generatePgBossUrl, generateSecurePassword, generateServiceCredentials, rotateServicePassword, writeDockerEnvFromSecrets } from "./fullstack-secrets-P84v8zWn.mjs";
|
|
7
7
|
import { getKeyPath, maskPassword, readStageSecrets, secretsExist, setCustomSecret, toEmbeddableSecrets, writeStageSecrets } from "./storage-dbb9RyBl.mjs";
|
|
8
8
|
import { ConstructGenerator, EndpointGenerator, OPENAPI_OUTPUT_PATH, generateOpenApi, isPartitionedRoutes, normalizeRoutes, openapiCommand, resolveOpenApiConfig } from "./openapi-CQCoLuzh.mjs";
|
|
9
9
|
import { DokployApi } from "./dokploy-api-BIT0683o.mjs";
|
|
@@ -35,7 +35,7 @@ import prompts from "prompts";
|
|
|
35
35
|
|
|
36
36
|
//#region package.json
|
|
37
37
|
var name = "@geekmidas/cli";
|
|
38
|
-
var version = "1.10.
|
|
38
|
+
var version = "1.10.28";
|
|
39
39
|
var description = "CLI tools for building Lambda handlers, server applications, and generating OpenAPI specs";
|
|
40
40
|
var private$1 = false;
|
|
41
41
|
var type = "module";
|
|
@@ -9107,6 +9107,7 @@ function generatePackageJson(options, template) {
|
|
|
9107
9107
|
devDependencies$1["@types/pg"] = "~8.15.0";
|
|
9108
9108
|
devDependencies$1["@geekmidas/testkit"] = GEEKMIDAS_VERSIONS["@geekmidas/testkit"];
|
|
9109
9109
|
devDependencies$1["@faker-js/faker"] = "~9.8.0";
|
|
9110
|
+
devDependencies$1["kysely-ctl"] = "~0.10.0";
|
|
9110
9111
|
devDependencies$1["vite-tsconfig-paths"] = "~5.1.0";
|
|
9111
9112
|
}
|
|
9112
9113
|
if (monorepo) {
|
|
@@ -9161,6 +9162,29 @@ function generateSourceFiles(options, template) {
|
|
|
9161
9162
|
function generateTestFiles(options, _template) {
|
|
9162
9163
|
if (!options.database) return [];
|
|
9163
9164
|
return [
|
|
9165
|
+
{
|
|
9166
|
+
path: "kysely.config.ts",
|
|
9167
|
+
content: `import { Credentials } from '@geekmidas/envkit/credentials';
|
|
9168
|
+
import { PostgresDialect } from 'kysely';
|
|
9169
|
+
import { defineConfig } from 'kysely-ctl';
|
|
9170
|
+
import pg from 'pg';
|
|
9171
|
+
|
|
9172
|
+
export default defineConfig({
|
|
9173
|
+
dialect: new PostgresDialect({
|
|
9174
|
+
pool: new pg.Pool({
|
|
9175
|
+
password: Credentials.POSTGRES_PASSWORD,
|
|
9176
|
+
user: Credentials.POSTGRES_USER,
|
|
9177
|
+
database: Credentials.POSTGRES_DB,
|
|
9178
|
+
port: Number(Credentials.POSTGRES_PORT),
|
|
9179
|
+
host: Credentials.POSTGRES_HOST,
|
|
9180
|
+
}),
|
|
9181
|
+
}),
|
|
9182
|
+
migrations: {
|
|
9183
|
+
migrationFolder: './src/db/migrations',
|
|
9184
|
+
},
|
|
9185
|
+
});
|
|
9186
|
+
`
|
|
9187
|
+
},
|
|
9164
9188
|
{
|
|
9165
9189
|
path: "test/config.ts",
|
|
9166
9190
|
content: `import { it as itVitest } from 'vitest';
|
|
@@ -9182,30 +9206,52 @@ export const it = wrapVitestKyselyTransaction<Database>(itVitest, {
|
|
|
9182
9206
|
},
|
|
9183
9207
|
{
|
|
9184
9208
|
path: "test/globalSetup.ts",
|
|
9185
|
-
content: `import
|
|
9186
|
-
import
|
|
9209
|
+
content: `import fs from 'node:fs/promises';
|
|
9210
|
+
import path from 'node:path';
|
|
9211
|
+
import { Credentials } from '@geekmidas/envkit/credentials';
|
|
9187
9212
|
import { PostgresKyselyMigrator } from '@geekmidas/testkit/kysely';
|
|
9188
|
-
import
|
|
9213
|
+
import { runInitScript } from '@geekmidas/testkit/postgres';
|
|
9214
|
+
import { FileMigrationProvider, Kysely, PostgresDialect } from 'kysely';
|
|
9215
|
+
import pg from 'pg';
|
|
9189
9216
|
|
|
9190
|
-
export async function
|
|
9191
|
-
const
|
|
9192
|
-
|
|
9217
|
+
export default async function globalSetup() {
|
|
9218
|
+
const databaseUrl = Credentials.DATABASE_URL!;
|
|
9219
|
+
const migrationFolder = path.resolve(import.meta.dirname, '../db/migrations');
|
|
9193
9220
|
|
|
9194
|
-
|
|
9195
|
-
// (gkm test already rewrites DATABASE_URL to point to the _test database)
|
|
9196
|
-
const db = new Kysely<Database>({
|
|
9221
|
+
const db = new Kysely({
|
|
9197
9222
|
dialect: new PostgresDialect({
|
|
9198
|
-
pool: new pg.Pool({ connectionString:
|
|
9223
|
+
pool: new pg.Pool({ connectionString: databaseUrl }),
|
|
9199
9224
|
}),
|
|
9200
9225
|
});
|
|
9201
9226
|
|
|
9202
9227
|
const migrator = new PostgresKyselyMigrator({
|
|
9228
|
+
uri: databaseUrl,
|
|
9203
9229
|
db,
|
|
9204
|
-
|
|
9230
|
+
afterCreate: async (uri) => {
|
|
9231
|
+
const initScriptPath = path.resolve(process.cwd(), 'docker/postgres/init.sh');
|
|
9232
|
+
const dbUrl = new URL(Credentials.DATABASE_URL!);
|
|
9233
|
+
const apiUrl = new URL(Credentials.API_DATABASE_URL!);
|
|
9234
|
+
const authUrl = new URL(Credentials.AUTH_DATABASE_URL!);
|
|
9235
|
+
|
|
9236
|
+
const env = {
|
|
9237
|
+
POSTGRES_USER: dbUrl.username,
|
|
9238
|
+
POSTGRES_DB: dbUrl.pathname.slice(1),
|
|
9239
|
+
API_DB_PASSWORD: decodeURIComponent(apiUrl.password),
|
|
9240
|
+
AUTH_DB_PASSWORD: decodeURIComponent(authUrl.password),
|
|
9241
|
+
PGBOSS_DB_PASSWORD: Credentials.PGBOSS_DB_PASSWORD ?? 'pgboss-dev-password',
|
|
9242
|
+
};
|
|
9243
|
+
|
|
9244
|
+
await runInitScript(initScriptPath, uri, env);
|
|
9245
|
+
},
|
|
9246
|
+
provider: new FileMigrationProvider({
|
|
9247
|
+
fs,
|
|
9248
|
+
path,
|
|
9249
|
+
migrationFolder,
|
|
9250
|
+
}),
|
|
9205
9251
|
});
|
|
9206
9252
|
|
|
9207
|
-
await migrator.
|
|
9208
|
-
|
|
9253
|
+
const teardown = await migrator.start();
|
|
9254
|
+
return teardown;
|
|
9209
9255
|
}
|
|
9210
9256
|
`
|
|
9211
9257
|
},
|
|
@@ -12384,7 +12430,7 @@ program.command("secrets:push").description("Push secrets to remote provider (SS
|
|
|
12384
12430
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12385
12431
|
const { loadWorkspaceConfig: loadWorkspaceConfig$1 } = await import("./config.mjs");
|
|
12386
12432
|
const { pushSecrets: pushSecrets$1 } = await import("./sync-COnAugP-.mjs");
|
|
12387
|
-
const { reconcileMissingSecrets } = await import("./reconcile-
|
|
12433
|
+
const { reconcileMissingSecrets } = await import("./reconcile-DAAKa0YR.mjs");
|
|
12388
12434
|
const { readStageSecrets: readStageSecrets$1, writeStageSecrets: writeStageSecrets$1 } = await import("./storage-Cs4WBsc4.mjs");
|
|
12389
12435
|
const { workspace } = await loadWorkspaceConfig$1();
|
|
12390
12436
|
const secrets = await readStageSecrets$1(options.stage, workspace.root);
|
|
@@ -12410,7 +12456,7 @@ program.command("secrets:pull").description("Pull secrets from remote provider (
|
|
|
12410
12456
|
const { loadWorkspaceConfig: loadWorkspaceConfig$1 } = await import("./config.mjs");
|
|
12411
12457
|
const { pullSecrets: pullSecrets$1 } = await import("./sync-COnAugP-.mjs");
|
|
12412
12458
|
const { writeStageSecrets: writeStageSecrets$1 } = await import("./storage-Cs4WBsc4.mjs");
|
|
12413
|
-
const { reconcileMissingSecrets } = await import("./reconcile-
|
|
12459
|
+
const { reconcileMissingSecrets } = await import("./reconcile-DAAKa0YR.mjs");
|
|
12414
12460
|
const { workspace } = await loadWorkspaceConfig$1();
|
|
12415
12461
|
let secrets = await pullSecrets$1(options.stage, workspace);
|
|
12416
12462
|
if (!secrets) {
|
|
@@ -12435,7 +12481,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
12435
12481
|
const globalOptions = program.opts();
|
|
12436
12482
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12437
12483
|
const { loadWorkspaceConfig: loadWorkspaceConfig$1 } = await import("./config.mjs");
|
|
12438
|
-
const { reconcileMissingSecrets } = await import("./reconcile-
|
|
12484
|
+
const { reconcileMissingSecrets } = await import("./reconcile-DAAKa0YR.mjs");
|
|
12439
12485
|
const { readStageSecrets: readStageSecrets$1, writeStageSecrets: writeStageSecrets$1 } = await import("./storage-Cs4WBsc4.mjs");
|
|
12440
12486
|
const { workspace } = await loadWorkspaceConfig$1();
|
|
12441
12487
|
const secrets = await readStageSecrets$1(options.stage, workspace.root);
|