@geekmidas/cli 0.9.0 → 0.12.0
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 +525 -0
- package/dist/bundler-DRXCw_YR.mjs +70 -0
- package/dist/bundler-DRXCw_YR.mjs.map +1 -0
- package/dist/bundler-WsEvH_b2.cjs +71 -0
- package/dist/bundler-WsEvH_b2.cjs.map +1 -0
- package/dist/{config-CFls09Ey.cjs → config-AmInkU7k.cjs} +10 -8
- package/dist/config-AmInkU7k.cjs.map +1 -0
- package/dist/{config-Bq72aj8e.mjs → config-DYULeEv8.mjs} +6 -4
- package/dist/config-DYULeEv8.mjs.map +1 -0
- package/dist/config.cjs +1 -1
- package/dist/config.d.cts +2 -1
- package/dist/config.d.cts.map +1 -0
- package/dist/config.d.mts +2 -1
- package/dist/config.d.mts.map +1 -0
- package/dist/config.mjs +1 -1
- package/dist/encryption-C8H-38Yy.mjs +42 -0
- package/dist/encryption-C8H-38Yy.mjs.map +1 -0
- package/dist/encryption-Dyf_r1h-.cjs +44 -0
- package/dist/encryption-Dyf_r1h-.cjs.map +1 -0
- package/dist/index.cjs +2125 -184
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +2143 -197
- package/dist/index.mjs.map +1 -1
- package/dist/{openapi--vOy9mo4.mjs → openapi-BfFlOBCG.mjs} +812 -49
- package/dist/openapi-BfFlOBCG.mjs.map +1 -0
- package/dist/{openapi-CHhTPief.cjs → openapi-Bt_1FDpT.cjs} +805 -42
- package/dist/openapi-Bt_1FDpT.cjs.map +1 -0
- package/dist/{openapi-react-query-o5iMi8tz.cjs → openapi-react-query-B-sNWHFU.cjs} +5 -5
- package/dist/openapi-react-query-B-sNWHFU.cjs.map +1 -0
- package/dist/{openapi-react-query-CcciaVu5.mjs → openapi-react-query-B6XTeGqS.mjs} +5 -5
- package/dist/openapi-react-query-B6XTeGqS.mjs.map +1 -0
- package/dist/openapi-react-query.cjs +1 -1
- package/dist/openapi-react-query.d.cts.map +1 -0
- package/dist/openapi-react-query.d.mts.map +1 -0
- package/dist/openapi-react-query.mjs +1 -1
- package/dist/openapi.cjs +2 -2
- package/dist/openapi.d.cts +1 -1
- package/dist/openapi.d.cts.map +1 -0
- package/dist/openapi.d.mts +1 -1
- package/dist/openapi.d.mts.map +1 -0
- package/dist/openapi.mjs +2 -2
- package/dist/storage-BUYQJgz7.cjs +4 -0
- package/dist/storage-BXoJvmv2.cjs +149 -0
- package/dist/storage-BXoJvmv2.cjs.map +1 -0
- package/dist/storage-C9PU_30f.mjs +101 -0
- package/dist/storage-C9PU_30f.mjs.map +1 -0
- package/dist/storage-DLJAYxzJ.mjs +3 -0
- package/dist/{types-b-vwGpqc.d.cts → types-BR0M2v_c.d.mts} +100 -1
- package/dist/types-BR0M2v_c.d.mts.map +1 -0
- package/dist/{types-DXgiA1sF.d.mts → types-BhkZc-vm.d.cts} +100 -1
- package/dist/types-BhkZc-vm.d.cts.map +1 -0
- package/examples/cron-example.ts +27 -27
- package/examples/env.ts +27 -27
- package/examples/function-example.ts +31 -31
- package/examples/gkm.config.json +20 -20
- package/examples/gkm.config.ts +8 -8
- package/examples/gkm.minimal.config.json +5 -5
- package/examples/gkm.production.config.json +25 -25
- package/examples/logger.ts +2 -2
- package/package.json +6 -6
- package/src/__tests__/EndpointGenerator.hooks.spec.ts +191 -191
- package/src/__tests__/config.spec.ts +55 -55
- package/src/__tests__/loadEnvFiles.spec.ts +93 -93
- package/src/__tests__/normalizeHooksConfig.spec.ts +58 -58
- package/src/__tests__/openapi-react-query.spec.ts +497 -497
- package/src/__tests__/openapi.spec.ts +428 -428
- package/src/__tests__/test-helpers.ts +77 -76
- package/src/auth/__tests__/credentials.spec.ts +204 -0
- package/src/auth/__tests__/index.spec.ts +168 -0
- package/src/auth/credentials.ts +187 -0
- package/src/auth/index.ts +226 -0
- package/src/build/__tests__/index-new.spec.ts +474 -474
- package/src/build/__tests__/manifests.spec.ts +333 -333
- package/src/build/bundler.ts +141 -0
- package/src/build/endpoint-analyzer.ts +236 -0
- package/src/build/handler-templates.ts +1253 -0
- package/src/build/index.ts +250 -179
- package/src/build/manifests.ts +52 -52
- package/src/build/providerResolver.ts +145 -145
- package/src/build/types.ts +64 -43
- package/src/config.ts +39 -37
- package/src/deploy/__tests__/docker.spec.ts +111 -0
- package/src/deploy/__tests__/dokploy.spec.ts +245 -0
- package/src/deploy/__tests__/init.spec.ts +662 -0
- package/src/deploy/docker.ts +128 -0
- package/src/deploy/dokploy.ts +204 -0
- package/src/deploy/index.ts +136 -0
- package/src/deploy/init.ts +484 -0
- package/src/deploy/types.ts +48 -0
- package/src/dev/__tests__/index.spec.ts +266 -266
- package/src/dev/index.ts +647 -593
- package/src/docker/__tests__/compose.spec.ts +531 -0
- package/src/docker/__tests__/templates.spec.ts +280 -0
- package/src/docker/compose.ts +273 -0
- package/src/docker/index.ts +230 -0
- package/src/docker/templates.ts +446 -0
- package/src/generators/CronGenerator.ts +72 -72
- package/src/generators/EndpointGenerator.ts +699 -398
- package/src/generators/FunctionGenerator.ts +84 -84
- package/src/generators/Generator.ts +72 -72
- package/src/generators/OpenApiTsGenerator.ts +589 -589
- package/src/generators/SubscriberGenerator.ts +124 -124
- package/src/generators/__tests__/CronGenerator.spec.ts +433 -433
- package/src/generators/__tests__/EndpointGenerator.spec.ts +532 -382
- package/src/generators/__tests__/FunctionGenerator.spec.ts +244 -244
- package/src/generators/__tests__/SubscriberGenerator.spec.ts +397 -382
- package/src/generators/index.ts +4 -4
- package/src/index.ts +628 -206
- package/src/init/__tests__/generators.spec.ts +334 -334
- package/src/init/__tests__/init.spec.ts +332 -332
- package/src/init/__tests__/utils.spec.ts +89 -89
- package/src/init/generators/config.ts +175 -175
- package/src/init/generators/docker.ts +41 -41
- package/src/init/generators/env.ts +72 -72
- package/src/init/generators/index.ts +1 -1
- package/src/init/generators/models.ts +64 -64
- package/src/init/generators/monorepo.ts +161 -161
- package/src/init/generators/package.ts +71 -71
- package/src/init/generators/source.ts +6 -6
- package/src/init/index.ts +203 -208
- package/src/init/templates/api.ts +115 -115
- package/src/init/templates/index.ts +75 -75
- package/src/init/templates/minimal.ts +98 -98
- package/src/init/templates/serverless.ts +89 -89
- package/src/init/templates/worker.ts +98 -98
- package/src/init/utils.ts +54 -56
- package/src/openapi-react-query.ts +194 -194
- package/src/openapi.ts +63 -63
- package/src/secrets/__tests__/encryption.spec.ts +226 -0
- package/src/secrets/__tests__/generator.spec.ts +319 -0
- package/src/secrets/__tests__/index.spec.ts +91 -0
- package/src/secrets/__tests__/storage.spec.ts +403 -0
- package/src/secrets/encryption.ts +91 -0
- package/src/secrets/generator.ts +164 -0
- package/src/secrets/index.ts +383 -0
- package/src/secrets/storage.ts +134 -0
- package/src/secrets/types.ts +53 -0
- package/src/types.ts +295 -176
- package/tsconfig.json +9 -0
- package/tsdown.config.ts +11 -8
- package/dist/config-Bq72aj8e.mjs.map +0 -1
- package/dist/config-CFls09Ey.cjs.map +0 -1
- package/dist/openapi--vOy9mo4.mjs.map +0 -1
- package/dist/openapi-CHhTPief.cjs.map +0 -1
- package/dist/openapi-react-query-CcciaVu5.mjs.map +0 -1
- package/dist/openapi-react-query-o5iMi8tz.cjs.map +0 -1
package/examples/env.ts
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
import { EnvironmentParser } from '@geekmidas/envkit';
|
|
2
2
|
|
|
3
3
|
export const envParser = new EnvironmentParser(process.env)
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
.create((get) => ({
|
|
5
|
+
// Database configuration
|
|
6
|
+
database: {
|
|
7
|
+
url: get('DATABASE_URL').string().url(),
|
|
8
|
+
maxConnections: get('DB_MAX_CONNECTIONS')
|
|
9
|
+
.string()
|
|
10
|
+
.transform(Number)
|
|
11
|
+
.default('10'),
|
|
12
|
+
},
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
// API configuration
|
|
15
|
+
api: {
|
|
16
|
+
port: get('PORT').string().transform(Number).default('3000'),
|
|
17
|
+
cors: {
|
|
18
|
+
origin: get('CORS_ORIGIN').string().default('*'),
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
// AWS configuration (for Lambda deployments)
|
|
23
|
+
aws: {
|
|
24
|
+
region: get('AWS_REGION').string().default('us-east-1'),
|
|
25
|
+
},
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
// Application settings
|
|
28
|
+
app: {
|
|
29
|
+
environment: get('NODE_ENV').string().default('development'),
|
|
30
|
+
logLevel: get('LOG_LEVEL').string().default('info'),
|
|
31
|
+
},
|
|
32
|
+
}))
|
|
33
|
+
.parse();
|
|
@@ -5,36 +5,36 @@ import { z } from 'zod';
|
|
|
5
5
|
* Example function that processes an order
|
|
6
6
|
*/
|
|
7
7
|
export const processOrder = f
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
8
|
+
.input(
|
|
9
|
+
z.object({
|
|
10
|
+
orderId: z.string(),
|
|
11
|
+
items: z.array(
|
|
12
|
+
z.object({
|
|
13
|
+
id: z.string(),
|
|
14
|
+
quantity: z.number().int().positive(),
|
|
15
|
+
}),
|
|
16
|
+
),
|
|
17
|
+
}),
|
|
18
|
+
)
|
|
19
|
+
.output(
|
|
20
|
+
z.object({
|
|
21
|
+
orderId: z.string(),
|
|
22
|
+
status: z.enum(['processing', 'completed', 'failed']),
|
|
23
|
+
processedAt: z.string().datetime(),
|
|
24
|
+
}),
|
|
25
|
+
)
|
|
26
|
+
.timeout(300000) // 5 minutes
|
|
27
|
+
.handle(async ({ input, services, logger }) => {
|
|
28
|
+
logger.info(`Processing order ${input.orderId}`);
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
// Process order logic here
|
|
31
|
+
for (const item of input.items) {
|
|
32
|
+
logger.info(`Processing item ${item.id}, quantity: ${item.quantity}`);
|
|
33
|
+
}
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
return {
|
|
36
|
+
orderId: input.orderId,
|
|
37
|
+
status: 'completed' as const,
|
|
38
|
+
processedAt: new Date().toISOString(),
|
|
39
|
+
};
|
|
40
|
+
});
|
package/examples/gkm.config.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
2
|
+
"routes": "./src/endpoints/**/*.ts",
|
|
3
|
+
"functions": "./src/functions/**/*.ts",
|
|
4
|
+
"crons": "./src/crons/**/*.ts",
|
|
5
|
+
"envParser": "./src/env.ts#envParser",
|
|
6
|
+
"logger": "./src/logger.ts#logger",
|
|
7
|
+
"providers": {
|
|
8
|
+
"aws": {
|
|
9
|
+
"apiGateway": {
|
|
10
|
+
"v1": false,
|
|
11
|
+
"v2": true
|
|
12
|
+
},
|
|
13
|
+
"lambda": {
|
|
14
|
+
"functions": true,
|
|
15
|
+
"crons": true
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"server": {
|
|
19
|
+
"enableOpenApi": true
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
22
|
}
|
package/examples/gkm.config.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { defineConfig } from '@geekmidas/cli/config';
|
|
2
2
|
|
|
3
3
|
export default defineConfig({
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
// Glob pattern to find endpoint files
|
|
5
|
+
routes: 'src/routes/**/*.ts',
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
// Environment parser configuration
|
|
8
|
+
// Format: path#exportName (if no #exportName, treats as default import)
|
|
9
|
+
envParser: './src/env.ts#envParser',
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
// Logger configuration
|
|
12
|
+
// Format: path#exportName (if no #exportName, treats as default import)
|
|
13
|
+
logger: './src/logger.ts#logger',
|
|
14
14
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"routes": "./src/endpoints/**/*.ts",
|
|
3
|
+
"functions": "./src/functions/**/*.ts",
|
|
4
|
+
"crons": "./src/crons/**/*.ts",
|
|
5
|
+
"envParser": "./src/env.ts#envParser",
|
|
6
|
+
"logger": "./src/logger.ts#logger"
|
|
7
7
|
}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
2
|
+
"routes": "./src/endpoints/**/*.ts",
|
|
3
|
+
"functions": "./src/functions/**/*.ts",
|
|
4
|
+
"crons": "./src/crons/**/*.ts",
|
|
5
|
+
"envParser": "./src/env.ts#envParser",
|
|
6
|
+
"logger": "./src/logger.ts#logger",
|
|
7
|
+
"providers": {
|
|
8
|
+
"aws": {
|
|
9
|
+
"apiGateway": {
|
|
10
|
+
"v2": {
|
|
11
|
+
"enabled": true,
|
|
12
|
+
"outputDir": "dist/api-gateway"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"lambda": {
|
|
16
|
+
"functions": {
|
|
17
|
+
"enabled": true,
|
|
18
|
+
"outputDir": "dist/functions"
|
|
19
|
+
},
|
|
20
|
+
"crons": {
|
|
21
|
+
"enabled": true,
|
|
22
|
+
"outputDir": "dist/crons"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
27
|
}
|
package/examples/logger.ts
CHANGED
|
@@ -2,8 +2,8 @@ import { ConsoleLogger } from '@geekmidas/logger/console';
|
|
|
2
2
|
|
|
3
3
|
// Create a console logger instance
|
|
4
4
|
export const logger = new ConsoleLogger({
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
level: process.env.LOG_LEVEL || 'info',
|
|
6
|
+
pretty: process.env.NODE_ENV !== 'production',
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// You can also export a default logger
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geekmidas/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "CLI tools for building Lambda handlers, server applications, and generating OpenAPI specs",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -50,14 +50,14 @@
|
|
|
50
50
|
"typescript": "^5.8.2",
|
|
51
51
|
"vitest": "^3.2.4",
|
|
52
52
|
"zod": "~4.1.13",
|
|
53
|
-
"@geekmidas/testkit": "0.
|
|
53
|
+
"@geekmidas/testkit": "0.6.0"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
|
-
"@geekmidas/constructs": "~0.
|
|
57
|
-
"@geekmidas/logger": "~0.
|
|
58
|
-
"@geekmidas/envkit": "~0.2.0",
|
|
56
|
+
"@geekmidas/constructs": "~0.5.0",
|
|
57
|
+
"@geekmidas/logger": "~0.4.0",
|
|
59
58
|
"@geekmidas/schema": "~0.1.0",
|
|
60
|
-
"@geekmidas/
|
|
59
|
+
"@geekmidas/envkit": "~0.3.0",
|
|
60
|
+
"@geekmidas/telescope": "~0.4.0"
|
|
61
61
|
},
|
|
62
62
|
"peerDependenciesMeta": {
|
|
63
63
|
"@geekmidas/telescope": {
|