@geekmidas/cli 9.0.2 → 9.1.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/CHANGELOG.md +17 -0
- package/dist/config.d.cts +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/{index-DTpkeFb8.d.cts → index-CoVW_fFS.d.cts} +2 -2
- package/dist/{index-Bw548Bta.d.mts.map → index-CoVW_fFS.d.cts.map} +1 -1
- package/dist/{index-Bw548Bta.d.mts → index-oWibAYQY.d.mts} +2 -2
- package/dist/{index-DTpkeFb8.d.cts.map → index-oWibAYQY.d.mts.map} +1 -1
- package/dist/index.cjs +26 -26
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +26 -26
- package/dist/index.mjs.map +1 -1
- package/dist/workspace/index.d.cts +1 -1
- package/dist/workspace/index.d.mts +1 -1
- package/dist/workspace-CQTT7HJQ.cjs.map +1 -1
- package/dist/workspace-D-37Ylqo.mjs.map +1 -1
- package/package.json +9 -9
- package/src/__tests__/test-helpers.ts +9 -10
- package/src/docker/__tests__/compose.spec.ts +3 -3
- package/src/docker/compose.ts +8 -4
- package/src/init/__tests__/generators.spec.ts +3 -1
- package/src/init/generators/docker.ts +1 -1
- package/src/init/versions.ts +19 -19
- package/src/workspace/types.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geekmidas/cli",
|
|
3
|
-
"version": "9.0
|
|
3
|
+
"version": "9.1.0",
|
|
4
4
|
"description": "CLI tools for building Lambda handlers, server applications, and generating OpenAPI specs",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -81,12 +81,12 @@
|
|
|
81
81
|
"prompts": "~2.4.2",
|
|
82
82
|
"tsx": "~4.20.3",
|
|
83
83
|
"yaml": "~2.8.2",
|
|
84
|
-
"@geekmidas/constructs": "~9.0
|
|
85
|
-
"@geekmidas/envkit": "~9.0
|
|
86
|
-
"@geekmidas/errors": "~9.0
|
|
87
|
-
"@geekmidas/logger": "~9.0
|
|
88
|
-
"@geekmidas/manifest": "9.0
|
|
89
|
-
"@geekmidas/schema": "~9.0
|
|
84
|
+
"@geekmidas/constructs": "~9.1.0",
|
|
85
|
+
"@geekmidas/envkit": "~9.1.0",
|
|
86
|
+
"@geekmidas/errors": "~9.1.0",
|
|
87
|
+
"@geekmidas/logger": "~9.1.0",
|
|
88
|
+
"@geekmidas/manifest": "9.1.0",
|
|
89
|
+
"@geekmidas/schema": "~9.1.0"
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
92
|
"@types/lodash.kebabcase": "^4.1.9",
|
|
@@ -96,10 +96,10 @@
|
|
|
96
96
|
"typescript": "^5.8.2",
|
|
97
97
|
"vitest": "^3.2.4",
|
|
98
98
|
"zod": "~4.1.13",
|
|
99
|
-
"@geekmidas/testkit": "9.0
|
|
99
|
+
"@geekmidas/testkit": "9.1.0"
|
|
100
100
|
},
|
|
101
101
|
"peerDependencies": {
|
|
102
|
-
"@geekmidas/telescope": "
|
|
102
|
+
"@geekmidas/telescope": "^9.1.0"
|
|
103
103
|
},
|
|
104
104
|
"peerDependenciesMeta": {
|
|
105
105
|
"@geekmidas/telescope": {
|
|
@@ -119,16 +119,15 @@ export const ${exportName} = new CronBuilder()
|
|
|
119
119
|
export function createTestEndpoint(path: string, method: HttpMethod = 'GET') {
|
|
120
120
|
const m = method.toLowerCase() as Lowercase<HttpMethod>;
|
|
121
121
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
122
|
-
const builder = (e as any)[m](path);
|
|
123
|
-
builder.output(z.object({ message: z.string() }));
|
|
122
|
+
const builder = (e as any)[m](path).output(z.object({ message: z.string() }));
|
|
124
123
|
return builder.handle(async () => ({ message: `Hello from ${path}` }));
|
|
125
124
|
}
|
|
126
125
|
|
|
127
126
|
export function createTestFunction(timeout: number = 30) {
|
|
128
|
-
const builder = new FunctionBuilder()
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
127
|
+
const builder = new FunctionBuilder()
|
|
128
|
+
.input(z.object({ name: z.string() }))
|
|
129
|
+
.output(z.object({ greeting: z.string() }))
|
|
130
|
+
.timeout(timeout);
|
|
132
131
|
return builder.handle(async ({ input }: any) => ({
|
|
133
132
|
greeting: `Hello, ${input.name}!`,
|
|
134
133
|
}));
|
|
@@ -138,10 +137,10 @@ export function createTestCron(
|
|
|
138
137
|
schedule: ScheduleExpression = 'rate(1 hour)',
|
|
139
138
|
timeout: number = 30,
|
|
140
139
|
) {
|
|
141
|
-
const builder = new CronBuilder()
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
140
|
+
const builder = new CronBuilder()
|
|
141
|
+
.schedule(schedule)
|
|
142
|
+
.output(z.object({ processed: z.number() }))
|
|
143
|
+
.timeout(timeout);
|
|
145
144
|
return builder.handle(async () => {
|
|
146
145
|
return { processed: 10 };
|
|
147
146
|
});
|
|
@@ -383,7 +383,7 @@ describe('generateDockerCompose', () => {
|
|
|
383
383
|
services: { minio: { version: 'RELEASE.2024-01-01' } },
|
|
384
384
|
});
|
|
385
385
|
|
|
386
|
-
expect(yaml).toContain('image:
|
|
386
|
+
expect(yaml).toContain('image: pgsty/minio:RELEASE.2024-01-01');
|
|
387
387
|
});
|
|
388
388
|
|
|
389
389
|
it('should configure minio credentials', () => {
|
|
@@ -1067,7 +1067,7 @@ describe('generateWorkspaceCompose', () => {
|
|
|
1067
1067
|
const yaml = generateWorkspaceCompose(workspace);
|
|
1068
1068
|
|
|
1069
1069
|
expect(yaml).toContain('minio:');
|
|
1070
|
-
expect(yaml).toContain('image:
|
|
1070
|
+
expect(yaml).toContain('image: pgsty/minio:RELEASE.2026-08-04T00-00-00Z');
|
|
1071
1071
|
expect(yaml).toContain('container_name: test-workspace-minio');
|
|
1072
1072
|
});
|
|
1073
1073
|
|
|
@@ -1108,7 +1108,7 @@ describe('generateWorkspaceCompose', () => {
|
|
|
1108
1108
|
});
|
|
1109
1109
|
const yaml = generateWorkspaceCompose(workspace);
|
|
1110
1110
|
|
|
1111
|
-
expect(yaml).toContain('image:
|
|
1111
|
+
expect(yaml).toContain('image: pgsty/minio:RELEASE.2024-01-01');
|
|
1112
1112
|
});
|
|
1113
1113
|
});
|
|
1114
1114
|
|
package/src/docker/compose.ts
CHANGED
|
@@ -13,7 +13,7 @@ export const DEFAULT_SERVICE_IMAGES: Record<ComposeServiceName, string> = {
|
|
|
13
13
|
postgres: 'postgres',
|
|
14
14
|
redis: 'redis',
|
|
15
15
|
rabbitmq: 'rabbitmq',
|
|
16
|
-
minio: '
|
|
16
|
+
minio: 'pgsty/minio',
|
|
17
17
|
mailpit: 'axllent/mailpit',
|
|
18
18
|
localstack: 'localstack/localstack',
|
|
19
19
|
};
|
|
@@ -23,7 +23,11 @@ export const DEFAULT_SERVICE_VERSIONS: Record<ComposeServiceName, string> = {
|
|
|
23
23
|
postgres: '18-alpine',
|
|
24
24
|
redis: '7-alpine',
|
|
25
25
|
rabbitmq: '3-management-alpine',
|
|
26
|
-
|
|
26
|
+
// Pinned, unlike its neighbours, and deliberately: MinIO took their images
|
|
27
|
+
// off Docker Hub and then put Quay behind a login. The image is pgsty's
|
|
28
|
+
// community build of the same binary, and a pin means a move like that
|
|
29
|
+
// breaks one version bump rather than every project that pulls.
|
|
30
|
+
minio: 'RELEASE.2026-08-04T00-00-00Z',
|
|
27
31
|
mailpit: 'latest',
|
|
28
32
|
localstack: 'latest',
|
|
29
33
|
};
|
|
@@ -647,7 +651,7 @@ function getInfraServiceImage(
|
|
|
647
651
|
const defaults: Record<'postgres' | 'redis' | 'minio', string> = {
|
|
648
652
|
postgres: 'postgres:18-alpine',
|
|
649
653
|
redis: 'redis:7-alpine',
|
|
650
|
-
minio: '
|
|
654
|
+
minio: 'pgsty/minio:RELEASE.2026-08-04T00-00-00Z',
|
|
651
655
|
};
|
|
652
656
|
|
|
653
657
|
if (!config || config === true) {
|
|
@@ -662,7 +666,7 @@ function getInfraServiceImage(
|
|
|
662
666
|
const baseImages: Record<'postgres' | 'redis' | 'minio', string> = {
|
|
663
667
|
postgres: 'postgres',
|
|
664
668
|
redis: 'redis',
|
|
665
|
-
minio: '
|
|
669
|
+
minio: 'pgsty/minio',
|
|
666
670
|
};
|
|
667
671
|
return `${baseImages[serviceName]}:${config.version}`;
|
|
668
672
|
}
|
|
@@ -263,7 +263,9 @@ describe('generateDockerFiles', () => {
|
|
|
263
263
|
};
|
|
264
264
|
const files = generateDockerFiles(options, minimalTemplate);
|
|
265
265
|
expect(files[0].content).toContain('minio');
|
|
266
|
-
expect(files[0].content).toContain(
|
|
266
|
+
expect(files[0].content).toContain(
|
|
267
|
+
'pgsty/minio:RELEASE.2026-08-04T00-00-00Z',
|
|
268
|
+
);
|
|
267
269
|
expect(files[0].content).toContain("'${MINIO_API_HOST_PORT:-9000}:9000'");
|
|
268
270
|
expect(files[0].content).toContain(
|
|
269
271
|
"'${MINIO_CONSOLE_HOST_PORT:-9001}:9001'",
|
|
@@ -163,7 +163,7 @@ export function generateDockerFiles(
|
|
|
163
163
|
// MinIO for S3-compatible object storage
|
|
164
164
|
if (options.services?.storage) {
|
|
165
165
|
services.push(` minio:
|
|
166
|
-
image:
|
|
166
|
+
image: pgsty/minio:RELEASE.2026-08-04T00-00-00Z
|
|
167
167
|
container_name: ${options.name}-minio
|
|
168
168
|
restart: unless-stopped
|
|
169
169
|
entrypoint: sh
|
package/src/init/versions.ts
CHANGED
|
@@ -27,25 +27,25 @@ export const CLI_VERSION = `~${pkg.version}`;
|
|
|
27
27
|
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
28
28
|
*/
|
|
29
29
|
export const GEEKMIDAS_VERSIONS = {
|
|
30
|
-
'@geekmidas/audit': '~9.0.
|
|
31
|
-
'@geekmidas/auth': '~9.0.
|
|
32
|
-
'@geekmidas/cache': '~9.0.
|
|
33
|
-
'@geekmidas/client': '~9.0.
|
|
34
|
-
'@geekmidas/cloud': '~9.0.
|
|
35
|
-
'@geekmidas/constructs': '~9.0.
|
|
36
|
-
'@geekmidas/db': '~9.0.
|
|
37
|
-
'@geekmidas/emailkit': '~9.0.
|
|
38
|
-
'@geekmidas/envkit': '~9.0.
|
|
39
|
-
'@geekmidas/errors': '~9.0.
|
|
40
|
-
'@geekmidas/events': '~9.0.
|
|
41
|
-
'@geekmidas/logger': '~9.0.
|
|
42
|
-
'@geekmidas/rate-limit': '~9.0.
|
|
43
|
-
'@geekmidas/schema': '~9.0.
|
|
44
|
-
'@geekmidas/services': '~9.0.
|
|
45
|
-
'@geekmidas/storage': '~9.0.
|
|
46
|
-
'@geekmidas/studio': '~9.0.
|
|
47
|
-
'@geekmidas/telescope': '~9.0.
|
|
48
|
-
'@geekmidas/testkit': '~9.0.
|
|
30
|
+
'@geekmidas/audit': '~9.0.2',
|
|
31
|
+
'@geekmidas/auth': '~9.0.2',
|
|
32
|
+
'@geekmidas/cache': '~9.0.2',
|
|
33
|
+
'@geekmidas/client': '~9.0.2',
|
|
34
|
+
'@geekmidas/cloud': '~9.0.2',
|
|
35
|
+
'@geekmidas/constructs': '~9.0.2',
|
|
36
|
+
'@geekmidas/db': '~9.0.2',
|
|
37
|
+
'@geekmidas/emailkit': '~9.0.2',
|
|
38
|
+
'@geekmidas/envkit': '~9.0.2',
|
|
39
|
+
'@geekmidas/errors': '~9.0.2',
|
|
40
|
+
'@geekmidas/events': '~9.0.2',
|
|
41
|
+
'@geekmidas/logger': '~9.0.2',
|
|
42
|
+
'@geekmidas/rate-limit': '~9.0.2',
|
|
43
|
+
'@geekmidas/schema': '~9.0.2',
|
|
44
|
+
'@geekmidas/services': '~9.0.2',
|
|
45
|
+
'@geekmidas/storage': '~9.0.2',
|
|
46
|
+
'@geekmidas/studio': '~9.0.2',
|
|
47
|
+
'@geekmidas/telescope': '~9.0.2',
|
|
48
|
+
'@geekmidas/testkit': '~9.0.2',
|
|
49
49
|
'@geekmidas/cli': CLI_VERSION,
|
|
50
50
|
} as const;
|
|
51
51
|
|
package/src/workspace/types.ts
CHANGED
|
@@ -147,7 +147,7 @@ export interface ServicesConfig {
|
|
|
147
147
|
cache?: boolean | ServiceImageConfig;
|
|
148
148
|
/** Mail service (mailpit for dev) */
|
|
149
149
|
mail?: boolean | MailServiceConfig;
|
|
150
|
-
/** MinIO S3-compatible object storage (default:
|
|
150
|
+
/** MinIO S3-compatible object storage (default: pgsty/minio:RELEASE.2026-08-04T00-00-00Z) */
|
|
151
151
|
storage?: boolean | ServiceImageConfig;
|
|
152
152
|
/** Event backend: pgboss (reuses postgres), sns (LocalStack), or rabbitmq */
|
|
153
153
|
events?: import('../types.js').EventsBackend;
|