@friggframework/devtools 2.0.0--canary.461.cf2b025.0 → 2.0.0--canary.461.432e510.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/infrastructure/domains/database/migration-builder.js +1 -1
- package/infrastructure/domains/database/migration-builder.test.js +7 -0
- package/infrastructure/domains/shared/utilities/base-definition-factory.js +2 -100
- package/infrastructure/domains/shared/utilities/base-definition-factory.test.js +5 -21
- package/package.json +6 -6
|
@@ -102,7 +102,7 @@ class MigrationBuilder extends InfrastructureBuilder {
|
|
|
102
102
|
'node_modules/@friggframework/core/generated/prisma-mongodb/**',
|
|
103
103
|
'node_modules/@friggframework/core/integrations/**',
|
|
104
104
|
'node_modules/@friggframework/core/user/**',
|
|
105
|
-
|
|
105
|
+
// Note: DO NOT exclude handlers/routers/** or handlers/workers/** - migration functions need them!
|
|
106
106
|
'**/query-engine-darwin*',
|
|
107
107
|
'**/schema-engine-darwin*',
|
|
108
108
|
'**/libquery_engine-darwin*',
|
|
@@ -203,6 +203,13 @@ describe('MigrationBuilder', () => {
|
|
|
203
203
|
expect(packageConfig.exclude).toContain('node_modules/typescript/**');
|
|
204
204
|
expect(packageConfig.exclude).toContain('node_modules/@friggframework/devtools/**');
|
|
205
205
|
expect(packageConfig.exclude).toContain('src/**'); // Migration handlers don't need backend source
|
|
206
|
+
|
|
207
|
+
// Should NOT exclude generated Prisma clients/schemas - worker needs them
|
|
208
|
+
expect(packageConfig.exclude).not.toContain('node_modules/@friggframework/core/generated/**');
|
|
209
|
+
|
|
210
|
+
// Should NOT exclude migration handlers - they're needed!
|
|
211
|
+
expect(packageConfig.exclude).not.toContain('node_modules/@friggframework/core/handlers/routers/**');
|
|
212
|
+
expect(packageConfig.exclude).not.toContain('node_modules/@friggframework/core/handlers/workers/**');
|
|
206
213
|
});
|
|
207
214
|
|
|
208
215
|
it('should add queue URL to environment', async () => {
|
|
@@ -276,106 +276,8 @@ function createBaseDefinition(
|
|
|
276
276
|
{ httpApi: { path: '/health/{proxy+}', method: 'GET' } },
|
|
277
277
|
],
|
|
278
278
|
},
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
// DO NOT use Prisma layer - this function includes Prisma CLI separately
|
|
282
|
-
skipEsbuild: true, // Handlers in node_modules don't need bundling
|
|
283
|
-
timeout: 300, // 5 minutes for long-running migrations
|
|
284
|
-
memorySize: 1024, // Extra memory for Prisma CLI and migration operations
|
|
285
|
-
reservedConcurrency: 1, // Prevent concurrent migrations (CRITICAL for data safety)
|
|
286
|
-
description: 'Runs database migrations via Prisma CLI (invoke manually from CI/CD or triggers). Prisma CLI bundled separately.',
|
|
287
|
-
package: {
|
|
288
|
-
individually: true,
|
|
289
|
-
exclude: [
|
|
290
|
-
// Exclude ALL nested node_modules
|
|
291
|
-
'node_modules/**/node_modules/**',
|
|
292
|
-
|
|
293
|
-
// Exclude AWS SDK (provided by Lambda runtime)
|
|
294
|
-
'node_modules/aws-sdk/**',
|
|
295
|
-
'node_modules/@aws-sdk/**',
|
|
296
|
-
|
|
297
|
-
// Exclude build tools (not needed for migrations)
|
|
298
|
-
'node_modules/esbuild/**',
|
|
299
|
-
'node_modules/@esbuild/**',
|
|
300
|
-
'node_modules/typescript/**',
|
|
301
|
-
'node_modules/webpack/**',
|
|
302
|
-
'node_modules/osls/**',
|
|
303
|
-
'node_modules/serverless-esbuild/**',
|
|
304
|
-
'node_modules/serverless-jetpack/**',
|
|
305
|
-
'node_modules/serverless-offline/**',
|
|
306
|
-
'node_modules/serverless-offline-sqs/**',
|
|
307
|
-
'node_modules/serverless-dotenv-plugin/**',
|
|
308
|
-
'node_modules/serverless-kms-grants/**',
|
|
309
|
-
|
|
310
|
-
// Exclude dev dependencies
|
|
311
|
-
'node_modules/@friggframework/test/**',
|
|
312
|
-
'node_modules/@friggframework/eslint-config/**',
|
|
313
|
-
'node_modules/@friggframework/prettier-config/**',
|
|
314
|
-
'node_modules/@friggframework/devtools/**',
|
|
315
|
-
'node_modules/@friggframework/serverless-plugin/**',
|
|
316
|
-
'node_modules/jest/**',
|
|
317
|
-
'node_modules/prettier/**',
|
|
318
|
-
'node_modules/eslint/**',
|
|
319
|
-
|
|
320
|
-
// Exclude MongoDB Prisma client (only need PostgreSQL)
|
|
321
|
-
'node_modules/@friggframework/core/generated/prisma-mongodb/**',
|
|
322
|
-
|
|
323
|
-
// Exclude non-essential Frigg modules
|
|
324
|
-
'node_modules/@friggframework/core/integrations/**',
|
|
325
|
-
'node_modules/@friggframework/core/user/**',
|
|
326
|
-
'node_modules/@friggframework/core/handlers/routers/**',
|
|
327
|
-
'node_modules/@friggframework/core/handlers/workers/**',
|
|
328
|
-
|
|
329
|
-
// Exclude wrong OS binaries
|
|
330
|
-
'**/query-engine-darwin*',
|
|
331
|
-
'**/schema-engine-darwin*',
|
|
332
|
-
'**/libquery_engine-darwin*',
|
|
333
|
-
'**/*-darwin-arm64*',
|
|
334
|
-
'**/*-darwin*',
|
|
335
|
-
|
|
336
|
-
// Exclude WASM engines (but keep Prisma CLI WASM files in build/)
|
|
337
|
-
// Note: Prisma CLI needs prisma/build/prisma_schema_build_bg.wasm for migrations
|
|
338
|
-
'**/runtime/*.wasm', // Exclude query engine WASM (unused with binary engines)
|
|
339
|
-
// DO NOT exclude **/*.wasm* - Prisma CLI needs build/*.wasm files!
|
|
340
|
-
|
|
341
|
-
// Exclude backend source (dbMigrate doesn't need it)
|
|
342
|
-
'src/**', // OK to exclude for migration handler only
|
|
343
|
-
'test/**',
|
|
344
|
-
'layers/**',
|
|
345
|
-
'coverage/**',
|
|
346
|
-
|
|
347
|
-
// Exclude local dev files
|
|
348
|
-
'deploy.log',
|
|
349
|
-
'.env.backup',
|
|
350
|
-
'docker-compose.yml',
|
|
351
|
-
'jest.config.js',
|
|
352
|
-
'jest.unit.config.js',
|
|
353
|
-
'package-lock.json',
|
|
354
|
-
|
|
355
|
-
// Exclude docs and metadata
|
|
356
|
-
'**/*.md',
|
|
357
|
-
'**/*.map',
|
|
358
|
-
'**/LICENSE*',
|
|
359
|
-
'**/*.d.ts',
|
|
360
|
-
'**/*.d.mts',
|
|
361
|
-
'**/*.test.js',
|
|
362
|
-
'**/*.spec.js',
|
|
363
|
-
'**/.claude-flow/**',
|
|
364
|
-
'**/.swarm/**',
|
|
365
|
-
],
|
|
366
|
-
},
|
|
367
|
-
maximumEventAge: 60,
|
|
368
|
-
maximumRetryAttempts: 0,
|
|
369
|
-
tags: {
|
|
370
|
-
Purpose: 'DatabaseMigration',
|
|
371
|
-
ManagedBy: 'Frigg',
|
|
372
|
-
},
|
|
373
|
-
environment: {
|
|
374
|
-
CI: '1',
|
|
375
|
-
PRISMA_HIDE_UPDATE_MESSAGE: '1',
|
|
376
|
-
PRISMA_MIGRATE_SKIP_SEED: '1',
|
|
377
|
-
},
|
|
378
|
-
},
|
|
279
|
+
// Note: dbMigrate removed - MigrationBuilder now handles migration infrastructure
|
|
280
|
+
// See: packages/devtools/infrastructure/domains/database/migration-builder.js
|
|
379
281
|
},
|
|
380
282
|
layers: {
|
|
381
283
|
prisma: {
|
|
@@ -85,7 +85,8 @@ describe('Base Definition Factory', () => {
|
|
|
85
85
|
expect(result.functions.auth).toBeDefined();
|
|
86
86
|
expect(result.functions.user).toBeDefined();
|
|
87
87
|
expect(result.functions.health).toBeDefined();
|
|
88
|
-
|
|
88
|
+
// dbMigrate removed - MigrationBuilder now handles migration infrastructure
|
|
89
|
+
expect(result.functions.dbMigrate).toBeUndefined();
|
|
89
90
|
});
|
|
90
91
|
|
|
91
92
|
it('should configure auth function correctly', () => {
|
|
@@ -96,28 +97,11 @@ describe('Base Definition Factory', () => {
|
|
|
96
97
|
expect(result.functions.auth.events).toHaveLength(3);
|
|
97
98
|
});
|
|
98
99
|
|
|
99
|
-
it('should
|
|
100
|
+
it('should NOT include legacy dbMigrate function', () => {
|
|
100
101
|
const result = createBaseDefinition({}, {}, {});
|
|
101
102
|
|
|
102
|
-
|
|
103
|
-
expect(result.functions.dbMigrate
|
|
104
|
-
expect(result.functions.dbMigrate.reservedConcurrency).toBe(1);
|
|
105
|
-
expect(result.functions.dbMigrate.esbuild).toBe(false);
|
|
106
|
-
expect(result.functions.dbMigrate.layers).toBeUndefined(); // No Prisma layer
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
it('should NOT exclude Prisma CLI WASM files from dbMigrate function', () => {
|
|
110
|
-
const result = createBaseDefinition({}, {}, {});
|
|
111
|
-
|
|
112
|
-
const excludeList = result.functions.dbMigrate.package.exclude;
|
|
113
|
-
|
|
114
|
-
// Should exclude WASM files from runtime/ (query engine WASM)
|
|
115
|
-
expect(excludeList).toContain('**/runtime/*.wasm');
|
|
116
|
-
|
|
117
|
-
// But should NOT exclude build/*.wasm files (Prisma CLI needs prisma_schema_build_bg.wasm)
|
|
118
|
-
expect(excludeList).not.toContain('**/*.wasm*');
|
|
119
|
-
expect(excludeList).not.toContain('**/*.wasm');
|
|
120
|
-
expect(excludeList).not.toContain('**/build/*.wasm');
|
|
103
|
+
// dbMigrate is legacy - MigrationBuilder handles migration infrastructure
|
|
104
|
+
expect(result.functions.dbMigrate).toBeUndefined();
|
|
121
105
|
});
|
|
122
106
|
|
|
123
107
|
it('should include Prisma Lambda Layer', () => {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@friggframework/devtools",
|
|
3
3
|
"prettier": "@friggframework/prettier-config",
|
|
4
|
-
"version": "2.0.0--canary.461.
|
|
4
|
+
"version": "2.0.0--canary.461.432e510.0",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@aws-sdk/client-ec2": "^3.835.0",
|
|
7
7
|
"@aws-sdk/client-kms": "^3.835.0",
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"@babel/eslint-parser": "^7.18.9",
|
|
12
12
|
"@babel/parser": "^7.25.3",
|
|
13
13
|
"@babel/traverse": "^7.25.3",
|
|
14
|
-
"@friggframework/schemas": "2.0.0--canary.461.
|
|
15
|
-
"@friggframework/test": "2.0.0--canary.461.
|
|
14
|
+
"@friggframework/schemas": "2.0.0--canary.461.432e510.0",
|
|
15
|
+
"@friggframework/test": "2.0.0--canary.461.432e510.0",
|
|
16
16
|
"@hapi/boom": "^10.0.1",
|
|
17
17
|
"@inquirer/prompts": "^5.3.8",
|
|
18
18
|
"axios": "^1.7.2",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"serverless-http": "^2.7.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@friggframework/eslint-config": "2.0.0--canary.461.
|
|
38
|
-
"@friggframework/prettier-config": "2.0.0--canary.461.
|
|
37
|
+
"@friggframework/eslint-config": "2.0.0--canary.461.432e510.0",
|
|
38
|
+
"@friggframework/prettier-config": "2.0.0--canary.461.432e510.0",
|
|
39
39
|
"aws-sdk-client-mock": "^4.1.0",
|
|
40
40
|
"aws-sdk-client-mock-jest": "^4.1.0",
|
|
41
41
|
"jest": "^30.1.3",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"publishConfig": {
|
|
71
71
|
"access": "public"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "432e5101c818e2c87711baf96b829b6b60d00d97"
|
|
74
74
|
}
|