create-payload-app 3.67.0-internal.87c53da → 3.67.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/dist/ast-integration.spec.js +131 -0
- package/dist/ast-integration.spec.js.map +1 -0
- package/dist/lib/ast/adapter-config.d.ts +40 -0
- package/dist/lib/ast/adapter-config.d.ts.map +1 -0
- package/dist/lib/ast/adapter-config.js +145 -0
- package/dist/lib/ast/adapter-config.js.map +1 -0
- package/dist/lib/ast/package-json.d.ts +13 -0
- package/dist/lib/ast/package-json.d.ts.map +1 -0
- package/dist/lib/ast/package-json.js +103 -0
- package/dist/lib/ast/package-json.js.map +1 -0
- package/dist/lib/ast/package-json.spec.js +66 -0
- package/dist/lib/ast/package-json.spec.js.map +1 -0
- package/dist/lib/ast/payload-config.d.ts +23 -0
- package/dist/lib/ast/payload-config.d.ts.map +1 -0
- package/dist/lib/ast/payload-config.js +655 -0
- package/dist/lib/ast/payload-config.js.map +1 -0
- package/dist/lib/ast/payload-config.spec.js +364 -0
- package/dist/lib/ast/payload-config.spec.js.map +1 -0
- package/dist/lib/ast/types.d.ts +126 -0
- package/dist/lib/ast/types.d.ts.map +1 -0
- package/dist/lib/ast/types.js +18 -0
- package/dist/lib/ast/types.js.map +1 -0
- package/dist/lib/ast/utils.d.ts +48 -0
- package/dist/lib/ast/utils.d.ts.map +1 -0
- package/dist/lib/ast/utils.js +189 -0
- package/dist/lib/ast/utils.js.map +1 -0
- package/dist/lib/ast/utils.spec.js +225 -0
- package/dist/lib/ast/utils.spec.js.map +1 -0
- package/dist/lib/configure-payload-config.d.ts.map +1 -1
- package/dist/lib/configure-payload-config.js +30 -86
- package/dist/lib/configure-payload-config.js.map +1 -1
- package/dist/lib/create-project.spec.js +9 -5
- package/dist/lib/create-project.spec.js.map +1 -1
- package/dist/lib/init-next.d.ts.map +1 -1
- package/dist/lib/init-next.js +2 -1
- package/dist/lib/init-next.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +4 -0
- package/dist/main.js.map +1 -1
- package/dist/template/src/payload.config.ts +2 -7
- package/dist/types.d.ts +3 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/log.d.ts.map +1 -1
- package/dist/utils/log.js +3 -1
- package/dist/utils/log.js.map +1 -1
- package/package.json +4 -2
- package/dist/lib/replacements.d.ts +0 -27
- package/dist/lib/replacements.d.ts.map +0 -1
- package/dist/lib/replacements.js +0 -104
- package/dist/lib/replacements.js.map +0 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as fse from 'fs-extra';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import * as os from 'os';
|
|
5
|
+
import { configurePayloadConfig } from './lib/configure-payload-config';
|
|
6
|
+
import { DB_ADAPTER_CONFIG, STORAGE_ADAPTER_CONFIG } from './lib/ast/adapter-config';
|
|
7
|
+
const TEST_CASES = [
|
|
8
|
+
{
|
|
9
|
+
name: 'blank + mongodb + localDisk',
|
|
10
|
+
template: 'blank',
|
|
11
|
+
dbType: 'mongodb',
|
|
12
|
+
storageAdapter: 'localDisk'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'blank + postgres + vercelBlobStorage',
|
|
16
|
+
template: 'blank',
|
|
17
|
+
dbType: 'postgres',
|
|
18
|
+
storageAdapter: 'vercelBlobStorage'
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'website + mongodb + s3Storage',
|
|
22
|
+
template: 'website',
|
|
23
|
+
dbType: 'mongodb',
|
|
24
|
+
storageAdapter: 's3Storage'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'website + postgres + localDisk',
|
|
28
|
+
template: 'website',
|
|
29
|
+
dbType: 'postgres',
|
|
30
|
+
storageAdapter: 'localDisk'
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'ecommerce + mongodb + localDisk',
|
|
34
|
+
template: 'ecommerce',
|
|
35
|
+
dbType: 'mongodb',
|
|
36
|
+
storageAdapter: 'localDisk'
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'ecommerce + postgres + r2Storage',
|
|
40
|
+
template: 'ecommerce',
|
|
41
|
+
dbType: 'postgres',
|
|
42
|
+
storageAdapter: 'r2Storage'
|
|
43
|
+
}
|
|
44
|
+
];
|
|
45
|
+
describe('AST Integration Tests', ()=>{
|
|
46
|
+
let tempDir;
|
|
47
|
+
const templatesRoot = path.resolve(__dirname, '../../..', 'templates');
|
|
48
|
+
beforeEach(()=>{
|
|
49
|
+
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'payload-ast-integration-'));
|
|
50
|
+
});
|
|
51
|
+
afterEach(()=>{
|
|
52
|
+
if (tempDir && fs.existsSync(tempDir)) {
|
|
53
|
+
fs.rmSync(tempDir, {
|
|
54
|
+
recursive: true,
|
|
55
|
+
force: true
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
describe.each(TEST_CASES)('$name', ({ template, dbType, storageAdapter })=>{
|
|
60
|
+
it('successfully applies AST transformations', async ()=>{
|
|
61
|
+
// Setup: Copy template to temp directory
|
|
62
|
+
const templateDir = path.join(templatesRoot, template);
|
|
63
|
+
const testProjectDir = path.join(tempDir, template);
|
|
64
|
+
if (!fs.existsSync(templateDir)) {
|
|
65
|
+
throw new Error(`Template ${template} not found at ${templateDir}`);
|
|
66
|
+
}
|
|
67
|
+
fse.copySync(templateDir, testProjectDir);
|
|
68
|
+
const payloadConfigPath = path.join(testProjectDir, 'src', 'payload.config.ts');
|
|
69
|
+
const packageJsonPath = path.join(testProjectDir, 'package.json');
|
|
70
|
+
// Verify files exist before transformation
|
|
71
|
+
expect(fs.existsSync(payloadConfigPath)).toBe(true);
|
|
72
|
+
expect(fs.existsSync(packageJsonPath)).toBe(true);
|
|
73
|
+
// Apply transformations
|
|
74
|
+
await configurePayloadConfig({
|
|
75
|
+
dbType,
|
|
76
|
+
storageAdapter,
|
|
77
|
+
projectDirOrConfigPath: {
|
|
78
|
+
projectDir: testProjectDir
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
// Verify payload.config.ts transformations
|
|
82
|
+
const configContent = fs.readFileSync(payloadConfigPath, 'utf-8');
|
|
83
|
+
// Check database adapter import
|
|
84
|
+
const dbConfig = DB_ADAPTER_CONFIG[dbType];
|
|
85
|
+
expect(configContent).toContain(`from '${dbConfig.packageName}'`);
|
|
86
|
+
expect(configContent).toContain(`import { ${dbConfig.adapterName} }`);
|
|
87
|
+
// Check database adapter config
|
|
88
|
+
expect(configContent).toMatch(new RegExp(`db:\\s*${dbConfig.adapterName}\\(`));
|
|
89
|
+
// Check storage adapter if not localDisk
|
|
90
|
+
if (storageAdapter !== 'localDisk') {
|
|
91
|
+
const storageConfig = STORAGE_ADAPTER_CONFIG[storageAdapter];
|
|
92
|
+
if (storageConfig.packageName && storageConfig.adapterName) {
|
|
93
|
+
expect(configContent).toContain(`from '${storageConfig.packageName}'`);
|
|
94
|
+
expect(configContent).toContain(`import { ${storageConfig.adapterName} }`);
|
|
95
|
+
expect(configContent).toContain(`${storageConfig.adapterName}(`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Check that old mongodb adapter is removed if we switched to postgres
|
|
99
|
+
if (dbType === 'postgres') {
|
|
100
|
+
expect(configContent).not.toContain('@payloadcms/db-mongodb');
|
|
101
|
+
expect(configContent).not.toContain('mongooseAdapter');
|
|
102
|
+
}
|
|
103
|
+
// Check that plugins array exists if storage adapter was added
|
|
104
|
+
if (storageAdapter !== 'localDisk') {
|
|
105
|
+
expect(configContent).toContain('plugins:');
|
|
106
|
+
}
|
|
107
|
+
// Verify package.json transformations
|
|
108
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
109
|
+
// Check that correct db adapter package is in dependencies
|
|
110
|
+
expect(packageJson.dependencies[dbConfig.packageName]).toBeDefined();
|
|
111
|
+
// Check that old db adapters are removed
|
|
112
|
+
Object.entries(DB_ADAPTER_CONFIG).forEach(([key, config])=>{
|
|
113
|
+
if (key !== dbType && config.packageName !== dbConfig.packageName) {
|
|
114
|
+
expect(packageJson.dependencies[config.packageName]).toBeUndefined();
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
// Note: Storage adapter dependencies are NOT automatically added to package.json
|
|
118
|
+
// by configurePayloadConfig - only the payload.config.ts is updated.
|
|
119
|
+
// This is expected behavior as storage adapters are typically installed separately.
|
|
120
|
+
// Verify file is valid TypeScript (basic syntax check)
|
|
121
|
+
expect(configContent).toContain('buildConfig');
|
|
122
|
+
expect(configContent).toContain('export default');
|
|
123
|
+
// Verify no placeholder comments remain
|
|
124
|
+
expect(configContent).not.toContain('database-adapter-import');
|
|
125
|
+
expect(configContent).not.toContain('database-adapter-config-start');
|
|
126
|
+
expect(configContent).not.toContain('storage-adapter-placeholder');
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
//# sourceMappingURL=ast-integration.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ast-integration.spec.ts"],"sourcesContent":["import * as fs from 'fs'\nimport * as fse from 'fs-extra'\nimport * as path from 'path'\nimport * as os from 'os'\nimport { configurePayloadConfig } from './lib/configure-payload-config'\nimport type { DbType, StorageAdapterType } from './types'\nimport { DB_ADAPTER_CONFIG, STORAGE_ADAPTER_CONFIG } from './lib/ast/adapter-config'\n\ninterface TestCase {\n name: string\n template: string\n dbType: DbType\n storageAdapter: StorageAdapterType\n}\n\nconst TEST_CASES: TestCase[] = [\n {\n name: 'blank + mongodb + localDisk',\n template: 'blank',\n dbType: 'mongodb',\n storageAdapter: 'localDisk',\n },\n {\n name: 'blank + postgres + vercelBlobStorage',\n template: 'blank',\n dbType: 'postgres',\n storageAdapter: 'vercelBlobStorage',\n },\n {\n name: 'website + mongodb + s3Storage',\n template: 'website',\n dbType: 'mongodb',\n storageAdapter: 's3Storage',\n },\n {\n name: 'website + postgres + localDisk',\n template: 'website',\n dbType: 'postgres',\n storageAdapter: 'localDisk',\n },\n {\n name: 'ecommerce + mongodb + localDisk',\n template: 'ecommerce',\n dbType: 'mongodb',\n storageAdapter: 'localDisk',\n },\n {\n name: 'ecommerce + postgres + r2Storage',\n template: 'ecommerce',\n dbType: 'postgres',\n storageAdapter: 'r2Storage',\n },\n]\n\ndescribe('AST Integration Tests', () => {\n let tempDir: string\n const templatesRoot = path.resolve(__dirname, '../../..', 'templates')\n\n beforeEach(() => {\n tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'payload-ast-integration-'))\n })\n\n afterEach(() => {\n if (tempDir && fs.existsSync(tempDir)) {\n fs.rmSync(tempDir, { recursive: true, force: true })\n }\n })\n\n describe.each(TEST_CASES)('$name', ({ template, dbType, storageAdapter }) => {\n it('successfully applies AST transformations', async () => {\n // Setup: Copy template to temp directory\n const templateDir = path.join(templatesRoot, template)\n const testProjectDir = path.join(tempDir, template)\n\n if (!fs.existsSync(templateDir)) {\n throw new Error(`Template ${template} not found at ${templateDir}`)\n }\n\n fse.copySync(templateDir, testProjectDir)\n\n const payloadConfigPath = path.join(testProjectDir, 'src', 'payload.config.ts')\n const packageJsonPath = path.join(testProjectDir, 'package.json')\n\n // Verify files exist before transformation\n expect(fs.existsSync(payloadConfigPath)).toBe(true)\n expect(fs.existsSync(packageJsonPath)).toBe(true)\n\n // Apply transformations\n await configurePayloadConfig({\n dbType,\n storageAdapter,\n projectDirOrConfigPath: { projectDir: testProjectDir },\n })\n\n // Verify payload.config.ts transformations\n const configContent = fs.readFileSync(payloadConfigPath, 'utf-8')\n\n // Check database adapter import\n const dbConfig = DB_ADAPTER_CONFIG[dbType]\n expect(configContent).toContain(`from '${dbConfig.packageName}'`)\n expect(configContent).toContain(`import { ${dbConfig.adapterName} }`)\n\n // Check database adapter config\n expect(configContent).toMatch(new RegExp(`db:\\\\s*${dbConfig.adapterName}\\\\(`))\n\n // Check storage adapter if not localDisk\n if (storageAdapter !== 'localDisk') {\n const storageConfig = STORAGE_ADAPTER_CONFIG[storageAdapter]\n\n if (storageConfig.packageName && storageConfig.adapterName) {\n expect(configContent).toContain(`from '${storageConfig.packageName}'`)\n expect(configContent).toContain(`import { ${storageConfig.adapterName} }`)\n expect(configContent).toContain(`${storageConfig.adapterName}(`)\n }\n }\n\n // Check that old mongodb adapter is removed if we switched to postgres\n if (dbType === 'postgres') {\n expect(configContent).not.toContain('@payloadcms/db-mongodb')\n expect(configContent).not.toContain('mongooseAdapter')\n }\n\n // Check that plugins array exists if storage adapter was added\n if (storageAdapter !== 'localDisk') {\n expect(configContent).toContain('plugins:')\n }\n\n // Verify package.json transformations\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'))\n\n // Check that correct db adapter package is in dependencies\n expect(packageJson.dependencies[dbConfig.packageName]).toBeDefined()\n\n // Check that old db adapters are removed\n Object.entries(DB_ADAPTER_CONFIG).forEach(([key, config]) => {\n if (key !== dbType && config.packageName !== dbConfig.packageName) {\n expect(packageJson.dependencies[config.packageName]).toBeUndefined()\n }\n })\n\n // Note: Storage adapter dependencies are NOT automatically added to package.json\n // by configurePayloadConfig - only the payload.config.ts is updated.\n // This is expected behavior as storage adapters are typically installed separately.\n\n // Verify file is valid TypeScript (basic syntax check)\n expect(configContent).toContain('buildConfig')\n expect(configContent).toContain('export default')\n\n // Verify no placeholder comments remain\n expect(configContent).not.toContain('database-adapter-import')\n expect(configContent).not.toContain('database-adapter-config-start')\n expect(configContent).not.toContain('storage-adapter-placeholder')\n })\n })\n})\n"],"names":["fs","fse","path","os","configurePayloadConfig","DB_ADAPTER_CONFIG","STORAGE_ADAPTER_CONFIG","TEST_CASES","name","template","dbType","storageAdapter","describe","tempDir","templatesRoot","resolve","__dirname","beforeEach","mkdtempSync","join","tmpdir","afterEach","existsSync","rmSync","recursive","force","each","it","templateDir","testProjectDir","Error","copySync","payloadConfigPath","packageJsonPath","expect","toBe","projectDirOrConfigPath","projectDir","configContent","readFileSync","dbConfig","toContain","packageName","adapterName","toMatch","RegExp","storageConfig","not","packageJson","JSON","parse","dependencies","toBeDefined","Object","entries","forEach","key","config","toBeUndefined"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized adapter configuration
|
|
3
|
+
* Shared across all AST transformation and test files
|
|
4
|
+
*/
|
|
5
|
+
import type { DatabaseAdapter, StorageAdapter } from './types.js';
|
|
6
|
+
export type DatabaseAdapterConfig = {
|
|
7
|
+
adapterName: string;
|
|
8
|
+
configTemplate: (envVar: string) => string;
|
|
9
|
+
packageName: string;
|
|
10
|
+
};
|
|
11
|
+
export type StorageAdapterConfig = {
|
|
12
|
+
adapterName: null | string;
|
|
13
|
+
configTemplate: () => null | string;
|
|
14
|
+
packageName: null | string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Database adapter configurations
|
|
18
|
+
*/
|
|
19
|
+
export declare const DB_ADAPTER_CONFIG: Record<DatabaseAdapter, DatabaseAdapterConfig>;
|
|
20
|
+
/**
|
|
21
|
+
* Storage adapter configurations
|
|
22
|
+
*/
|
|
23
|
+
export declare const STORAGE_ADAPTER_CONFIG: Record<StorageAdapter, StorageAdapterConfig>;
|
|
24
|
+
/**
|
|
25
|
+
* Helper to get database adapter package name
|
|
26
|
+
*/
|
|
27
|
+
export declare function getDbPackageName(adapter: DatabaseAdapter): string;
|
|
28
|
+
/**
|
|
29
|
+
* Helper to get database adapter name
|
|
30
|
+
*/
|
|
31
|
+
export declare function getDbAdapterName(adapter: DatabaseAdapter): string;
|
|
32
|
+
/**
|
|
33
|
+
* Helper to get storage adapter package name
|
|
34
|
+
*/
|
|
35
|
+
export declare function getStoragePackageName(adapter: StorageAdapter): null | string;
|
|
36
|
+
/**
|
|
37
|
+
* Helper to get storage adapter name
|
|
38
|
+
*/
|
|
39
|
+
export declare function getStorageAdapterName(adapter: StorageAdapter): null | string;
|
|
40
|
+
//# sourceMappingURL=adapter-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-config.d.ts","sourceRoot":"","sources":["../../../src/lib/ast/adapter-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEjE,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,IAAI,GAAG,MAAM,CAAA;IAC1B,cAAc,EAAE,MAAM,IAAI,GAAG,MAAM,CAAA;IACnC,WAAW,EAAE,IAAI,GAAG,MAAM,CAAA;CAC3B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,eAAe,EAAE,qBAAqB,CA0CnE,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,cAAc,EAAE,oBAAoB,CAwEtE,CAAA;AAEV;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,MAAM,CAE5E"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized adapter configuration
|
|
3
|
+
* Shared across all AST transformation and test files
|
|
4
|
+
*/ /**
|
|
5
|
+
* Database adapter configurations
|
|
6
|
+
*/ export const DB_ADAPTER_CONFIG = {
|
|
7
|
+
'd1-sqlite': {
|
|
8
|
+
adapterName: 'sqliteD1Adapter',
|
|
9
|
+
configTemplate: ()=>`sqliteD1Adapter({
|
|
10
|
+
binding: cloudflare.env.D1,
|
|
11
|
+
})`,
|
|
12
|
+
packageName: '@payloadcms/db-d1-sqlite'
|
|
13
|
+
},
|
|
14
|
+
mongodb: {
|
|
15
|
+
adapterName: 'mongooseAdapter',
|
|
16
|
+
configTemplate: (envVar)=>`mongooseAdapter({
|
|
17
|
+
url: process.env.${envVar} || '',
|
|
18
|
+
})`,
|
|
19
|
+
packageName: '@payloadcms/db-mongodb'
|
|
20
|
+
},
|
|
21
|
+
postgres: {
|
|
22
|
+
adapterName: 'postgresAdapter',
|
|
23
|
+
configTemplate: (envVar)=>`postgresAdapter({
|
|
24
|
+
pool: {
|
|
25
|
+
connectionString: process.env.${envVar} || '',
|
|
26
|
+
},
|
|
27
|
+
})`,
|
|
28
|
+
packageName: '@payloadcms/db-postgres'
|
|
29
|
+
},
|
|
30
|
+
sqlite: {
|
|
31
|
+
adapterName: 'sqliteAdapter',
|
|
32
|
+
configTemplate: ()=>`sqliteAdapter({
|
|
33
|
+
client: {
|
|
34
|
+
url: process.env.DATABASE_URI || '',
|
|
35
|
+
},
|
|
36
|
+
})`,
|
|
37
|
+
packageName: '@payloadcms/db-sqlite'
|
|
38
|
+
},
|
|
39
|
+
'vercel-postgres': {
|
|
40
|
+
adapterName: 'vercelPostgresAdapter',
|
|
41
|
+
configTemplate: ()=>`vercelPostgresAdapter({
|
|
42
|
+
pool: {
|
|
43
|
+
connectionString: process.env.POSTGRES_URL || '',
|
|
44
|
+
},
|
|
45
|
+
})`,
|
|
46
|
+
packageName: '@payloadcms/db-vercel-postgres'
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Storage adapter configurations
|
|
51
|
+
*/ export const STORAGE_ADAPTER_CONFIG = {
|
|
52
|
+
azureStorage: {
|
|
53
|
+
adapterName: 'azureStorage',
|
|
54
|
+
configTemplate: ()=>`azureStorage({
|
|
55
|
+
collections: {
|
|
56
|
+
media: true,
|
|
57
|
+
},
|
|
58
|
+
connectionString: process.env.AZURE_STORAGE_CONNECTION_STRING || '',
|
|
59
|
+
containerName: process.env.AZURE_STORAGE_CONTAINER_NAME || '',
|
|
60
|
+
})`,
|
|
61
|
+
packageName: '@payloadcms/storage-azure'
|
|
62
|
+
},
|
|
63
|
+
gcsStorage: {
|
|
64
|
+
adapterName: 'gcsStorage',
|
|
65
|
+
configTemplate: ()=>`gcsStorage({
|
|
66
|
+
collections: {
|
|
67
|
+
media: true,
|
|
68
|
+
},
|
|
69
|
+
bucket: process.env.GCS_BUCKET || '',
|
|
70
|
+
})`,
|
|
71
|
+
packageName: '@payloadcms/storage-gcs'
|
|
72
|
+
},
|
|
73
|
+
localDisk: {
|
|
74
|
+
adapterName: null,
|
|
75
|
+
configTemplate: ()=>null,
|
|
76
|
+
packageName: null
|
|
77
|
+
},
|
|
78
|
+
r2Storage: {
|
|
79
|
+
adapterName: 'r2Storage',
|
|
80
|
+
configTemplate: ()=>`r2Storage({
|
|
81
|
+
bucket: cloudflare.env.R2,
|
|
82
|
+
collections: { media: true },
|
|
83
|
+
})`,
|
|
84
|
+
packageName: '@payloadcms/storage-r2'
|
|
85
|
+
},
|
|
86
|
+
s3Storage: {
|
|
87
|
+
adapterName: 's3Storage',
|
|
88
|
+
configTemplate: ()=>`s3Storage({
|
|
89
|
+
collections: {
|
|
90
|
+
media: true,
|
|
91
|
+
},
|
|
92
|
+
bucket: process.env.S3_BUCKET || '',
|
|
93
|
+
config: {
|
|
94
|
+
credentials: {
|
|
95
|
+
accessKeyId: process.env.S3_ACCESS_KEY_ID || '',
|
|
96
|
+
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY || '',
|
|
97
|
+
},
|
|
98
|
+
region: process.env.S3_REGION || '',
|
|
99
|
+
},
|
|
100
|
+
})`,
|
|
101
|
+
packageName: '@payloadcms/storage-s3'
|
|
102
|
+
},
|
|
103
|
+
uploadthingStorage: {
|
|
104
|
+
adapterName: 'uploadthingStorage',
|
|
105
|
+
configTemplate: ()=>`uploadthingStorage({
|
|
106
|
+
collections: {
|
|
107
|
+
media: true,
|
|
108
|
+
},
|
|
109
|
+
token: process.env.UPLOADTHING_SECRET || '',
|
|
110
|
+
})`,
|
|
111
|
+
packageName: '@payloadcms/storage-uploadthing'
|
|
112
|
+
},
|
|
113
|
+
vercelBlobStorage: {
|
|
114
|
+
adapterName: 'vercelBlobStorage',
|
|
115
|
+
configTemplate: ()=>`vercelBlobStorage({
|
|
116
|
+
collections: {
|
|
117
|
+
media: true,
|
|
118
|
+
},
|
|
119
|
+
token: process.env.BLOB_READ_WRITE_TOKEN || '',
|
|
120
|
+
})`,
|
|
121
|
+
packageName: '@payloadcms/storage-vercel-blob'
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Helper to get database adapter package name
|
|
126
|
+
*/ export function getDbPackageName(adapter) {
|
|
127
|
+
return DB_ADAPTER_CONFIG[adapter].packageName;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Helper to get database adapter name
|
|
131
|
+
*/ export function getDbAdapterName(adapter) {
|
|
132
|
+
return DB_ADAPTER_CONFIG[adapter].adapterName;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Helper to get storage adapter package name
|
|
136
|
+
*/ export function getStoragePackageName(adapter) {
|
|
137
|
+
return STORAGE_ADAPTER_CONFIG[adapter].packageName;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Helper to get storage adapter name
|
|
141
|
+
*/ export function getStorageAdapterName(adapter) {
|
|
142
|
+
return STORAGE_ADAPTER_CONFIG[adapter].adapterName;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
//# sourceMappingURL=adapter-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/ast/adapter-config.ts"],"sourcesContent":["/**\n * Centralized adapter configuration\n * Shared across all AST transformation and test files\n */\n\nimport type { DatabaseAdapter, StorageAdapter } from './types.js'\n\nexport type DatabaseAdapterConfig = {\n adapterName: string\n configTemplate: (envVar: string) => string\n packageName: string\n}\n\nexport type StorageAdapterConfig = {\n adapterName: null | string\n configTemplate: () => null | string\n packageName: null | string\n}\n\n/**\n * Database adapter configurations\n */\nexport const DB_ADAPTER_CONFIG: Record<DatabaseAdapter, DatabaseAdapterConfig> = {\n 'd1-sqlite': {\n adapterName: 'sqliteD1Adapter',\n configTemplate: () => `sqliteD1Adapter({\n binding: cloudflare.env.D1,\n})`,\n packageName: '@payloadcms/db-d1-sqlite',\n },\n mongodb: {\n adapterName: 'mongooseAdapter',\n configTemplate: (envVar: string) => `mongooseAdapter({\n url: process.env.${envVar} || '',\n})`,\n packageName: '@payloadcms/db-mongodb',\n },\n postgres: {\n adapterName: 'postgresAdapter',\n configTemplate: (envVar: string) => `postgresAdapter({\n pool: {\n connectionString: process.env.${envVar} || '',\n },\n})`,\n packageName: '@payloadcms/db-postgres',\n },\n sqlite: {\n adapterName: 'sqliteAdapter',\n configTemplate: () => `sqliteAdapter({\n client: {\n url: process.env.DATABASE_URI || '',\n },\n})`,\n packageName: '@payloadcms/db-sqlite',\n },\n 'vercel-postgres': {\n adapterName: 'vercelPostgresAdapter',\n configTemplate: () => `vercelPostgresAdapter({\n pool: {\n connectionString: process.env.POSTGRES_URL || '',\n },\n})`,\n packageName: '@payloadcms/db-vercel-postgres',\n },\n} as const\n\n/**\n * Storage adapter configurations\n */\nexport const STORAGE_ADAPTER_CONFIG: Record<StorageAdapter, StorageAdapterConfig> = {\n azureStorage: {\n adapterName: 'azureStorage',\n configTemplate: () => `azureStorage({\n collections: {\n media: true,\n },\n connectionString: process.env.AZURE_STORAGE_CONNECTION_STRING || '',\n containerName: process.env.AZURE_STORAGE_CONTAINER_NAME || '',\n })`,\n packageName: '@payloadcms/storage-azure',\n },\n gcsStorage: {\n adapterName: 'gcsStorage',\n configTemplate: () => `gcsStorage({\n collections: {\n media: true,\n },\n bucket: process.env.GCS_BUCKET || '',\n })`,\n packageName: '@payloadcms/storage-gcs',\n },\n localDisk: {\n adapterName: null,\n configTemplate: () => null,\n packageName: null,\n },\n r2Storage: {\n adapterName: 'r2Storage',\n configTemplate: () => `r2Storage({\n bucket: cloudflare.env.R2,\n collections: { media: true },\n })`,\n packageName: '@payloadcms/storage-r2',\n },\n s3Storage: {\n adapterName: 's3Storage',\n configTemplate: () => `s3Storage({\n collections: {\n media: true,\n },\n bucket: process.env.S3_BUCKET || '',\n config: {\n credentials: {\n accessKeyId: process.env.S3_ACCESS_KEY_ID || '',\n secretAccessKey: process.env.S3_SECRET_ACCESS_KEY || '',\n },\n region: process.env.S3_REGION || '',\n },\n })`,\n packageName: '@payloadcms/storage-s3',\n },\n uploadthingStorage: {\n adapterName: 'uploadthingStorage',\n configTemplate: () => `uploadthingStorage({\n collections: {\n media: true,\n },\n token: process.env.UPLOADTHING_SECRET || '',\n })`,\n packageName: '@payloadcms/storage-uploadthing',\n },\n vercelBlobStorage: {\n adapterName: 'vercelBlobStorage',\n configTemplate: () => `vercelBlobStorage({\n collections: {\n media: true,\n },\n token: process.env.BLOB_READ_WRITE_TOKEN || '',\n })`,\n packageName: '@payloadcms/storage-vercel-blob',\n },\n} as const\n\n/**\n * Helper to get database adapter package name\n */\nexport function getDbPackageName(adapter: DatabaseAdapter): string {\n return DB_ADAPTER_CONFIG[adapter].packageName\n}\n\n/**\n * Helper to get database adapter name\n */\nexport function getDbAdapterName(adapter: DatabaseAdapter): string {\n return DB_ADAPTER_CONFIG[adapter].adapterName\n}\n\n/**\n * Helper to get storage adapter package name\n */\nexport function getStoragePackageName(adapter: StorageAdapter): null | string {\n return STORAGE_ADAPTER_CONFIG[adapter].packageName\n}\n\n/**\n * Helper to get storage adapter name\n */\nexport function getStorageAdapterName(adapter: StorageAdapter): null | string {\n return STORAGE_ADAPTER_CONFIG[adapter].adapterName\n}\n"],"names":["DB_ADAPTER_CONFIG","adapterName","configTemplate","packageName","mongodb","envVar","postgres","sqlite","STORAGE_ADAPTER_CONFIG","azureStorage","gcsStorage","localDisk","r2Storage","s3Storage","uploadthingStorage","vercelBlobStorage","getDbPackageName","adapter","getDbAdapterName","getStoragePackageName","getStorageAdapterName"],"mappings":"AAAA;;;CAGC,GAgBD;;CAEC,GACD,OAAO,MAAMA,oBAAoE;IAC/E,aAAa;QACXC,aAAa;QACbC,gBAAgB,IAAM,CAAC;;EAEzB,CAAC;QACCC,aAAa;IACf;IACAC,SAAS;QACPH,aAAa;QACbC,gBAAgB,CAACG,SAAmB,CAAC;mBACtB,EAAEA,OAAO;EAC1B,CAAC;QACCF,aAAa;IACf;IACAG,UAAU;QACRL,aAAa;QACbC,gBAAgB,CAACG,SAAmB,CAAC;;kCAEP,EAAEA,OAAO;;EAEzC,CAAC;QACCF,aAAa;IACf;IACAI,QAAQ;QACNN,aAAa;QACbC,gBAAgB,IAAM,CAAC;;;;EAIzB,CAAC;QACCC,aAAa;IACf;IACA,mBAAmB;QACjBF,aAAa;QACbC,gBAAgB,IAAM,CAAC;;;;EAIzB,CAAC;QACCC,aAAa;IACf;AACF,EAAU;AAEV;;CAEC,GACD,OAAO,MAAMK,yBAAuE;IAClFC,cAAc;QACZR,aAAa;QACbC,gBAAgB,IAAM,CAAC;;;;;;IAMvB,CAAC;QACDC,aAAa;IACf;IACAO,YAAY;QACVT,aAAa;QACbC,gBAAgB,IAAM,CAAC;;;;;IAKvB,CAAC;QACDC,aAAa;IACf;IACAQ,WAAW;QACTV,aAAa;QACbC,gBAAgB,IAAM;QACtBC,aAAa;IACf;IACAS,WAAW;QACTX,aAAa;QACbC,gBAAgB,IAAM,CAAC;;;IAGvB,CAAC;QACDC,aAAa;IACf;IACAU,WAAW;QACTZ,aAAa;QACbC,gBAAgB,IAAM,CAAC;;;;;;;;;;;;IAYvB,CAAC;QACDC,aAAa;IACf;IACAW,oBAAoB;QAClBb,aAAa;QACbC,gBAAgB,IAAM,CAAC;;;;;IAKvB,CAAC;QACDC,aAAa;IACf;IACAY,mBAAmB;QACjBd,aAAa;QACbC,gBAAgB,IAAM,CAAC;;;;;IAKvB,CAAC;QACDC,aAAa;IACf;AACF,EAAU;AAEV;;CAEC,GACD,OAAO,SAASa,iBAAiBC,OAAwB;IACvD,OAAOjB,iBAAiB,CAACiB,QAAQ,CAACd,WAAW;AAC/C;AAEA;;CAEC,GACD,OAAO,SAASe,iBAAiBD,OAAwB;IACvD,OAAOjB,iBAAiB,CAACiB,QAAQ,CAAChB,WAAW;AAC/C;AAEA;;CAEC,GACD,OAAO,SAASkB,sBAAsBF,OAAuB;IAC3D,OAAOT,sBAAsB,CAACS,QAAQ,CAACd,WAAW;AACpD;AAEA;;CAEC,GACD,OAAO,SAASiB,sBAAsBH,OAAuB;IAC3D,OAAOT,sBAAsB,CAACS,QAAQ,CAAChB,WAAW;AACpD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DatabaseAdapter, StorageAdapter } from './types.js';
|
|
2
|
+
type PackageJsonTransformOptions = {
|
|
3
|
+
databaseAdapter?: DatabaseAdapter;
|
|
4
|
+
packageName?: string;
|
|
5
|
+
removeSharp?: boolean;
|
|
6
|
+
storageAdapter?: StorageAdapter;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Main orchestration function
|
|
10
|
+
*/
|
|
11
|
+
export declare function updatePackageJson(filePath: string, options: PackageJsonTransformOptions): void;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=package-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../../src/lib/ast/package-json.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMjE,KAAK,2BAA2B,GAAG;IACjC,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AASD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAa9F"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import { debug } from '../../utils/log.js';
|
|
3
|
+
import { getDbPackageName, getStoragePackageName } from './adapter-config.js';
|
|
4
|
+
import { ALL_DATABASE_ADAPTERS, ALL_STORAGE_ADAPTERS } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Main orchestration function
|
|
7
|
+
*/ export function updatePackageJson(filePath, options) {
|
|
8
|
+
debug(`[AST] Updating package.json: ${filePath}`);
|
|
9
|
+
// Phase 1: Detection
|
|
10
|
+
const pkg = parsePackageJson(filePath);
|
|
11
|
+
// Phase 2: Transformation
|
|
12
|
+
const transformed = transformPackageJson(pkg, options);
|
|
13
|
+
// Phase 3: Modification
|
|
14
|
+
writePackageJson(filePath, transformed);
|
|
15
|
+
debug('[AST] ✓ package.json updated successfully');
|
|
16
|
+
}
|
|
17
|
+
// Helper functions
|
|
18
|
+
function parsePackageJson(filePath) {
|
|
19
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
20
|
+
return JSON.parse(content);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Transforms the package.json based upon provided options
|
|
24
|
+
*/ function transformPackageJson(pkg, options) {
|
|
25
|
+
const transformed = {
|
|
26
|
+
...pkg
|
|
27
|
+
};
|
|
28
|
+
// Update database adapter
|
|
29
|
+
if (options.databaseAdapter) {
|
|
30
|
+
debug(`[AST] Updating package.json database adapter to: ${options.databaseAdapter}`);
|
|
31
|
+
transformed.dependencies = {
|
|
32
|
+
...transformed.dependencies
|
|
33
|
+
};
|
|
34
|
+
const removedAdapters = [];
|
|
35
|
+
ALL_DATABASE_ADAPTERS.forEach((adapter)=>{
|
|
36
|
+
const pkgName = getDbPackageName(adapter);
|
|
37
|
+
if (transformed.dependencies[pkgName]) {
|
|
38
|
+
removedAdapters.push(pkgName);
|
|
39
|
+
}
|
|
40
|
+
delete transformed.dependencies[pkgName];
|
|
41
|
+
});
|
|
42
|
+
if (removedAdapters.length > 0) {
|
|
43
|
+
debug(`[AST] Removed old adapter packages: ${removedAdapters.join(', ')}`);
|
|
44
|
+
}
|
|
45
|
+
// Add new adapter
|
|
46
|
+
const dbAdapterPackageName = getDbPackageName(options.databaseAdapter);
|
|
47
|
+
const payloadVersion = transformed.dependencies?.payload || '^3.0.0';
|
|
48
|
+
transformed.dependencies[dbAdapterPackageName] = payloadVersion;
|
|
49
|
+
debug(`[AST] Added adapter package: ${dbAdapterPackageName}`);
|
|
50
|
+
}
|
|
51
|
+
// Update storage adapter
|
|
52
|
+
if (options.storageAdapter) {
|
|
53
|
+
debug(`[AST] Updating package.json storage adapter to: ${options.storageAdapter}`);
|
|
54
|
+
transformed.dependencies = {
|
|
55
|
+
...transformed.dependencies
|
|
56
|
+
};
|
|
57
|
+
const removedAdapters = [];
|
|
58
|
+
ALL_STORAGE_ADAPTERS.forEach((adapter)=>{
|
|
59
|
+
const pkgName = getStoragePackageName(adapter);
|
|
60
|
+
if (pkgName && transformed.dependencies[pkgName]) {
|
|
61
|
+
removedAdapters.push(pkgName);
|
|
62
|
+
}
|
|
63
|
+
if (pkgName) {
|
|
64
|
+
delete transformed.dependencies[pkgName];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
if (removedAdapters.length > 0) {
|
|
68
|
+
debug(`[AST] Removed old storage adapter packages: ${removedAdapters.join(', ')}`);
|
|
69
|
+
}
|
|
70
|
+
// Add new storage adapter (if not localDisk)
|
|
71
|
+
const storagePackageName = getStoragePackageName(options.storageAdapter);
|
|
72
|
+
if (storagePackageName) {
|
|
73
|
+
const payloadVersion = transformed.dependencies?.payload || '^3.0.0';
|
|
74
|
+
transformed.dependencies[storagePackageName] = payloadVersion;
|
|
75
|
+
debug(`[AST] Added storage adapter package: ${storagePackageName}`);
|
|
76
|
+
} else {
|
|
77
|
+
debug(`[AST] Storage adapter is localDisk, no package needed`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Remove sharp
|
|
81
|
+
if (options.removeSharp && transformed.dependencies) {
|
|
82
|
+
transformed.dependencies = {
|
|
83
|
+
...transformed.dependencies
|
|
84
|
+
};
|
|
85
|
+
if (transformed.dependencies.sharp) {
|
|
86
|
+
delete transformed.dependencies.sharp;
|
|
87
|
+
debug('[AST] Removed sharp dependency');
|
|
88
|
+
} else {
|
|
89
|
+
debug('[AST] Sharp dependency not found (already absent)');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Update package name
|
|
93
|
+
if (options.packageName) {
|
|
94
|
+
debug(`[AST] Updated package name to: ${options.packageName}`);
|
|
95
|
+
transformed.name = options.packageName;
|
|
96
|
+
}
|
|
97
|
+
return transformed;
|
|
98
|
+
}
|
|
99
|
+
function writePackageJson(filePath, pkg) {
|
|
100
|
+
fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n');
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
//# sourceMappingURL=package-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/ast/package-json.ts"],"sourcesContent":["import * as fs from 'fs'\n\nimport type { DatabaseAdapter, StorageAdapter } from './types.js'\n\nimport { debug } from '../../utils/log.js'\nimport { getDbPackageName, getStoragePackageName } from './adapter-config.js'\nimport { ALL_DATABASE_ADAPTERS, ALL_STORAGE_ADAPTERS } from './types.js'\n\ntype PackageJsonTransformOptions = {\n databaseAdapter?: DatabaseAdapter\n packageName?: string\n removeSharp?: boolean\n storageAdapter?: StorageAdapter\n}\n\ntype PackageJsonStructure = {\n [key: string]: unknown\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n name?: string\n}\n\n/**\n * Main orchestration function\n */\nexport function updatePackageJson(filePath: string, options: PackageJsonTransformOptions): void {\n debug(`[AST] Updating package.json: ${filePath}`)\n\n // Phase 1: Detection\n const pkg = parsePackageJson(filePath)\n\n // Phase 2: Transformation\n const transformed = transformPackageJson(pkg, options)\n\n // Phase 3: Modification\n writePackageJson(filePath, transformed)\n\n debug('[AST] ✓ package.json updated successfully')\n}\n\n// Helper functions\n\nfunction parsePackageJson(filePath: string): PackageJsonStructure {\n const content = fs.readFileSync(filePath, 'utf-8')\n return JSON.parse(content)\n}\n\n/**\n * Transforms the package.json based upon provided options\n */\nfunction transformPackageJson(\n pkg: PackageJsonStructure,\n options: PackageJsonTransformOptions,\n): PackageJsonStructure {\n const transformed = { ...pkg }\n\n // Update database adapter\n if (options.databaseAdapter) {\n debug(`[AST] Updating package.json database adapter to: ${options.databaseAdapter}`)\n\n transformed.dependencies = { ...transformed.dependencies }\n\n const removedAdapters: string[] = []\n ALL_DATABASE_ADAPTERS.forEach((adapter) => {\n const pkgName = getDbPackageName(adapter)\n if (transformed.dependencies![pkgName]) {\n removedAdapters.push(pkgName)\n }\n delete transformed.dependencies![pkgName]\n })\n\n if (removedAdapters.length > 0) {\n debug(`[AST] Removed old adapter packages: ${removedAdapters.join(', ')}`)\n }\n\n // Add new adapter\n const dbAdapterPackageName = getDbPackageName(options.databaseAdapter)\n const payloadVersion = transformed.dependencies?.payload || '^3.0.0'\n transformed.dependencies[dbAdapterPackageName] = payloadVersion\n\n debug(`[AST] Added adapter package: ${dbAdapterPackageName}`)\n }\n\n // Update storage adapter\n if (options.storageAdapter) {\n debug(`[AST] Updating package.json storage adapter to: ${options.storageAdapter}`)\n\n transformed.dependencies = { ...transformed.dependencies }\n\n const removedAdapters: string[] = []\n ALL_STORAGE_ADAPTERS.forEach((adapter) => {\n const pkgName = getStoragePackageName(adapter)\n if (pkgName && transformed.dependencies![pkgName]) {\n removedAdapters.push(pkgName)\n }\n if (pkgName) {\n delete transformed.dependencies![pkgName]\n }\n })\n\n if (removedAdapters.length > 0) {\n debug(`[AST] Removed old storage adapter packages: ${removedAdapters.join(', ')}`)\n }\n\n // Add new storage adapter (if not localDisk)\n const storagePackageName = getStoragePackageName(options.storageAdapter)\n if (storagePackageName) {\n const payloadVersion = transformed.dependencies?.payload || '^3.0.0'\n transformed.dependencies[storagePackageName] = payloadVersion\n debug(`[AST] Added storage adapter package: ${storagePackageName}`)\n } else {\n debug(`[AST] Storage adapter is localDisk, no package needed`)\n }\n }\n\n // Remove sharp\n if (options.removeSharp && transformed.dependencies) {\n transformed.dependencies = { ...transformed.dependencies }\n if (transformed.dependencies.sharp) {\n delete transformed.dependencies.sharp\n debug('[AST] Removed sharp dependency')\n } else {\n debug('[AST] Sharp dependency not found (already absent)')\n }\n }\n\n // Update package name\n if (options.packageName) {\n debug(`[AST] Updated package name to: ${options.packageName}`)\n transformed.name = options.packageName\n }\n\n return transformed\n}\n\nfunction writePackageJson(filePath: string, pkg: PackageJsonStructure): void {\n fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\\n')\n}\n"],"names":["fs","debug","getDbPackageName","getStoragePackageName","ALL_DATABASE_ADAPTERS","ALL_STORAGE_ADAPTERS","updatePackageJson","filePath","options","pkg","parsePackageJson","transformed","transformPackageJson","writePackageJson","content","readFileSync","JSON","parse","databaseAdapter","dependencies","removedAdapters","forEach","adapter","pkgName","push","length","join","dbAdapterPackageName","payloadVersion","payload","storageAdapter","storagePackageName","removeSharp","sharp","packageName","name","writeFileSync","stringify"],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { updatePackageJson } from './package-json';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import * as os from 'os';
|
|
5
|
+
describe('updatePackageJson', ()=>{
|
|
6
|
+
let tempDir;
|
|
7
|
+
beforeEach(()=>{
|
|
8
|
+
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'payload-test-'));
|
|
9
|
+
});
|
|
10
|
+
afterEach(()=>{
|
|
11
|
+
fs.rmSync(tempDir, {
|
|
12
|
+
recursive: true,
|
|
13
|
+
force: true
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
it('updates database dependencies', ()=>{
|
|
17
|
+
const pkgPath = path.join(tempDir, 'package.json');
|
|
18
|
+
const originalPkg = {
|
|
19
|
+
name: 'test-app',
|
|
20
|
+
dependencies: {
|
|
21
|
+
'@payloadcms/db-mongodb': '^3.0.0',
|
|
22
|
+
payload: '^3.0.0'
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2));
|
|
26
|
+
updatePackageJson(pkgPath, {
|
|
27
|
+
databaseAdapter: 'postgres'
|
|
28
|
+
});
|
|
29
|
+
const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
30
|
+
expect(updated.dependencies['@payloadcms/db-postgres']).toBeDefined();
|
|
31
|
+
expect(updated.dependencies['@payloadcms/db-mongodb']).toBeUndefined();
|
|
32
|
+
});
|
|
33
|
+
it('removes sharp when requested', ()=>{
|
|
34
|
+
const pkgPath = path.join(tempDir, 'package.json');
|
|
35
|
+
const originalPkg = {
|
|
36
|
+
name: 'test-app',
|
|
37
|
+
dependencies: {
|
|
38
|
+
payload: '^3.0.0',
|
|
39
|
+
sharp: '^0.33.0'
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2));
|
|
43
|
+
updatePackageJson(pkgPath, {
|
|
44
|
+
removeSharp: true
|
|
45
|
+
});
|
|
46
|
+
const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
47
|
+
expect(updated.dependencies.sharp).toBeUndefined();
|
|
48
|
+
});
|
|
49
|
+
it('updates package name', ()=>{
|
|
50
|
+
const pkgPath = path.join(tempDir, 'package.json');
|
|
51
|
+
const originalPkg = {
|
|
52
|
+
name: 'template-name',
|
|
53
|
+
dependencies: {
|
|
54
|
+
payload: '^3.0.0'
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2));
|
|
58
|
+
updatePackageJson(pkgPath, {
|
|
59
|
+
packageName: 'my-new-app'
|
|
60
|
+
});
|
|
61
|
+
const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
62
|
+
expect(updated.name).toBe('my-new-app');
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=package-json.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/ast/package-json.spec.ts"],"sourcesContent":["import { updatePackageJson } from './package-json'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport * as os from 'os'\n\ndescribe('updatePackageJson', () => {\n let tempDir: string\n\n beforeEach(() => {\n tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'payload-test-'))\n })\n\n afterEach(() => {\n fs.rmSync(tempDir, { recursive: true, force: true })\n })\n\n it('updates database dependencies', () => {\n const pkgPath = path.join(tempDir, 'package.json')\n const originalPkg = {\n name: 'test-app',\n dependencies: {\n '@payloadcms/db-mongodb': '^3.0.0',\n payload: '^3.0.0',\n },\n }\n fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2))\n\n updatePackageJson(pkgPath, {\n databaseAdapter: 'postgres',\n })\n\n const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))\n expect(updated.dependencies['@payloadcms/db-postgres']).toBeDefined()\n expect(updated.dependencies['@payloadcms/db-mongodb']).toBeUndefined()\n })\n\n it('removes sharp when requested', () => {\n const pkgPath = path.join(tempDir, 'package.json')\n const originalPkg = {\n name: 'test-app',\n dependencies: {\n payload: '^3.0.0',\n sharp: '^0.33.0',\n },\n }\n fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2))\n\n updatePackageJson(pkgPath, {\n removeSharp: true,\n })\n\n const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))\n expect(updated.dependencies.sharp).toBeUndefined()\n })\n\n it('updates package name', () => {\n const pkgPath = path.join(tempDir, 'package.json')\n const originalPkg = {\n name: 'template-name',\n dependencies: {\n payload: '^3.0.0',\n },\n }\n fs.writeFileSync(pkgPath, JSON.stringify(originalPkg, null, 2))\n\n updatePackageJson(pkgPath, {\n packageName: 'my-new-app',\n })\n\n const updated = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))\n expect(updated.name).toBe('my-new-app')\n })\n})\n"],"names":["updatePackageJson","fs","path","os","describe","tempDir","beforeEach","mkdtempSync","join","tmpdir","afterEach","rmSync","recursive","force","it","pkgPath","originalPkg","name","dependencies","payload","writeFileSync","JSON","stringify","databaseAdapter","updated","parse","readFileSync","expect","toBeDefined","toBeUndefined","sharp","removeSharp","packageName","toBe"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,iBAAgB;AAClD,YAAYC,QAAQ,KAAI;AACxB,YAAYC,UAAU,OAAM;AAC5B,YAAYC,QAAQ,KAAI;AAExBC,SAAS,qBAAqB;IAC5B,IAAIC;IAEJC,WAAW;QACTD,UAAUJ,GAAGM,WAAW,CAACL,KAAKM,IAAI,CAACL,GAAGM,MAAM,IAAI;IAClD;IAEAC,UAAU;QACRT,GAAGU,MAAM,CAACN,SAAS;YAAEO,WAAW;YAAMC,OAAO;QAAK;IACpD;IAEAC,GAAG,iCAAiC;QAClC,MAAMC,UAAUb,KAAKM,IAAI,CAACH,SAAS;QACnC,MAAMW,cAAc;YAClBC,MAAM;YACNC,cAAc;gBACZ,0BAA0B;gBAC1BC,SAAS;YACX;QACF;QACAlB,GAAGmB,aAAa,CAACL,SAASM,KAAKC,SAAS,CAACN,aAAa,MAAM;QAE5DhB,kBAAkBe,SAAS;YACzBQ,iBAAiB;QACnB;QAEA,MAAMC,UAAUH,KAAKI,KAAK,CAACxB,GAAGyB,YAAY,CAACX,SAAS;QACpDY,OAAOH,QAAQN,YAAY,CAAC,0BAA0B,EAAEU,WAAW;QACnED,OAAOH,QAAQN,YAAY,CAAC,yBAAyB,EAAEW,aAAa;IACtE;IAEAf,GAAG,gCAAgC;QACjC,MAAMC,UAAUb,KAAKM,IAAI,CAACH,SAAS;QACnC,MAAMW,cAAc;YAClBC,MAAM;YACNC,cAAc;gBACZC,SAAS;gBACTW,OAAO;YACT;QACF;QACA7B,GAAGmB,aAAa,CAACL,SAASM,KAAKC,SAAS,CAACN,aAAa,MAAM;QAE5DhB,kBAAkBe,SAAS;YACzBgB,aAAa;QACf;QAEA,MAAMP,UAAUH,KAAKI,KAAK,CAACxB,GAAGyB,YAAY,CAACX,SAAS;QACpDY,OAAOH,QAAQN,YAAY,CAACY,KAAK,EAAED,aAAa;IAClD;IAEAf,GAAG,wBAAwB;QACzB,MAAMC,UAAUb,KAAKM,IAAI,CAACH,SAAS;QACnC,MAAMW,cAAc;YAClBC,MAAM;YACNC,cAAc;gBACZC,SAAS;YACX;QACF;QACAlB,GAAGmB,aAAa,CAACL,SAASM,KAAKC,SAAS,CAACN,aAAa,MAAM;QAE5DhB,kBAAkBe,SAAS;YACzBiB,aAAa;QACf;QAEA,MAAMR,UAAUH,KAAKI,KAAK,CAACxB,GAAGyB,YAAY,CAACX,SAAS;QACpDY,OAAOH,QAAQP,IAAI,EAAEgB,IAAI,CAAC;IAC5B;AACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type SourceFile } from 'ts-morph';
|
|
2
|
+
import type { ConfigureOptions, DatabaseAdapter, DetectionResult, StorageAdapter, TransformationResult, WriteOptions, WriteResult } from './types.js';
|
|
3
|
+
export declare function detectPayloadConfigStructure(sourceFile: SourceFile): DetectionResult;
|
|
4
|
+
export declare function addDatabaseAdapter({ adapter, envVarName, sourceFile, }: {
|
|
5
|
+
adapter: DatabaseAdapter;
|
|
6
|
+
envVarName?: string;
|
|
7
|
+
sourceFile: SourceFile;
|
|
8
|
+
}): TransformationResult;
|
|
9
|
+
export declare function addStorageAdapter({ adapter, sourceFile, }: {
|
|
10
|
+
adapter: StorageAdapter;
|
|
11
|
+
sourceFile: SourceFile;
|
|
12
|
+
}): TransformationResult;
|
|
13
|
+
export declare function removeSharp(sourceFile: SourceFile): TransformationResult;
|
|
14
|
+
/** This shouldn't be necessary once the templates are updated. Can't hurt to keep in, though */
|
|
15
|
+
export declare function removeCommentMarkers(sourceFile: SourceFile): SourceFile;
|
|
16
|
+
/**
|
|
17
|
+
* Validates payload config structure has required elements after transformation.
|
|
18
|
+
* Checks that buildConfig() call exists and has a db property configured.
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateStructure(sourceFile: SourceFile): WriteResult;
|
|
21
|
+
export declare function writeTransformedFile(sourceFile: SourceFile, options?: WriteOptions): Promise<WriteResult>;
|
|
22
|
+
export declare function configurePayloadConfig(filePath: string, options?: ConfigureOptions): Promise<WriteResult>;
|
|
23
|
+
//# sourceMappingURL=payload-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-config.d.ts","sourceRoot":"","sources":["../../../src/lib/ast/payload-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,UAAU,EAAc,MAAM,UAAU,CAAA;AAE1E,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EAEf,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAA;AAWnB,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,CA4JpF;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,UAA2B,EAC3B,UAAU,GACX,EAAE;IACD,OAAO,EAAE,eAAe,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;CACvB,GAAG,oBAAoB,CA+HvB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,UAAU,GACX,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;CACvB,GAAG,oBAAoB,CA0JvB;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,oBAAoB,CAkExE;AAED,gGAAgG;AAChG,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAoBvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CA+BrE;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAsDtB;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAyItB"}
|