@payloadcms/codemod 4.0.0-internal.d1cc1d3 → 4.0.0-internal.d21c039
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 +3 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +7 -1
- package/dist/registry.js.map +1 -1
- package/dist/transforms/remove-default-locale-publish-option/all-value.input.js +13 -0
- package/dist/transforms/remove-default-locale-publish-option/all-value.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/basic.input.js +13 -0
- package/dist/transforms/remove-default-locale-publish-option/basic.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/basic.output.js +12 -0
- package/dist/transforms/remove-default-locale-publish-option/basic.output.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/dynamic.input.js +17 -0
- package/dist/transforms/remove-default-locale-publish-option/dynamic.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/index.d.ts +10 -0
- package/dist/transforms/remove-default-locale-publish-option/index.d.ts.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/index.js +103 -0
- package/dist/transforms/remove-default-locale-publish-option/index.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/no-match.input.js +10 -0
- package/dist/transforms/remove-default-locale-publish-option/no-match.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/no-match.output.js +10 -0
- package/dist/transforms/remove-default-locale-publish-option/no-match.output.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/reassigned.input.js +22 -0
- package/dist/transforms/remove-default-locale-publish-option/reassigned.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/shorthand.input.js +14 -0
- package/dist/transforms/remove-default-locale-publish-option/shorthand.input.js.map +1 -0
- package/dist/transforms/remove-default-locale-publish-option/shorthand.output.js +13 -0
- package/dist/transforms/remove-default-locale-publish-option/shorthand.output.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/aliased.input.js +11 -0
- package/dist/transforms/remove-storage-always-insert-fields/aliased.input.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/aliased.output.js +10 -0
- package/dist/transforms/remove-storage-always-insert-fields/aliased.output.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/basic.input.js +54 -0
- package/dist/transforms/remove-storage-always-insert-fields/basic.input.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/basic.output.js +48 -0
- package/dist/transforms/remove-storage-always-insert-fields/basic.output.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/index.d.ts +3 -0
- package/dist/transforms/remove-storage-always-insert-fields/index.d.ts.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/index.js +71 -0
- package/dist/transforms/remove-storage-always-insert-fields/index.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/no-match.input.js +27 -0
- package/dist/transforms/remove-storage-always-insert-fields/no-match.input.js.map +1 -0
- package/dist/transforms/remove-storage-always-insert-fields/no-match.output.js +27 -0
- package/dist/transforms/remove-storage-always-insert-fields/no-match.output.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/alias.input.js +6 -0
- package/dist/transforms/rename-experimental-table-feature/alias.input.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/alias.output.js +6 -0
- package/dist/transforms/rename-experimental-table-feature/alias.output.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/basic.input.js +19 -0
- package/dist/transforms/rename-experimental-table-feature/basic.input.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/basic.output.js +19 -0
- package/dist/transforms/rename-experimental-table-feature/basic.output.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/collision.input.js +7 -0
- package/dist/transforms/rename-experimental-table-feature/collision.input.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/index.d.ts +3 -0
- package/dist/transforms/rename-experimental-table-feature/index.d.ts.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/index.js +44 -0
- package/dist/transforms/rename-experimental-table-feature/index.js.map +1 -0
- package/dist/transforms/rename-experimental-table-feature/no-match.input.js +9 -0
- package/dist/transforms/rename-experimental-table-feature/no-match.input.js.map +1 -0
- package/package.json +3 -3
- package/dist/cli.parseFlags.spec.d.ts +0 -2
- package/dist/cli.parseFlags.spec.d.ts.map +0 -1
- package/dist/cli.parseFlags.spec.js +0 -49
- package/dist/cli.parseFlags.spec.js.map +0 -1
- package/dist/runner.spec.d.ts +0 -2
- package/dist/runner.spec.d.ts.map +0 -1
- package/dist/runner.spec.js +0 -88
- package/dist/runner.spec.js.map +0 -1
- package/dist/transforms/example-noop/index.spec.d.ts +0 -2
- package/dist/transforms/example-noop/index.spec.d.ts.map +0 -1
- package/dist/transforms/example-noop/index.spec.js +0 -29
- package/dist/transforms/example-noop/index.spec.js.map +0 -1
- package/dist/transforms/globals-components-edit/index.spec.d.ts +0 -2
- package/dist/transforms/globals-components-edit/index.spec.d.ts.map +0 -1
- package/dist/transforms/globals-components-edit/index.spec.js +0 -37
- package/dist/transforms/globals-components-edit/index.spec.js.map +0 -1
- package/dist/transforms/migrate-after-operation-read/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-after-operation-read/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-after-operation-read/index.spec.js +0 -62
- package/dist/transforms/migrate-after-operation-read/index.spec.js.map +0 -1
- package/dist/transforms/migrate-aliased-exports/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-aliased-exports/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-aliased-exports/index.spec.js +0 -55
- package/dist/transforms/migrate-aliased-exports/index.spec.js.map +0 -1
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js +0 -67
- package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js.map +0 -1
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.js +0 -45
- package/dist/transforms/migrate-block-references-to-blocks/index.spec.js.map +0 -1
- package/dist/transforms/migrate-build-script/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-build-script/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-build-script/index.spec.js +0 -81
- package/dist/transforms/migrate-build-script/index.spec.js.map +0 -1
- package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-db-types-subpath/index.spec.js +0 -46
- package/dist/transforms/migrate-db-types-subpath/index.spec.js.map +0 -1
- package/dist/transforms/migrate-disabled-fields/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-disabled-fields/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-disabled-fields/index.spec.js +0 -73
- package/dist/transforms/migrate-disabled-fields/index.spec.js.map +0 -1
- package/dist/transforms/migrate-document-title-context/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-document-title-context/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-document-title-context/index.spec.js +0 -86
- package/dist/transforms/migrate-document-title-context/index.spec.js.map +0 -1
- package/dist/transforms/migrate-force-select/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-force-select/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-force-select/index.spec.js +0 -107
- package/dist/transforms/migrate-force-select/index.spec.js.map +0 -1
- package/dist/transforms/migrate-hide-api-url/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-hide-api-url/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-hide-api-url/index.spec.js +0 -118
- package/dist/transforms/migrate-hide-api-url/index.spec.js.map +0 -1
- package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-import-export-hooks/index.spec.js +0 -65
- package/dist/transforms/migrate-import-export-hooks/index.spec.js.map +0 -1
- package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-list-view-select-api/index.spec.js +0 -37
- package/dist/transforms/migrate-list-view-select-api/index.spec.js.map +0 -1
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js +0 -41
- package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js.map +0 -1
- package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-next-subpath-exports/index.spec.js +0 -46
- package/dist/transforms/migrate-next-subpath-exports/index.spec.js.map +0 -1
- package/dist/transforms/migrate-slug-field/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-slug-field/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-slug-field/index.spec.js +0 -47
- package/dist/transforms/migrate-slug-field/index.spec.js.map +0 -1
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js +0 -85
- package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js.map +0 -1
- package/dist/transforms/migrate-versions-default/index.spec.d.ts +0 -2
- package/dist/transforms/migrate-versions-default/index.spec.d.ts.map +0 -1
- package/dist/transforms/migrate-versions-default/index.spec.js +0 -81
- package/dist/transforms/migrate-versions-default/index.spec.js.map +0 -1
- package/dist/transforms/remove-group-by-true/index.spec.d.ts +0 -2
- package/dist/transforms/remove-group-by-true/index.spec.d.ts.map +0 -1
- package/dist/transforms/remove-group-by-true/index.spec.js +0 -47
- package/dist/transforms/remove-group-by-true/index.spec.js.map +0 -1
- package/dist/transforms/remove-localize-status-config/index.spec.d.ts +0 -2
- package/dist/transforms/remove-localize-status-config/index.spec.d.ts.map +0 -1
- package/dist/transforms/remove-localize-status-config/index.spec.js +0 -38
- package/dist/transforms/remove-localize-status-config/index.spec.js.map +0 -1
- package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts +0 -2
- package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts.map +0 -1
- package/dist/transforms/remove-publish-specific-locale/index.spec.js +0 -47
- package/dist/transforms/remove-publish-specific-locale/index.spec.js.map +0 -1
- package/dist/transforms/remove-versions-true/index.spec.d.ts +0 -2
- package/dist/transforms/remove-versions-true/index.spec.d.ts.map +0 -1
- package/dist/transforms/remove-versions-true/index.spec.js +0 -38
- package/dist/transforms/remove-versions-true/index.spec.js.map +0 -1
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts +0 -2
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts.map +0 -1
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js +0 -55
- package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js.map +0 -1
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts +0 -2
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts.map +0 -1
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js +0 -45
- package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js.map +0 -1
- package/dist/utils/packageJson.spec.d.ts +0 -2
- package/dist/utils/packageJson.spec.d.ts.map +0 -1
- package/dist/utils/packageJson.spec.js +0 -41
- package/dist/utils/packageJson.spec.js.map +0 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Node, SyntaxKind } from 'ts-morph';
|
|
2
|
+
const storageFactoryByPackage = new Map([
|
|
3
|
+
[
|
|
4
|
+
'@payloadcms/plugin-cloud-storage',
|
|
5
|
+
'cloudStoragePlugin'
|
|
6
|
+
],
|
|
7
|
+
[
|
|
8
|
+
'@payloadcms/storage-azure',
|
|
9
|
+
'azureStorage'
|
|
10
|
+
],
|
|
11
|
+
[
|
|
12
|
+
'@payloadcms/storage-gcs',
|
|
13
|
+
'gcsStorage'
|
|
14
|
+
],
|
|
15
|
+
[
|
|
16
|
+
'@payloadcms/storage-r2',
|
|
17
|
+
'r2Storage'
|
|
18
|
+
],
|
|
19
|
+
[
|
|
20
|
+
'@payloadcms/storage-s3',
|
|
21
|
+
's3Storage'
|
|
22
|
+
],
|
|
23
|
+
[
|
|
24
|
+
'@payloadcms/storage-vercel-blob',
|
|
25
|
+
'vercelBlobStorage'
|
|
26
|
+
]
|
|
27
|
+
]);
|
|
28
|
+
export const removeStorageAlwaysInsertFields = {
|
|
29
|
+
name: 'remove-storage-always-insert-fields',
|
|
30
|
+
apply: ({ project })=>{
|
|
31
|
+
const filesChanged = new Set();
|
|
32
|
+
for (const sourceFile of project.getSourceFiles()){
|
|
33
|
+
for (const importDeclaration of sourceFile.getImportDeclarations()){
|
|
34
|
+
const storageFactoryName = storageFactoryByPackage.get(importDeclaration.getModuleSpecifierValue());
|
|
35
|
+
if (!storageFactoryName) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const storageFactoryImport = importDeclaration.getNamedImports().find((namedImport)=>namedImport.getName() === storageFactoryName);
|
|
39
|
+
if (!storageFactoryImport) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const localStorageFactoryName = storageFactoryImport.getAliasNode() ?? storageFactoryImport.getNameNode();
|
|
43
|
+
for (const reference of localStorageFactoryName.findReferencesAsNodes()){
|
|
44
|
+
const call = reference.getParentIfKind(SyntaxKind.CallExpression);
|
|
45
|
+
if (!call || call.getExpression() !== reference) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const [options] = call.getArguments();
|
|
49
|
+
if (!options || !Node.isObjectLiteralExpression(options)) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (options.getProperties().some((property)=>Node.isSpreadAssignment(property))) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const alwaysInsertFieldsProperty = options.getProperty('alwaysInsertFields');
|
|
56
|
+
if (!alwaysInsertFieldsProperty) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
alwaysInsertFieldsProperty.remove();
|
|
60
|
+
filesChanged.add(sourceFile.getFilePath());
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
filesChanged: Array.from(filesChanged)
|
|
66
|
+
};
|
|
67
|
+
},
|
|
68
|
+
description: 'Remove the obsolete `alwaysInsertFields` option from cloud storage plugin and storage adapter configs. The prefix field is now always inserted.'
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/remove-storage-always-insert-fields/index.ts"],"sourcesContent":["import { Node, SyntaxKind } from 'ts-morph'\n\nimport type { Transform } from '../../types.js'\n\nconst storageFactoryByPackage = new Map([\n ['@payloadcms/plugin-cloud-storage', 'cloudStoragePlugin'],\n ['@payloadcms/storage-azure', 'azureStorage'],\n ['@payloadcms/storage-gcs', 'gcsStorage'],\n ['@payloadcms/storage-r2', 'r2Storage'],\n ['@payloadcms/storage-s3', 's3Storage'],\n ['@payloadcms/storage-vercel-blob', 'vercelBlobStorage'],\n])\n\nexport const removeStorageAlwaysInsertFields: Transform = {\n name: 'remove-storage-always-insert-fields',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n\n for (const sourceFile of project.getSourceFiles()) {\n for (const importDeclaration of sourceFile.getImportDeclarations()) {\n const storageFactoryName = storageFactoryByPackage.get(\n importDeclaration.getModuleSpecifierValue(),\n )\n\n if (!storageFactoryName) {\n continue\n }\n\n const storageFactoryImport = importDeclaration\n .getNamedImports()\n .find((namedImport) => namedImport.getName() === storageFactoryName)\n\n if (!storageFactoryImport) {\n continue\n }\n\n const localStorageFactoryName =\n storageFactoryImport.getAliasNode() ?? storageFactoryImport.getNameNode()\n\n for (const reference of localStorageFactoryName.findReferencesAsNodes()) {\n const call = reference.getParentIfKind(SyntaxKind.CallExpression)\n\n if (!call || call.getExpression() !== reference) {\n continue\n }\n\n const [options] = call.getArguments()\n\n if (!options || !Node.isObjectLiteralExpression(options)) {\n continue\n }\n\n if (options.getProperties().some((property) => Node.isSpreadAssignment(property))) {\n continue\n }\n\n const alwaysInsertFieldsProperty = options.getProperty('alwaysInsertFields')\n\n if (!alwaysInsertFieldsProperty) {\n continue\n }\n\n alwaysInsertFieldsProperty.remove()\n filesChanged.add(sourceFile.getFilePath())\n }\n }\n }\n\n return { filesChanged: Array.from(filesChanged) }\n },\n description:\n 'Remove the obsolete `alwaysInsertFields` option from cloud storage plugin and storage adapter configs. The prefix field is now always inserted.',\n}\n"],"names":["Node","SyntaxKind","storageFactoryByPackage","Map","removeStorageAlwaysInsertFields","name","apply","project","filesChanged","Set","sourceFile","getSourceFiles","importDeclaration","getImportDeclarations","storageFactoryName","get","getModuleSpecifierValue","storageFactoryImport","getNamedImports","find","namedImport","getName","localStorageFactoryName","getAliasNode","getNameNode","reference","findReferencesAsNodes","call","getParentIfKind","CallExpression","getExpression","options","getArguments","isObjectLiteralExpression","getProperties","some","property","isSpreadAssignment","alwaysInsertFieldsProperty","getProperty","remove","add","getFilePath","Array","from","description"],"mappings":"AAAA,SAASA,IAAI,EAAEC,UAAU,QAAQ,WAAU;AAI3C,MAAMC,0BAA0B,IAAIC,IAAI;IACtC;QAAC;QAAoC;KAAqB;IAC1D;QAAC;QAA6B;KAAe;IAC7C;QAAC;QAA2B;KAAa;IACzC;QAAC;QAA0B;KAAY;IACvC;QAAC;QAA0B;KAAY;IACvC;QAAC;QAAmC;KAAoB;CACzD;AAED,OAAO,MAAMC,kCAA6C;IACxDC,MAAM;IACNC,OAAO,CAAC,EAAEC,OAAO,EAAE;QACjB,MAAMC,eAAe,IAAIC;QAEzB,KAAK,MAAMC,cAAcH,QAAQI,cAAc,GAAI;YACjD,KAAK,MAAMC,qBAAqBF,WAAWG,qBAAqB,GAAI;gBAClE,MAAMC,qBAAqBZ,wBAAwBa,GAAG,CACpDH,kBAAkBI,uBAAuB;gBAG3C,IAAI,CAACF,oBAAoB;oBACvB;gBACF;gBAEA,MAAMG,uBAAuBL,kBAC1BM,eAAe,GACfC,IAAI,CAAC,CAACC,cAAgBA,YAAYC,OAAO,OAAOP;gBAEnD,IAAI,CAACG,sBAAsB;oBACzB;gBACF;gBAEA,MAAMK,0BACJL,qBAAqBM,YAAY,MAAMN,qBAAqBO,WAAW;gBAEzE,KAAK,MAAMC,aAAaH,wBAAwBI,qBAAqB,GAAI;oBACvE,MAAMC,OAAOF,UAAUG,eAAe,CAAC3B,WAAW4B,cAAc;oBAEhE,IAAI,CAACF,QAAQA,KAAKG,aAAa,OAAOL,WAAW;wBAC/C;oBACF;oBAEA,MAAM,CAACM,QAAQ,GAAGJ,KAAKK,YAAY;oBAEnC,IAAI,CAACD,WAAW,CAAC/B,KAAKiC,yBAAyB,CAACF,UAAU;wBACxD;oBACF;oBAEA,IAAIA,QAAQG,aAAa,GAAGC,IAAI,CAAC,CAACC,WAAapC,KAAKqC,kBAAkB,CAACD,YAAY;wBACjF;oBACF;oBAEA,MAAME,6BAA6BP,QAAQQ,WAAW,CAAC;oBAEvD,IAAI,CAACD,4BAA4B;wBAC/B;oBACF;oBAEAA,2BAA2BE,MAAM;oBACjChC,aAAaiC,GAAG,CAAC/B,WAAWgC,WAAW;gBACzC;YACF;QACF;QAEA,OAAO;YAAElC,cAAcmC,MAAMC,IAAI,CAACpC;QAAc;IAClD;IACAqC,aACE;AACJ,EAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { s3Storage as payloadS3Storage } from '@payloadcms/storage-s3';
|
|
2
|
+
const options = {
|
|
3
|
+
alwaysInsertFields: true,
|
|
4
|
+
bucket: 'media',
|
|
5
|
+
collections: {
|
|
6
|
+
media: true
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
const s3Storage = (value)=>value;
|
|
10
|
+
export const indirectStorage = payloadS3Storage(options);
|
|
11
|
+
export const unrelatedStorage = s3Storage({
|
|
12
|
+
alwaysInsertFields: true,
|
|
13
|
+
bucket: 'media',
|
|
14
|
+
collections: {
|
|
15
|
+
media: true
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
export const spreadBeforeProperty = payloadS3Storage({
|
|
19
|
+
...options,
|
|
20
|
+
alwaysInsertFields: false
|
|
21
|
+
});
|
|
22
|
+
export const spreadAfterProperty = payloadS3Storage({
|
|
23
|
+
alwaysInsertFields: false,
|
|
24
|
+
...options
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=no-match.input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/remove-storage-always-insert-fields/no-match.input.ts"],"sourcesContent":["import { s3Storage as payloadS3Storage } from '@payloadcms/storage-s3'\n\nconst options = {\n alwaysInsertFields: true,\n bucket: 'media',\n collections: { media: true },\n}\n\nconst s3Storage = (value: typeof options) => value\n\nexport const indirectStorage = payloadS3Storage(options)\nexport const unrelatedStorage = s3Storage({\n alwaysInsertFields: true,\n bucket: 'media',\n collections: { media: true },\n})\nexport const spreadBeforeProperty = payloadS3Storage({\n ...options,\n alwaysInsertFields: false,\n})\nexport const spreadAfterProperty = payloadS3Storage({\n alwaysInsertFields: false,\n ...options,\n})\n"],"names":["s3Storage","payloadS3Storage","options","alwaysInsertFields","bucket","collections","media","value","indirectStorage","unrelatedStorage","spreadBeforeProperty","spreadAfterProperty"],"mappings":"AAAA,SAASA,aAAaC,gBAAgB,QAAQ,yBAAwB;AAEtE,MAAMC,UAAU;IACdC,oBAAoB;IACpBC,QAAQ;IACRC,aAAa;QAAEC,OAAO;IAAK;AAC7B;AAEA,MAAMN,YAAY,CAACO,QAA0BA;AAE7C,OAAO,MAAMC,kBAAkBP,iBAAiBC,SAAQ;AACxD,OAAO,MAAMO,mBAAmBT,UAAU;IACxCG,oBAAoB;IACpBC,QAAQ;IACRC,aAAa;QAAEC,OAAO;IAAK;AAC7B,GAAE;AACF,OAAO,MAAMI,uBAAuBT,iBAAiB;IACnD,GAAGC,OAAO;IACVC,oBAAoB;AACtB,GAAE;AACF,OAAO,MAAMQ,sBAAsBV,iBAAiB;IAClDE,oBAAoB;IACpB,GAAGD,OAAO;AACZ,GAAE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { s3Storage as payloadS3Storage } from '@payloadcms/storage-s3';
|
|
2
|
+
const options = {
|
|
3
|
+
alwaysInsertFields: true,
|
|
4
|
+
bucket: 'media',
|
|
5
|
+
collections: {
|
|
6
|
+
media: true
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
const s3Storage = (value)=>value;
|
|
10
|
+
export const indirectStorage = payloadS3Storage(options);
|
|
11
|
+
export const unrelatedStorage = s3Storage({
|
|
12
|
+
alwaysInsertFields: true,
|
|
13
|
+
bucket: 'media',
|
|
14
|
+
collections: {
|
|
15
|
+
media: true
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
export const spreadBeforeProperty = payloadS3Storage({
|
|
19
|
+
...options,
|
|
20
|
+
alwaysInsertFields: false
|
|
21
|
+
});
|
|
22
|
+
export const spreadAfterProperty = payloadS3Storage({
|
|
23
|
+
alwaysInsertFields: false,
|
|
24
|
+
...options
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=no-match.output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/remove-storage-always-insert-fields/no-match.output.ts"],"sourcesContent":["import { s3Storage as payloadS3Storage } from '@payloadcms/storage-s3'\n\nconst options = {\n alwaysInsertFields: true,\n bucket: 'media',\n collections: { media: true },\n}\n\nconst s3Storage = (value: typeof options) => value\n\nexport const indirectStorage = payloadS3Storage(options)\nexport const unrelatedStorage = s3Storage({\n alwaysInsertFields: true,\n bucket: 'media',\n collections: { media: true },\n})\nexport const spreadBeforeProperty = payloadS3Storage({\n ...options,\n alwaysInsertFields: false,\n})\nexport const spreadAfterProperty = payloadS3Storage({\n alwaysInsertFields: false,\n ...options,\n})\n"],"names":["s3Storage","payloadS3Storage","options","alwaysInsertFields","bucket","collections","media","value","indirectStorage","unrelatedStorage","spreadBeforeProperty","spreadAfterProperty"],"mappings":"AAAA,SAASA,aAAaC,gBAAgB,QAAQ,yBAAwB;AAEtE,MAAMC,UAAU;IACdC,oBAAoB;IACpBC,QAAQ;IACRC,aAAa;QAAEC,OAAO;IAAK;AAC7B;AAEA,MAAMN,YAAY,CAACO,QAA0BA;AAE7C,OAAO,MAAMC,kBAAkBP,iBAAiBC,SAAQ;AACxD,OAAO,MAAMO,mBAAmBT,UAAU;IACxCG,oBAAoB;IACpBC,QAAQ;IACRC,aAAa;QAAEC,OAAO;IAAK;AAC7B,GAAE;AACF,OAAO,MAAMI,uBAAuBT,iBAAiB;IACnD,GAAGC,OAAO;IACVC,oBAAoB;AACtB,GAAE;AACF,OAAO,MAAMQ,sBAAsBV,iBAAiB;IAClDE,oBAAoB;IACpB,GAAGD,OAAO;AACZ,GAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/alias.input.ts"],"sourcesContent":["import { EXPERIMENTAL_TableFeature as TableFeatureFn } from '@payloadcms/richtext-lexical'\n\nexport const features = [TableFeatureFn()]\n"],"names":["EXPERIMENTAL_TableFeature","TableFeatureFn","features"],"mappings":"AAAA,SAASA,6BAA6BC,cAAc,QAAQ,+BAA8B;AAE1F,OAAO,MAAMC,WAAW;IAACD;CAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/alias.output.ts"],"sourcesContent":["import { TableFeature as TableFeatureFn } from '@payloadcms/richtext-lexical'\n\nexport const features = [TableFeatureFn()]\n"],"names":["TableFeature","TableFeatureFn","features"],"mappings":"AAAA,SAASA,gBAAgBC,cAAc,QAAQ,+BAA8B;AAE7E,OAAO,MAAMC,WAAW;IAACD;CAAiB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { EXPERIMENTAL_TableFeature, FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical';
|
|
2
|
+
export const RichText = {
|
|
3
|
+
fields: [
|
|
4
|
+
{
|
|
5
|
+
name: 'content',
|
|
6
|
+
type: 'richText',
|
|
7
|
+
editor: lexicalEditor({
|
|
8
|
+
features: ({ defaultFeatures })=>[
|
|
9
|
+
...defaultFeatures,
|
|
10
|
+
FixedToolbarFeature(),
|
|
11
|
+
EXPERIMENTAL_TableFeature()
|
|
12
|
+
]
|
|
13
|
+
})
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
slug: 'richtext'
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=basic.input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/basic.input.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\nimport { EXPERIMENTAL_TableFeature, FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical'\n\nexport const RichText: CollectionConfig = {\n fields: [\n {\n name: 'content',\n type: 'richText',\n editor: lexicalEditor({\n features: ({ defaultFeatures }) => [\n ...defaultFeatures,\n FixedToolbarFeature(),\n EXPERIMENTAL_TableFeature(),\n ],\n }),\n },\n ],\n slug: 'richtext',\n}\n"],"names":["EXPERIMENTAL_TableFeature","FixedToolbarFeature","lexicalEditor","RichText","fields","name","type","editor","features","defaultFeatures","slug"],"mappings":"AAEA,SAASA,yBAAyB,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,+BAA8B;AAE5G,OAAO,MAAMC,WAA6B;IACxCC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,QAAQL,cAAc;gBACpBM,UAAU,CAAC,EAAEC,eAAe,EAAE,GAAK;2BAC9BA;wBACHR;wBACAD;qBACD;YACH;QACF;KACD;IACDU,MAAM;AACR,EAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TableFeature, FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical';
|
|
2
|
+
export const RichText = {
|
|
3
|
+
fields: [
|
|
4
|
+
{
|
|
5
|
+
name: 'content',
|
|
6
|
+
type: 'richText',
|
|
7
|
+
editor: lexicalEditor({
|
|
8
|
+
features: ({ defaultFeatures })=>[
|
|
9
|
+
...defaultFeatures,
|
|
10
|
+
FixedToolbarFeature(),
|
|
11
|
+
TableFeature()
|
|
12
|
+
]
|
|
13
|
+
})
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
slug: 'richtext'
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=basic.output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/basic.output.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\nimport { TableFeature, FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical'\n\nexport const RichText: CollectionConfig = {\n fields: [\n {\n name: 'content',\n type: 'richText',\n editor: lexicalEditor({\n features: ({ defaultFeatures }) => [\n ...defaultFeatures,\n FixedToolbarFeature(),\n TableFeature(),\n ],\n }),\n },\n ],\n slug: 'richtext',\n}\n"],"names":["TableFeature","FixedToolbarFeature","lexicalEditor","RichText","fields","name","type","editor","features","defaultFeatures","slug"],"mappings":"AAEA,SAASA,YAAY,EAAEC,mBAAmB,EAAEC,aAAa,QAAQ,+BAA8B;AAE/F,OAAO,MAAMC,WAA6B;IACxCC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,QAAQL,cAAc;gBACpBM,UAAU,CAAC,EAAEC,eAAe,EAAE,GAAK;2BAC9BA;wBACHR;wBACAD;qBACD;YACH;QACF;KACD;IACDU,MAAM;AACR,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/collision.input.ts"],"sourcesContent":["import { EXPERIMENTAL_TableFeature, TableFeature } from '@payloadcms/richtext-lexical'\n\nexport const features = [EXPERIMENTAL_TableFeature(), TableFeature()]\n"],"names":["EXPERIMENTAL_TableFeature","TableFeature","features"],"mappings":"AAAA,SAASA,yBAAyB,EAAEC,YAAY,QAAQ,+BAA8B;AAEtF,OAAO,MAAMC,WAAW;IAACF;IAA6BC;CAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transforms/rename-experimental-table-feature/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAM/C,eAAO,MAAM,8BAA8B,EAAE,SA2C5C,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const PACKAGE_NAME = '@payloadcms/richtext-lexical';
|
|
2
|
+
const OLD_NAME = 'EXPERIMENTAL_TableFeature';
|
|
3
|
+
const NEW_NAME = 'TableFeature';
|
|
4
|
+
export const renameExperimentalTableFeature = {
|
|
5
|
+
name: 'rename-experimental-table-feature',
|
|
6
|
+
apply: ({ project })=>{
|
|
7
|
+
const filesChanged = new Set();
|
|
8
|
+
for (const file of project.getSourceFiles()){
|
|
9
|
+
for (const importDecl of file.getImportDeclarations()){
|
|
10
|
+
if (importDecl.getModuleSpecifierValue() !== PACKAGE_NAME) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
const named = importDecl.getNamedImports();
|
|
14
|
+
const spec = named.find((specifier)=>specifier.getName() === OLD_NAME);
|
|
15
|
+
if (!spec) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
// Skip if `TableFeature` is already imported here too, to avoid a collision.
|
|
19
|
+
const hasNewName = named.some((specifier)=>(specifier.getAliasNode()?.getText() ?? specifier.getName()) === NEW_NAME);
|
|
20
|
+
if (hasNewName) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (spec.getAliasNode()) {
|
|
24
|
+
// Aliased usages (`EXPERIMENTAL_TableFeature as Foo`) only reference the alias,
|
|
25
|
+
// so the imported name can be swapped without touching call sites.
|
|
26
|
+
spec.setName(NEW_NAME);
|
|
27
|
+
} else {
|
|
28
|
+
// No alias: the imported name is also the local binding, so rename it to update
|
|
29
|
+
// every call site (e.g. `EXPERIMENTAL_TableFeature()`) in the same pass.
|
|
30
|
+
spec.getNameNode().rename(NEW_NAME);
|
|
31
|
+
}
|
|
32
|
+
filesChanged.add(file.getFilePath());
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
filesChanged: [
|
|
37
|
+
...filesChanged
|
|
38
|
+
]
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
description: 'Renames imports of `EXPERIMENTAL_TableFeature` from `@payloadcms/richtext-lexical` to `TableFeature` (the table feature is now stable) and updates all local usages.'
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/index.ts"],"sourcesContent":["import type { Transform } from '../../types.js'\n\nconst PACKAGE_NAME = '@payloadcms/richtext-lexical'\nconst OLD_NAME = 'EXPERIMENTAL_TableFeature'\nconst NEW_NAME = 'TableFeature'\n\nexport const renameExperimentalTableFeature: Transform = {\n name: 'rename-experimental-table-feature',\n apply: ({ project }) => {\n const filesChanged = new Set<string>()\n\n for (const file of project.getSourceFiles()) {\n for (const importDecl of file.getImportDeclarations()) {\n if (importDecl.getModuleSpecifierValue() !== PACKAGE_NAME) {\n continue\n }\n\n const named = importDecl.getNamedImports()\n const spec = named.find((specifier) => specifier.getName() === OLD_NAME)\n if (!spec) {\n continue\n }\n\n // Skip if `TableFeature` is already imported here too, to avoid a collision.\n const hasNewName = named.some(\n (specifier) => (specifier.getAliasNode()?.getText() ?? specifier.getName()) === NEW_NAME,\n )\n if (hasNewName) {\n continue\n }\n\n if (spec.getAliasNode()) {\n // Aliased usages (`EXPERIMENTAL_TableFeature as Foo`) only reference the alias,\n // so the imported name can be swapped without touching call sites.\n spec.setName(NEW_NAME)\n } else {\n // No alias: the imported name is also the local binding, so rename it to update\n // every call site (e.g. `EXPERIMENTAL_TableFeature()`) in the same pass.\n spec.getNameNode().rename(NEW_NAME)\n }\n\n filesChanged.add(file.getFilePath())\n }\n }\n\n return { filesChanged: [...filesChanged] }\n },\n description:\n 'Renames imports of `EXPERIMENTAL_TableFeature` from `@payloadcms/richtext-lexical` to `TableFeature` (the table feature is now stable) and updates all local usages.',\n}\n"],"names":["PACKAGE_NAME","OLD_NAME","NEW_NAME","renameExperimentalTableFeature","name","apply","project","filesChanged","Set","file","getSourceFiles","importDecl","getImportDeclarations","getModuleSpecifierValue","named","getNamedImports","spec","find","specifier","getName","hasNewName","some","getAliasNode","getText","setName","getNameNode","rename","add","getFilePath","description"],"mappings":"AAEA,MAAMA,eAAe;AACrB,MAAMC,WAAW;AACjB,MAAMC,WAAW;AAEjB,OAAO,MAAMC,iCAA4C;IACvDC,MAAM;IACNC,OAAO,CAAC,EAAEC,OAAO,EAAE;QACjB,MAAMC,eAAe,IAAIC;QAEzB,KAAK,MAAMC,QAAQH,QAAQI,cAAc,GAAI;YAC3C,KAAK,MAAMC,cAAcF,KAAKG,qBAAqB,GAAI;gBACrD,IAAID,WAAWE,uBAAuB,OAAOb,cAAc;oBACzD;gBACF;gBAEA,MAAMc,QAAQH,WAAWI,eAAe;gBACxC,MAAMC,OAAOF,MAAMG,IAAI,CAAC,CAACC,YAAcA,UAAUC,OAAO,OAAOlB;gBAC/D,IAAI,CAACe,MAAM;oBACT;gBACF;gBAEA,6EAA6E;gBAC7E,MAAMI,aAAaN,MAAMO,IAAI,CAC3B,CAACH,YAAc,AAACA,CAAAA,UAAUI,YAAY,IAAIC,aAAaL,UAAUC,OAAO,EAAC,MAAOjB;gBAElF,IAAIkB,YAAY;oBACd;gBACF;gBAEA,IAAIJ,KAAKM,YAAY,IAAI;oBACvB,gFAAgF;oBAChF,mEAAmE;oBACnEN,KAAKQ,OAAO,CAACtB;gBACf,OAAO;oBACL,gFAAgF;oBAChF,yEAAyE;oBACzEc,KAAKS,WAAW,GAAGC,MAAM,CAACxB;gBAC5B;gBAEAK,aAAaoB,GAAG,CAAClB,KAAKmB,WAAW;YACnC;QACF;QAEA,OAAO;YAAErB,cAAc;mBAAIA;aAAa;QAAC;IAC3C;IACAsB,aACE;AACJ,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/transforms/rename-experimental-table-feature/no-match.input.ts"],"sourcesContent":["import { FixedToolbarFeature, lexicalEditor } from '@payloadcms/richtext-lexical'\n\nexport const editor = lexicalEditor({\n features: ({ defaultFeatures }) => [...defaultFeatures, FixedToolbarFeature()],\n})\n"],"names":["FixedToolbarFeature","lexicalEditor","editor","features","defaultFeatures"],"mappings":"AAAA,SAASA,mBAAmB,EAAEC,aAAa,QAAQ,+BAA8B;AAEjF,OAAO,MAAMC,SAASD,cAAc;IAClCE,UAAU,CAAC,EAAEC,eAAe,EAAE,GAAK;eAAIA;YAAiBJ;SAAsB;AAChF,GAAE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/codemod",
|
|
3
|
-
"version": "4.0.0-internal.
|
|
3
|
+
"version": "4.0.0-internal.d21c039",
|
|
4
4
|
"description": "Codemods for migrating Payload projects across versions.",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"@swc/core": "1.15.3",
|
|
36
36
|
"@types/node": "24.12.3",
|
|
37
37
|
"rimraf": "6.0.1",
|
|
38
|
-
"typescript": "6.0.
|
|
39
|
-
"vitest": "
|
|
38
|
+
"typescript": "npm:@typescript/typescript6@6.0.2",
|
|
39
|
+
"vitest": "5.0.0"
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
|
42
42
|
"node": ">=24.15.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.parseFlags.spec.d.ts","sourceRoot":"","sources":["../src/cli.parseFlags.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { parseFlags } from './cli.parseFlags.js';
|
|
3
|
-
describe('parseFlags', ()=>{
|
|
4
|
-
it('defaults path to cwd when no positional arg is given', ()=>{
|
|
5
|
-
expect(parseFlags([])).toEqual({
|
|
6
|
-
dry: false,
|
|
7
|
-
list: false,
|
|
8
|
-
path: process.cwd(),
|
|
9
|
-
print: false,
|
|
10
|
-
transform: undefined
|
|
11
|
-
});
|
|
12
|
-
});
|
|
13
|
-
it('reads positional path', ()=>{
|
|
14
|
-
expect(parseFlags([
|
|
15
|
-
'./src'
|
|
16
|
-
]).path).toBe('./src');
|
|
17
|
-
});
|
|
18
|
-
it('parses flags', ()=>{
|
|
19
|
-
expect(parseFlags([
|
|
20
|
-
'./src',
|
|
21
|
-
'--dry',
|
|
22
|
-
'--print'
|
|
23
|
-
])).toMatchObject({
|
|
24
|
-
dry: true,
|
|
25
|
-
path: './src',
|
|
26
|
-
print: true
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
it('parses --transform', ()=>{
|
|
30
|
-
expect(parseFlags([
|
|
31
|
-
'--transform',
|
|
32
|
-
'rename-slate-export'
|
|
33
|
-
])).toMatchObject({
|
|
34
|
-
transform: 'rename-slate-export'
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
it('parses --list', ()=>{
|
|
38
|
-
expect(parseFlags([
|
|
39
|
-
'--list'
|
|
40
|
-
]).list).toBe(true);
|
|
41
|
-
});
|
|
42
|
-
it('treats --dry-run as an alias for --dry', ()=>{
|
|
43
|
-
expect(parseFlags([
|
|
44
|
-
'--dry-run'
|
|
45
|
-
]).dry).toBe(true);
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
//# sourceMappingURL=cli.parseFlags.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.parseFlags.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { parseFlags } from './cli.parseFlags.js'\n\ndescribe('parseFlags', () => {\n it('defaults path to cwd when no positional arg is given', () => {\n expect(parseFlags([])).toEqual({\n dry: false,\n list: false,\n path: process.cwd(),\n print: false,\n transform: undefined,\n })\n })\n\n it('reads positional path', () => {\n expect(parseFlags(['./src']).path).toBe('./src')\n })\n\n it('parses flags', () => {\n expect(parseFlags(['./src', '--dry', '--print'])).toMatchObject({\n dry: true,\n path: './src',\n print: true,\n })\n })\n\n it('parses --transform', () => {\n expect(parseFlags(['--transform', 'rename-slate-export'])).toMatchObject({\n transform: 'rename-slate-export',\n })\n })\n\n it('parses --list', () => {\n expect(parseFlags(['--list']).list).toBe(true)\n })\n\n it('treats --dry-run as an alias for --dry', () => {\n expect(parseFlags(['--dry-run']).dry).toBe(true)\n })\n})\n"],"names":["describe","expect","it","parseFlags","toEqual","dry","list","path","process","cwd","print","transform","undefined","toBe","toMatchObject"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,UAAU,QAAQ,sBAAqB;AAEhDH,SAAS,cAAc;IACrBE,GAAG,wDAAwD;QACzDD,OAAOE,WAAW,EAAE,GAAGC,OAAO,CAAC;YAC7BC,KAAK;YACLC,MAAM;YACNC,MAAMC,QAAQC,GAAG;YACjBC,OAAO;YACPC,WAAWC;QACb;IACF;IAEAV,GAAG,yBAAyB;QAC1BD,OAAOE,WAAW;YAAC;SAAQ,EAAEI,IAAI,EAAEM,IAAI,CAAC;IAC1C;IAEAX,GAAG,gBAAgB;QACjBD,OAAOE,WAAW;YAAC;YAAS;YAAS;SAAU,GAAGW,aAAa,CAAC;YAC9DT,KAAK;YACLE,MAAM;YACNG,OAAO;QACT;IACF;IAEAR,GAAG,sBAAsB;QACvBD,OAAOE,WAAW;YAAC;YAAe;SAAsB,GAAGW,aAAa,CAAC;YACvEH,WAAW;QACb;IACF;IAEAT,GAAG,iBAAiB;QAClBD,OAAOE,WAAW;YAAC;SAAS,EAAEG,IAAI,EAAEO,IAAI,CAAC;IAC3C;IAEAX,GAAG,0CAA0C;QAC3CD,OAAOE,WAAW;YAAC;SAAY,EAAEE,GAAG,EAAEQ,IAAI,CAAC;IAC7C;AACF"}
|
package/dist/runner.spec.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.spec.d.ts","sourceRoot":"","sources":["../src/runner.spec.ts"],"names":[],"mappings":""}
|
package/dist/runner.spec.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { Project } from 'ts-morph';
|
|
2
|
-
import { describe, expect, it } from 'vitest';
|
|
3
|
-
import { runTransforms } from './runner.js';
|
|
4
|
-
function makeProject(files) {
|
|
5
|
-
const project = new Project({
|
|
6
|
-
useInMemoryFileSystem: true
|
|
7
|
-
});
|
|
8
|
-
for (const [path, contents] of Object.entries(files)){
|
|
9
|
-
project.createSourceFile(path, contents);
|
|
10
|
-
}
|
|
11
|
-
return project;
|
|
12
|
-
}
|
|
13
|
-
describe('runTransforms', ()=>{
|
|
14
|
-
it('applies each transform in order and aggregates results', async ()=>{
|
|
15
|
-
const project = makeProject({
|
|
16
|
-
'a.ts': 'export const a = 1'
|
|
17
|
-
});
|
|
18
|
-
const t1 = {
|
|
19
|
-
name: 't1',
|
|
20
|
-
apply: ()=>({
|
|
21
|
-
filesChanged: [
|
|
22
|
-
'a.ts'
|
|
23
|
-
]
|
|
24
|
-
}),
|
|
25
|
-
description: ''
|
|
26
|
-
};
|
|
27
|
-
const t2 = {
|
|
28
|
-
name: 't2',
|
|
29
|
-
apply: ()=>({
|
|
30
|
-
filesChanged: [],
|
|
31
|
-
notes: [
|
|
32
|
-
'nothing to do'
|
|
33
|
-
]
|
|
34
|
-
}),
|
|
35
|
-
description: ''
|
|
36
|
-
};
|
|
37
|
-
const result = await runTransforms({
|
|
38
|
-
project,
|
|
39
|
-
transforms: [
|
|
40
|
-
t1,
|
|
41
|
-
t2
|
|
42
|
-
]
|
|
43
|
-
});
|
|
44
|
-
expect(result.results.map((r)=>r.name)).toEqual([
|
|
45
|
-
't1',
|
|
46
|
-
't2'
|
|
47
|
-
]);
|
|
48
|
-
expect(result.results[0].filesChanged).toEqual([
|
|
49
|
-
'a.ts'
|
|
50
|
-
]);
|
|
51
|
-
expect(result.failed).toBe(false);
|
|
52
|
-
});
|
|
53
|
-
it('continues past a throwing transform and marks the run failed', async ()=>{
|
|
54
|
-
const project = makeProject({
|
|
55
|
-
'a.ts': 'export const a = 1'
|
|
56
|
-
});
|
|
57
|
-
const boom = {
|
|
58
|
-
name: 'boom',
|
|
59
|
-
apply: ()=>{
|
|
60
|
-
throw new Error('kaboom');
|
|
61
|
-
},
|
|
62
|
-
description: ''
|
|
63
|
-
};
|
|
64
|
-
const ok = {
|
|
65
|
-
name: 'ok',
|
|
66
|
-
apply: ()=>({
|
|
67
|
-
filesChanged: []
|
|
68
|
-
}),
|
|
69
|
-
description: ''
|
|
70
|
-
};
|
|
71
|
-
const result = await runTransforms({
|
|
72
|
-
project,
|
|
73
|
-
transforms: [
|
|
74
|
-
boom,
|
|
75
|
-
ok
|
|
76
|
-
]
|
|
77
|
-
});
|
|
78
|
-
expect(result.failed).toBe(true);
|
|
79
|
-
expect(result.results.map((r)=>r.name)).toEqual([
|
|
80
|
-
'boom',
|
|
81
|
-
'ok'
|
|
82
|
-
]);
|
|
83
|
-
expect(result.results[0].error).toBeInstanceOf(Error);
|
|
84
|
-
expect(result.results[1].error).toBeUndefined();
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
//# sourceMappingURL=runner.spec.js.map
|
package/dist/runner.spec.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/runner.spec.ts"],"sourcesContent":["import { Project } from 'ts-morph'\nimport { describe, expect, it } from 'vitest'\n\nimport type { Transform } from './types.js'\n\nimport { runTransforms } from './runner.js'\n\nfunction makeProject(files: Record<string, string>): Project {\n const project = new Project({ useInMemoryFileSystem: true })\n for (const [path, contents] of Object.entries(files)) {\n project.createSourceFile(path, contents)\n }\n return project\n}\n\ndescribe('runTransforms', () => {\n it('applies each transform in order and aggregates results', async () => {\n const project = makeProject({ 'a.ts': 'export const a = 1' })\n\n const t1: Transform = {\n name: 't1',\n apply: () => ({ filesChanged: ['a.ts'] }),\n description: '',\n }\n const t2: Transform = {\n name: 't2',\n apply: () => ({ filesChanged: [], notes: ['nothing to do'] }),\n description: '',\n }\n\n const result = await runTransforms({\n project,\n transforms: [t1, t2],\n })\n\n expect(result.results.map((r) => r.name)).toEqual(['t1', 't2'])\n expect(result.results[0]!.filesChanged).toEqual(['a.ts'])\n expect(result.failed).toBe(false)\n })\n\n it('continues past a throwing transform and marks the run failed', async () => {\n const project = makeProject({ 'a.ts': 'export const a = 1' })\n\n const boom: Transform = {\n name: 'boom',\n apply: () => {\n throw new Error('kaboom')\n },\n description: '',\n }\n const ok: Transform = {\n name: 'ok',\n apply: () => ({ filesChanged: [] }),\n description: '',\n }\n\n const result = await runTransforms({\n project,\n transforms: [boom, ok],\n })\n\n expect(result.failed).toBe(true)\n expect(result.results.map((r) => r.name)).toEqual(['boom', 'ok'])\n expect(result.results[0]!.error).toBeInstanceOf(Error)\n expect(result.results[1]!.error).toBeUndefined()\n })\n})\n"],"names":["Project","describe","expect","it","runTransforms","makeProject","files","project","useInMemoryFileSystem","path","contents","Object","entries","createSourceFile","t1","name","apply","filesChanged","description","t2","notes","result","transforms","results","map","r","toEqual","failed","toBe","boom","Error","ok","error","toBeInstanceOf","toBeUndefined"],"mappings":"AAAA,SAASA,OAAO,QAAQ,WAAU;AAClC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAI7C,SAASC,aAAa,QAAQ,cAAa;AAE3C,SAASC,YAAYC,KAA6B;IAChD,MAAMC,UAAU,IAAIP,QAAQ;QAAEQ,uBAAuB;IAAK;IAC1D,KAAK,MAAM,CAACC,MAAMC,SAAS,IAAIC,OAAOC,OAAO,CAACN,OAAQ;QACpDC,QAAQM,gBAAgB,CAACJ,MAAMC;IACjC;IACA,OAAOH;AACT;AAEAN,SAAS,iBAAiB;IACxBE,GAAG,0DAA0D;QAC3D,MAAMI,UAAUF,YAAY;YAAE,QAAQ;QAAqB;QAE3D,MAAMS,KAAgB;YACpBC,MAAM;YACNC,OAAO,IAAO,CAAA;oBAAEC,cAAc;wBAAC;qBAAO;gBAAC,CAAA;YACvCC,aAAa;QACf;QACA,MAAMC,KAAgB;YACpBJ,MAAM;YACNC,OAAO,IAAO,CAAA;oBAAEC,cAAc,EAAE;oBAAEG,OAAO;wBAAC;qBAAgB;gBAAC,CAAA;YAC3DF,aAAa;QACf;QAEA,MAAMG,SAAS,MAAMjB,cAAc;YACjCG;YACAe,YAAY;gBAACR;gBAAIK;aAAG;QACtB;QAEAjB,OAAOmB,OAAOE,OAAO,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEV,IAAI,GAAGW,OAAO,CAAC;YAAC;YAAM;SAAK;QAC9DxB,OAAOmB,OAAOE,OAAO,CAAC,EAAE,CAAEN,YAAY,EAAES,OAAO,CAAC;YAAC;SAAO;QACxDxB,OAAOmB,OAAOM,MAAM,EAAEC,IAAI,CAAC;IAC7B;IAEAzB,GAAG,gEAAgE;QACjE,MAAMI,UAAUF,YAAY;YAAE,QAAQ;QAAqB;QAE3D,MAAMwB,OAAkB;YACtBd,MAAM;YACNC,OAAO;gBACL,MAAM,IAAIc,MAAM;YAClB;YACAZ,aAAa;QACf;QACA,MAAMa,KAAgB;YACpBhB,MAAM;YACNC,OAAO,IAAO,CAAA;oBAAEC,cAAc,EAAE;gBAAC,CAAA;YACjCC,aAAa;QACf;QAEA,MAAMG,SAAS,MAAMjB,cAAc;YACjCG;YACAe,YAAY;gBAACO;gBAAME;aAAG;QACxB;QAEA7B,OAAOmB,OAAOM,MAAM,EAAEC,IAAI,CAAC;QAC3B1B,OAAOmB,OAAOE,OAAO,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEV,IAAI,GAAGW,OAAO,CAAC;YAAC;YAAQ;SAAK;QAChExB,OAAOmB,OAAOE,OAAO,CAAC,EAAE,CAAES,KAAK,EAAEC,cAAc,CAACH;QAChD5B,OAAOmB,OAAOE,OAAO,CAAC,EAAE,CAAES,KAAK,EAAEE,aAAa;IAChD;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/transforms/example-noop/index.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
2
|
-
import { dirname, join } from 'node:path';
|
|
3
|
-
import { fileURLToPath } from 'node:url';
|
|
4
|
-
import { describe, expect, it } from 'vitest';
|
|
5
|
-
import { runTransform } from '../../utils/test-helpers.js';
|
|
6
|
-
import { exampleNoop } from './index.js';
|
|
7
|
-
const here = dirname(fileURLToPath(import.meta.url));
|
|
8
|
-
const fixture = (name)=>readFile(join(here, name), 'utf8');
|
|
9
|
-
describe('example-noop', ()=>{
|
|
10
|
-
it('leaves matching input unchanged', async ()=>{
|
|
11
|
-
const input = await fixture('basic.input.ts');
|
|
12
|
-
const output = await fixture('basic.output.ts');
|
|
13
|
-
const result = await runTransform({
|
|
14
|
-
source: input,
|
|
15
|
-
transform: exampleNoop
|
|
16
|
-
});
|
|
17
|
-
expect(result).toBe(output);
|
|
18
|
-
});
|
|
19
|
-
it('is idempotent', async ()=>{
|
|
20
|
-
const output = await fixture('basic.output.ts');
|
|
21
|
-
const result = await runTransform({
|
|
22
|
-
source: output,
|
|
23
|
-
transform: exampleNoop
|
|
24
|
-
});
|
|
25
|
-
expect(result).toBe(output);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
//# sourceMappingURL=index.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/transforms/example-noop/index.spec.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\nimport { dirname, join } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { describe, expect, it } from 'vitest'\n\nimport { runTransform } from '../../utils/test-helpers.js'\nimport { exampleNoop } from './index.js'\n\nconst here = dirname(fileURLToPath(import.meta.url))\nconst fixture = (name: string) => readFile(join(here, name), 'utf8')\n\ndescribe('example-noop', () => {\n it('leaves matching input unchanged', async () => {\n const input = await fixture('basic.input.ts')\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: input, transform: exampleNoop })\n\n expect(result).toBe(output)\n })\n\n it('is idempotent', async () => {\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: output, transform: exampleNoop })\n\n expect(result).toBe(output)\n })\n})\n"],"names":["readFile","dirname","join","fileURLToPath","describe","expect","it","runTransform","exampleNoop","here","url","fixture","name","input","output","result","source","transform","toBe"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,mBAAkB;AAC3C,SAASC,OAAO,EAAEC,IAAI,QAAQ,YAAW;AACzC,SAASC,aAAa,QAAQ,WAAU;AACxC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,WAAW,QAAQ,aAAY;AAExC,MAAMC,OAAOR,QAAQE,cAAc,YAAYO,GAAG;AAClD,MAAMC,UAAU,CAACC,OAAiBZ,SAASE,KAAKO,MAAMG,OAAO;AAE7DR,SAAS,gBAAgB;IACvBE,GAAG,mCAAmC;QACpC,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAY;QAE1EH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,iBAAiB;QAClB,MAAMQ,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQF;YAAQG,WAAWT;QAAY;QAE3EH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/transforms/globals-components-edit/index.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
2
|
-
import { dirname, join } from 'node:path';
|
|
3
|
-
import { fileURLToPath } from 'node:url';
|
|
4
|
-
import { describe, expect, it } from 'vitest';
|
|
5
|
-
import { runTransform } from '../../utils/test-helpers.js';
|
|
6
|
-
import { globalsComponentsEdit } from './index.js';
|
|
7
|
-
const here = dirname(fileURLToPath(import.meta.url));
|
|
8
|
-
const fixture = (name)=>readFile(join(here, name), 'utf8');
|
|
9
|
-
describe('globals-components-edit', ()=>{
|
|
10
|
-
it('migrates a global with elements (and hoists Description)', async ()=>{
|
|
11
|
-
const input = await fixture('basic.input.ts');
|
|
12
|
-
const output = await fixture('basic.output.ts');
|
|
13
|
-
const result = await runTransform({
|
|
14
|
-
source: input,
|
|
15
|
-
transform: globalsComponentsEdit
|
|
16
|
-
});
|
|
17
|
-
expect(result).toBe(output);
|
|
18
|
-
});
|
|
19
|
-
it('is idempotent', async ()=>{
|
|
20
|
-
const output = await fixture('basic.output.ts');
|
|
21
|
-
const result = await runTransform({
|
|
22
|
-
source: output,
|
|
23
|
-
transform: globalsComponentsEdit
|
|
24
|
-
});
|
|
25
|
-
expect(result).toBe(output);
|
|
26
|
-
});
|
|
27
|
-
it('no-ops on a Collection config that already uses `edit`', async ()=>{
|
|
28
|
-
const input = await fixture('collection.input.ts');
|
|
29
|
-
const result = await runTransform({
|
|
30
|
-
source: input,
|
|
31
|
-
transform: globalsComponentsEdit
|
|
32
|
-
});
|
|
33
|
-
expect(result).toBe(input);
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=index.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/transforms/globals-components-edit/index.spec.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\nimport { dirname, join } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { describe, expect, it } from 'vitest'\n\nimport { runTransform } from '../../utils/test-helpers.js'\nimport { globalsComponentsEdit } from './index.js'\n\nconst here = dirname(fileURLToPath(import.meta.url))\nconst fixture = (name: string) => readFile(join(here, name), 'utf8')\n\ndescribe('globals-components-edit', () => {\n it('migrates a global with elements (and hoists Description)', async () => {\n const input = await fixture('basic.input.ts')\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: input, transform: globalsComponentsEdit })\n\n expect(result).toBe(output)\n })\n\n it('is idempotent', async () => {\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: output, transform: globalsComponentsEdit })\n\n expect(result).toBe(output)\n })\n\n it('no-ops on a Collection config that already uses `edit`', async () => {\n const input = await fixture('collection.input.ts')\n\n const result = await runTransform({ source: input, transform: globalsComponentsEdit })\n\n expect(result).toBe(input)\n })\n})\n"],"names":["readFile","dirname","join","fileURLToPath","describe","expect","it","runTransform","globalsComponentsEdit","here","url","fixture","name","input","output","result","source","transform","toBe"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,mBAAkB;AAC3C,SAASC,OAAO,EAAEC,IAAI,QAAQ,YAAW;AACzC,SAASC,aAAa,QAAQ,WAAU;AACxC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,qBAAqB,QAAQ,aAAY;AAElD,MAAMC,OAAOR,QAAQE,cAAc,YAAYO,GAAG;AAClD,MAAMC,UAAU,CAACC,OAAiBZ,SAASE,KAAKO,MAAMG,OAAO;AAE7DR,SAAS,2BAA2B;IAClCE,GAAG,4DAA4D;QAC7D,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAsB;QAEpFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,iBAAiB;QAClB,MAAMQ,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQF;YAAQG,WAAWT;QAAsB;QAErFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,0DAA0D;QAC3D,MAAMO,QAAQ,MAAMF,QAAQ;QAE5B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAsB;QAEpFH,OAAOU,QAAQG,IAAI,CAACL;IACtB;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-after-operation-read/index.spec.ts"],"names":[],"mappings":""}
|