@payloadcms/codemod 4.0.0-internal.af6aad0 → 4.0.0-internal.b8a92d2

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.
Files changed (159) hide show
  1. package/README.md +2 -0
  2. package/dist/registry.d.ts.map +1 -1
  3. package/dist/registry.js +4 -0
  4. package/dist/registry.js.map +1 -1
  5. package/dist/transforms/remove-default-locale-publish-option/all-value.input.js +13 -0
  6. package/dist/transforms/remove-default-locale-publish-option/all-value.input.js.map +1 -0
  7. package/dist/transforms/remove-default-locale-publish-option/basic.input.js +13 -0
  8. package/dist/transforms/remove-default-locale-publish-option/basic.input.js.map +1 -0
  9. package/dist/transforms/remove-default-locale-publish-option/basic.output.js +12 -0
  10. package/dist/transforms/remove-default-locale-publish-option/basic.output.js.map +1 -0
  11. package/dist/transforms/remove-default-locale-publish-option/dynamic.input.js +17 -0
  12. package/dist/transforms/remove-default-locale-publish-option/dynamic.input.js.map +1 -0
  13. package/dist/transforms/remove-default-locale-publish-option/index.d.ts +10 -0
  14. package/dist/transforms/remove-default-locale-publish-option/index.d.ts.map +1 -0
  15. package/dist/transforms/remove-default-locale-publish-option/index.js +103 -0
  16. package/dist/transforms/remove-default-locale-publish-option/index.js.map +1 -0
  17. package/dist/transforms/remove-default-locale-publish-option/no-match.input.js +10 -0
  18. package/dist/transforms/remove-default-locale-publish-option/no-match.input.js.map +1 -0
  19. package/dist/transforms/remove-default-locale-publish-option/no-match.output.js +10 -0
  20. package/dist/transforms/remove-default-locale-publish-option/no-match.output.js.map +1 -0
  21. package/dist/transforms/remove-default-locale-publish-option/reassigned.input.js +22 -0
  22. package/dist/transforms/remove-default-locale-publish-option/reassigned.input.js.map +1 -0
  23. package/dist/transforms/remove-default-locale-publish-option/shorthand.input.js +14 -0
  24. package/dist/transforms/remove-default-locale-publish-option/shorthand.input.js.map +1 -0
  25. package/dist/transforms/remove-default-locale-publish-option/shorthand.output.js +13 -0
  26. package/dist/transforms/remove-default-locale-publish-option/shorthand.output.js.map +1 -0
  27. package/dist/transforms/remove-storage-always-insert-fields/aliased.input.js +11 -0
  28. package/dist/transforms/remove-storage-always-insert-fields/aliased.input.js.map +1 -0
  29. package/dist/transforms/remove-storage-always-insert-fields/aliased.output.js +10 -0
  30. package/dist/transforms/remove-storage-always-insert-fields/aliased.output.js.map +1 -0
  31. package/dist/transforms/remove-storage-always-insert-fields/basic.input.js +54 -0
  32. package/dist/transforms/remove-storage-always-insert-fields/basic.input.js.map +1 -0
  33. package/dist/transforms/remove-storage-always-insert-fields/basic.output.js +48 -0
  34. package/dist/transforms/remove-storage-always-insert-fields/basic.output.js.map +1 -0
  35. package/dist/transforms/remove-storage-always-insert-fields/index.d.ts +3 -0
  36. package/dist/transforms/remove-storage-always-insert-fields/index.d.ts.map +1 -0
  37. package/dist/transforms/remove-storage-always-insert-fields/index.js +71 -0
  38. package/dist/transforms/remove-storage-always-insert-fields/index.js.map +1 -0
  39. package/dist/transforms/remove-storage-always-insert-fields/no-match.input.js +27 -0
  40. package/dist/transforms/remove-storage-always-insert-fields/no-match.input.js.map +1 -0
  41. package/dist/transforms/remove-storage-always-insert-fields/no-match.output.js +27 -0
  42. package/dist/transforms/remove-storage-always-insert-fields/no-match.output.js.map +1 -0
  43. package/package.json +3 -3
  44. package/dist/cli.parseFlags.spec.d.ts +0 -2
  45. package/dist/cli.parseFlags.spec.d.ts.map +0 -1
  46. package/dist/cli.parseFlags.spec.js +0 -49
  47. package/dist/cli.parseFlags.spec.js.map +0 -1
  48. package/dist/runner.spec.d.ts +0 -2
  49. package/dist/runner.spec.d.ts.map +0 -1
  50. package/dist/runner.spec.js +0 -88
  51. package/dist/runner.spec.js.map +0 -1
  52. package/dist/transforms/example-noop/index.spec.d.ts +0 -2
  53. package/dist/transforms/example-noop/index.spec.d.ts.map +0 -1
  54. package/dist/transforms/example-noop/index.spec.js +0 -29
  55. package/dist/transforms/example-noop/index.spec.js.map +0 -1
  56. package/dist/transforms/globals-components-edit/index.spec.d.ts +0 -2
  57. package/dist/transforms/globals-components-edit/index.spec.d.ts.map +0 -1
  58. package/dist/transforms/globals-components-edit/index.spec.js +0 -37
  59. package/dist/transforms/globals-components-edit/index.spec.js.map +0 -1
  60. package/dist/transforms/migrate-after-operation-read/index.spec.d.ts +0 -2
  61. package/dist/transforms/migrate-after-operation-read/index.spec.d.ts.map +0 -1
  62. package/dist/transforms/migrate-after-operation-read/index.spec.js +0 -62
  63. package/dist/transforms/migrate-after-operation-read/index.spec.js.map +0 -1
  64. package/dist/transforms/migrate-aliased-exports/index.spec.d.ts +0 -2
  65. package/dist/transforms/migrate-aliased-exports/index.spec.d.ts.map +0 -1
  66. package/dist/transforms/migrate-aliased-exports/index.spec.js +0 -55
  67. package/dist/transforms/migrate-aliased-exports/index.spec.js.map +0 -1
  68. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts +0 -2
  69. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.d.ts.map +0 -1
  70. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js +0 -67
  71. package/dist/transforms/migrate-azure-chunk-large-files/index.spec.js.map +0 -1
  72. package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts +0 -2
  73. package/dist/transforms/migrate-block-references-to-blocks/index.spec.d.ts.map +0 -1
  74. package/dist/transforms/migrate-block-references-to-blocks/index.spec.js +0 -45
  75. package/dist/transforms/migrate-block-references-to-blocks/index.spec.js.map +0 -1
  76. package/dist/transforms/migrate-build-script/index.spec.d.ts +0 -2
  77. package/dist/transforms/migrate-build-script/index.spec.d.ts.map +0 -1
  78. package/dist/transforms/migrate-build-script/index.spec.js +0 -81
  79. package/dist/transforms/migrate-build-script/index.spec.js.map +0 -1
  80. package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts +0 -2
  81. package/dist/transforms/migrate-db-types-subpath/index.spec.d.ts.map +0 -1
  82. package/dist/transforms/migrate-db-types-subpath/index.spec.js +0 -46
  83. package/dist/transforms/migrate-db-types-subpath/index.spec.js.map +0 -1
  84. package/dist/transforms/migrate-disabled-fields/index.spec.d.ts +0 -2
  85. package/dist/transforms/migrate-disabled-fields/index.spec.d.ts.map +0 -1
  86. package/dist/transforms/migrate-disabled-fields/index.spec.js +0 -73
  87. package/dist/transforms/migrate-disabled-fields/index.spec.js.map +0 -1
  88. package/dist/transforms/migrate-document-title-context/index.spec.d.ts +0 -2
  89. package/dist/transforms/migrate-document-title-context/index.spec.d.ts.map +0 -1
  90. package/dist/transforms/migrate-document-title-context/index.spec.js +0 -86
  91. package/dist/transforms/migrate-document-title-context/index.spec.js.map +0 -1
  92. package/dist/transforms/migrate-force-select/index.spec.d.ts +0 -2
  93. package/dist/transforms/migrate-force-select/index.spec.d.ts.map +0 -1
  94. package/dist/transforms/migrate-force-select/index.spec.js +0 -107
  95. package/dist/transforms/migrate-force-select/index.spec.js.map +0 -1
  96. package/dist/transforms/migrate-hide-api-url/index.spec.d.ts +0 -2
  97. package/dist/transforms/migrate-hide-api-url/index.spec.d.ts.map +0 -1
  98. package/dist/transforms/migrate-hide-api-url/index.spec.js +0 -118
  99. package/dist/transforms/migrate-hide-api-url/index.spec.js.map +0 -1
  100. package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts +0 -2
  101. package/dist/transforms/migrate-import-export-hooks/index.spec.d.ts.map +0 -1
  102. package/dist/transforms/migrate-import-export-hooks/index.spec.js +0 -65
  103. package/dist/transforms/migrate-import-export-hooks/index.spec.js.map +0 -1
  104. package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts +0 -2
  105. package/dist/transforms/migrate-list-view-select-api/index.spec.d.ts.map +0 -1
  106. package/dist/transforms/migrate-list-view-select-api/index.spec.js +0 -37
  107. package/dist/transforms/migrate-list-view-select-api/index.spec.js.map +0 -1
  108. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts +0 -2
  109. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.d.ts.map +0 -1
  110. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js +0 -41
  111. package/dist/transforms/migrate-next-generate-viewport-export/index.spec.js.map +0 -1
  112. package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts +0 -2
  113. package/dist/transforms/migrate-next-subpath-exports/index.spec.d.ts.map +0 -1
  114. package/dist/transforms/migrate-next-subpath-exports/index.spec.js +0 -46
  115. package/dist/transforms/migrate-next-subpath-exports/index.spec.js.map +0 -1
  116. package/dist/transforms/migrate-slug-field/index.spec.d.ts +0 -2
  117. package/dist/transforms/migrate-slug-field/index.spec.d.ts.map +0 -1
  118. package/dist/transforms/migrate-slug-field/index.spec.js +0 -47
  119. package/dist/transforms/migrate-slug-field/index.spec.js.map +0 -1
  120. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts +0 -2
  121. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.d.ts.map +0 -1
  122. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js +0 -85
  123. package/dist/transforms/migrate-storage-adapters-to-config/index.spec.js.map +0 -1
  124. package/dist/transforms/migrate-versions-default/index.spec.d.ts +0 -2
  125. package/dist/transforms/migrate-versions-default/index.spec.d.ts.map +0 -1
  126. package/dist/transforms/migrate-versions-default/index.spec.js +0 -81
  127. package/dist/transforms/migrate-versions-default/index.spec.js.map +0 -1
  128. package/dist/transforms/remove-group-by-true/index.spec.d.ts +0 -2
  129. package/dist/transforms/remove-group-by-true/index.spec.d.ts.map +0 -1
  130. package/dist/transforms/remove-group-by-true/index.spec.js +0 -47
  131. package/dist/transforms/remove-group-by-true/index.spec.js.map +0 -1
  132. package/dist/transforms/remove-localize-status-config/index.spec.d.ts +0 -2
  133. package/dist/transforms/remove-localize-status-config/index.spec.d.ts.map +0 -1
  134. package/dist/transforms/remove-localize-status-config/index.spec.js +0 -38
  135. package/dist/transforms/remove-localize-status-config/index.spec.js.map +0 -1
  136. package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts +0 -2
  137. package/dist/transforms/remove-publish-specific-locale/index.spec.d.ts.map +0 -1
  138. package/dist/transforms/remove-publish-specific-locale/index.spec.js +0 -47
  139. package/dist/transforms/remove-publish-specific-locale/index.spec.js.map +0 -1
  140. package/dist/transforms/remove-versions-true/index.spec.d.ts +0 -2
  141. package/dist/transforms/remove-versions-true/index.spec.d.ts.map +0 -1
  142. package/dist/transforms/remove-versions-true/index.spec.js +0 -38
  143. package/dist/transforms/remove-versions-true/index.spec.js.map +0 -1
  144. package/dist/transforms/rename-experimental-table-feature/index.spec.d.ts +0 -2
  145. package/dist/transforms/rename-experimental-table-feature/index.spec.d.ts.map +0 -1
  146. package/dist/transforms/rename-experimental-table-feature/index.spec.js +0 -54
  147. package/dist/transforms/rename-experimental-table-feature/index.spec.js.map +0 -1
  148. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts +0 -2
  149. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.d.ts.map +0 -1
  150. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js +0 -55
  151. package/dist/transforms/rename-storage-adapters-to-storage/index.spec.js.map +0 -1
  152. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts +0 -2
  153. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.d.ts.map +0 -1
  154. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js +0 -45
  155. package/dist/transforms/rename-typescript-schema-to-json-schema/index.spec.js.map +0 -1
  156. package/dist/utils/packageJson.spec.d.ts +0 -2
  157. package/dist/utils/packageJson.spec.d.ts.map +0 -1
  158. package/dist/utils/packageJson.spec.js +0 -41
  159. 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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/codemod",
3
- "version": "4.0.0-internal.af6aad0",
3
+ "version": "4.0.0-internal.b8a92d2",
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.3",
39
- "vitest": "4.1.6"
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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cli.parseFlags.spec.d.ts.map
@@ -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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=runner.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.spec.d.ts","sourceRoot":"","sources":["../src/runner.spec.ts"],"names":[],"mappings":""}
@@ -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
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.spec.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.spec.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-after-operation-read/index.spec.ts"],"names":[],"mappings":""}
@@ -1,62 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { dirname, join } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- import { Project } from 'ts-morph';
5
- import { describe, expect, it } from 'vitest';
6
- import { runTransform } from '../../utils/test-helpers.js';
7
- import { migrateAfterOperationRead } from './index.js';
8
- const here = dirname(fileURLToPath(import.meta.url));
9
- const fixture = (name)=>readFile(join(here, name), 'utf8');
10
- describe('migrate-after-operation-read', ()=>{
11
- it("expands `operation === 'read'` to handle find and findByID", async ()=>{
12
- const input = await fixture('basic.input.ts');
13
- const output = await fixture('basic.output.ts');
14
- const result = await runTransform({
15
- source: input,
16
- transform: migrateAfterOperationRead
17
- });
18
- expect(result).toBe(output);
19
- });
20
- it('resolves an aliased operation arg and parenthesizes negated checks inside logical expressions', async ()=>{
21
- const input = await fixture('alias.input.ts');
22
- const output = await fixture('alias.output.ts');
23
- const result = await runTransform({
24
- source: input,
25
- transform: migrateAfterOperationRead
26
- });
27
- expect(result).toBe(output);
28
- });
29
- it('is idempotent on already-migrated source', async ()=>{
30
- const output = await fixture('basic.output.ts');
31
- const result = await runTransform({
32
- source: output,
33
- transform: migrateAfterOperationRead
34
- });
35
- expect(result).toBe(output);
36
- });
37
- it("leaves beforeOperation's `operation === 'read'` untouched", async ()=>{
38
- const input = await fixture('non-matching.input.ts');
39
- const result = await runTransform({
40
- source: input,
41
- transform: migrateAfterOperationRead
42
- });
43
- expect(result).toBe(input);
44
- });
45
- it('emits a note for a non-inline afterOperation hook', async ()=>{
46
- const input = await fixture('external.input.ts');
47
- const project = new Project({
48
- useInMemoryFileSystem: true
49
- });
50
- project.createSourceFile('input.ts', input);
51
- const result = await migrateAfterOperationRead.apply({
52
- packageJsons: [],
53
- project
54
- });
55
- expect(result.filesChanged).toEqual([]);
56
- expect(result.notes).toEqual([
57
- expect.stringContaining('not an inline function')
58
- ]);
59
- });
60
- });
61
-
62
- //# sourceMappingURL=index.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/transforms/migrate-after-operation-read/index.spec.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\nimport { dirname, join } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { Project } from 'ts-morph'\nimport { describe, expect, it } from 'vitest'\n\nimport { runTransform } from '../../utils/test-helpers.js'\nimport { migrateAfterOperationRead } from './index.js'\n\nconst here = dirname(fileURLToPath(import.meta.url))\nconst fixture = (name: string) => readFile(join(here, name), 'utf8')\n\ndescribe('migrate-after-operation-read', () => {\n it(\"expands `operation === 'read'` to handle find and findByID\", 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: migrateAfterOperationRead })\n\n expect(result).toBe(output)\n })\n\n it('resolves an aliased operation arg and parenthesizes negated checks inside logical expressions', async () => {\n const input = await fixture('alias.input.ts')\n const output = await fixture('alias.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateAfterOperationRead })\n\n expect(result).toBe(output)\n })\n\n it('is idempotent on already-migrated source', async () => {\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: output, transform: migrateAfterOperationRead })\n\n expect(result).toBe(output)\n })\n\n it(\"leaves beforeOperation's `operation === 'read'` untouched\", async () => {\n const input = await fixture('non-matching.input.ts')\n\n const result = await runTransform({ source: input, transform: migrateAfterOperationRead })\n\n expect(result).toBe(input)\n })\n\n it('emits a note for a non-inline afterOperation hook', async () => {\n const input = await fixture('external.input.ts')\n const project = new Project({ useInMemoryFileSystem: true })\n project.createSourceFile('input.ts', input)\n\n const result = await migrateAfterOperationRead.apply({ packageJsons: [], project })\n\n expect(result.filesChanged).toEqual([])\n expect(result.notes).toEqual([expect.stringContaining('not an inline function')])\n })\n})\n"],"names":["readFile","dirname","join","fileURLToPath","Project","describe","expect","it","runTransform","migrateAfterOperationRead","here","url","fixture","name","input","output","result","source","transform","toBe","project","useInMemoryFileSystem","createSourceFile","apply","packageJsons","filesChanged","toEqual","notes","stringContaining"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,mBAAkB;AAC3C,SAASC,OAAO,EAAEC,IAAI,QAAQ,YAAW;AACzC,SAASC,aAAa,QAAQ,WAAU;AACxC,SAASC,OAAO,QAAQ,WAAU;AAClC,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,yBAAyB,QAAQ,aAAY;AAEtD,MAAMC,OAAOT,QAAQE,cAAc,YAAYQ,GAAG;AAClD,MAAMC,UAAU,CAACC,OAAiBb,SAASE,KAAKQ,MAAMG,OAAO;AAE7DR,SAAS,gCAAgC;IACvCE,GAAG,8DAA8D;QAC/D,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAA0B;QAExFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,iGAAiG;QAClG,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMG,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAA0B;QAExFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,4CAA4C;QAC7C,MAAMQ,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQF;YAAQG,WAAWT;QAA0B;QAEzFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,6DAA6D;QAC9D,MAAMO,QAAQ,MAAMF,QAAQ;QAE5B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAA0B;QAExFH,OAAOU,QAAQG,IAAI,CAACL;IACtB;IAEAP,GAAG,qDAAqD;QACtD,MAAMO,QAAQ,MAAMF,QAAQ;QAC5B,MAAMQ,UAAU,IAAIhB,QAAQ;YAAEiB,uBAAuB;QAAK;QAC1DD,QAAQE,gBAAgB,CAAC,YAAYR;QAErC,MAAME,SAAS,MAAMP,0BAA0Bc,KAAK,CAAC;YAAEC,cAAc,EAAE;YAAEJ;QAAQ;QAEjFd,OAAOU,OAAOS,YAAY,EAAEC,OAAO,CAAC,EAAE;QACtCpB,OAAOU,OAAOW,KAAK,EAAED,OAAO,CAAC;YAACpB,OAAOsB,gBAAgB,CAAC;SAA0B;IAClF;AACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-aliased-exports/index.spec.ts"],"names":[],"mappings":""}
@@ -1,55 +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 { migrateAliasedExports } from './index.js';
7
- const here = dirname(fileURLToPath(import.meta.url));
8
- const fixture = (name)=>readFile(join(here, name), 'utf8');
9
- describe('migrate-aliased-exports', ()=>{
10
- it('moves pass-through re-exports to canonical sources', 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: migrateAliasedExports
16
- });
17
- expect(result).toBe(output);
18
- });
19
- it('rewrites renamed types using `as` alias to preserve usages', async ()=>{
20
- const input = await fixture('rename.input.ts');
21
- const output = await fixture('rename.output.ts');
22
- const result = await runTransform({
23
- source: input,
24
- transform: migrateAliasedExports
25
- });
26
- expect(result).toBe(output);
27
- });
28
- it('merges into existing import declaration from canonical source', async ()=>{
29
- const input = await fixture('merge.input.ts');
30
- const output = await fixture('merge.output.ts');
31
- const result = await runTransform({
32
- source: input,
33
- transform: migrateAliasedExports
34
- });
35
- expect(result).toBe(output);
36
- });
37
- it('is idempotent on already-migrated source', async ()=>{
38
- const output = await fixture('basic.output.ts');
39
- const result = await runTransform({
40
- source: output,
41
- transform: migrateAliasedExports
42
- });
43
- expect(result).toBe(output);
44
- });
45
- it('leaves unrelated imports untouched', async ()=>{
46
- const input = await fixture('non-matching.input.ts');
47
- const result = await runTransform({
48
- source: input,
49
- transform: migrateAliasedExports
50
- });
51
- expect(result).toBe(input);
52
- });
53
- });
54
-
55
- //# sourceMappingURL=index.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/transforms/migrate-aliased-exports/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 { migrateAliasedExports } from './index.js'\n\nconst here = dirname(fileURLToPath(import.meta.url))\nconst fixture = (name: string) => readFile(join(here, name), 'utf8')\n\ndescribe('migrate-aliased-exports', () => {\n it('moves pass-through re-exports to canonical sources', 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: migrateAliasedExports })\n\n expect(result).toBe(output)\n })\n\n it('rewrites renamed types using `as` alias to preserve usages', async () => {\n const input = await fixture('rename.input.ts')\n const output = await fixture('rename.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateAliasedExports })\n\n expect(result).toBe(output)\n })\n\n it('merges into existing import declaration from canonical source', async () => {\n const input = await fixture('merge.input.ts')\n const output = await fixture('merge.output.ts')\n\n const result = await runTransform({ source: input, transform: migrateAliasedExports })\n\n expect(result).toBe(output)\n })\n\n it('is idempotent on already-migrated source', async () => {\n const output = await fixture('basic.output.ts')\n\n const result = await runTransform({ source: output, transform: migrateAliasedExports })\n\n expect(result).toBe(output)\n })\n\n it('leaves unrelated imports untouched', async () => {\n const input = await fixture('non-matching.input.ts')\n\n const result = await runTransform({ source: input, transform: migrateAliasedExports })\n\n expect(result).toBe(input)\n })\n})\n"],"names":["readFile","dirname","join","fileURLToPath","describe","expect","it","runTransform","migrateAliasedExports","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,sDAAsD;QACvD,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,8DAA8D;QAC/D,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,iEAAiE;QAClE,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,4CAA4C;QAC7C,MAAMQ,SAAS,MAAMH,QAAQ;QAE7B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQF;YAAQG,WAAWT;QAAsB;QAErFH,OAAOU,QAAQG,IAAI,CAACJ;IACtB;IAEAR,GAAG,sCAAsC;QACvC,MAAMO,QAAQ,MAAMF,QAAQ;QAE5B,MAAMI,SAAS,MAAMR,aAAa;YAAES,QAAQH;YAAOI,WAAWT;QAAsB;QAEpFH,OAAOU,QAAQG,IAAI,CAACL;IACtB;AACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/transforms/migrate-azure-chunk-large-files/index.spec.ts"],"names":[],"mappings":""}