payload 4.0.0-internal.1f9ae9a → 4.0.0-internal.2fddfc0

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 (377) hide show
  1. package/dist/admin/RichText.d.ts +22 -10
  2. package/dist/admin/RichText.d.ts.map +1 -1
  3. package/dist/admin/RichText.js.map +1 -1
  4. package/dist/admin/adapters/devReload.d.ts +9 -0
  5. package/dist/admin/adapters/devReload.d.ts.map +1 -0
  6. package/dist/admin/adapters/devReload.js +6 -0
  7. package/dist/admin/adapters/devReload.js.map +1 -0
  8. package/dist/admin/adapters/index.d.ts +3 -0
  9. package/dist/admin/adapters/index.d.ts.map +1 -1
  10. package/dist/admin/adapters/index.js.map +1 -1
  11. package/dist/admin/adapters/render.d.ts +16 -0
  12. package/dist/admin/adapters/render.d.ts.map +1 -0
  13. package/dist/admin/adapters/render.js +7 -0
  14. package/dist/admin/adapters/render.js.map +1 -0
  15. package/dist/admin/adapters/views.d.ts +36 -0
  16. package/dist/admin/adapters/views.d.ts.map +1 -0
  17. package/dist/admin/adapters/views.js +7 -0
  18. package/dist/admin/adapters/views.js.map +1 -0
  19. package/dist/admin/fields/Row.d.ts +2 -2
  20. package/dist/admin/fields/Row.d.ts.map +1 -1
  21. package/dist/admin/fields/Row.js.map +1 -1
  22. package/dist/admin/forms/Description.d.ts +2 -2
  23. package/dist/admin/forms/Description.d.ts.map +1 -1
  24. package/dist/admin/forms/Description.js.map +1 -1
  25. package/dist/admin/forms/Field.d.ts +8 -3
  26. package/dist/admin/forms/Field.d.ts.map +1 -1
  27. package/dist/admin/forms/Field.js.map +1 -1
  28. package/dist/admin/forms/Form.d.ts +29 -0
  29. package/dist/admin/forms/Form.d.ts.map +1 -1
  30. package/dist/admin/forms/Form.js.map +1 -1
  31. package/dist/admin/functions/index.d.ts +9 -0
  32. package/dist/admin/functions/index.d.ts.map +1 -1
  33. package/dist/admin/functions/index.js.map +1 -1
  34. package/dist/admin/types.d.ts +2 -2
  35. package/dist/admin/types.d.ts.map +1 -1
  36. package/dist/admin/types.js.map +1 -1
  37. package/dist/admin/views/dashboard.d.ts +7 -0
  38. package/dist/admin/views/dashboard.d.ts.map +1 -1
  39. package/dist/admin/views/dashboard.js.map +1 -1
  40. package/dist/admin/views/document.d.ts +5 -3
  41. package/dist/admin/views/document.d.ts.map +1 -1
  42. package/dist/admin/views/document.js.map +1 -1
  43. package/dist/admin/views/list.d.ts +5 -0
  44. package/dist/admin/views/list.d.ts.map +1 -1
  45. package/dist/admin/views/list.js.map +1 -1
  46. package/dist/auth/baseFields/apiKey.d.ts +10 -2
  47. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  48. package/dist/auth/baseFields/apiKey.js +35 -24
  49. package/dist/auth/baseFields/apiKey.js.map +1 -1
  50. package/dist/auth/defaultAccess.d.ts +1 -1
  51. package/dist/auth/defaultAccess.d.ts.map +1 -1
  52. package/dist/auth/defaultAccess.js +1 -1
  53. package/dist/auth/defaultAccess.js.map +1 -1
  54. package/dist/auth/defaultUser.d.ts.map +1 -1
  55. package/dist/auth/defaultUser.js +2 -1
  56. package/dist/auth/defaultUser.js.map +1 -1
  57. package/dist/auth/getAuthFields.js +2 -2
  58. package/dist/auth/getAuthFields.js.map +1 -1
  59. package/dist/bin/generateImportMap/index.d.ts.map +1 -1
  60. package/dist/bin/generateImportMap/index.js +8 -5
  61. package/dist/bin/generateImportMap/index.js.map +1 -1
  62. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
  63. package/dist/bin/generateImportMap/iterateCollections.js +1 -0
  64. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
  65. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  66. package/dist/bin/generateImportMap/iterateConfig.js +12 -0
  67. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  68. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts +5 -1
  69. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -1
  70. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js +24 -18
  71. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -1
  72. package/dist/bin/generateTypes.d.ts +3 -2
  73. package/dist/bin/generateTypes.d.ts.map +1 -1
  74. package/dist/bin/generateTypes.js +11 -1
  75. package/dist/bin/generateTypes.js.map +1 -1
  76. package/dist/bin/loadEnv.d.ts +3 -1
  77. package/dist/bin/loadEnv.d.ts.map +1 -1
  78. package/dist/bin/loadEnv.js +40 -10
  79. package/dist/bin/loadEnv.js.map +1 -1
  80. package/dist/collections/config/defaults.js +2 -2
  81. package/dist/collections/config/defaults.js.map +1 -1
  82. package/dist/collections/config/defaults.spec.js +47 -0
  83. package/dist/collections/config/defaults.spec.js.map +1 -0
  84. package/dist/collections/config/sanitize.d.ts.map +1 -1
  85. package/dist/collections/config/sanitize.js +1 -11
  86. package/dist/collections/config/sanitize.js.map +1 -1
  87. package/dist/collections/config/types.d.ts +5 -7
  88. package/dist/collections/config/types.d.ts.map +1 -1
  89. package/dist/collections/config/types.js.map +1 -1
  90. package/dist/collections/endpoints/create.d.ts.map +1 -1
  91. package/dist/collections/endpoints/create.js +0 -2
  92. package/dist/collections/endpoints/create.js.map +1 -1
  93. package/dist/collections/endpoints/updateByID.d.ts.map +1 -1
  94. package/dist/collections/endpoints/updateByID.js +1 -2
  95. package/dist/collections/endpoints/updateByID.js.map +1 -1
  96. package/dist/collections/operations/count.d.ts.map +1 -1
  97. package/dist/collections/operations/count.js +1 -0
  98. package/dist/collections/operations/count.js.map +1 -1
  99. package/dist/collections/operations/create.d.ts +0 -1
  100. package/dist/collections/operations/create.d.ts.map +1 -1
  101. package/dist/collections/operations/create.js +14 -6
  102. package/dist/collections/operations/create.js.map +1 -1
  103. package/dist/collections/operations/delete.d.ts.map +1 -1
  104. package/dist/collections/operations/delete.js +3 -0
  105. package/dist/collections/operations/delete.js.map +1 -1
  106. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  107. package/dist/collections/operations/local/duplicate.js.map +1 -1
  108. package/dist/collections/operations/local/find.d.ts.map +1 -1
  109. package/dist/collections/operations/local/find.js.map +1 -1
  110. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  111. package/dist/collections/operations/local/findByID.js.map +1 -1
  112. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  113. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  114. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  115. package/dist/collections/operations/local/findVersions.js.map +1 -1
  116. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  117. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  118. package/dist/collections/operations/local/update.d.ts +4 -8
  119. package/dist/collections/operations/local/update.d.ts.map +1 -1
  120. package/dist/collections/operations/local/update.js +1 -2
  121. package/dist/collections/operations/local/update.js.map +1 -1
  122. package/dist/collections/operations/update.d.ts +0 -1
  123. package/dist/collections/operations/update.d.ts.map +1 -1
  124. package/dist/collections/operations/update.js +8 -4
  125. package/dist/collections/operations/update.js.map +1 -1
  126. package/dist/collections/operations/updateByID.d.ts +0 -1
  127. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  128. package/dist/collections/operations/updateByID.js +1 -5
  129. package/dist/collections/operations/updateByID.js.map +1 -1
  130. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts +9 -0
  131. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -0
  132. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js +170 -0
  133. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js.map +1 -0
  134. package/dist/collections/operations/utilities/update.d.ts +1 -2
  135. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  136. package/dist/collections/operations/utilities/update.js +48 -57
  137. package/dist/collections/operations/utilities/update.js.map +1 -1
  138. package/dist/config/client.js.map +1 -1
  139. package/dist/config/orderable/index.d.ts.map +1 -1
  140. package/dist/config/orderable/index.js +23 -0
  141. package/dist/config/orderable/index.js.map +1 -1
  142. package/dist/config/types.d.ts +24 -18
  143. package/dist/config/types.d.ts.map +1 -1
  144. package/dist/config/types.js +2 -0
  145. package/dist/config/types.js.map +1 -1
  146. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  147. package/dist/database/getLocalizedPaths.js +1 -1
  148. package/dist/database/getLocalizedPaths.js.map +1 -1
  149. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  150. package/dist/database/migrations/migrationsCollection.js +2 -1
  151. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  152. package/dist/errors/ValidationError.d.ts +1 -0
  153. package/dist/errors/ValidationError.d.ts.map +1 -1
  154. package/dist/errors/ValidationError.js.map +1 -1
  155. package/dist/exports/migrations.d.ts +5 -13
  156. package/dist/exports/migrations.d.ts.map +1 -1
  157. package/dist/exports/migrations.js +5 -13
  158. package/dist/exports/migrations.js.map +1 -1
  159. package/dist/exports/shared.d.ts +21 -1
  160. package/dist/exports/shared.d.ts.map +1 -1
  161. package/dist/exports/shared.js +21 -1
  162. package/dist/exports/shared.js.map +1 -1
  163. package/dist/fields/config/client.d.ts +2 -2
  164. package/dist/fields/config/client.d.ts.map +1 -1
  165. package/dist/fields/config/client.js +11 -12
  166. package/dist/fields/config/client.js.map +1 -1
  167. package/dist/fields/config/sanitize.d.ts.map +1 -1
  168. package/dist/fields/config/sanitize.js +1 -4
  169. package/dist/fields/config/sanitize.js.map +1 -1
  170. package/dist/fields/config/types.d.ts +9 -24
  171. package/dist/fields/config/types.d.ts.map +1 -1
  172. package/dist/fields/config/types.js.map +1 -1
  173. package/dist/fields/hooks/afterChange/promise.js +1 -1
  174. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  175. package/dist/fields/hooks/afterRead/promise.js +2 -2
  176. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  177. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  178. package/dist/fields/hooks/beforeChange/promise.js +3 -3
  179. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  180. package/dist/fields/hooks/beforeDuplicate/promise.js +2 -2
  181. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  182. package/dist/fields/hooks/beforeValidate/promise.js +1 -1
  183. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  184. package/dist/fields/validations.d.ts.map +1 -1
  185. package/dist/fields/validations.js +5 -4
  186. package/dist/fields/validations.js.map +1 -1
  187. package/dist/globals/config/sanitize.d.ts.map +1 -1
  188. package/dist/globals/config/sanitize.js +2 -6
  189. package/dist/globals/config/sanitize.js.map +1 -1
  190. package/dist/globals/config/sanitize.spec.js +43 -0
  191. package/dist/globals/config/sanitize.spec.js.map +1 -0
  192. package/dist/globals/endpoints/update.d.ts.map +1 -1
  193. package/dist/globals/endpoints/update.js +0 -2
  194. package/dist/globals/endpoints/update.js.map +1 -1
  195. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  196. package/dist/globals/operations/local/findOne.js.map +1 -1
  197. package/dist/globals/operations/local/update.d.ts +4 -6
  198. package/dist/globals/operations/local/update.d.ts.map +1 -1
  199. package/dist/globals/operations/local/update.js +1 -2
  200. package/dist/globals/operations/local/update.js.map +1 -1
  201. package/dist/globals/operations/update.d.ts +0 -1
  202. package/dist/globals/operations/update.d.ts.map +1 -1
  203. package/dist/globals/operations/update.js +52 -58
  204. package/dist/globals/operations/update.js.map +1 -1
  205. package/dist/index.bundled.d.ts +362 -191
  206. package/dist/index.d.ts +13 -12
  207. package/dist/index.d.ts.map +1 -1
  208. package/dist/index.js +53 -35
  209. package/dist/index.js.map +1 -1
  210. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  211. package/dist/kv/adapters/DatabaseKVAdapter.js +1 -0
  212. package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
  213. package/dist/locked-documents/config.d.ts.map +1 -1
  214. package/dist/locked-documents/config.js +2 -1
  215. package/dist/locked-documents/config.js.map +1 -1
  216. package/dist/preferences/config.d.ts.map +1 -1
  217. package/dist/preferences/config.js +2 -1
  218. package/dist/preferences/config.js.map +1 -1
  219. package/dist/query-presets/config.d.ts.map +1 -1
  220. package/dist/query-presets/config.js +75 -35
  221. package/dist/query-presets/config.js.map +1 -1
  222. package/dist/query-presets/constraints.d.ts.map +1 -1
  223. package/dist/query-presets/constraints.js +2 -1
  224. package/dist/query-presets/constraints.js.map +1 -1
  225. package/dist/queues/config/collection.d.ts.map +1 -1
  226. package/dist/queues/config/collection.js +2 -1
  227. package/dist/queues/config/collection.js.map +1 -1
  228. package/dist/queues/config/generateJobsJSONSchemas.d.ts +1 -1
  229. package/dist/queues/config/generateJobsJSONSchemas.d.ts.map +1 -1
  230. package/dist/queues/config/generateJobsJSONSchemas.js +33 -12
  231. package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -1
  232. package/dist/queues/config/global.d.ts.map +1 -1
  233. package/dist/queues/config/global.js +2 -1
  234. package/dist/queues/config/global.js.map +1 -1
  235. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  236. package/dist/uploads/fetchAPI-multipart/processMultipart.js +14 -1
  237. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  238. package/dist/uploads/safeFetch.d.ts.map +1 -1
  239. package/dist/uploads/safeFetch.js +11 -5
  240. package/dist/uploads/safeFetch.js.map +1 -1
  241. package/dist/utilities/appendDateTimezoneSelectFields.js +2 -2
  242. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
  243. package/dist/utilities/configToJSONSchema.d.ts +59 -16
  244. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  245. package/dist/utilities/configToJSONSchema.js +158 -59
  246. package/dist/utilities/configToJSONSchema.js.map +1 -1
  247. package/dist/utilities/configToJSONSchema.spec.js +225 -39
  248. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  249. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  250. package/dist/utilities/deepCopyObject.js +8 -0
  251. package/dist/utilities/deepCopyObject.js.map +1 -1
  252. package/dist/utilities/dependencies/dependencyChecker.js +1 -1
  253. package/dist/utilities/dependencies/dependencyChecker.js.map +1 -1
  254. package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -1
  255. package/dist/utilities/dependencies/getDependencies.js +5 -5
  256. package/dist/utilities/dependencies/getDependencies.js.map +1 -1
  257. package/dist/utilities/dynamicImport.js +1 -1
  258. package/dist/utilities/dynamicImport.js.map +1 -1
  259. package/dist/utilities/filterDataToSelectedLocales.d.ts.map +1 -1
  260. package/dist/utilities/filterDataToSelectedLocales.js +5 -12
  261. package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
  262. package/dist/utilities/filterDataToSelectedLocales.spec.js +1 -2
  263. package/dist/utilities/filterDataToSelectedLocales.spec.js.map +1 -1
  264. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  265. package/dist/utilities/flattenAllFields.js +7 -22
  266. package/dist/utilities/flattenAllFields.js.map +1 -1
  267. package/dist/utilities/formatErrors.d.ts.map +1 -1
  268. package/dist/utilities/formatErrors.js +3 -1
  269. package/dist/utilities/formatErrors.js.map +1 -1
  270. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
  271. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +5 -5
  272. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  273. package/dist/utilities/getFieldByPath.d.ts.map +1 -1
  274. package/dist/utilities/getFieldByPath.js +1 -1
  275. package/dist/utilities/getFieldByPath.js.map +1 -1
  276. package/dist/utilities/getRequestLanguage.d.ts +2 -2
  277. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  278. package/dist/utilities/getRequestLanguage.js.map +1 -1
  279. package/dist/utilities/getVersionsConfig.js.map +1 -1
  280. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  281. package/dist/utilities/handleEndpoints.js +7 -3
  282. package/dist/utilities/handleEndpoints.js.map +1 -1
  283. package/dist/utilities/isRSCEnabled.d.ts +12 -0
  284. package/dist/utilities/isRSCEnabled.d.ts.map +1 -0
  285. package/dist/utilities/isRSCEnabled.js +14 -0
  286. package/dist/utilities/isRSCEnabled.js.map +1 -0
  287. package/dist/utilities/mergeLocalizedData.d.ts +14 -4
  288. package/dist/utilities/mergeLocalizedData.d.ts.map +1 -1
  289. package/dist/utilities/mergeLocalizedData.js +54 -46
  290. package/dist/utilities/mergeLocalizedData.js.map +1 -1
  291. package/dist/utilities/mergeLocalizedData.spec.js +23 -23
  292. package/dist/utilities/mergeLocalizedData.spec.js.map +1 -1
  293. package/dist/utilities/parseParams/index.d.ts +2 -5
  294. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  295. package/dist/utilities/parseParams/index.js.map +1 -1
  296. package/dist/utilities/parseParams/index.spec.js +0 -9
  297. package/dist/utilities/parseParams/index.spec.js.map +1 -1
  298. package/dist/utilities/telemetry/conf/envPaths.d.ts.map +1 -1
  299. package/dist/utilities/telemetry/conf/envPaths.js +31 -40
  300. package/dist/utilities/telemetry/conf/envPaths.js.map +1 -1
  301. package/dist/utilities/transformColumnPreferences.js +4 -2
  302. package/dist/utilities/transformColumnPreferences.js.map +1 -1
  303. package/dist/utilities/traverseFields.d.ts.map +1 -1
  304. package/dist/utilities/traverseFields.js +2 -4
  305. package/dist/utilities/traverseFields.js.map +1 -1
  306. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  307. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  308. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  309. package/dist/versions/baseFields.d.ts +1 -2
  310. package/dist/versions/baseFields.d.ts.map +1 -1
  311. package/dist/versions/baseFields.js +0 -13
  312. package/dist/versions/baseFields.js.map +1 -1
  313. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  314. package/dist/versions/buildCollectionFields.js +0 -2
  315. package/dist/versions/buildCollectionFields.js.map +1 -1
  316. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  317. package/dist/versions/buildGlobalFields.js +0 -2
  318. package/dist/versions/buildGlobalFields.js.map +1 -1
  319. package/dist/versions/buildSingleLocalePublishData.d.ts +32 -0
  320. package/dist/versions/buildSingleLocalePublishData.d.ts.map +1 -0
  321. package/dist/versions/buildSingleLocalePublishData.js +37 -0
  322. package/dist/versions/buildSingleLocalePublishData.js.map +1 -0
  323. package/dist/versions/saveVersion.d.ts +0 -2
  324. package/dist/versions/saveVersion.d.ts.map +1 -1
  325. package/dist/versions/saveVersion.js +12 -17
  326. package/dist/versions/saveVersion.js.map +1 -1
  327. package/dist/versions/schedule/job.d.ts.map +1 -1
  328. package/dist/versions/schedule/job.js +2 -9
  329. package/dist/versions/schedule/job.js.map +1 -1
  330. package/dist/versions/types.d.ts +2 -15
  331. package/dist/versions/types.d.ts.map +1 -1
  332. package/dist/versions/types.js.map +1 -1
  333. package/package.json +7 -4
  334. package/dist/database/migrations/templates/localizeStatus.d.ts +0 -10
  335. package/dist/database/migrations/templates/localizeStatus.d.ts.map +0 -1
  336. package/dist/database/migrations/templates/localizeStatus.js +0 -54
  337. package/dist/database/migrations/templates/localizeStatus.js.map +0 -1
  338. package/dist/versions/migrations/localizeStatus/index.d.ts +0 -12
  339. package/dist/versions/migrations/localizeStatus/index.d.ts.map +0 -1
  340. package/dist/versions/migrations/localizeStatus/index.js +0 -33
  341. package/dist/versions/migrations/localizeStatus/index.js.map +0 -1
  342. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts +0 -9
  343. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts.map +0 -1
  344. package/dist/versions/migrations/localizeStatus/mongo/down.js +0 -112
  345. package/dist/versions/migrations/localizeStatus/mongo/down.js.map +0 -1
  346. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts +0 -8
  347. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts.map +0 -1
  348. package/dist/versions/migrations/localizeStatus/mongo/index.js +0 -8
  349. package/dist/versions/migrations/localizeStatus/mongo/index.js.map +0 -1
  350. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts +0 -9
  351. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts.map +0 -1
  352. package/dist/versions/migrations/localizeStatus/mongo/up.js +0 -220
  353. package/dist/versions/migrations/localizeStatus/mongo/up.js.map +0 -1
  354. package/dist/versions/migrations/localizeStatus/sql/down.d.ts +0 -11
  355. package/dist/versions/migrations/localizeStatus/sql/down.d.ts.map +0 -1
  356. package/dist/versions/migrations/localizeStatus/sql/down.js +0 -213
  357. package/dist/versions/migrations/localizeStatus/sql/down.js.map +0 -1
  358. package/dist/versions/migrations/localizeStatus/sql/index.d.ts +0 -8
  359. package/dist/versions/migrations/localizeStatus/sql/index.d.ts.map +0 -1
  360. package/dist/versions/migrations/localizeStatus/sql/index.js +0 -8
  361. package/dist/versions/migrations/localizeStatus/sql/index.js.map +0 -1
  362. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts +0 -13
  363. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts.map +0 -1
  364. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js +0 -51
  365. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js.map +0 -1
  366. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts +0 -13
  367. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts.map +0 -1
  368. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js +0 -54
  369. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js.map +0 -1
  370. package/dist/versions/migrations/localizeStatus/sql/up.d.ts +0 -11
  371. package/dist/versions/migrations/localizeStatus/sql/up.d.ts.map +0 -1
  372. package/dist/versions/migrations/localizeStatus/sql/up.js +0 -277
  373. package/dist/versions/migrations/localizeStatus/sql/up.js.map +0 -1
  374. package/dist/versions/saveSnapshot.d.ts +0 -18
  375. package/dist/versions/saveSnapshot.d.ts.map +0 -1
  376. package/dist/versions/saveSnapshot.js +0 -38
  377. package/dist/versions/saveSnapshot.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/defaultUser.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\n\nexport const defaultUserCollection: CollectionConfig = {\n slug: 'users',\n admin: {\n useAsTitle: 'email',\n },\n auth: {\n tokenExpiration: 7200,\n },\n fields: [],\n labels: {\n plural: ({ t }) => t('general:users'),\n singular: ({ t }) => t('general:user'),\n },\n}\n"],"names":["defaultUserCollection","slug","admin","useAsTitle","auth","tokenExpiration","fields","labels","plural","t","singular"],"mappings":"AAEA,OAAO,MAAMA,wBAA0C;IACrDC,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,MAAM;QACJC,iBAAiB;IACnB;IACAC,QAAQ,EAAE;IACVC,QAAQ;QACNC,QAAQ,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;QACrBC,UAAU,CAAC,EAAED,CAAC,EAAE,GAAKA,EAAE;IACzB;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/auth/defaultUser.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\n\nexport const defaultUserCollection: CollectionConfig = {\n slug: 'users',\n admin: {\n useAsTitle: 'email',\n },\n auth: {\n tokenExpiration: 7200,\n },\n fields: [],\n labels: {\n plural: ({ t }) => t('general:users'),\n singular: ({ t }) => t('general:user'),\n },\n versions: false,\n}\n"],"names":["defaultUserCollection","slug","admin","useAsTitle","auth","tokenExpiration","fields","labels","plural","t","singular","versions"],"mappings":"AAEA,OAAO,MAAMA,wBAA0C;IACrDC,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,MAAM;QACJC,iBAAiB;IACnB;IACAC,QAAQ,EAAE;IACVC,QAAQ;QACNC,QAAQ,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;QACrBC,UAAU,CAAC,EAAED,CAAC,EAAE,GAAKA,EAAE;IACzB;IACAE,UAAU;AACZ,EAAC"}
@@ -1,5 +1,5 @@
1
1
  import { accountLockFields } from './baseFields/accountLock.js';
2
- import { apiKeyFields } from './baseFields/apiKey.js';
2
+ import { createAPIKeyFields } from './baseFields/apiKey.js';
3
3
  import { baseAuthFields } from './baseFields/auth.js';
4
4
  import { emailFieldConfig } from './baseFields/email.js';
5
5
  import { sessionsFieldConfig } from './baseFields/sessions.js';
@@ -8,7 +8,7 @@ import { verificationFields } from './baseFields/verification.js';
8
8
  export const getBaseAuthFields = (authConfig)=>{
9
9
  const authFields = [];
10
10
  if (authConfig.useAPIKey) {
11
- authFields.push(...apiKeyFields);
11
+ authFields.push(...createAPIKeyFields());
12
12
  }
13
13
  if (!authConfig.disableLocalStrategy || typeof authConfig.disableLocalStrategy === 'object' && authConfig.disableLocalStrategy.enableFields) {
14
14
  const emailField = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/getAuthFields.ts"],"sourcesContent":["import type { Field, TextField } from '../fields/config/types.js'\nimport type { IncomingAuthType } from './types.js'\n\nimport { accountLockFields } from './baseFields/accountLock.js'\nimport { apiKeyFields } from './baseFields/apiKey.js'\nimport { baseAuthFields } from './baseFields/auth.js'\nimport { emailFieldConfig } from './baseFields/email.js'\nimport { sessionsFieldConfig } from './baseFields/sessions.js'\nimport { usernameFieldConfig } from './baseFields/username.js'\nimport { verificationFields } from './baseFields/verification.js'\n\nexport const getBaseAuthFields = (authConfig: IncomingAuthType): Field[] => {\n const authFields: Field[] = []\n\n if (authConfig.useAPIKey) {\n authFields.push(...apiKeyFields)\n }\n\n if (\n !authConfig.disableLocalStrategy ||\n (typeof authConfig.disableLocalStrategy === 'object' &&\n authConfig.disableLocalStrategy.enableFields)\n ) {\n const emailField = { ...emailFieldConfig }\n let usernameField: TextField | undefined\n\n if (authConfig.loginWithUsername) {\n usernameField = { ...usernameFieldConfig }\n if (typeof authConfig.loginWithUsername === 'object') {\n if (authConfig.loginWithUsername.requireEmail === false) {\n emailField.required = false\n }\n if (authConfig.loginWithUsername.requireUsername === false) {\n usernameField.required = false\n }\n if (authConfig.loginWithUsername.allowEmailLogin === false) {\n emailField.unique = false\n }\n }\n }\n\n authFields.push(emailField)\n if (usernameField) {\n authFields.push(usernameField)\n }\n\n authFields.push(...baseAuthFields)\n\n if (authConfig.verify) {\n authFields.push(...verificationFields)\n }\n\n if (authConfig?.maxLoginAttempts && authConfig.maxLoginAttempts > 0) {\n authFields.push(...accountLockFields)\n }\n\n if (authConfig.useSessions) {\n authFields.push(sessionsFieldConfig)\n }\n }\n\n return authFields\n}\n"],"names":["accountLockFields","apiKeyFields","baseAuthFields","emailFieldConfig","sessionsFieldConfig","usernameFieldConfig","verificationFields","getBaseAuthFields","authConfig","authFields","useAPIKey","push","disableLocalStrategy","enableFields","emailField","usernameField","loginWithUsername","requireEmail","required","requireUsername","allowEmailLogin","unique","verify","maxLoginAttempts","useSessions"],"mappings":"AAGA,SAASA,iBAAiB,QAAQ,8BAA6B;AAC/D,SAASC,YAAY,QAAQ,yBAAwB;AACrD,SAASC,cAAc,QAAQ,uBAAsB;AACrD,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,kBAAkB,QAAQ,+BAA8B;AAEjE,OAAO,MAAMC,oBAAoB,CAACC;IAChC,MAAMC,aAAsB,EAAE;IAE9B,IAAID,WAAWE,SAAS,EAAE;QACxBD,WAAWE,IAAI,IAAIV;IACrB;IAEA,IACE,CAACO,WAAWI,oBAAoB,IAC/B,OAAOJ,WAAWI,oBAAoB,KAAK,YAC1CJ,WAAWI,oBAAoB,CAACC,YAAY,EAC9C;QACA,MAAMC,aAAa;YAAE,GAAGX,gBAAgB;QAAC;QACzC,IAAIY;QAEJ,IAAIP,WAAWQ,iBAAiB,EAAE;YAChCD,gBAAgB;gBAAE,GAAGV,mBAAmB;YAAC;YACzC,IAAI,OAAOG,WAAWQ,iBAAiB,KAAK,UAAU;gBACpD,IAAIR,WAAWQ,iBAAiB,CAACC,YAAY,KAAK,OAAO;oBACvDH,WAAWI,QAAQ,GAAG;gBACxB;gBACA,IAAIV,WAAWQ,iBAAiB,CAACG,eAAe,KAAK,OAAO;oBAC1DJ,cAAcG,QAAQ,GAAG;gBAC3B;gBACA,IAAIV,WAAWQ,iBAAiB,CAACI,eAAe,KAAK,OAAO;oBAC1DN,WAAWO,MAAM,GAAG;gBACtB;YACF;QACF;QAEAZ,WAAWE,IAAI,CAACG;QAChB,IAAIC,eAAe;YACjBN,WAAWE,IAAI,CAACI;QAClB;QAEAN,WAAWE,IAAI,IAAIT;QAEnB,IAAIM,WAAWc,MAAM,EAAE;YACrBb,WAAWE,IAAI,IAAIL;QACrB;QAEA,IAAIE,YAAYe,oBAAoBf,WAAWe,gBAAgB,GAAG,GAAG;YACnEd,WAAWE,IAAI,IAAIX;QACrB;QAEA,IAAIQ,WAAWgB,WAAW,EAAE;YAC1Bf,WAAWE,IAAI,CAACP;QAClB;IACF;IAEA,OAAOK;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/auth/getAuthFields.ts"],"sourcesContent":["import type { Field, TextField } from '../fields/config/types.js'\nimport type { IncomingAuthType } from './types.js'\n\nimport { accountLockFields } from './baseFields/accountLock.js'\nimport { createAPIKeyFields } from './baseFields/apiKey.js'\nimport { baseAuthFields } from './baseFields/auth.js'\nimport { emailFieldConfig } from './baseFields/email.js'\nimport { sessionsFieldConfig } from './baseFields/sessions.js'\nimport { usernameFieldConfig } from './baseFields/username.js'\nimport { verificationFields } from './baseFields/verification.js'\n\nexport const getBaseAuthFields = (authConfig: IncomingAuthType): Field[] => {\n const authFields: Field[] = []\n\n if (authConfig.useAPIKey) {\n authFields.push(...createAPIKeyFields())\n }\n\n if (\n !authConfig.disableLocalStrategy ||\n (typeof authConfig.disableLocalStrategy === 'object' &&\n authConfig.disableLocalStrategy.enableFields)\n ) {\n const emailField = { ...emailFieldConfig }\n let usernameField: TextField | undefined\n\n if (authConfig.loginWithUsername) {\n usernameField = { ...usernameFieldConfig }\n if (typeof authConfig.loginWithUsername === 'object') {\n if (authConfig.loginWithUsername.requireEmail === false) {\n emailField.required = false\n }\n if (authConfig.loginWithUsername.requireUsername === false) {\n usernameField.required = false\n }\n if (authConfig.loginWithUsername.allowEmailLogin === false) {\n emailField.unique = false\n }\n }\n }\n\n authFields.push(emailField)\n if (usernameField) {\n authFields.push(usernameField)\n }\n\n authFields.push(...baseAuthFields)\n\n if (authConfig.verify) {\n authFields.push(...verificationFields)\n }\n\n if (authConfig?.maxLoginAttempts && authConfig.maxLoginAttempts > 0) {\n authFields.push(...accountLockFields)\n }\n\n if (authConfig.useSessions) {\n authFields.push(sessionsFieldConfig)\n }\n }\n\n return authFields\n}\n"],"names":["accountLockFields","createAPIKeyFields","baseAuthFields","emailFieldConfig","sessionsFieldConfig","usernameFieldConfig","verificationFields","getBaseAuthFields","authConfig","authFields","useAPIKey","push","disableLocalStrategy","enableFields","emailField","usernameField","loginWithUsername","requireEmail","required","requireUsername","allowEmailLogin","unique","verify","maxLoginAttempts","useSessions"],"mappings":"AAGA,SAASA,iBAAiB,QAAQ,8BAA6B;AAC/D,SAASC,kBAAkB,QAAQ,yBAAwB;AAC3D,SAASC,cAAc,QAAQ,uBAAsB;AACrD,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,kBAAkB,QAAQ,+BAA8B;AAEjE,OAAO,MAAMC,oBAAoB,CAACC;IAChC,MAAMC,aAAsB,EAAE;IAE9B,IAAID,WAAWE,SAAS,EAAE;QACxBD,WAAWE,IAAI,IAAIV;IACrB;IAEA,IACE,CAACO,WAAWI,oBAAoB,IAC/B,OAAOJ,WAAWI,oBAAoB,KAAK,YAC1CJ,WAAWI,oBAAoB,CAACC,YAAY,EAC9C;QACA,MAAMC,aAAa;YAAE,GAAGX,gBAAgB;QAAC;QACzC,IAAIY;QAEJ,IAAIP,WAAWQ,iBAAiB,EAAE;YAChCD,gBAAgB;gBAAE,GAAGV,mBAAmB;YAAC;YACzC,IAAI,OAAOG,WAAWQ,iBAAiB,KAAK,UAAU;gBACpD,IAAIR,WAAWQ,iBAAiB,CAACC,YAAY,KAAK,OAAO;oBACvDH,WAAWI,QAAQ,GAAG;gBACxB;gBACA,IAAIV,WAAWQ,iBAAiB,CAACG,eAAe,KAAK,OAAO;oBAC1DJ,cAAcG,QAAQ,GAAG;gBAC3B;gBACA,IAAIV,WAAWQ,iBAAiB,CAACI,eAAe,KAAK,OAAO;oBAC1DN,WAAWO,MAAM,GAAG;gBACtB;YACF;QACF;QAEAZ,WAAWE,IAAI,CAACG;QAChB,IAAIC,eAAe;YACjBN,WAAWE,IAAI,CAACI;QAClB;QAEAN,WAAWE,IAAI,IAAIT;QAEnB,IAAIM,WAAWc,MAAM,EAAE;YACrBb,WAAWE,IAAI,IAAIL;QACrB;QAEA,IAAIE,YAAYe,oBAAoBf,WAAWe,gBAAgB,GAAG,GAAG;YACnEd,WAAWE,IAAI,IAAIX;QACrB;QAEA,IAAIQ,WAAWgB,WAAW,EAAE;YAC1Bf,WAAWE,IAAI,CAACP;QAClB;IACF;IAEA,OAAOK;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bin/generateImportMap/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAO9E,KAAK,gBAAgB,GAAG,MAAM,CAAA;AAC9B,KAAK,eAAe,GAAG,MAAM,CAAA;AAC7B,KAAK,UAAU,GAAG,MAAM,CAAA;AACxB,KAAK,cAAc,GAAG,MAAM,CAAA;AAE5B;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAAA;CACzC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,UAAU,EAAE,gBAAgB,GAAG;QAC9B,IAAI,EAAE,UAAU,CAAA;QAChB,SAAS,EAAE,eAAe,CAAA;KAC3B,CAAA;CACF,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,cAAc,GAAG,GAAG,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,KAAK,IAAI,CAAA;AAE/F,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,OAAO,CAAA,CAAC;;;OAGb;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,GAAG,EAAE,OAAO,CAAA;CACb,GACA,OAAO,CAAC,IAAI,CAAC,CA8Ef;AAED,wBAAsB,cAAc,CAAC,EACnC,YAAY,EACZ,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,GAAG,GACJ,EAAE;IACD,YAAY,EAAE,iBAAiB,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,GAAG,CAAC,EAAE,OAAO,CAAA;CACd,iBAoCA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bin/generateImportMap/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAQ9E,KAAK,gBAAgB,GAAG,MAAM,CAAA;AAC9B,KAAK,eAAe,GAAG,MAAM,CAAA;AAC7B,KAAK,UAAU,GAAG,MAAM,CAAA;AACxB,KAAK,cAAc,GAAG,MAAM,CAAA;AAE5B;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAAA;CACzC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,UAAU,EAAE,gBAAgB,GAAG;QAC9B,IAAI,EAAE,UAAU,CAAA;QAChB,SAAS,EAAE,eAAe,CAAA;KAC3B,CAAA;CACF,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,cAAc,GAAG,GAAG,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,KAAK,IAAI,CAAA;AAE/F,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,OAAO,CAAA,CAAC;;;OAGb;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,GAAG,EAAE,OAAO,CAAA;CACb,GACA,OAAO,CAAC,IAAI,CAAC,CA+Ef;AAED,wBAAsB,cAAc,CAAC,EACnC,YAAY,EACZ,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,GAAG,GACJ,EAAE;IACD,YAAY,EAAE,iBAAiB,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,GAAG,CAAC,EAAE,OAAO,CAAA;CACd,iBAqCA"}
@@ -1,13 +1,15 @@
1
- /* eslint-disable no-console */ import fs from 'fs/promises';
1
+ import fs from 'fs/promises';
2
2
  import process from 'node:process';
3
+ import { getLogger } from '../../utilities/logger.js';
3
4
  import { iterateConfig } from './iterateConfig.js';
4
5
  import { addPayloadComponentToImportMap } from './utilities/addPayloadComponentToImportMap.js';
5
6
  import { getImportMapToBaseDirPath } from './utilities/getImportMapToBaseDirPath.js';
6
7
  import { resolveImportMapFilePath } from './utilities/resolveImportMapFilePath.js';
7
8
  export async function generateImportMap(config, options) {
9
+ const logger = getLogger('payload', 'sync');
8
10
  const shouldLog = options?.log ?? true;
9
11
  if (shouldLog) {
10
- console.log('Generating import map');
12
+ logger.info('Generating import map');
11
13
  }
12
14
  const importMap = {};
13
15
  const imports = {};
@@ -35,7 +37,7 @@ export async function generateImportMap(config, options) {
35
37
  return;
36
38
  }
37
39
  if (typeof payloadComponent !== 'object' && typeof payloadComponent !== 'string') {
38
- console.error(payloadComponent);
40
+ logger.error(payloadComponent);
39
41
  throw new Error('addToImportMap > Payload component must be an object or a string');
40
42
  }
41
43
  if (Array.isArray(payloadComponent)) {
@@ -72,6 +74,7 @@ export async function generateImportMap(config, options) {
72
74
  });
73
75
  }
74
76
  export async function writeImportMap({ componentMap, force, importMap, importMapFilePath, log }) {
77
+ const logger = getLogger('payload', 'sync');
75
78
  const imports = [];
76
79
  for (const [identifier, { path, specifier }] of Object.entries(importMap)){
77
80
  imports.push(`import { ${specifier} as ${identifier} } from '${path}'`);
@@ -92,13 +95,13 @@ ${mapKeys.join(',\n')}
92
95
  const currentImportMap = await fs.readFile(importMapFilePath, 'utf-8');
93
96
  if (currentImportMap?.trim() === importMapOutputFile?.trim()) {
94
97
  if (log) {
95
- console.log('No new imports found, skipping writing import map');
98
+ logger.info('No new imports found, skipping writing import map');
96
99
  }
97
100
  return;
98
101
  }
99
102
  }
100
103
  if (log) {
101
- console.log('Writing import map to', importMapFilePath);
104
+ logger.info(`Writing import map to ${importMapFilePath}`);
102
105
  }
103
106
  await fs.writeFile(importMapFilePath, importMapOutputFile);
104
107
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/bin/generateImportMap/index.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport fs from 'fs/promises'\nimport process from 'node:process'\n\nimport type { PayloadComponent, SanitizedConfig } from '../../config/types.js'\n\nimport { iterateConfig } from './iterateConfig.js'\nimport { addPayloadComponentToImportMap } from './utilities/addPayloadComponentToImportMap.js'\nimport { getImportMapToBaseDirPath } from './utilities/getImportMapToBaseDirPath.js'\nimport { resolveImportMapFilePath } from './utilities/resolveImportMapFilePath.js'\n\ntype ImportIdentifier = string\ntype ImportSpecifier = string\ntype ImportPath = string\ntype UserImportPath = string\n\n/**\n * Import Map before being written to the file. Only contains all paths\n */\nexport type InternalImportMap = {\n [path: UserImportPath]: ImportIdentifier\n}\n\n/**\n * Imports of the import map.\n */\nexport type Imports = {\n [identifier: ImportIdentifier]: {\n path: ImportPath\n specifier: ImportSpecifier\n }\n}\n\n/**\n * Import Map after being imported from the actual import map. Contains all the actual imported components\n */\nexport type ImportMap = {\n [path: UserImportPath]: any\n}\n\nexport type AddToImportMap = (payloadComponent?: PayloadComponent | PayloadComponent[]) => void\n\nexport async function generateImportMap(\n config: SanitizedConfig,\n options?: {\n force?: boolean /**\n * If true, will not throw an error if the import map file path cannot be resolved\n Instead, it will return silently.\n */\n ignoreResolveError?: boolean\n log: boolean\n },\n): Promise<void> {\n const shouldLog = options?.log ?? true\n\n if (shouldLog) {\n console.log('Generating import map')\n }\n\n const importMap: InternalImportMap = {}\n const imports: Imports = {}\n\n // Determine the root directory of the project - usually the directory where the src or app folder is located\n const rootDir = process.env.ROOT_DIR ?? process.cwd()\n\n const baseDir = config.admin.importMap.baseDir ?? process.cwd()\n\n const importMapFilePath = await resolveImportMapFilePath({\n adminRoute: config.routes.admin,\n importMapFile: config?.admin?.importMap?.importMapFile,\n rootDir,\n })\n\n if (importMapFilePath instanceof Error) {\n if (options?.ignoreResolveError) {\n return\n } else {\n throw importMapFilePath\n }\n }\n\n const importMapToBaseDirPath = getImportMapToBaseDirPath({\n baseDir,\n importMapPath: importMapFilePath,\n })\n\n const addToImportMap: AddToImportMap = (payloadComponent) => {\n if (!payloadComponent) {\n return\n }\n\n if (typeof payloadComponent !== 'object' && typeof payloadComponent !== 'string') {\n console.error(payloadComponent)\n throw new Error('addToImportMap > Payload component must be an object or a string')\n }\n\n if (Array.isArray(payloadComponent)) {\n for (const component of payloadComponent) {\n addPayloadComponentToImportMap({\n importMap,\n importMapToBaseDirPath,\n imports,\n payloadComponent: component,\n })\n }\n } else {\n addPayloadComponentToImportMap({\n importMap,\n importMapToBaseDirPath,\n imports,\n payloadComponent,\n })\n }\n }\n\n iterateConfig({\n addToImportMap,\n baseDir: config.admin.importMap.baseDir,\n config,\n importMap,\n imports,\n })\n\n await writeImportMap({\n componentMap: importMap,\n force: options?.force,\n importMap: imports,\n importMapFilePath,\n log: shouldLog,\n })\n}\n\nexport async function writeImportMap({\n componentMap,\n force,\n importMap,\n importMapFilePath,\n log,\n}: {\n componentMap: InternalImportMap\n force?: boolean\n importMap: Imports\n importMapFilePath: string\n log?: boolean\n}) {\n const imports: string[] = []\n for (const [identifier, { path, specifier }] of Object.entries(importMap)) {\n imports.push(`import { ${specifier} as ${identifier} } from '${path}'`)\n }\n\n const mapKeys: string[] = []\n for (const [userPath, identifier] of Object.entries(componentMap)) {\n mapKeys.push(` \"${userPath}\": ${identifier}`)\n }\n\n const importMapOutputFile = `${imports.join('\\n')}\n\n/** @type import('payload').ImportMap */\nexport const importMap = {\n${mapKeys.join(',\\n')}\n}\n`\n\n if (!force) {\n // Read current import map and check in the IMPORTS if there are any new imports. If not, don't write the file.\n const currentImportMap = await fs.readFile(importMapFilePath, 'utf-8')\n\n if (currentImportMap?.trim() === importMapOutputFile?.trim()) {\n if (log) {\n console.log('No new imports found, skipping writing import map')\n }\n return\n }\n }\n\n if (log) {\n console.log('Writing import map to', importMapFilePath)\n }\n\n await fs.writeFile(importMapFilePath, importMapOutputFile)\n}\n"],"names":["fs","process","iterateConfig","addPayloadComponentToImportMap","getImportMapToBaseDirPath","resolveImportMapFilePath","generateImportMap","config","options","shouldLog","log","console","importMap","imports","rootDir","env","ROOT_DIR","cwd","baseDir","admin","importMapFilePath","adminRoute","routes","importMapFile","Error","ignoreResolveError","importMapToBaseDirPath","importMapPath","addToImportMap","payloadComponent","error","Array","isArray","component","writeImportMap","componentMap","force","identifier","path","specifier","Object","entries","push","mapKeys","userPath","importMapOutputFile","join","currentImportMap","readFile","trim","writeFile"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/bin/generateImportMap/index.ts"],"sourcesContent":["import fs from 'fs/promises'\nimport process from 'node:process'\n\nimport type { PayloadComponent, SanitizedConfig } from '../../config/types.js'\n\nimport { getLogger } from '../../utilities/logger.js'\nimport { iterateConfig } from './iterateConfig.js'\nimport { addPayloadComponentToImportMap } from './utilities/addPayloadComponentToImportMap.js'\nimport { getImportMapToBaseDirPath } from './utilities/getImportMapToBaseDirPath.js'\nimport { resolveImportMapFilePath } from './utilities/resolveImportMapFilePath.js'\n\ntype ImportIdentifier = string\ntype ImportSpecifier = string\ntype ImportPath = string\ntype UserImportPath = string\n\n/**\n * Import Map before being written to the file. Only contains all paths\n */\nexport type InternalImportMap = {\n [path: UserImportPath]: ImportIdentifier\n}\n\n/**\n * Imports of the import map.\n */\nexport type Imports = {\n [identifier: ImportIdentifier]: {\n path: ImportPath\n specifier: ImportSpecifier\n }\n}\n\n/**\n * Import Map after being imported from the actual import map. Contains all the actual imported components\n */\nexport type ImportMap = {\n [path: UserImportPath]: any\n}\n\nexport type AddToImportMap = (payloadComponent?: PayloadComponent | PayloadComponent[]) => void\n\nexport async function generateImportMap(\n config: SanitizedConfig,\n options?: {\n force?: boolean /**\n * If true, will not throw an error if the import map file path cannot be resolved\n Instead, it will return silently.\n */\n ignoreResolveError?: boolean\n log: boolean\n },\n): Promise<void> {\n const logger = getLogger('payload', 'sync')\n const shouldLog = options?.log ?? true\n\n if (shouldLog) {\n logger.info('Generating import map')\n }\n\n const importMap: InternalImportMap = {}\n const imports: Imports = {}\n\n // Determine the root directory of the project - usually the directory where the src or app folder is located\n const rootDir = process.env.ROOT_DIR ?? process.cwd()\n\n const baseDir = config.admin.importMap.baseDir ?? process.cwd()\n\n const importMapFilePath = await resolveImportMapFilePath({\n adminRoute: config.routes.admin,\n importMapFile: config?.admin?.importMap?.importMapFile,\n rootDir,\n })\n\n if (importMapFilePath instanceof Error) {\n if (options?.ignoreResolveError) {\n return\n } else {\n throw importMapFilePath\n }\n }\n\n const importMapToBaseDirPath = getImportMapToBaseDirPath({\n baseDir,\n importMapPath: importMapFilePath,\n })\n\n const addToImportMap: AddToImportMap = (payloadComponent) => {\n if (!payloadComponent) {\n return\n }\n\n if (typeof payloadComponent !== 'object' && typeof payloadComponent !== 'string') {\n logger.error(payloadComponent)\n throw new Error('addToImportMap > Payload component must be an object or a string')\n }\n\n if (Array.isArray(payloadComponent)) {\n for (const component of payloadComponent) {\n addPayloadComponentToImportMap({\n importMap,\n importMapToBaseDirPath,\n imports,\n payloadComponent: component,\n })\n }\n } else {\n addPayloadComponentToImportMap({\n importMap,\n importMapToBaseDirPath,\n imports,\n payloadComponent,\n })\n }\n }\n\n iterateConfig({\n addToImportMap,\n baseDir: config.admin.importMap.baseDir,\n config,\n importMap,\n imports,\n })\n\n await writeImportMap({\n componentMap: importMap,\n force: options?.force,\n importMap: imports,\n importMapFilePath,\n log: shouldLog,\n })\n}\n\nexport async function writeImportMap({\n componentMap,\n force,\n importMap,\n importMapFilePath,\n log,\n}: {\n componentMap: InternalImportMap\n force?: boolean\n importMap: Imports\n importMapFilePath: string\n log?: boolean\n}) {\n const logger = getLogger('payload', 'sync')\n const imports: string[] = []\n for (const [identifier, { path, specifier }] of Object.entries(importMap)) {\n imports.push(`import { ${specifier} as ${identifier} } from '${path}'`)\n }\n\n const mapKeys: string[] = []\n for (const [userPath, identifier] of Object.entries(componentMap)) {\n mapKeys.push(` \"${userPath}\": ${identifier}`)\n }\n\n const importMapOutputFile = `${imports.join('\\n')}\n\n/** @type import('payload').ImportMap */\nexport const importMap = {\n${mapKeys.join(',\\n')}\n}\n`\n\n if (!force) {\n // Read current import map and check in the IMPORTS if there are any new imports. If not, don't write the file.\n const currentImportMap = await fs.readFile(importMapFilePath, 'utf-8')\n\n if (currentImportMap?.trim() === importMapOutputFile?.trim()) {\n if (log) {\n logger.info('No new imports found, skipping writing import map')\n }\n return\n }\n }\n\n if (log) {\n logger.info(`Writing import map to ${importMapFilePath}`)\n }\n\n await fs.writeFile(importMapFilePath, importMapOutputFile)\n}\n"],"names":["fs","process","getLogger","iterateConfig","addPayloadComponentToImportMap","getImportMapToBaseDirPath","resolveImportMapFilePath","generateImportMap","config","options","logger","shouldLog","log","info","importMap","imports","rootDir","env","ROOT_DIR","cwd","baseDir","admin","importMapFilePath","adminRoute","routes","importMapFile","Error","ignoreResolveError","importMapToBaseDirPath","importMapPath","addToImportMap","payloadComponent","error","Array","isArray","component","writeImportMap","componentMap","force","identifier","path","specifier","Object","entries","push","mapKeys","userPath","importMapOutputFile","join","currentImportMap","readFile","trim","writeFile"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"iterateCollections.d.ts","sourceRoot":"","sources":["../../../src/bin/generateImportMap/iterateCollections.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAI5E,wBAAgB,kBAAkB,CAAC,EACjC,cAAc,EACd,OAAO,EACP,WAAW,EACX,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;CACjB,QAiEA"}
1
+ {"version":3,"file":"iterateCollections.d.ts","sourceRoot":"","sources":["../../../src/bin/generateImportMap/iterateCollections.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAI5E,wBAAgB,kBAAkB,CAAC,EACjC,cAAc,EACd,OAAO,EACP,WAAW,EACX,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;CACjB,QAkEA"}
@@ -44,6 +44,7 @@ export function iterateCollections({ addToImportMap, baseDir, collections, confi
44
44
  }
45
45
  addToImportMap(collection.admin?.components?.views?.list?.Component);
46
46
  addToImportMap(collection.admin?.components?.views?.list?.actions);
47
+ addToImportMap(collection.admin?.components?.views?.list?.NoResults);
47
48
  // Register custom collection view components (any key other than 'edit' and 'list')
48
49
  if (collection.admin?.components?.views) {
49
50
  for (const [key, view] of Object.entries(collection.admin.components.views)){
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/bin/generateImportMap/iterateCollections.ts"],"sourcesContent":["import type { AdminViewConfig } from '../../admin/views/index.js'\nimport type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { SanitizedConfig } from '../../config/types.js'\nimport type { AddToImportMap, Imports, InternalImportMap } from './index.js'\n\nimport { genImportMapIterateFields } from './iterateFields.js'\n\nexport function iterateCollections({\n addToImportMap,\n baseDir,\n collections,\n config,\n importMap,\n imports,\n}: {\n addToImportMap: AddToImportMap\n baseDir: string\n collections: SanitizedCollectionConfig[]\n config: SanitizedConfig\n importMap: InternalImportMap\n imports: Imports\n}) {\n for (const collection of collections) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: collection.fields,\n importMap,\n imports,\n })\n\n addToImportMap(collection.admin?.components?.afterList)\n addToImportMap(collection.admin?.components?.listMenuItems)\n addToImportMap(collection.admin?.components?.afterListTable)\n addToImportMap(collection.admin?.components?.beforeList)\n addToImportMap(collection.admin?.components?.beforeListTable)\n addToImportMap(collection.admin?.components?.Description)\n\n addToImportMap(collection.admin?.components?.edit?.beforeDocumentControls)\n addToImportMap(collection.admin?.components?.edit?.BeforeDocumentMeta)\n addToImportMap(collection.admin?.components?.edit?.editMenuItems)\n addToImportMap(collection.admin?.components?.edit?.PreviewButton)\n addToImportMap(collection.admin?.components?.edit?.PublishButton)\n addToImportMap(collection.admin?.components?.edit?.SaveButton)\n addToImportMap(collection.admin?.components?.edit?.SaveDraftButton)\n addToImportMap(collection.admin?.components?.edit?.Status)\n addToImportMap(collection.admin?.components?.edit?.UnpublishButton)\n addToImportMap(collection.admin?.components?.edit?.Upload)\n\n if (collection.upload?.admin?.components?.controls) {\n addToImportMap(collection.upload?.admin?.components?.controls)\n }\n\n if (collection.admin?.components?.views?.edit) {\n for (const editViewConfig of Object.values(collection.admin?.components?.views?.edit)) {\n if ('Component' in editViewConfig) {\n addToImportMap(editViewConfig?.Component)\n }\n\n if ('actions' in editViewConfig) {\n addToImportMap(editViewConfig?.actions)\n }\n\n if ('tab' in editViewConfig) {\n addToImportMap(editViewConfig?.tab?.Component)\n addToImportMap(editViewConfig?.tab?.Pill)\n }\n }\n }\n\n addToImportMap(collection.admin?.components?.views?.list?.Component)\n addToImportMap(collection.admin?.components?.views?.list?.actions)\n\n // Register custom collection view components (any key other than 'edit' and 'list')\n if (collection.admin?.components?.views) {\n for (const [key, view] of Object.entries(collection.admin.components.views)) {\n if (key === 'edit' || key === 'list') {\n continue\n }\n if (view && typeof view === 'object' && 'Component' in view && 'path' in view) {\n addToImportMap((view as AdminViewConfig).Component)\n }\n }\n }\n }\n}\n"],"names":["genImportMapIterateFields","iterateCollections","addToImportMap","baseDir","collections","config","importMap","imports","collection","fields","admin","components","afterList","listMenuItems","afterListTable","beforeList","beforeListTable","Description","edit","beforeDocumentControls","BeforeDocumentMeta","editMenuItems","PreviewButton","PublishButton","SaveButton","SaveDraftButton","Status","UnpublishButton","Upload","upload","controls","views","editViewConfig","Object","values","Component","actions","tab","Pill","list","key","view","entries"],"mappings":"AAKA,SAASA,yBAAyB,QAAQ,qBAAoB;AAE9D,OAAO,SAASC,mBAAmB,EACjCC,cAAc,EACdC,OAAO,EACPC,WAAW,EACXC,MAAM,EACNC,SAAS,EACTC,OAAO,EAQR;IACC,KAAK,MAAMC,cAAcJ,YAAa;QACpCJ,0BAA0B;YACxBE;YACAC;YACAE;YACAI,QAAQD,WAAWC,MAAM;YACzBH;YACAC;QACF;QAEAL,eAAeM,WAAWE,KAAK,EAAEC,YAAYC;QAC7CV,eAAeM,WAAWE,KAAK,EAAEC,YAAYE;QAC7CX,eAAeM,WAAWE,KAAK,EAAEC,YAAYG;QAC7CZ,eAAeM,WAAWE,KAAK,EAAEC,YAAYI;QAC7Cb,eAAeM,WAAWE,KAAK,EAAEC,YAAYK;QAC7Cd,eAAeM,WAAWE,KAAK,EAAEC,YAAYM;QAE7Cf,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMC;QACnDjB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAME;QACnDlB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMG;QACnDnB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMI;QACnDpB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMK;QACnDrB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMM;QACnDtB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMO;QACnDvB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMQ;QACnDxB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMS;QACnDzB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMU;QAEnD,IAAIpB,WAAWqB,MAAM,EAAEnB,OAAOC,YAAYmB,UAAU;YAClD5B,eAAeM,WAAWqB,MAAM,EAAEnB,OAAOC,YAAYmB;QACvD;QAEA,IAAItB,WAAWE,KAAK,EAAEC,YAAYoB,OAAOb,MAAM;YAC7C,KAAK,MAAMc,kBAAkBC,OAAOC,MAAM,CAAC1B,WAAWE,KAAK,EAAEC,YAAYoB,OAAOb,MAAO;gBACrF,IAAI,eAAec,gBAAgB;oBACjC9B,eAAe8B,gBAAgBG;gBACjC;gBAEA,IAAI,aAAaH,gBAAgB;oBAC/B9B,eAAe8B,gBAAgBI;gBACjC;gBAEA,IAAI,SAASJ,gBAAgB;oBAC3B9B,eAAe8B,gBAAgBK,KAAKF;oBACpCjC,eAAe8B,gBAAgBK,KAAKC;gBACtC;YACF;QACF;QAEApC,eAAeM,WAAWE,KAAK,EAAEC,YAAYoB,OAAOQ,MAAMJ;QAC1DjC,eAAeM,WAAWE,KAAK,EAAEC,YAAYoB,OAAOQ,MAAMH;QAE1D,oFAAoF;QACpF,IAAI5B,WAAWE,KAAK,EAAEC,YAAYoB,OAAO;YACvC,KAAK,MAAM,CAACS,KAAKC,KAAK,IAAIR,OAAOS,OAAO,CAAClC,WAAWE,KAAK,CAACC,UAAU,CAACoB,KAAK,EAAG;gBAC3E,IAAIS,QAAQ,UAAUA,QAAQ,QAAQ;oBACpC;gBACF;gBACA,IAAIC,QAAQ,OAAOA,SAAS,YAAY,eAAeA,QAAQ,UAAUA,MAAM;oBAC7EvC,eAAe,AAACuC,KAAyBN,SAAS;gBACpD;YACF;QACF;IACF;AACF"}
1
+ {"version":3,"sources":["../../../src/bin/generateImportMap/iterateCollections.ts"],"sourcesContent":["import type { AdminViewConfig } from '../../admin/views/index.js'\nimport type { SanitizedCollectionConfig } from '../../collections/config/types.js'\nimport type { SanitizedConfig } from '../../config/types.js'\nimport type { AddToImportMap, Imports, InternalImportMap } from './index.js'\n\nimport { genImportMapIterateFields } from './iterateFields.js'\n\nexport function iterateCollections({\n addToImportMap,\n baseDir,\n collections,\n config,\n importMap,\n imports,\n}: {\n addToImportMap: AddToImportMap\n baseDir: string\n collections: SanitizedCollectionConfig[]\n config: SanitizedConfig\n importMap: InternalImportMap\n imports: Imports\n}) {\n for (const collection of collections) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: collection.fields,\n importMap,\n imports,\n })\n\n addToImportMap(collection.admin?.components?.afterList)\n addToImportMap(collection.admin?.components?.listMenuItems)\n addToImportMap(collection.admin?.components?.afterListTable)\n addToImportMap(collection.admin?.components?.beforeList)\n addToImportMap(collection.admin?.components?.beforeListTable)\n addToImportMap(collection.admin?.components?.Description)\n\n addToImportMap(collection.admin?.components?.edit?.beforeDocumentControls)\n addToImportMap(collection.admin?.components?.edit?.BeforeDocumentMeta)\n addToImportMap(collection.admin?.components?.edit?.editMenuItems)\n addToImportMap(collection.admin?.components?.edit?.PreviewButton)\n addToImportMap(collection.admin?.components?.edit?.PublishButton)\n addToImportMap(collection.admin?.components?.edit?.SaveButton)\n addToImportMap(collection.admin?.components?.edit?.SaveDraftButton)\n addToImportMap(collection.admin?.components?.edit?.Status)\n addToImportMap(collection.admin?.components?.edit?.UnpublishButton)\n addToImportMap(collection.admin?.components?.edit?.Upload)\n\n if (collection.upload?.admin?.components?.controls) {\n addToImportMap(collection.upload?.admin?.components?.controls)\n }\n\n if (collection.admin?.components?.views?.edit) {\n for (const editViewConfig of Object.values(collection.admin?.components?.views?.edit)) {\n if ('Component' in editViewConfig) {\n addToImportMap(editViewConfig?.Component)\n }\n\n if ('actions' in editViewConfig) {\n addToImportMap(editViewConfig?.actions)\n }\n\n if ('tab' in editViewConfig) {\n addToImportMap(editViewConfig?.tab?.Component)\n addToImportMap(editViewConfig?.tab?.Pill)\n }\n }\n }\n\n addToImportMap(collection.admin?.components?.views?.list?.Component)\n addToImportMap(collection.admin?.components?.views?.list?.actions)\n addToImportMap(collection.admin?.components?.views?.list?.NoResults)\n\n // Register custom collection view components (any key other than 'edit' and 'list')\n if (collection.admin?.components?.views) {\n for (const [key, view] of Object.entries(collection.admin.components.views)) {\n if (key === 'edit' || key === 'list') {\n continue\n }\n if (view && typeof view === 'object' && 'Component' in view && 'path' in view) {\n addToImportMap((view as AdminViewConfig).Component)\n }\n }\n }\n }\n}\n"],"names":["genImportMapIterateFields","iterateCollections","addToImportMap","baseDir","collections","config","importMap","imports","collection","fields","admin","components","afterList","listMenuItems","afterListTable","beforeList","beforeListTable","Description","edit","beforeDocumentControls","BeforeDocumentMeta","editMenuItems","PreviewButton","PublishButton","SaveButton","SaveDraftButton","Status","UnpublishButton","Upload","upload","controls","views","editViewConfig","Object","values","Component","actions","tab","Pill","list","NoResults","key","view","entries"],"mappings":"AAKA,SAASA,yBAAyB,QAAQ,qBAAoB;AAE9D,OAAO,SAASC,mBAAmB,EACjCC,cAAc,EACdC,OAAO,EACPC,WAAW,EACXC,MAAM,EACNC,SAAS,EACTC,OAAO,EAQR;IACC,KAAK,MAAMC,cAAcJ,YAAa;QACpCJ,0BAA0B;YACxBE;YACAC;YACAE;YACAI,QAAQD,WAAWC,MAAM;YACzBH;YACAC;QACF;QAEAL,eAAeM,WAAWE,KAAK,EAAEC,YAAYC;QAC7CV,eAAeM,WAAWE,KAAK,EAAEC,YAAYE;QAC7CX,eAAeM,WAAWE,KAAK,EAAEC,YAAYG;QAC7CZ,eAAeM,WAAWE,KAAK,EAAEC,YAAYI;QAC7Cb,eAAeM,WAAWE,KAAK,EAAEC,YAAYK;QAC7Cd,eAAeM,WAAWE,KAAK,EAAEC,YAAYM;QAE7Cf,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMC;QACnDjB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAME;QACnDlB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMG;QACnDnB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMI;QACnDpB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMK;QACnDrB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMM;QACnDtB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMO;QACnDvB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMQ;QACnDxB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMS;QACnDzB,eAAeM,WAAWE,KAAK,EAAEC,YAAYO,MAAMU;QAEnD,IAAIpB,WAAWqB,MAAM,EAAEnB,OAAOC,YAAYmB,UAAU;YAClD5B,eAAeM,WAAWqB,MAAM,EAAEnB,OAAOC,YAAYmB;QACvD;QAEA,IAAItB,WAAWE,KAAK,EAAEC,YAAYoB,OAAOb,MAAM;YAC7C,KAAK,MAAMc,kBAAkBC,OAAOC,MAAM,CAAC1B,WAAWE,KAAK,EAAEC,YAAYoB,OAAOb,MAAO;gBACrF,IAAI,eAAec,gBAAgB;oBACjC9B,eAAe8B,gBAAgBG;gBACjC;gBAEA,IAAI,aAAaH,gBAAgB;oBAC/B9B,eAAe8B,gBAAgBI;gBACjC;gBAEA,IAAI,SAASJ,gBAAgB;oBAC3B9B,eAAe8B,gBAAgBK,KAAKF;oBACpCjC,eAAe8B,gBAAgBK,KAAKC;gBACtC;YACF;QACF;QAEApC,eAAeM,WAAWE,KAAK,EAAEC,YAAYoB,OAAOQ,MAAMJ;QAC1DjC,eAAeM,WAAWE,KAAK,EAAEC,YAAYoB,OAAOQ,MAAMH;QAC1DlC,eAAeM,WAAWE,KAAK,EAAEC,YAAYoB,OAAOQ,MAAMC;QAE1D,oFAAoF;QACpF,IAAIhC,WAAWE,KAAK,EAAEC,YAAYoB,OAAO;YACvC,KAAK,MAAM,CAACU,KAAKC,KAAK,IAAIT,OAAOU,OAAO,CAACnC,WAAWE,KAAK,CAACC,UAAU,CAACoB,KAAK,EAAG;gBAC3E,IAAIU,QAAQ,UAAUA,QAAQ,QAAQ;oBACpC;gBACF;gBACA,IAAIC,QAAQ,OAAOA,SAAS,YAAY,eAAeA,QAAQ,UAAUA,MAAM;oBAC7ExC,eAAe,AAACwC,KAAyBP,SAAS;gBACpD;YACF;QACF;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"iterateConfig.d.ts","sourceRoot":"","sources":["../../../src/bin/generateImportMap/iterateConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAM5E,wBAAgB,aAAa,CAAC,EAC5B,cAAc,EACd,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;IACvB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;CACjB,QA0HA"}
1
+ {"version":3,"file":"iterateConfig.d.ts","sourceRoot":"","sources":["../../../src/bin/generateImportMap/iterateConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO5E,wBAAgB,aAAa,CAAC,EAC5B,cAAc,EACd,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;IACvB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;CACjB,QAqIA"}
@@ -1,3 +1,4 @@
1
+ import { isUserMenuSettingsGroup } from '../../config/types.js';
1
2
  import { iterateCollections } from './iterateCollections.js';
2
3
  import { genImportMapIterateFields } from './iterateFields.js';
3
4
  import { iterateGlobals } from './iterateGlobals.js';
@@ -38,6 +39,17 @@ export function iterateConfig({ addToImportMap, baseDir, config, importMap, impo
38
39
  addToImportMap(config.admin?.components?.header);
39
40
  addToImportMap(config.admin?.components?.logout?.Button);
40
41
  addToImportMap(config.admin?.components?.settingsMenu);
42
+ if (config.admin?.components?.userMenuSettingsItems?.length) {
43
+ for (const userMenuSettingsItem of config.admin.components.userMenuSettingsItems){
44
+ if (isUserMenuSettingsGroup(userMenuSettingsItem)) {
45
+ for (const groupedItem of userMenuSettingsItem.items){
46
+ addToImportMap(groupedItem);
47
+ }
48
+ } else {
49
+ addToImportMap(userMenuSettingsItem);
50
+ }
51
+ }
52
+ }
41
53
  addToImportMap(config.admin?.components?.graphics?.Icon);
42
54
  addToImportMap(config.admin?.components?.graphics?.Logo);
43
55
  addToImportMap(config.admin?.components?.actions);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/bin/generateImportMap/iterateConfig.ts"],"sourcesContent":["import type { SanitizedConfig } from '../../config/types.js'\nimport type { AddToImportMap, Imports, InternalImportMap } from './index.js'\n\nimport { iterateCollections } from './iterateCollections.js'\nimport { genImportMapIterateFields } from './iterateFields.js'\nimport { iterateGlobals } from './iterateGlobals.js'\n\nexport function iterateConfig({\n addToImportMap,\n baseDir,\n config,\n importMap,\n imports,\n}: {\n addToImportMap: AddToImportMap\n baseDir: string\n config: SanitizedConfig\n importMap: InternalImportMap\n imports: Imports\n}) {\n iterateCollections({\n addToImportMap,\n baseDir,\n collections: config.collections,\n config,\n importMap,\n imports,\n })\n\n iterateGlobals({\n addToImportMap,\n baseDir,\n config,\n globals: config.globals,\n importMap,\n imports,\n })\n\n if (config?.blocks) {\n const blocks = Object.values(config.blocks)\n if (blocks?.length) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: blocks,\n importMap,\n imports,\n })\n }\n }\n\n if (typeof config.admin?.avatar === 'object') {\n addToImportMap(config.admin?.avatar?.Component)\n }\n\n addToImportMap(config.admin?.components?.Nav)\n addToImportMap(config.admin?.components?.header)\n addToImportMap(config.admin?.components?.logout?.Button)\n addToImportMap(config.admin?.components?.settingsMenu)\n addToImportMap(config.admin?.components?.graphics?.Icon)\n addToImportMap(config.admin?.components?.graphics?.Logo)\n\n addToImportMap(config.admin?.components?.actions)\n addToImportMap(config.admin?.components?.afterDashboard)\n addToImportMap(config.admin?.components?.afterLogin)\n addToImportMap(config.admin?.components?.afterNav)\n addToImportMap(config.admin?.components?.afterNavLinks)\n addToImportMap(config.admin?.components?.beforeDashboard)\n addToImportMap(config.admin?.components?.beforeLogin)\n addToImportMap(config.admin?.components?.beforeNav)\n addToImportMap(config.admin?.components?.beforeNavLinks)\n\n addToImportMap(config.admin?.components?.providers)\n\n // Sidebar tabs\n if (config.admin?.components?.sidebar?.tabs?.length) {\n for (const tab of config.admin.components.sidebar.tabs) {\n addToImportMap(tab.components.Icon)\n addToImportMap(tab.components.Content)\n }\n }\n\n if (config.admin?.components?.views) {\n if (Object.keys(config.admin?.components?.views)?.length) {\n for (const key in config.admin?.components?.views) {\n const adminViewConfig = config.admin?.components?.views[key]\n addToImportMap(adminViewConfig?.Component)\n }\n }\n }\n\n if (config.admin?.dashboard?.widgets?.length) {\n for (const dashboardWidget of config.admin.dashboard.widgets) {\n addToImportMap(dashboardWidget.Component)\n if (dashboardWidget.fields?.length) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: dashboardWidget.fields,\n importMap,\n imports,\n })\n }\n }\n }\n\n if (config?.admin?.importMap?.generators?.length) {\n for (const generator of config.admin.importMap.generators) {\n generator({\n addToImportMap,\n baseDir,\n config,\n importMap,\n imports,\n })\n }\n }\n\n if (config?.admin?.dependencies) {\n for (const dependency of Object.values(config.admin.dependencies)) {\n addToImportMap(dependency.path)\n }\n }\n\n /*\n if (\n config?.editor &&\n typeof config.editor === 'object' &&\n config.editor.generateImportMap &&\n typeof config.editor.generateImportMap === 'function'\n ) {\n config.editor.generateImportMap({\n addToImportMap,\n baseDir,\n componentMap,\n config,\n importMap,\n })\n }*/ // No need to do that here since in the sanitized editor config, this root editor is already added to the field editor - and we already process that in iterateFields\n}\n"],"names":["iterateCollections","genImportMapIterateFields","iterateGlobals","iterateConfig","addToImportMap","baseDir","config","importMap","imports","collections","globals","blocks","Object","values","length","fields","admin","avatar","Component","components","Nav","header","logout","Button","settingsMenu","graphics","Icon","Logo","actions","afterDashboard","afterLogin","afterNav","afterNavLinks","beforeDashboard","beforeLogin","beforeNav","beforeNavLinks","providers","sidebar","tabs","tab","Content","views","keys","key","adminViewConfig","dashboard","widgets","dashboardWidget","generators","generator","dependencies","dependency","path"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/bin/generateImportMap/iterateConfig.ts"],"sourcesContent":["import type { SanitizedConfig } from '../../config/types.js'\nimport type { AddToImportMap, Imports, InternalImportMap } from './index.js'\n\nimport { isUserMenuSettingsGroup } from '../../config/types.js'\nimport { iterateCollections } from './iterateCollections.js'\nimport { genImportMapIterateFields } from './iterateFields.js'\nimport { iterateGlobals } from './iterateGlobals.js'\n\nexport function iterateConfig({\n addToImportMap,\n baseDir,\n config,\n importMap,\n imports,\n}: {\n addToImportMap: AddToImportMap\n baseDir: string\n config: SanitizedConfig\n importMap: InternalImportMap\n imports: Imports\n}) {\n iterateCollections({\n addToImportMap,\n baseDir,\n collections: config.collections,\n config,\n importMap,\n imports,\n })\n\n iterateGlobals({\n addToImportMap,\n baseDir,\n config,\n globals: config.globals,\n importMap,\n imports,\n })\n\n if (config?.blocks) {\n const blocks = Object.values(config.blocks)\n if (blocks?.length) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: blocks,\n importMap,\n imports,\n })\n }\n }\n\n if (typeof config.admin?.avatar === 'object') {\n addToImportMap(config.admin?.avatar?.Component)\n }\n\n addToImportMap(config.admin?.components?.Nav)\n addToImportMap(config.admin?.components?.header)\n addToImportMap(config.admin?.components?.logout?.Button)\n addToImportMap(config.admin?.components?.settingsMenu)\n if (config.admin?.components?.userMenuSettingsItems?.length) {\n for (const userMenuSettingsItem of config.admin.components.userMenuSettingsItems) {\n if (isUserMenuSettingsGroup(userMenuSettingsItem)) {\n for (const groupedItem of userMenuSettingsItem.items) {\n addToImportMap(groupedItem)\n }\n } else {\n addToImportMap(userMenuSettingsItem)\n }\n }\n }\n addToImportMap(config.admin?.components?.graphics?.Icon)\n addToImportMap(config.admin?.components?.graphics?.Logo)\n\n addToImportMap(config.admin?.components?.actions)\n addToImportMap(config.admin?.components?.afterDashboard)\n addToImportMap(config.admin?.components?.afterLogin)\n addToImportMap(config.admin?.components?.afterNav)\n addToImportMap(config.admin?.components?.afterNavLinks)\n addToImportMap(config.admin?.components?.beforeDashboard)\n addToImportMap(config.admin?.components?.beforeLogin)\n addToImportMap(config.admin?.components?.beforeNav)\n addToImportMap(config.admin?.components?.beforeNavLinks)\n\n addToImportMap(config.admin?.components?.providers)\n\n // Sidebar tabs\n if (config.admin?.components?.sidebar?.tabs?.length) {\n for (const tab of config.admin.components.sidebar.tabs) {\n addToImportMap(tab.components.Icon)\n addToImportMap(tab.components.Content)\n }\n }\n\n if (config.admin?.components?.views) {\n if (Object.keys(config.admin?.components?.views)?.length) {\n for (const key in config.admin?.components?.views) {\n const adminViewConfig = config.admin?.components?.views[key]\n addToImportMap(adminViewConfig?.Component)\n }\n }\n }\n\n if (config.admin?.dashboard?.widgets?.length) {\n for (const dashboardWidget of config.admin.dashboard.widgets) {\n addToImportMap(dashboardWidget.Component)\n if (dashboardWidget.fields?.length) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: dashboardWidget.fields,\n importMap,\n imports,\n })\n }\n }\n }\n\n if (config?.admin?.importMap?.generators?.length) {\n for (const generator of config.admin.importMap.generators) {\n generator({\n addToImportMap,\n baseDir,\n config,\n importMap,\n imports,\n })\n }\n }\n\n if (config?.admin?.dependencies) {\n for (const dependency of Object.values(config.admin.dependencies)) {\n addToImportMap(dependency.path)\n }\n }\n\n /*\n if (\n config?.editor &&\n typeof config.editor === 'object' &&\n config.editor.generateImportMap &&\n typeof config.editor.generateImportMap === 'function'\n ) {\n config.editor.generateImportMap({\n addToImportMap,\n baseDir,\n componentMap,\n config,\n importMap,\n })\n }*/ // No need to do that here since in the sanitized editor config, this root editor is already added to the field editor - and we already process that in iterateFields\n}\n"],"names":["isUserMenuSettingsGroup","iterateCollections","genImportMapIterateFields","iterateGlobals","iterateConfig","addToImportMap","baseDir","config","importMap","imports","collections","globals","blocks","Object","values","length","fields","admin","avatar","Component","components","Nav","header","logout","Button","settingsMenu","userMenuSettingsItems","userMenuSettingsItem","groupedItem","items","graphics","Icon","Logo","actions","afterDashboard","afterLogin","afterNav","afterNavLinks","beforeDashboard","beforeLogin","beforeNav","beforeNavLinks","providers","sidebar","tabs","tab","Content","views","keys","key","adminViewConfig","dashboard","widgets","dashboardWidget","generators","generator","dependencies","dependency","path"],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  /**
2
2
  * Returns the path to the import map file. If the import map file is not found, it throws an error.
3
+ *
4
+ * @param candidateDirectories - Optional array of directory paths to search for the import map.
5
+ * Defaults to Next.js app directory convention. Framework adapters can provide their own.
3
6
  */
4
- export declare function resolveImportMapFilePath({ adminRoute, importMapFile, rootDir, }: {
7
+ export declare function resolveImportMapFilePath({ adminRoute, candidateDirectories, importMapFile, rootDir, }: {
5
8
  adminRoute?: string;
9
+ candidateDirectories?: string[];
6
10
  importMapFile?: string;
7
11
  rootDir: string;
8
12
  }): Promise<Error | string>;
@@ -1 +1 @@
1
- {"version":3,"file":"resolveImportMapFilePath.d.ts","sourceRoot":"","sources":["../../../../src/bin/generateImportMap/utilities/resolveImportMapFilePath.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,UAAqB,EACrB,aAAa,EACb,OAAO,GACR,EAAE;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,CAmC1B"}
1
+ {"version":3,"file":"resolveImportMapFilePath.d.ts","sourceRoot":"","sources":["../../../../src/bin/generateImportMap/utilities/resolveImportMapFilePath.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,UAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,OAAO,GACR,EAAE;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,CAkC1B"}
@@ -8,9 +8,19 @@ async function pathOrFileExists(path) {
8
8
  return false;
9
9
  }
10
10
  }
11
+ /**
12
+ * Default directory patterns for Next.js import map resolution.
13
+ * Other framework adapters can provide their own patterns via `candidateDirectories`.
14
+ */ const defaultCandidateDirectories = (rootDir, adminRoute)=>[
15
+ path.resolve(rootDir, `app/(payload)${adminRoute}/`),
16
+ path.resolve(rootDir, `src/app/(payload)${adminRoute}/`)
17
+ ];
11
18
  /**
12
19
  * Returns the path to the import map file. If the import map file is not found, it throws an error.
13
- */ export async function resolveImportMapFilePath({ adminRoute = '/admin', importMapFile, rootDir }) {
20
+ *
21
+ * @param candidateDirectories - Optional array of directory paths to search for the import map.
22
+ * Defaults to Next.js app directory convention. Framework adapters can provide their own.
23
+ */ export async function resolveImportMapFilePath({ adminRoute = '/admin', candidateDirectories, importMapFile, rootDir }) {
14
24
  let importMapFilePath = undefined;
15
25
  if (importMapFile?.length) {
16
26
  if (!await pathOrFileExists(importMapFile)) {
@@ -24,24 +34,20 @@ async function pathOrFileExists(path) {
24
34
  }
25
35
  importMapFilePath = importMapFile;
26
36
  } else {
27
- const appLocation = path.resolve(rootDir, `app/(payload)${adminRoute}/`);
28
- const srcAppLocation = path.resolve(rootDir, `src/app/(payload)${adminRoute}/`);
29
- if (appLocation && await pathOrFileExists(appLocation)) {
30
- importMapFilePath = path.resolve(appLocation, 'importMap.js');
31
- if (!await pathOrFileExists(importMapFilePath)) {
32
- await fs.writeFile(importMapFilePath, '', {
33
- flag: 'wx'
34
- });
37
+ const directories = candidateDirectories ?? defaultCandidateDirectories(rootDir, adminRoute);
38
+ for (const dir of directories){
39
+ if (await pathOrFileExists(dir)) {
40
+ importMapFilePath = path.resolve(dir, 'importMap.js');
41
+ if (!await pathOrFileExists(importMapFilePath)) {
42
+ await fs.writeFile(importMapFilePath, '', {
43
+ flag: 'wx'
44
+ });
45
+ }
46
+ break;
35
47
  }
36
- } else if (srcAppLocation && await pathOrFileExists(srcAppLocation)) {
37
- importMapFilePath = path.resolve(srcAppLocation, 'importMap.js');
38
- if (!await pathOrFileExists(importMapFilePath)) {
39
- await fs.writeFile(importMapFilePath, '', {
40
- flag: 'wx'
41
- });
42
- }
43
- } else {
44
- return new Error(`Could not find Payload import map folder. Looked in ${appLocation} and ${srcAppLocation}`);
48
+ }
49
+ if (!importMapFilePath) {
50
+ return new Error(`Could not find Payload import map folder. Looked in ${directories.join(' and ')}`);
45
51
  }
46
52
  }
47
53
  return importMapFilePath;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/bin/generateImportMap/utilities/resolveImportMapFilePath.ts"],"sourcesContent":["import fs from 'fs/promises'\nimport path from 'path'\n\nasync function pathOrFileExists(path: string): Promise<boolean> {\n try {\n await fs.access(path)\n return true\n } catch {\n return false\n }\n}\n\n/**\n * Returns the path to the import map file. If the import map file is not found, it throws an error.\n */\nexport async function resolveImportMapFilePath({\n adminRoute = '/admin',\n importMapFile,\n rootDir,\n}: {\n adminRoute?: string\n importMapFile?: string\n rootDir: string\n}): Promise<Error | string> {\n let importMapFilePath: string | undefined = undefined\n\n if (importMapFile?.length) {\n if (!(await pathOrFileExists(importMapFile))) {\n try {\n await fs.writeFile(importMapFile, '', { flag: 'wx' })\n } catch (err) {\n return new Error(\n `Could not find the import map file at ${importMapFile}${err instanceof Error && err?.message ? `: ${err.message}` : ''}`,\n )\n }\n }\n importMapFilePath = importMapFile\n } else {\n const appLocation = path.resolve(rootDir, `app/(payload)${adminRoute}/`)\n const srcAppLocation = path.resolve(rootDir, `src/app/(payload)${adminRoute}/`)\n\n if (appLocation && (await pathOrFileExists(appLocation))) {\n importMapFilePath = path.resolve(appLocation, 'importMap.js')\n if (!(await pathOrFileExists(importMapFilePath))) {\n await fs.writeFile(importMapFilePath, '', { flag: 'wx' })\n }\n } else if (srcAppLocation && (await pathOrFileExists(srcAppLocation))) {\n importMapFilePath = path.resolve(srcAppLocation, 'importMap.js')\n if (!(await pathOrFileExists(importMapFilePath))) {\n await fs.writeFile(importMapFilePath, '', { flag: 'wx' })\n }\n } else {\n return new Error(\n `Could not find Payload import map folder. Looked in ${appLocation} and ${srcAppLocation}`,\n )\n }\n }\n return importMapFilePath\n}\n"],"names":["fs","path","pathOrFileExists","access","resolveImportMapFilePath","adminRoute","importMapFile","rootDir","importMapFilePath","undefined","length","writeFile","flag","err","Error","message","appLocation","resolve","srcAppLocation"],"mappings":"AAAA,OAAOA,QAAQ,cAAa;AAC5B,OAAOC,UAAU,OAAM;AAEvB,eAAeC,iBAAiBD,IAAY;IAC1C,IAAI;QACF,MAAMD,GAAGG,MAAM,CAACF;QAChB,OAAO;IACT,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEA;;CAEC,GACD,OAAO,eAAeG,yBAAyB,EAC7CC,aAAa,QAAQ,EACrBC,aAAa,EACbC,OAAO,EAKR;IACC,IAAIC,oBAAwCC;IAE5C,IAAIH,eAAeI,QAAQ;QACzB,IAAI,CAAE,MAAMR,iBAAiBI,gBAAiB;YAC5C,IAAI;gBACF,MAAMN,GAAGW,SAAS,CAACL,eAAe,IAAI;oBAAEM,MAAM;gBAAK;YACrD,EAAE,OAAOC,KAAK;gBACZ,OAAO,IAAIC,MACT,CAAC,sCAAsC,EAAER,gBAAgBO,eAAeC,SAASD,KAAKE,UAAU,CAAC,EAAE,EAAEF,IAAIE,OAAO,EAAE,GAAG,IAAI;YAE7H;QACF;QACAP,oBAAoBF;IACtB,OAAO;QACL,MAAMU,cAAcf,KAAKgB,OAAO,CAACV,SAAS,CAAC,aAAa,EAAEF,WAAW,CAAC,CAAC;QACvE,MAAMa,iBAAiBjB,KAAKgB,OAAO,CAACV,SAAS,CAAC,iBAAiB,EAAEF,WAAW,CAAC,CAAC;QAE9E,IAAIW,eAAgB,MAAMd,iBAAiBc,cAAe;YACxDR,oBAAoBP,KAAKgB,OAAO,CAACD,aAAa;YAC9C,IAAI,CAAE,MAAMd,iBAAiBM,oBAAqB;gBAChD,MAAMR,GAAGW,SAAS,CAACH,mBAAmB,IAAI;oBAAEI,MAAM;gBAAK;YACzD;QACF,OAAO,IAAIM,kBAAmB,MAAMhB,iBAAiBgB,iBAAkB;YACrEV,oBAAoBP,KAAKgB,OAAO,CAACC,gBAAgB;YACjD,IAAI,CAAE,MAAMhB,iBAAiBM,oBAAqB;gBAChD,MAAMR,GAAGW,SAAS,CAACH,mBAAmB,IAAI;oBAAEI,MAAM;gBAAK;YACzD;QACF,OAAO;YACL,OAAO,IAAIE,MACT,CAAC,oDAAoD,EAAEE,YAAY,KAAK,EAAEE,gBAAgB;QAE9F;IACF;IACA,OAAOV;AACT"}
1
+ {"version":3,"sources":["../../../../src/bin/generateImportMap/utilities/resolveImportMapFilePath.ts"],"sourcesContent":["import fs from 'fs/promises'\nimport path from 'path'\n\nasync function pathOrFileExists(path: string): Promise<boolean> {\n try {\n await fs.access(path)\n return true\n } catch {\n return false\n }\n}\n\n/**\n * Default directory patterns for Next.js import map resolution.\n * Other framework adapters can provide their own patterns via `candidateDirectories`.\n */\nconst defaultCandidateDirectories = (rootDir: string, adminRoute: string): string[] => [\n path.resolve(rootDir, `app/(payload)${adminRoute}/`),\n path.resolve(rootDir, `src/app/(payload)${adminRoute}/`),\n]\n\n/**\n * Returns the path to the import map file. If the import map file is not found, it throws an error.\n *\n * @param candidateDirectories - Optional array of directory paths to search for the import map.\n * Defaults to Next.js app directory convention. Framework adapters can provide their own.\n */\nexport async function resolveImportMapFilePath({\n adminRoute = '/admin',\n candidateDirectories,\n importMapFile,\n rootDir,\n}: {\n adminRoute?: string\n candidateDirectories?: string[]\n importMapFile?: string\n rootDir: string\n}): Promise<Error | string> {\n let importMapFilePath: string | undefined = undefined\n\n if (importMapFile?.length) {\n if (!(await pathOrFileExists(importMapFile))) {\n try {\n await fs.writeFile(importMapFile, '', { flag: 'wx' })\n } catch (err) {\n return new Error(\n `Could not find the import map file at ${importMapFile}${err instanceof Error && err?.message ? `: ${err.message}` : ''}`,\n )\n }\n }\n importMapFilePath = importMapFile\n } else {\n const directories = candidateDirectories ?? defaultCandidateDirectories(rootDir, adminRoute)\n\n for (const dir of directories) {\n if (await pathOrFileExists(dir)) {\n importMapFilePath = path.resolve(dir, 'importMap.js')\n if (!(await pathOrFileExists(importMapFilePath))) {\n await fs.writeFile(importMapFilePath, '', { flag: 'wx' })\n }\n break\n }\n }\n\n if (!importMapFilePath) {\n return new Error(\n `Could not find Payload import map folder. Looked in ${directories.join(' and ')}`,\n )\n }\n }\n return importMapFilePath\n}\n"],"names":["fs","path","pathOrFileExists","access","defaultCandidateDirectories","rootDir","adminRoute","resolve","resolveImportMapFilePath","candidateDirectories","importMapFile","importMapFilePath","undefined","length","writeFile","flag","err","Error","message","directories","dir","join"],"mappings":"AAAA,OAAOA,QAAQ,cAAa;AAC5B,OAAOC,UAAU,OAAM;AAEvB,eAAeC,iBAAiBD,IAAY;IAC1C,IAAI;QACF,MAAMD,GAAGG,MAAM,CAACF;QAChB,OAAO;IACT,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEA;;;CAGC,GACD,MAAMG,8BAA8B,CAACC,SAAiBC,aAAiC;QACrFL,KAAKM,OAAO,CAACF,SAAS,CAAC,aAAa,EAAEC,WAAW,CAAC,CAAC;QACnDL,KAAKM,OAAO,CAACF,SAAS,CAAC,iBAAiB,EAAEC,WAAW,CAAC,CAAC;KACxD;AAED;;;;;CAKC,GACD,OAAO,eAAeE,yBAAyB,EAC7CF,aAAa,QAAQ,EACrBG,oBAAoB,EACpBC,aAAa,EACbL,OAAO,EAMR;IACC,IAAIM,oBAAwCC;IAE5C,IAAIF,eAAeG,QAAQ;QACzB,IAAI,CAAE,MAAMX,iBAAiBQ,gBAAiB;YAC5C,IAAI;gBACF,MAAMV,GAAGc,SAAS,CAACJ,eAAe,IAAI;oBAAEK,MAAM;gBAAK;YACrD,EAAE,OAAOC,KAAK;gBACZ,OAAO,IAAIC,MACT,CAAC,sCAAsC,EAAEP,gBAAgBM,eAAeC,SAASD,KAAKE,UAAU,CAAC,EAAE,EAAEF,IAAIE,OAAO,EAAE,GAAG,IAAI;YAE7H;QACF;QACAP,oBAAoBD;IACtB,OAAO;QACL,MAAMS,cAAcV,wBAAwBL,4BAA4BC,SAASC;QAEjF,KAAK,MAAMc,OAAOD,YAAa;YAC7B,IAAI,MAAMjB,iBAAiBkB,MAAM;gBAC/BT,oBAAoBV,KAAKM,OAAO,CAACa,KAAK;gBACtC,IAAI,CAAE,MAAMlB,iBAAiBS,oBAAqB;oBAChD,MAAMX,GAAGc,SAAS,CAACH,mBAAmB,IAAI;wBAAEI,MAAM;oBAAK;gBACzD;gBACA;YACF;QACF;QAEA,IAAI,CAACJ,mBAAmB;YACtB,OAAO,IAAIM,MACT,CAAC,oDAAoD,EAAEE,YAAYE,IAAI,CAAC,UAAU;QAEtF;IACF;IACA,OAAOV;AACT"}
@@ -1,5 +1,6 @@
1
1
  import type { SanitizedConfig } from '../config/types.js';
2
2
  export declare function generateTypes(config: SanitizedConfig, options?: {
3
- log: boolean;
4
- }): Promise<void>;
3
+ log?: boolean;
4
+ returnString?: boolean;
5
+ }): Promise<string | void>;
5
6
  //# sourceMappingURL=generateTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateTypes.d.ts","sourceRoot":"","sources":["../../src/bin/generateTypes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAMzD,wBAAsB,aAAa,CACjC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAkEf"}
1
+ {"version":3,"file":"generateTypes.d.ts","sourceRoot":"","sources":["../../src/bin/generateTypes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAMzD,wBAAsB,aAAa,CACjC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAClD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgFxB"}
@@ -18,7 +18,7 @@ export async function generateTypes(config, options) {
18
18
  context: 'api',
19
19
  language
20
20
  });
21
- const jsonSchema = configToJSONSchema(config, config.db.defaultIDType, i18n);
21
+ const { jsonSchema, typeStringDefinitions } = configToJSONSchema(config, config.db.defaultIDType, i18n);
22
22
  const declare = `declare module 'payload' {\n export interface GeneratedTypes extends Config {}\n}`;
23
23
  const declareWithTSIgnoreError = `declare module 'payload' {\n // @ts-ignore \n export interface GeneratedTypes extends Config {}\n}`;
24
24
  let compiled = await compile(jsonSchema, 'Config', {
@@ -36,6 +36,12 @@ export async function generateTypes(config, options) {
36
36
  compiled = addSelectGenericsToGeneratedTypes({
37
37
  compiledGeneratedTypes: compiled
38
38
  });
39
+ if (typeStringDefinitions.size > 0) {
40
+ const block = [
41
+ ...typeStringDefinitions
42
+ ].join('\n\n');
43
+ compiled = `${compiled.trimEnd()}\n\n${block}\n`;
44
+ }
39
45
  if (config.typescript.postProcess?.length) {
40
46
  for (const fn of config.typescript.postProcess){
41
47
  compiled = fn({
@@ -51,6 +57,10 @@ export async function generateTypes(config, options) {
51
57
  compiled += `\n\n${declare}`;
52
58
  }
53
59
  }
60
+ // Return the generated types instead of writing them to disk.
61
+ if (options?.returnString) {
62
+ return compiled;
63
+ }
54
64
  // Diff the compiled types against the existing types file
55
65
  try {
56
66
  const existingTypes = await fs.readFile(outputFile, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bin/generateTypes.ts"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\n\nimport { initI18n } from '@payloadcms/translations'\nimport fs from 'fs/promises'\nimport { compile } from 'json-schema-to-typescript'\n\nimport type { SanitizedConfig } from '../config/types.js'\n\nimport { addSelectGenericsToGeneratedTypes } from '../utilities/addSelectGenericsToGeneretedTypes.js'\nimport { configToJSONSchema } from '../utilities/configToJSONSchema.js'\nimport { getLogger } from '../utilities/logger.js'\n\nexport async function generateTypes(\n config: SanitizedConfig,\n options?: { log: boolean },\n): Promise<void> {\n const logger = getLogger('payload', 'sync')\n const outputFile = process.env.PAYLOAD_TS_OUTPUT_PATH || config.typescript.outputFile\n\n const shouldLog = options?.log ?? true\n\n if (shouldLog) {\n logger.info('Compiling TS types for Collections and Globals...')\n }\n\n const languages = Object.keys(config.i18n.supportedLanguages) as AcceptedLanguages[]\n\n const language = languages.includes('en') ? 'en' : config.i18n.fallbackLanguage\n\n const i18n = await initI18n({ config: config.i18n, context: 'api', language })\n\n const jsonSchema = configToJSONSchema(config, config.db.defaultIDType, i18n)\n\n const declare = `declare module 'payload' {\\n export interface GeneratedTypes extends Config {}\\n}`\n const declareWithTSIgnoreError = `declare module 'payload' {\\n // @ts-ignore \\n export interface GeneratedTypes extends Config {}\\n}`\n\n let compiled = await compile(jsonSchema, 'Config', {\n bannerComment:\n '/* tslint:disable */\\n/* eslint-disable */\\n/**\\n* This file was automatically generated by Payload.\\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\\n* and re-run `payload generate:types` to regenerate this file.\\n*/',\n style: {\n singleQuote: true,\n },\n // Generates code for $defs that aren't referenced by the schema. Reason:\n // If a field defines an interfaceName, it should be included in the generated types\n // even if it's not used by another type. Reason: the user might want to use it in their own code.\n unreachableDefinitions: true,\n // Allow resolving external file references in $ref pointers\n cwd: process.cwd(),\n })\n\n compiled = addSelectGenericsToGeneratedTypes({ compiledGeneratedTypes: compiled })\n\n if (config.typescript.postProcess?.length) {\n for (const fn of config.typescript.postProcess) {\n compiled = fn({ compiledTypes: compiled, config })\n }\n }\n\n if (config.typescript.declare !== false) {\n if (config.typescript.declare?.ignoreTSError) {\n compiled += `\\n\\n${declareWithTSIgnoreError}`\n } else {\n compiled += `\\n\\n${declare}`\n }\n }\n\n // Diff the compiled types against the existing types file\n try {\n const existingTypes = await fs.readFile(outputFile, 'utf-8')\n\n if (compiled === existingTypes) {\n return\n }\n } catch (_) {\n // swallow err\n }\n\n await fs.writeFile(outputFile, compiled)\n if (shouldLog) {\n logger.info(`Types written to ${outputFile}`)\n }\n}\n"],"names":["initI18n","fs","compile","addSelectGenericsToGeneratedTypes","configToJSONSchema","getLogger","generateTypes","config","options","logger","outputFile","process","env","PAYLOAD_TS_OUTPUT_PATH","typescript","shouldLog","log","info","languages","Object","keys","i18n","supportedLanguages","language","includes","fallbackLanguage","context","jsonSchema","db","defaultIDType","declare","declareWithTSIgnoreError","compiled","bannerComment","style","singleQuote","unreachableDefinitions","cwd","compiledGeneratedTypes","postProcess","length","fn","compiledTypes","ignoreTSError","existingTypes","readFile","_","writeFile"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,OAAOC,QAAQ,cAAa;AAC5B,SAASC,OAAO,QAAQ,4BAA2B;AAInD,SAASC,iCAAiC,QAAQ,oDAAmD;AACrG,SAASC,kBAAkB,QAAQ,qCAAoC;AACvE,SAASC,SAAS,QAAQ,yBAAwB;AAElD,OAAO,eAAeC,cACpBC,MAAuB,EACvBC,OAA0B;IAE1B,MAAMC,SAASJ,UAAU,WAAW;IACpC,MAAMK,aAAaC,QAAQC,GAAG,CAACC,sBAAsB,IAAIN,OAAOO,UAAU,CAACJ,UAAU;IAErF,MAAMK,YAAYP,SAASQ,OAAO;IAElC,IAAID,WAAW;QACbN,OAAOQ,IAAI,CAAC;IACd;IAEA,MAAMC,YAAYC,OAAOC,IAAI,CAACb,OAAOc,IAAI,CAACC,kBAAkB;IAE5D,MAAMC,WAAWL,UAAUM,QAAQ,CAAC,QAAQ,OAAOjB,OAAOc,IAAI,CAACI,gBAAgB;IAE/E,MAAMJ,OAAO,MAAMrB,SAAS;QAAEO,QAAQA,OAAOc,IAAI;QAAEK,SAAS;QAAOH;IAAS;IAE5E,MAAMI,aAAavB,mBAAmBG,QAAQA,OAAOqB,EAAE,CAACC,aAAa,EAAER;IAEvE,MAAMS,UAAU,CAAC,kFAAkF,CAAC;IACpG,MAAMC,2BAA2B,CAAC,oGAAoG,CAAC;IAEvI,IAAIC,WAAW,MAAM9B,QAAQyB,YAAY,UAAU;QACjDM,eACE;QACFC,OAAO;YACLC,aAAa;QACf;QACA,yEAAyE;QACzE,oFAAoF;QACpF,kGAAkG;QAClGC,wBAAwB;QACxB,4DAA4D;QAC5DC,KAAK1B,QAAQ0B,GAAG;IAClB;IAEAL,WAAW7B,kCAAkC;QAAEmC,wBAAwBN;IAAS;IAEhF,IAAIzB,OAAOO,UAAU,CAACyB,WAAW,EAAEC,QAAQ;QACzC,KAAK,MAAMC,MAAMlC,OAAOO,UAAU,CAACyB,WAAW,CAAE;YAC9CP,WAAWS,GAAG;gBAAEC,eAAeV;gBAAUzB;YAAO;QAClD;IACF;IAEA,IAAIA,OAAOO,UAAU,CAACgB,OAAO,KAAK,OAAO;QACvC,IAAIvB,OAAOO,UAAU,CAACgB,OAAO,EAAEa,eAAe;YAC5CX,YAAY,CAAC,IAAI,EAAED,0BAA0B;QAC/C,OAAO;YACLC,YAAY,CAAC,IAAI,EAAEF,SAAS;QAC9B;IACF;IAEA,0DAA0D;IAC1D,IAAI;QACF,MAAMc,gBAAgB,MAAM3C,GAAG4C,QAAQ,CAACnC,YAAY;QAEpD,IAAIsB,aAAaY,eAAe;YAC9B;QACF;IACF,EAAE,OAAOE,GAAG;IACV,cAAc;IAChB;IAEA,MAAM7C,GAAG8C,SAAS,CAACrC,YAAYsB;IAC/B,IAAIjB,WAAW;QACbN,OAAOQ,IAAI,CAAC,CAAC,iBAAiB,EAAEP,YAAY;IAC9C;AACF"}
1
+ {"version":3,"sources":["../../src/bin/generateTypes.ts"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\n\nimport { initI18n } from '@payloadcms/translations'\nimport fs from 'fs/promises'\nimport { compile } from 'json-schema-to-typescript'\n\nimport type { SanitizedConfig } from '../config/types.js'\n\nimport { addSelectGenericsToGeneratedTypes } from '../utilities/addSelectGenericsToGeneretedTypes.js'\nimport { configToJSONSchema } from '../utilities/configToJSONSchema.js'\nimport { getLogger } from '../utilities/logger.js'\n\nexport async function generateTypes(\n config: SanitizedConfig,\n options?: { log?: boolean; returnString?: boolean },\n): Promise<string | void> {\n const logger = getLogger('payload', 'sync')\n const outputFile = process.env.PAYLOAD_TS_OUTPUT_PATH || config.typescript.outputFile\n\n const shouldLog = options?.log ?? true\n\n if (shouldLog) {\n logger.info('Compiling TS types for Collections and Globals...')\n }\n\n const languages = Object.keys(config.i18n.supportedLanguages) as AcceptedLanguages[]\n\n const language = languages.includes('en') ? 'en' : config.i18n.fallbackLanguage\n\n const i18n = await initI18n({ config: config.i18n, context: 'api', language })\n\n const { jsonSchema, typeStringDefinitions } = configToJSONSchema(\n config,\n config.db.defaultIDType,\n i18n,\n )\n\n const declare = `declare module 'payload' {\\n export interface GeneratedTypes extends Config {}\\n}`\n const declareWithTSIgnoreError = `declare module 'payload' {\\n // @ts-ignore \\n export interface GeneratedTypes extends Config {}\\n}`\n\n let compiled = await compile(jsonSchema, 'Config', {\n bannerComment:\n '/* tslint:disable */\\n/* eslint-disable */\\n/**\\n* This file was automatically generated by Payload.\\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\\n* and re-run `payload generate:types` to regenerate this file.\\n*/',\n style: {\n singleQuote: true,\n },\n // Generates code for $defs that aren't referenced by the schema. Reason:\n // If a field defines an interfaceName, it should be included in the generated types\n // even if it's not used by another type. Reason: the user might want to use it in their own code.\n unreachableDefinitions: true,\n // Allow resolving external file references in $ref pointers\n cwd: process.cwd(),\n })\n\n compiled = addSelectGenericsToGeneratedTypes({ compiledGeneratedTypes: compiled })\n\n if (typeStringDefinitions.size > 0) {\n const block = [...typeStringDefinitions].join('\\n\\n')\n compiled = `${compiled.trimEnd()}\\n\\n${block}\\n`\n }\n\n if (config.typescript.postProcess?.length) {\n for (const fn of config.typescript.postProcess) {\n compiled = fn({ compiledTypes: compiled, config })\n }\n }\n\n if (config.typescript.declare !== false) {\n if (config.typescript.declare?.ignoreTSError) {\n compiled += `\\n\\n${declareWithTSIgnoreError}`\n } else {\n compiled += `\\n\\n${declare}`\n }\n }\n\n // Return the generated types instead of writing them to disk.\n if (options?.returnString) {\n return compiled\n }\n\n // Diff the compiled types against the existing types file\n try {\n const existingTypes = await fs.readFile(outputFile, 'utf-8')\n\n if (compiled === existingTypes) {\n return\n }\n } catch (_) {\n // swallow err\n }\n\n await fs.writeFile(outputFile, compiled)\n if (shouldLog) {\n logger.info(`Types written to ${outputFile}`)\n }\n}\n"],"names":["initI18n","fs","compile","addSelectGenericsToGeneratedTypes","configToJSONSchema","getLogger","generateTypes","config","options","logger","outputFile","process","env","PAYLOAD_TS_OUTPUT_PATH","typescript","shouldLog","log","info","languages","Object","keys","i18n","supportedLanguages","language","includes","fallbackLanguage","context","jsonSchema","typeStringDefinitions","db","defaultIDType","declare","declareWithTSIgnoreError","compiled","bannerComment","style","singleQuote","unreachableDefinitions","cwd","compiledGeneratedTypes","size","block","join","trimEnd","postProcess","length","fn","compiledTypes","ignoreTSError","returnString","existingTypes","readFile","_","writeFile"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,OAAOC,QAAQ,cAAa;AAC5B,SAASC,OAAO,QAAQ,4BAA2B;AAInD,SAASC,iCAAiC,QAAQ,oDAAmD;AACrG,SAASC,kBAAkB,QAAQ,qCAAoC;AACvE,SAASC,SAAS,QAAQ,yBAAwB;AAElD,OAAO,eAAeC,cACpBC,MAAuB,EACvBC,OAAmD;IAEnD,MAAMC,SAASJ,UAAU,WAAW;IACpC,MAAMK,aAAaC,QAAQC,GAAG,CAACC,sBAAsB,IAAIN,OAAOO,UAAU,CAACJ,UAAU;IAErF,MAAMK,YAAYP,SAASQ,OAAO;IAElC,IAAID,WAAW;QACbN,OAAOQ,IAAI,CAAC;IACd;IAEA,MAAMC,YAAYC,OAAOC,IAAI,CAACb,OAAOc,IAAI,CAACC,kBAAkB;IAE5D,MAAMC,WAAWL,UAAUM,QAAQ,CAAC,QAAQ,OAAOjB,OAAOc,IAAI,CAACI,gBAAgB;IAE/E,MAAMJ,OAAO,MAAMrB,SAAS;QAAEO,QAAQA,OAAOc,IAAI;QAAEK,SAAS;QAAOH;IAAS;IAE5E,MAAM,EAAEI,UAAU,EAAEC,qBAAqB,EAAE,GAAGxB,mBAC5CG,QACAA,OAAOsB,EAAE,CAACC,aAAa,EACvBT;IAGF,MAAMU,UAAU,CAAC,kFAAkF,CAAC;IACpG,MAAMC,2BAA2B,CAAC,oGAAoG,CAAC;IAEvI,IAAIC,WAAW,MAAM/B,QAAQyB,YAAY,UAAU;QACjDO,eACE;QACFC,OAAO;YACLC,aAAa;QACf;QACA,yEAAyE;QACzE,oFAAoF;QACpF,kGAAkG;QAClGC,wBAAwB;QACxB,4DAA4D;QAC5DC,KAAK3B,QAAQ2B,GAAG;IAClB;IAEAL,WAAW9B,kCAAkC;QAAEoC,wBAAwBN;IAAS;IAEhF,IAAIL,sBAAsBY,IAAI,GAAG,GAAG;QAClC,MAAMC,QAAQ;eAAIb;SAAsB,CAACc,IAAI,CAAC;QAC9CT,WAAW,GAAGA,SAASU,OAAO,GAAG,IAAI,EAAEF,MAAM,EAAE,CAAC;IAClD;IAEA,IAAIlC,OAAOO,UAAU,CAAC8B,WAAW,EAAEC,QAAQ;QACzC,KAAK,MAAMC,MAAMvC,OAAOO,UAAU,CAAC8B,WAAW,CAAE;YAC9CX,WAAWa,GAAG;gBAAEC,eAAed;gBAAU1B;YAAO;QAClD;IACF;IAEA,IAAIA,OAAOO,UAAU,CAACiB,OAAO,KAAK,OAAO;QACvC,IAAIxB,OAAOO,UAAU,CAACiB,OAAO,EAAEiB,eAAe;YAC5Cf,YAAY,CAAC,IAAI,EAAED,0BAA0B;QAC/C,OAAO;YACLC,YAAY,CAAC,IAAI,EAAEF,SAAS;QAC9B;IACF;IAEA,8DAA8D;IAC9D,IAAIvB,SAASyC,cAAc;QACzB,OAAOhB;IACT;IAEA,0DAA0D;IAC1D,IAAI;QACF,MAAMiB,gBAAgB,MAAMjD,GAAGkD,QAAQ,CAACzC,YAAY;QAEpD,IAAIuB,aAAaiB,eAAe;YAC9B;QACF;IACF,EAAE,OAAOE,GAAG;IACV,cAAc;IAChB;IAEA,MAAMnD,GAAGoD,SAAS,CAAC3C,YAAYuB;IAC/B,IAAIlB,WAAW;QACbN,OAAOQ,IAAI,CAAC,CAAC,iBAAiB,EAAEP,YAAY;IAC9C;AACF"}
@@ -1,5 +1,7 @@
1
1
  /**
2
- * Try to find user's env files and load it. Uses the same algorithm next.js uses to parse env files, meaning this also supports .env.local, .env.development, .env.production, etc.
2
+ * Try to find user's env files and load them.
3
+ * Supports .env, .env.local, .env.development, .env.production, etc.
4
+ * (same file priority as Next.js)
3
5
  */
4
6
  export declare function loadEnv(path?: string): void;
5
7
  //# sourceMappingURL=loadEnv.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadEnv.d.ts","sourceRoot":"","sources":["../../src/bin/loadEnv.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,QAsBpC"}
1
+ {"version":3,"file":"loadEnv.d.ts","sourceRoot":"","sources":["../../src/bin/loadEnv.ts"],"names":[],"mappings":"AAoCA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,QAqBpC"}
@@ -1,22 +1,52 @@
1
- import nextEnvImport from '@next/env';
1
+ import dotenv from 'dotenv';
2
+ import dotenvExpand from 'dotenv-expand';
3
+ import { existsSync } from 'fs';
4
+ import nodePath from 'path';
2
5
  import { findUpSync } from '../utilities/findUp.js';
3
- const { loadEnvConfig } = nextEnvImport;
4
6
  /**
5
- * Try to find user's env files and load it. Uses the same algorithm next.js uses to parse env files, meaning this also supports .env.local, .env.development, .env.production, etc.
7
+ * Loads env files in priority order (same as Next.js convention):
8
+ * .env.${NODE_ENV}.local, .env.local (not for test), .env.${NODE_ENV}, .env
9
+ */ function loadEnvFiles(dir, isDev) {
10
+ const nodeEnv = process.env.NODE_ENV || (isDev ? 'development' : 'production');
11
+ const envFiles = [
12
+ `.env.${nodeEnv}.local`,
13
+ ...nodeEnv !== 'test' ? [
14
+ '.env.local'
15
+ ] : [],
16
+ `.env.${nodeEnv}`,
17
+ '.env'
18
+ ];
19
+ let loaded = false;
20
+ for (const envFile of envFiles){
21
+ const filePath = nodePath.resolve(dir, envFile);
22
+ if (existsSync(filePath)) {
23
+ const result = dotenv.config({
24
+ path: filePath
25
+ });
26
+ if (result.parsed) {
27
+ dotenvExpand.expand(result);
28
+ loaded = true;
29
+ }
30
+ }
31
+ }
32
+ return loaded;
33
+ }
34
+ /**
35
+ * Try to find user's env files and load them.
36
+ * Supports .env, .env.local, .env.development, .env.production, etc.
37
+ * (same file priority as Next.js)
6
38
  */ export function loadEnv(path) {
39
+ const isDev = process.env.NODE_ENV !== 'production';
7
40
  if (path?.length) {
8
- loadEnvConfig(path, true);
41
+ loadEnvFiles(path, isDev);
9
42
  return;
10
43
  }
11
- const dev = process.env.NODE_ENV !== 'production';
12
- const { loadedEnvFiles } = loadEnvConfig(process.cwd(), dev);
13
- if (!loadedEnvFiles?.length) {
14
- // use findUp to find the env file. So, run loadEnvConfig for every directory upwards
44
+ const loaded = loadEnvFiles(process.cwd(), isDev);
45
+ if (!loaded) {
15
46
  findUpSync({
16
47
  // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
17
48
  condition: (dir)=>{
18
- const { loadedEnvFiles } = loadEnvConfig(dir, true);
19
- if (loadedEnvFiles?.length) {
49
+ if (loadEnvFiles(dir, isDev)) {
20
50
  return true;
21
51
  }
22
52
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bin/loadEnv.ts"],"sourcesContent":["import nextEnvImport from '@next/env'\n\nimport { findUpSync } from '../utilities/findUp.js'\nconst { loadEnvConfig } = nextEnvImport\n\n/**\n * Try to find user's env files and load it. Uses the same algorithm next.js uses to parse env files, meaning this also supports .env.local, .env.development, .env.production, etc.\n */\nexport function loadEnv(path?: string) {\n if (path?.length) {\n loadEnvConfig(path, true)\n return\n }\n\n const dev = process.env.NODE_ENV !== 'production'\n const { loadedEnvFiles } = loadEnvConfig(process.cwd(), dev)\n\n if (!loadedEnvFiles?.length) {\n // use findUp to find the env file. So, run loadEnvConfig for every directory upwards\n findUpSync({\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n condition: (dir) => {\n const { loadedEnvFiles } = loadEnvConfig(dir, true)\n if (loadedEnvFiles?.length) {\n return true\n }\n },\n dir: process.cwd(),\n })\n }\n}\n"],"names":["nextEnvImport","findUpSync","loadEnvConfig","loadEnv","path","length","dev","process","env","NODE_ENV","loadedEnvFiles","cwd","condition","dir"],"mappings":"AAAA,OAAOA,mBAAmB,YAAW;AAErC,SAASC,UAAU,QAAQ,yBAAwB;AACnD,MAAM,EAAEC,aAAa,EAAE,GAAGF;AAE1B;;CAEC,GACD,OAAO,SAASG,QAAQC,IAAa;IACnC,IAAIA,MAAMC,QAAQ;QAChBH,cAAcE,MAAM;QACpB;IACF;IAEA,MAAME,MAAMC,QAAQC,GAAG,CAACC,QAAQ,KAAK;IACrC,MAAM,EAAEC,cAAc,EAAE,GAAGR,cAAcK,QAAQI,GAAG,IAAIL;IAExD,IAAI,CAACI,gBAAgBL,QAAQ;QAC3B,qFAAqF;QACrFJ,WAAW;YACT,oFAAoF;YACpFW,WAAW,CAACC;gBACV,MAAM,EAAEH,cAAc,EAAE,GAAGR,cAAcW,KAAK;gBAC9C,IAAIH,gBAAgBL,QAAQ;oBAC1B,OAAO;gBACT;YACF;YACAQ,KAAKN,QAAQI,GAAG;QAClB;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/bin/loadEnv.ts"],"sourcesContent":["import dotenv from 'dotenv'\nimport dotenvExpand from 'dotenv-expand'\nimport { existsSync } from 'fs'\nimport nodePath from 'path'\n\nimport { findUpSync } from '../utilities/findUp.js'\n\n/**\n * Loads env files in priority order (same as Next.js convention):\n * .env.${NODE_ENV}.local, .env.local (not for test), .env.${NODE_ENV}, .env\n */\nfunction loadEnvFiles(dir: string, isDev: boolean): boolean {\n const nodeEnv = process.env.NODE_ENV || (isDev ? 'development' : 'production')\n const envFiles = [\n `.env.${nodeEnv}.local`,\n ...(nodeEnv !== 'test' ? ['.env.local'] : []),\n `.env.${nodeEnv}`,\n '.env',\n ]\n\n let loaded = false\n\n for (const envFile of envFiles) {\n const filePath = nodePath.resolve(dir, envFile)\n if (existsSync(filePath)) {\n const result = dotenv.config({ path: filePath })\n if (result.parsed) {\n dotenvExpand.expand(result)\n loaded = true\n }\n }\n }\n\n return loaded\n}\n\n/**\n * Try to find user's env files and load them.\n * Supports .env, .env.local, .env.development, .env.production, etc.\n * (same file priority as Next.js)\n */\nexport function loadEnv(path?: string) {\n const isDev = process.env.NODE_ENV !== 'production'\n\n if (path?.length) {\n loadEnvFiles(path, isDev)\n return\n }\n\n const loaded = loadEnvFiles(process.cwd(), isDev)\n\n if (!loaded) {\n findUpSync({\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n condition: (dir) => {\n if (loadEnvFiles(dir, isDev)) {\n return true\n }\n },\n dir: process.cwd(),\n })\n }\n}\n"],"names":["dotenv","dotenvExpand","existsSync","nodePath","findUpSync","loadEnvFiles","dir","isDev","nodeEnv","process","env","NODE_ENV","envFiles","loaded","envFile","filePath","resolve","result","config","path","parsed","expand","loadEnv","length","cwd","condition"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAC3B,OAAOC,kBAAkB,gBAAe;AACxC,SAASC,UAAU,QAAQ,KAAI;AAC/B,OAAOC,cAAc,OAAM;AAE3B,SAASC,UAAU,QAAQ,yBAAwB;AAEnD;;;CAGC,GACD,SAASC,aAAaC,GAAW,EAAEC,KAAc;IAC/C,MAAMC,UAAUC,QAAQC,GAAG,CAACC,QAAQ,IAAKJ,CAAAA,QAAQ,gBAAgB,YAAW;IAC5E,MAAMK,WAAW;QACf,CAAC,KAAK,EAAEJ,QAAQ,MAAM,CAAC;WACnBA,YAAY,SAAS;YAAC;SAAa,GAAG,EAAE;QAC5C,CAAC,KAAK,EAAEA,SAAS;QACjB;KACD;IAED,IAAIK,SAAS;IAEb,KAAK,MAAMC,WAAWF,SAAU;QAC9B,MAAMG,WAAWZ,SAASa,OAAO,CAACV,KAAKQ;QACvC,IAAIZ,WAAWa,WAAW;YACxB,MAAME,SAASjB,OAAOkB,MAAM,CAAC;gBAAEC,MAAMJ;YAAS;YAC9C,IAAIE,OAAOG,MAAM,EAAE;gBACjBnB,aAAaoB,MAAM,CAACJ;gBACpBJ,SAAS;YACX;QACF;IACF;IAEA,OAAOA;AACT;AAEA;;;;CAIC,GACD,OAAO,SAASS,QAAQH,IAAa;IACnC,MAAMZ,QAAQE,QAAQC,GAAG,CAACC,QAAQ,KAAK;IAEvC,IAAIQ,MAAMI,QAAQ;QAChBlB,aAAac,MAAMZ;QACnB;IACF;IAEA,MAAMM,SAASR,aAAaI,QAAQe,GAAG,IAAIjB;IAE3C,IAAI,CAACM,QAAQ;QACXT,WAAW;YACT,oFAAoF;YACpFqB,WAAW,CAACnB;gBACV,IAAID,aAAaC,KAAKC,QAAQ;oBAC5B,OAAO;gBACT;YACF;YACAD,KAAKG,QAAQe,GAAG;QAClB;IACF;AACF"}
@@ -52,7 +52,7 @@ import { defaultAccess } from '../../auth/defaultAccess.js';
52
52
  indexes: [],
53
53
  timestamps: true,
54
54
  upload: false,
55
- versions: false
55
+ versions: true
56
56
  };
57
57
  export const addDefaultsToCollectionConfig = (collection)=>{
58
58
  collection.access = {
@@ -109,7 +109,7 @@ export const addDefaultsToCollectionConfig = (collection)=>{
109
109
  };
110
110
  collection.timestamps = collection.timestamps ?? true;
111
111
  collection.upload = collection.upload ?? false;
112
- collection.versions = collection.versions ?? false;
112
+ collection.versions = collection.versions ?? true;
113
113
  collection.indexes = collection.indexes ?? [];
114
114
  return collection;
115
115
  };