@geekmidas/cli 1.10.28 → 1.10.30
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 +18 -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 +74 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +74 -21
- package/dist/index.mjs.map +1 -1
- package/dist/{openapi-CQCoLuzh.mjs → openapi-CTARkkkn.mjs} +2 -2
- package/dist/openapi-CTARkkkn.mjs.map +1 -0
- package/dist/{openapi-CBU4TEi-.cjs → openapi-ClA8lIhO.cjs} +2 -2
- package/dist/openapi-ClA8lIhO.cjs.map +1 -0
- package/dist/openapi.cjs +1 -1
- package/dist/openapi.mjs +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/generators/EndpointGenerator.ts +1 -1
- package/src/init/__tests__/generators.spec.ts +5 -3
- package/src/init/generators/package.ts +3 -0
- package/src/init/generators/test.ts +61 -17
- package/src/init/templates/index.ts +5 -0
- package/src/init/versions.ts +1 -1
- package/src/setup/fullstack-secrets.ts +11 -0
- package/dist/openapi-CBU4TEi-.cjs.map +0 -1
- package/dist/openapi-CQCoLuzh.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -3,9 +3,9 @@ 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
|
-
import { ConstructGenerator, EndpointGenerator, OPENAPI_OUTPUT_PATH, generateOpenApi, isPartitionedRoutes, normalizeRoutes, openapiCommand, resolveOpenApiConfig } from "./openapi-
|
|
8
|
+
import { ConstructGenerator, EndpointGenerator, OPENAPI_OUTPUT_PATH, generateOpenApi, isPartitionedRoutes, normalizeRoutes, openapiCommand, resolveOpenApiConfig } from "./openapi-CTARkkkn.mjs";
|
|
9
9
|
import { DokployApi } from "./dokploy-api-BIT0683o.mjs";
|
|
10
10
|
import { encryptSecrets } from "./encryption-DSkIlEZ6.mjs";
|
|
11
11
|
import { CachedStateProvider } from "./CachedStateProvider-C8A-cCm5.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.29";
|
|
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";
|
|
@@ -6806,7 +6806,7 @@ const GEEKMIDAS_VERSIONS = {
|
|
|
6806
6806
|
"@geekmidas/cache": "~1.1.0",
|
|
6807
6807
|
"@geekmidas/client": "~4.0.4",
|
|
6808
6808
|
"@geekmidas/cloud": "~1.0.0",
|
|
6809
|
-
"@geekmidas/constructs": "~3.0.
|
|
6809
|
+
"@geekmidas/constructs": "~3.0.6",
|
|
6810
6810
|
"@geekmidas/db": "~1.0.1",
|
|
6811
6811
|
"@geekmidas/emailkit": "~1.0.0",
|
|
6812
6812
|
"@geekmidas/envkit": "~1.0.4",
|
|
@@ -8933,6 +8933,10 @@ export const telescope = new Telescope({
|
|
|
8933
8933
|
*/
|
|
8934
8934
|
const OPENAPI_OUTPUT_PATH$1 = "./.gkm/openapi.ts";
|
|
8935
8935
|
/**
|
|
8936
|
+
* Endpoints output path (generated by gkm dev/build)
|
|
8937
|
+
*/
|
|
8938
|
+
const ENDPOINTS_OUTPUT_PATH = "./.gkm/server/endpoints.ts";
|
|
8939
|
+
/**
|
|
8936
8940
|
* All available templates
|
|
8937
8941
|
*/
|
|
8938
8942
|
const templates = {
|
|
@@ -9107,6 +9111,7 @@ function generatePackageJson(options, template) {
|
|
|
9107
9111
|
devDependencies$1["@types/pg"] = "~8.15.0";
|
|
9108
9112
|
devDependencies$1["@geekmidas/testkit"] = GEEKMIDAS_VERSIONS["@geekmidas/testkit"];
|
|
9109
9113
|
devDependencies$1["@faker-js/faker"] = "~9.8.0";
|
|
9114
|
+
devDependencies$1["kysely-ctl"] = "~0.10.0";
|
|
9110
9115
|
devDependencies$1["vite-tsconfig-paths"] = "~5.1.0";
|
|
9111
9116
|
}
|
|
9112
9117
|
if (monorepo) {
|
|
@@ -9131,7 +9136,10 @@ function generatePackageJson(options, template) {
|
|
|
9131
9136
|
version: "0.0.1",
|
|
9132
9137
|
private: true,
|
|
9133
9138
|
type: "module",
|
|
9134
|
-
exports: {
|
|
9139
|
+
exports: {
|
|
9140
|
+
"./client": OPENAPI_OUTPUT_PATH$1,
|
|
9141
|
+
"./endpoints": ENDPOINTS_OUTPUT_PATH
|
|
9142
|
+
},
|
|
9135
9143
|
scripts: scripts$1,
|
|
9136
9144
|
dependencies: sortObject(dependencies$1),
|
|
9137
9145
|
devDependencies: sortObject(devDependencies$1)
|
|
@@ -9161,6 +9169,29 @@ function generateSourceFiles(options, template) {
|
|
|
9161
9169
|
function generateTestFiles(options, _template) {
|
|
9162
9170
|
if (!options.database) return [];
|
|
9163
9171
|
return [
|
|
9172
|
+
{
|
|
9173
|
+
path: "kysely.config.ts",
|
|
9174
|
+
content: `import { Credentials } from '@geekmidas/envkit/credentials';
|
|
9175
|
+
import { PostgresDialect } from 'kysely';
|
|
9176
|
+
import { defineConfig } from 'kysely-ctl';
|
|
9177
|
+
import pg from 'pg';
|
|
9178
|
+
|
|
9179
|
+
export default defineConfig({
|
|
9180
|
+
dialect: new PostgresDialect({
|
|
9181
|
+
pool: new pg.Pool({
|
|
9182
|
+
password: Credentials.POSTGRES_PASSWORD,
|
|
9183
|
+
user: Credentials.POSTGRES_USER,
|
|
9184
|
+
database: Credentials.POSTGRES_DB,
|
|
9185
|
+
port: Number(Credentials.POSTGRES_PORT),
|
|
9186
|
+
host: Credentials.POSTGRES_HOST,
|
|
9187
|
+
}),
|
|
9188
|
+
}),
|
|
9189
|
+
migrations: {
|
|
9190
|
+
migrationFolder: './src/db/migrations',
|
|
9191
|
+
},
|
|
9192
|
+
});
|
|
9193
|
+
`
|
|
9194
|
+
},
|
|
9164
9195
|
{
|
|
9165
9196
|
path: "test/config.ts",
|
|
9166
9197
|
content: `import { it as itVitest } from 'vitest';
|
|
@@ -9182,30 +9213,52 @@ export const it = wrapVitestKyselyTransaction<Database>(itVitest, {
|
|
|
9182
9213
|
},
|
|
9183
9214
|
{
|
|
9184
9215
|
path: "test/globalSetup.ts",
|
|
9185
|
-
content: `import
|
|
9186
|
-
import
|
|
9216
|
+
content: `import fs from 'node:fs/promises';
|
|
9217
|
+
import path from 'node:path';
|
|
9218
|
+
import { Credentials } from '@geekmidas/envkit/credentials';
|
|
9187
9219
|
import { PostgresKyselyMigrator } from '@geekmidas/testkit/kysely';
|
|
9188
|
-
import
|
|
9220
|
+
import { runInitScript } from '@geekmidas/testkit/postgres';
|
|
9221
|
+
import { FileMigrationProvider, Kysely, PostgresDialect } from 'kysely';
|
|
9222
|
+
import pg from 'pg';
|
|
9189
9223
|
|
|
9190
|
-
export async function
|
|
9191
|
-
const
|
|
9192
|
-
|
|
9224
|
+
export default async function globalSetup() {
|
|
9225
|
+
const databaseUrl = Credentials.DATABASE_URL!;
|
|
9226
|
+
const migrationFolder = path.resolve(import.meta.dirname, '../db/migrations');
|
|
9193
9227
|
|
|
9194
|
-
|
|
9195
|
-
// (gkm test already rewrites DATABASE_URL to point to the _test database)
|
|
9196
|
-
const db = new Kysely<Database>({
|
|
9228
|
+
const db = new Kysely({
|
|
9197
9229
|
dialect: new PostgresDialect({
|
|
9198
|
-
pool: new pg.Pool({ connectionString:
|
|
9230
|
+
pool: new pg.Pool({ connectionString: databaseUrl }),
|
|
9199
9231
|
}),
|
|
9200
9232
|
});
|
|
9201
9233
|
|
|
9202
9234
|
const migrator = new PostgresKyselyMigrator({
|
|
9235
|
+
uri: databaseUrl,
|
|
9203
9236
|
db,
|
|
9204
|
-
|
|
9237
|
+
afterCreate: async (uri) => {
|
|
9238
|
+
const initScriptPath = path.resolve(process.cwd(), 'docker/postgres/init.sh');
|
|
9239
|
+
const dbUrl = new URL(Credentials.DATABASE_URL!);
|
|
9240
|
+
const apiUrl = new URL(Credentials.API_DATABASE_URL!);
|
|
9241
|
+
const authUrl = new URL(Credentials.AUTH_DATABASE_URL!);
|
|
9242
|
+
|
|
9243
|
+
const env = {
|
|
9244
|
+
POSTGRES_USER: dbUrl.username,
|
|
9245
|
+
POSTGRES_DB: dbUrl.pathname.slice(1),
|
|
9246
|
+
API_DB_PASSWORD: decodeURIComponent(apiUrl.password),
|
|
9247
|
+
AUTH_DB_PASSWORD: decodeURIComponent(authUrl.password),
|
|
9248
|
+
PGBOSS_DB_PASSWORD: Credentials.PGBOSS_DB_PASSWORD ?? 'pgboss-dev-password',
|
|
9249
|
+
};
|
|
9250
|
+
|
|
9251
|
+
await runInitScript(initScriptPath, uri, env);
|
|
9252
|
+
},
|
|
9253
|
+
provider: new FileMigrationProvider({
|
|
9254
|
+
fs,
|
|
9255
|
+
path,
|
|
9256
|
+
migrationFolder,
|
|
9257
|
+
}),
|
|
9205
9258
|
});
|
|
9206
9259
|
|
|
9207
|
-
await migrator.
|
|
9208
|
-
|
|
9260
|
+
const teardown = await migrator.start();
|
|
9261
|
+
return teardown;
|
|
9209
9262
|
}
|
|
9210
9263
|
`
|
|
9211
9264
|
},
|
|
@@ -12384,7 +12437,7 @@ program.command("secrets:push").description("Push secrets to remote provider (SS
|
|
|
12384
12437
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12385
12438
|
const { loadWorkspaceConfig: loadWorkspaceConfig$1 } = await import("./config.mjs");
|
|
12386
12439
|
const { pushSecrets: pushSecrets$1 } = await import("./sync-COnAugP-.mjs");
|
|
12387
|
-
const { reconcileMissingSecrets } = await import("./reconcile-
|
|
12440
|
+
const { reconcileMissingSecrets } = await import("./reconcile-DAAKa0YR.mjs");
|
|
12388
12441
|
const { readStageSecrets: readStageSecrets$1, writeStageSecrets: writeStageSecrets$1 } = await import("./storage-Cs4WBsc4.mjs");
|
|
12389
12442
|
const { workspace } = await loadWorkspaceConfig$1();
|
|
12390
12443
|
const secrets = await readStageSecrets$1(options.stage, workspace.root);
|
|
@@ -12410,7 +12463,7 @@ program.command("secrets:pull").description("Pull secrets from remote provider (
|
|
|
12410
12463
|
const { loadWorkspaceConfig: loadWorkspaceConfig$1 } = await import("./config.mjs");
|
|
12411
12464
|
const { pullSecrets: pullSecrets$1 } = await import("./sync-COnAugP-.mjs");
|
|
12412
12465
|
const { writeStageSecrets: writeStageSecrets$1 } = await import("./storage-Cs4WBsc4.mjs");
|
|
12413
|
-
const { reconcileMissingSecrets } = await import("./reconcile-
|
|
12466
|
+
const { reconcileMissingSecrets } = await import("./reconcile-DAAKa0YR.mjs");
|
|
12414
12467
|
const { workspace } = await loadWorkspaceConfig$1();
|
|
12415
12468
|
let secrets = await pullSecrets$1(options.stage, workspace);
|
|
12416
12469
|
if (!secrets) {
|
|
@@ -12435,7 +12488,7 @@ program.command("secrets:reconcile").description("Backfill missing custom secret
|
|
|
12435
12488
|
const globalOptions = program.opts();
|
|
12436
12489
|
if (globalOptions.cwd) process.chdir(globalOptions.cwd);
|
|
12437
12490
|
const { loadWorkspaceConfig: loadWorkspaceConfig$1 } = await import("./config.mjs");
|
|
12438
|
-
const { reconcileMissingSecrets } = await import("./reconcile-
|
|
12491
|
+
const { reconcileMissingSecrets } = await import("./reconcile-DAAKa0YR.mjs");
|
|
12439
12492
|
const { readStageSecrets: readStageSecrets$1, writeStageSecrets: writeStageSecrets$1 } = await import("./storage-Cs4WBsc4.mjs");
|
|
12440
12493
|
const { workspace } = await loadWorkspaceConfig$1();
|
|
12441
12494
|
const secrets = await readStageSecrets$1(options.stage, workspace.root);
|