payload 4.0.0-internal.c2b57ce → 4.0.0-internal.cd69eef

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 (822) hide show
  1. package/LICENSE.md +1 -1
  2. package/bin.js +11 -0
  3. package/dist/__testing__/predefinedMigration.d.ts +4 -3
  4. package/dist/__testing__/predefinedMigration.d.ts.map +1 -1
  5. package/dist/admin/RichText.d.ts +3 -11
  6. package/dist/admin/RichText.d.ts.map +1 -1
  7. package/dist/admin/RichText.js.map +1 -1
  8. package/dist/admin/adapters/devReload.d.ts +9 -0
  9. package/dist/admin/adapters/devReload.d.ts.map +1 -0
  10. package/dist/admin/adapters/devReload.js +6 -0
  11. package/dist/admin/adapters/devReload.js.map +1 -0
  12. package/dist/admin/adapters/index.d.ts +3 -0
  13. package/dist/admin/adapters/index.d.ts.map +1 -1
  14. package/dist/admin/adapters/index.js.map +1 -1
  15. package/dist/admin/adapters/render.d.ts +16 -0
  16. package/dist/admin/adapters/render.d.ts.map +1 -0
  17. package/dist/admin/adapters/render.js +7 -0
  18. package/dist/admin/adapters/render.js.map +1 -0
  19. package/dist/admin/adapters/router.d.ts +8 -0
  20. package/dist/admin/adapters/router.d.ts.map +1 -1
  21. package/dist/admin/adapters/router.js.map +1 -1
  22. package/dist/admin/adapters/views.d.ts +36 -0
  23. package/dist/admin/adapters/views.d.ts.map +1 -0
  24. package/dist/admin/adapters/views.js +7 -0
  25. package/dist/admin/adapters/views.js.map +1 -0
  26. package/dist/admin/fields/Row.d.ts +2 -2
  27. package/dist/admin/fields/Row.d.ts.map +1 -1
  28. package/dist/admin/fields/Row.js.map +1 -1
  29. package/dist/admin/forms/Description.d.ts +2 -2
  30. package/dist/admin/forms/Description.d.ts.map +1 -1
  31. package/dist/admin/forms/Description.js.map +1 -1
  32. package/dist/admin/forms/Field.d.ts +10 -5
  33. package/dist/admin/forms/Field.d.ts.map +1 -1
  34. package/dist/admin/forms/Field.js.map +1 -1
  35. package/dist/admin/functions/index.d.ts +10 -1
  36. package/dist/admin/functions/index.d.ts.map +1 -1
  37. package/dist/admin/functions/index.js.map +1 -1
  38. package/dist/admin/types.d.ts +3 -2
  39. package/dist/admin/types.d.ts.map +1 -1
  40. package/dist/admin/types.js.map +1 -1
  41. package/dist/admin/views/dashboard.d.ts +7 -0
  42. package/dist/admin/views/dashboard.d.ts.map +1 -1
  43. package/dist/admin/views/dashboard.js.map +1 -1
  44. package/dist/admin/views/document.d.ts +5 -3
  45. package/dist/admin/views/document.d.ts.map +1 -1
  46. package/dist/admin/views/document.js.map +1 -1
  47. package/dist/admin/views/list.d.ts +10 -1
  48. package/dist/admin/views/list.d.ts.map +1 -1
  49. package/dist/admin/views/list.js.map +1 -1
  50. package/dist/auth/baseFields/apiKey.d.ts +10 -2
  51. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  52. package/dist/auth/baseFields/apiKey.js +35 -24
  53. package/dist/auth/baseFields/apiKey.js.map +1 -1
  54. package/dist/auth/cookies.d.ts +2 -2
  55. package/dist/auth/cookies.d.ts.map +1 -1
  56. package/dist/auth/defaultAccess.d.ts +1 -1
  57. package/dist/auth/defaultAccess.d.ts.map +1 -1
  58. package/dist/auth/defaultAccess.js +1 -1
  59. package/dist/auth/defaultAccess.js.map +1 -1
  60. package/dist/auth/defaultUser.d.ts.map +1 -1
  61. package/dist/auth/defaultUser.js +2 -1
  62. package/dist/auth/defaultUser.js.map +1 -1
  63. package/dist/auth/ensureUsernameOrEmail.d.ts.map +1 -1
  64. package/dist/auth/executeAccess.d.ts.map +1 -1
  65. package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
  66. package/dist/auth/extractAccessFromPermission.d.ts.map +1 -1
  67. package/dist/auth/extractJWT.d.ts +1 -1
  68. package/dist/auth/extractJWT.d.ts.map +1 -1
  69. package/dist/auth/getAuthFields.d.ts.map +1 -1
  70. package/dist/auth/getAuthFields.js +2 -2
  71. package/dist/auth/getAuthFields.js.map +1 -1
  72. package/dist/auth/getFieldsToSign.d.ts +1 -1
  73. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  74. package/dist/auth/getLoginOptions.d.ts +1 -1
  75. package/dist/auth/getLoginOptions.d.ts.map +1 -1
  76. package/dist/auth/isUserLocked.d.ts.map +1 -1
  77. package/dist/auth/jwt.d.ts.map +1 -1
  78. package/dist/auth/operations/access.d.ts.map +1 -1
  79. package/dist/auth/operations/auth.d.ts +2 -2
  80. package/dist/auth/operations/auth.d.ts.map +1 -1
  81. package/dist/auth/operations/auth.js.map +1 -1
  82. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  83. package/dist/auth/operations/init.d.ts.map +1 -1
  84. package/dist/auth/operations/local/auth.d.ts.map +1 -1
  85. package/dist/auth/operations/login.d.ts +2 -1
  86. package/dist/auth/operations/login.d.ts.map +1 -1
  87. package/dist/auth/operations/login.js.map +1 -1
  88. package/dist/auth/operations/logout.d.ts.map +1 -1
  89. package/dist/auth/operations/me.d.ts +2 -2
  90. package/dist/auth/operations/me.d.ts.map +1 -1
  91. package/dist/auth/operations/me.js.map +1 -1
  92. package/dist/auth/operations/refresh.d.ts.map +1 -1
  93. package/dist/auth/operations/refresh.js +9 -3
  94. package/dist/auth/operations/refresh.js.map +1 -1
  95. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  96. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  97. package/dist/auth/operations/resetPassword.js.map +1 -1
  98. package/dist/auth/operations/unlock.d.ts.map +1 -1
  99. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  100. package/dist/auth/sendVerificationEmail.d.ts +2 -2
  101. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  102. package/dist/auth/sendVerificationEmail.js +1 -1
  103. package/dist/auth/sendVerificationEmail.js.map +1 -1
  104. package/dist/auth/sessions.d.ts +4 -5
  105. package/dist/auth/sessions.d.ts.map +1 -1
  106. package/dist/auth/sessions.js +5 -3
  107. package/dist/auth/sessions.js.map +1 -1
  108. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  109. package/dist/auth/strategies/apiKey.js.map +1 -1
  110. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  111. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  112. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
  113. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  114. package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
  115. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
  116. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  117. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  118. package/dist/auth/types.d.ts +25 -21
  119. package/dist/auth/types.d.ts.map +1 -1
  120. package/dist/auth/types.js.map +1 -1
  121. package/dist/bin/build.d.ts +49 -0
  122. package/dist/bin/build.d.ts.map +1 -0
  123. package/dist/bin/build.js +226 -0
  124. package/dist/bin/build.js.map +1 -0
  125. package/dist/bin/build.spec.js +594 -0
  126. package/dist/bin/build.spec.js.map +1 -0
  127. package/dist/bin/frameworkConventions.d.ts +8 -0
  128. package/dist/bin/frameworkConventions.d.ts.map +1 -0
  129. package/dist/bin/frameworkConventions.js +8 -0
  130. package/dist/bin/frameworkConventions.js.map +1 -0
  131. package/dist/bin/generateImportMap/index.d.ts.map +1 -1
  132. package/dist/bin/generateImportMap/index.js +8 -5
  133. package/dist/bin/generateImportMap/index.js.map +1 -1
  134. package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
  135. package/dist/bin/generateImportMap/iterateCollections.js +11 -0
  136. package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
  137. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  138. package/dist/bin/generateImportMap/iterateConfig.js +12 -0
  139. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  140. package/dist/bin/generateImportMap/iterateFields.d.ts.map +1 -1
  141. package/dist/bin/generateImportMap/iterateFields.js +4 -1
  142. package/dist/bin/generateImportMap/iterateFields.js.map +1 -1
  143. package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -1
  144. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts +5 -1
  145. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -1
  146. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js +33 -18
  147. package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -1
  148. package/dist/bin/generateTypes.d.ts +3 -2
  149. package/dist/bin/generateTypes.d.ts.map +1 -1
  150. package/dist/bin/generateTypes.js +11 -1
  151. package/dist/bin/generateTypes.js.map +1 -1
  152. package/dist/bin/index.d.ts.map +1 -1
  153. package/dist/bin/index.js +9 -0
  154. package/dist/bin/index.js.map +1 -1
  155. package/dist/bin/loadEnv.d.ts +3 -1
  156. package/dist/bin/loadEnv.d.ts.map +1 -1
  157. package/dist/bin/loadEnv.js +40 -10
  158. package/dist/bin/loadEnv.js.map +1 -1
  159. package/dist/bin/migrate.d.ts.map +1 -1
  160. package/dist/collections/config/client.d.ts +11 -4
  161. package/dist/collections/config/client.d.ts.map +1 -1
  162. package/dist/collections/config/client.js +8 -0
  163. package/dist/collections/config/client.js.map +1 -1
  164. package/dist/collections/config/defaults.d.ts +0 -4
  165. package/dist/collections/config/defaults.d.ts.map +1 -1
  166. package/dist/collections/config/defaults.js +2 -17
  167. package/dist/collections/config/defaults.js.map +1 -1
  168. package/dist/collections/config/defaults.spec.js +47 -0
  169. package/dist/collections/config/defaults.spec.js.map +1 -0
  170. package/dist/collections/config/sanitize.d.ts.map +1 -1
  171. package/dist/collections/config/sanitize.js +1 -11
  172. package/dist/collections/config/sanitize.js.map +1 -1
  173. package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
  174. package/dist/collections/config/types.d.ts +13 -9
  175. package/dist/collections/config/types.d.ts.map +1 -1
  176. package/dist/collections/config/types.js.map +1 -1
  177. package/dist/collections/config/useAsTitle.d.ts.map +1 -1
  178. package/dist/collections/dataloader.d.ts +1 -1
  179. package/dist/collections/dataloader.d.ts.map +1 -1
  180. package/dist/collections/endpoints/create.d.ts.map +1 -1
  181. package/dist/collections/endpoints/create.js +0 -2
  182. package/dist/collections/endpoints/create.js.map +1 -1
  183. package/dist/collections/endpoints/updateByID.d.ts.map +1 -1
  184. package/dist/collections/endpoints/updateByID.js +1 -2
  185. package/dist/collections/endpoints/updateByID.js.map +1 -1
  186. package/dist/collections/operations/count.d.ts.map +1 -1
  187. package/dist/collections/operations/count.js +1 -0
  188. package/dist/collections/operations/count.js.map +1 -1
  189. package/dist/collections/operations/countVersions.d.ts.map +1 -1
  190. package/dist/collections/operations/create.d.ts +0 -1
  191. package/dist/collections/operations/create.d.ts.map +1 -1
  192. package/dist/collections/operations/create.js +15 -6
  193. package/dist/collections/operations/create.js.map +1 -1
  194. package/dist/collections/operations/delete.d.ts.map +1 -1
  195. package/dist/collections/operations/delete.js +3 -0
  196. package/dist/collections/operations/delete.js.map +1 -1
  197. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  198. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  199. package/dist/collections/operations/find.d.ts.map +1 -1
  200. package/dist/collections/operations/findByID.d.ts.map +1 -1
  201. package/dist/collections/operations/findDistinct.d.ts.map +1 -1
  202. package/dist/collections/operations/findDistinct.js +1 -0
  203. package/dist/collections/operations/findDistinct.js.map +1 -1
  204. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  205. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  206. package/dist/collections/operations/local/count.d.ts +3 -3
  207. package/dist/collections/operations/local/count.d.ts.map +1 -1
  208. package/dist/collections/operations/local/count.js.map +1 -1
  209. package/dist/collections/operations/local/countVersions.d.ts +3 -3
  210. package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
  211. package/dist/collections/operations/local/countVersions.js.map +1 -1
  212. package/dist/collections/operations/local/create.d.ts +3 -3
  213. package/dist/collections/operations/local/create.d.ts.map +1 -1
  214. package/dist/collections/operations/local/create.js.map +1 -1
  215. package/dist/collections/operations/local/delete.d.ts +3 -3
  216. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  217. package/dist/collections/operations/local/delete.js.map +1 -1
  218. package/dist/collections/operations/local/duplicate.d.ts +3 -3
  219. package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
  220. package/dist/collections/operations/local/duplicate.js.map +1 -1
  221. package/dist/collections/operations/local/find.d.ts +3 -3
  222. package/dist/collections/operations/local/find.d.ts.map +1 -1
  223. package/dist/collections/operations/local/find.js.map +1 -1
  224. package/dist/collections/operations/local/findByID.d.ts +3 -3
  225. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  226. package/dist/collections/operations/local/findByID.js.map +1 -1
  227. package/dist/collections/operations/local/findDistinct.d.ts +2 -2
  228. package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
  229. package/dist/collections/operations/local/findDistinct.js.map +1 -1
  230. package/dist/collections/operations/local/findVersionByID.d.ts +3 -3
  231. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  232. package/dist/collections/operations/local/findVersionByID.js.map +1 -1
  233. package/dist/collections/operations/local/findVersions.d.ts +3 -3
  234. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  235. package/dist/collections/operations/local/findVersions.js.map +1 -1
  236. package/dist/collections/operations/local/restoreVersion.d.ts +3 -3
  237. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  238. package/dist/collections/operations/local/restoreVersion.js.map +1 -1
  239. package/dist/collections/operations/local/update.d.ts +7 -11
  240. package/dist/collections/operations/local/update.d.ts.map +1 -1
  241. package/dist/collections/operations/local/update.js +1 -2
  242. package/dist/collections/operations/local/update.js.map +1 -1
  243. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  244. package/dist/collections/operations/update.d.ts +0 -1
  245. package/dist/collections/operations/update.d.ts.map +1 -1
  246. package/dist/collections/operations/update.js +8 -4
  247. package/dist/collections/operations/update.js.map +1 -1
  248. package/dist/collections/operations/updateByID.d.ts +0 -1
  249. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  250. package/dist/collections/operations/updateByID.js +1 -5
  251. package/dist/collections/operations/updateByID.js.map +1 -1
  252. package/dist/collections/operations/utilities/buildAfterOperation.d.ts +1 -1
  253. package/dist/collections/operations/utilities/buildAfterOperation.d.ts.map +1 -1
  254. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts +9 -0
  255. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -0
  256. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js +170 -0
  257. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js.map +1 -0
  258. package/dist/collections/operations/utilities/sanitizeSortQuery.d.ts.map +1 -1
  259. package/dist/collections/operations/utilities/types.d.ts +20 -29
  260. package/dist/collections/operations/utilities/types.d.ts.map +1 -1
  261. package/dist/collections/operations/utilities/types.js.map +1 -1
  262. package/dist/collections/operations/utilities/update.d.ts +1 -2
  263. package/dist/collections/operations/utilities/update.d.ts.map +1 -1
  264. package/dist/collections/operations/utilities/update.js +64 -65
  265. package/dist/collections/operations/utilities/update.js.map +1 -1
  266. package/dist/config/client.d.ts +2 -2
  267. package/dist/config/client.d.ts.map +1 -1
  268. package/dist/config/client.js.map +1 -1
  269. package/dist/config/defaults.d.ts +0 -4
  270. package/dist/config/defaults.d.ts.map +1 -1
  271. package/dist/config/defaults.js +0 -78
  272. package/dist/config/defaults.js.map +1 -1
  273. package/dist/config/definePlugin.d.ts +10 -10
  274. package/dist/config/definePlugin.d.ts.map +1 -1
  275. package/dist/config/definePlugin.js +7 -11
  276. package/dist/config/definePlugin.js.map +1 -1
  277. package/dist/config/orderable/fractional-indexing.d.ts +23 -23
  278. package/dist/config/orderable/fractional-indexing.d.ts.map +1 -1
  279. package/dist/config/orderable/index.d.ts.map +1 -1
  280. package/dist/config/orderable/index.js +23 -0
  281. package/dist/config/orderable/index.js.map +1 -1
  282. package/dist/config/sanitize.d.ts.map +1 -1
  283. package/dist/config/sanitize.js +141 -13
  284. package/dist/config/sanitize.js.map +1 -1
  285. package/dist/config/types.d.ts +67 -20
  286. package/dist/config/types.d.ts.map +1 -1
  287. package/dist/config/types.js +2 -0
  288. package/dist/config/types.js.map +1 -1
  289. package/dist/database/combineQueries.d.ts.map +1 -1
  290. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  291. package/dist/database/getLocalizedPaths.js +1 -1
  292. package/dist/database/getLocalizedPaths.js.map +1 -1
  293. package/dist/database/migrations/findMigrationDir.d.ts.map +1 -1
  294. package/dist/database/migrations/getPredefinedMigration.d.ts.map +1 -1
  295. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  296. package/dist/database/migrations/migrationsCollection.js +2 -1
  297. package/dist/database/migrations/migrationsCollection.js.map +1 -1
  298. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  299. package/dist/database/migrations/writeMigrationIndex.d.ts.map +1 -1
  300. package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
  301. package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
  302. package/dist/database/types.d.ts +1 -5
  303. package/dist/database/types.d.ts.map +1 -1
  304. package/dist/database/types.js.map +1 -1
  305. package/dist/duplicateDocument/index.d.ts.map +1 -1
  306. package/dist/email/getStringifiedToAddress.d.ts.map +1 -1
  307. package/dist/errors/APIError.d.ts.map +1 -1
  308. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  309. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  310. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  311. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  312. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  313. package/dist/errors/FileRetrievalError.d.ts.map +1 -1
  314. package/dist/errors/FileUploadError.d.ts.map +1 -1
  315. package/dist/errors/Forbidden.d.ts.map +1 -1
  316. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  317. package/dist/errors/InvalidFieldJoin.d.ts.map +1 -1
  318. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  319. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  320. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  321. package/dist/errors/Locked.d.ts.map +1 -1
  322. package/dist/errors/LockedAuth.d.ts.map +1 -1
  323. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  324. package/dist/errors/MissingEditorProp.d.ts.map +1 -1
  325. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  326. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  327. package/dist/errors/MissingFile.d.ts.map +1 -1
  328. package/dist/errors/NotFound.d.ts.map +1 -1
  329. package/dist/errors/QueryError.d.ts.map +1 -1
  330. package/dist/errors/ReservedFieldName.d.ts.map +1 -1
  331. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  332. package/dist/errors/UnauthorizedError.d.ts.map +1 -1
  333. package/dist/errors/UnverifiedEmail.d.ts.map +1 -1
  334. package/dist/errors/ValidationError.d.ts +1 -0
  335. package/dist/errors/ValidationError.d.ts.map +1 -1
  336. package/dist/errors/ValidationError.js.map +1 -1
  337. package/dist/exports/internal.d.ts +2 -0
  338. package/dist/exports/internal.d.ts.map +1 -1
  339. package/dist/exports/internal.js +2 -0
  340. package/dist/exports/internal.js.map +1 -1
  341. package/dist/exports/migrations.d.ts +5 -13
  342. package/dist/exports/migrations.d.ts.map +1 -1
  343. package/dist/exports/migrations.js +5 -13
  344. package/dist/exports/migrations.js.map +1 -1
  345. package/dist/exports/shared.d.ts +23 -2
  346. package/dist/exports/shared.d.ts.map +1 -1
  347. package/dist/exports/shared.js +22 -1
  348. package/dist/exports/shared.js.map +1 -1
  349. package/dist/fields/baseFields/slug/countVersions.d.ts.map +1 -1
  350. package/dist/fields/baseFields/slug/countVersions.js +6 -8
  351. package/dist/fields/baseFields/slug/countVersions.js.map +1 -1
  352. package/dist/fields/baseFields/slug/generateSlug.d.ts +14 -7
  353. package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
  354. package/dist/fields/baseFields/slug/generateSlug.js +53 -73
  355. package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
  356. package/dist/fields/baseFields/slug/types.d.ts +14 -0
  357. package/dist/fields/baseFields/slug/types.d.ts.map +1 -0
  358. package/dist/fields/baseFields/slug/types.js +6 -0
  359. package/dist/fields/baseFields/slug/types.js.map +1 -0
  360. package/dist/fields/config/client.d.ts +6 -6
  361. package/dist/fields/config/client.d.ts.map +1 -1
  362. package/dist/fields/config/client.js +14 -14
  363. package/dist/fields/config/client.js.map +1 -1
  364. package/dist/fields/config/sanitize.d.ts.map +1 -1
  365. package/dist/fields/config/sanitize.js +40 -4
  366. package/dist/fields/config/sanitize.js.map +1 -1
  367. package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
  368. package/dist/fields/config/types.d.ts +80 -76
  369. package/dist/fields/config/types.d.ts.map +1 -1
  370. package/dist/fields/config/types.js.map +1 -1
  371. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  372. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  373. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  374. package/dist/fields/hooks/afterChange/promise.js +1 -1
  375. package/dist/fields/hooks/afterChange/promise.js.map +1 -1
  376. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  377. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  378. package/dist/fields/hooks/afterRead/promise.js +13 -3
  379. package/dist/fields/hooks/afterRead/promise.js.map +1 -1
  380. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  381. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  382. package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
  383. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
  384. package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
  385. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  386. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  387. package/dist/fields/hooks/beforeChange/promise.js +3 -3
  388. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  389. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  390. package/dist/fields/hooks/beforeDuplicate/index.d.ts.map +1 -1
  391. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
  392. package/dist/fields/hooks/beforeDuplicate/promise.js +2 -2
  393. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
  394. package/dist/fields/hooks/beforeDuplicate/traverseFields.d.ts.map +1 -1
  395. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  396. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  397. package/dist/fields/hooks/beforeValidate/promise.js +11 -2
  398. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
  399. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  400. package/dist/fields/isFieldDisabled.d.ts.map +1 -1
  401. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  402. package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -1
  403. package/dist/fields/setDefaultBeforeDuplicate.js +1 -0
  404. package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -1
  405. package/dist/fields/sortableFieldTypes.d.ts.map +1 -1
  406. package/dist/fields/sortableFieldTypes.js +1 -0
  407. package/dist/fields/sortableFieldTypes.js.map +1 -1
  408. package/dist/fields/validations.d.ts +4 -1
  409. package/dist/fields/validations.d.ts.map +1 -1
  410. package/dist/fields/validations.js +12 -4
  411. package/dist/fields/validations.js.map +1 -1
  412. package/dist/globals/config/client.d.ts +4 -4
  413. package/dist/globals/config/client.d.ts.map +1 -1
  414. package/dist/globals/config/sanitize.d.ts.map +1 -1
  415. package/dist/globals/config/sanitize.js +2 -6
  416. package/dist/globals/config/sanitize.js.map +1 -1
  417. package/dist/globals/config/sanitize.spec.js +43 -0
  418. package/dist/globals/config/sanitize.spec.js.map +1 -0
  419. package/dist/globals/endpoints/update.d.ts.map +1 -1
  420. package/dist/globals/endpoints/update.js +0 -2
  421. package/dist/globals/endpoints/update.js.map +1 -1
  422. package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
  423. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  424. package/dist/globals/operations/findOne.d.ts.map +1 -1
  425. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  426. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  427. package/dist/globals/operations/local/countVersions.d.ts +3 -3
  428. package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
  429. package/dist/globals/operations/local/countVersions.js.map +1 -1
  430. package/dist/globals/operations/local/findOne.d.ts +3 -3
  431. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  432. package/dist/globals/operations/local/findOne.js.map +1 -1
  433. package/dist/globals/operations/local/findVersionByID.d.ts +3 -3
  434. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  435. package/dist/globals/operations/local/findVersionByID.js.map +1 -1
  436. package/dist/globals/operations/local/findVersions.d.ts +3 -3
  437. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  438. package/dist/globals/operations/local/findVersions.js.map +1 -1
  439. package/dist/globals/operations/local/restoreVersion.d.ts +3 -3
  440. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  441. package/dist/globals/operations/local/restoreVersion.js.map +1 -1
  442. package/dist/globals/operations/local/update.d.ts +7 -9
  443. package/dist/globals/operations/local/update.d.ts.map +1 -1
  444. package/dist/globals/operations/local/update.js +1 -2
  445. package/dist/globals/operations/local/update.js.map +1 -1
  446. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  447. package/dist/globals/operations/update.d.ts +0 -1
  448. package/dist/globals/operations/update.d.ts.map +1 -1
  449. package/dist/globals/operations/update.js +52 -58
  450. package/dist/globals/operations/update.js.map +1 -1
  451. package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
  452. package/dist/hierarchy/buildParentField.d.ts.map +1 -1
  453. package/dist/hierarchy/constants.d.ts.map +1 -1
  454. package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
  455. package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
  456. package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -1
  457. package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -1
  458. package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
  459. package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -1
  460. package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -1
  461. package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -1
  462. package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -1
  463. package/dist/hierarchy/resolveHierarchyCollections.js +1 -1
  464. package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
  465. package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -1
  466. package/dist/hierarchy/sanitizeHierarchyCollection.js +3 -1
  467. package/dist/hierarchy/sanitizeHierarchyCollection.js.map +1 -1
  468. package/dist/hierarchy/types.d.ts +8 -1
  469. package/dist/hierarchy/types.d.ts.map +1 -1
  470. package/dist/hierarchy/types.js.map +1 -1
  471. package/dist/index.bundled.d.ts +4466 -4152
  472. package/dist/index.d.ts +79 -34
  473. package/dist/index.d.ts.map +1 -1
  474. package/dist/index.js +54 -37
  475. package/dist/index.js.map +1 -1
  476. package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
  477. package/dist/kv/adapters/DatabaseKVAdapter.js +1 -0
  478. package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
  479. package/dist/kv/adapters/InMemoryKVAdapter.d.ts.map +1 -1
  480. package/dist/locked-documents/config.d.ts.map +1 -1
  481. package/dist/locked-documents/config.js +2 -1
  482. package/dist/locked-documents/config.js.map +1 -1
  483. package/dist/preferences/config.d.ts.map +1 -1
  484. package/dist/preferences/config.js +2 -1
  485. package/dist/preferences/config.js.map +1 -1
  486. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  487. package/dist/preferences/keys.d.ts +8 -4
  488. package/dist/preferences/keys.d.ts.map +1 -1
  489. package/dist/preferences/keys.js +4 -1
  490. package/dist/preferences/keys.js.map +1 -1
  491. package/dist/preferences/types.d.ts +15 -0
  492. package/dist/preferences/types.d.ts.map +1 -1
  493. package/dist/preferences/types.js +3 -1
  494. package/dist/preferences/types.js.map +1 -1
  495. package/dist/query-presets/access.d.ts.map +1 -1
  496. package/dist/query-presets/config.d.ts.map +1 -1
  497. package/dist/query-presets/config.js +77 -37
  498. package/dist/query-presets/config.js.map +1 -1
  499. package/dist/query-presets/constraints.d.ts.map +1 -1
  500. package/dist/query-presets/constraints.js +3 -2
  501. package/dist/query-presets/constraints.js.map +1 -1
  502. package/dist/query-presets/types.d.ts +1 -1
  503. package/dist/query-presets/types.d.ts.map +1 -1
  504. package/dist/queues/config/collection.d.ts.map +1 -1
  505. package/dist/queues/config/collection.js +2 -1
  506. package/dist/queues/config/collection.js.map +1 -1
  507. package/dist/queues/config/generateJobsJSONSchemas.d.ts +1 -1
  508. package/dist/queues/config/generateJobsJSONSchemas.d.ts.map +1 -1
  509. package/dist/queues/config/generateJobsJSONSchemas.js +33 -12
  510. package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -1
  511. package/dist/queues/config/global.d.ts.map +1 -1
  512. package/dist/queues/config/global.js +2 -1
  513. package/dist/queues/config/global.js.map +1 -1
  514. package/dist/queues/endpoints/run.d.ts.map +1 -1
  515. package/dist/queues/errors/index.d.ts.map +1 -1
  516. package/dist/queues/localAPI.d.ts +8 -8
  517. package/dist/queues/localAPI.d.ts.map +1 -1
  518. package/dist/queues/operations/handleSchedules/getQueuesWithSchedules.d.ts.map +1 -1
  519. package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
  520. package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
  521. package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
  522. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts +1 -1
  523. package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts.map +1 -1
  524. package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
  525. package/dist/queues/utilities/getCurrentDate.d.ts.map +1 -1
  526. package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -1
  527. package/dist/translations/getLocalI18n.d.ts.map +1 -1
  528. package/dist/types/constants.d.ts +2 -2
  529. package/dist/types/constants.d.ts.map +1 -1
  530. package/dist/types/index.d.ts +9 -7
  531. package/dist/types/index.d.ts.map +1 -1
  532. package/dist/types/index.js.map +1 -1
  533. package/dist/uploads/checkFileAccess.d.ts.map +1 -1
  534. package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
  535. package/dist/uploads/cropImage.d.ts.map +1 -1
  536. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  537. package/dist/uploads/endpoints/uploadInstructions.d.ts +3 -0
  538. package/dist/uploads/endpoints/uploadInstructions.d.ts.map +1 -0
  539. package/dist/uploads/endpoints/uploadInstructions.js +38 -0
  540. package/dist/uploads/endpoints/uploadInstructions.js.map +1 -0
  541. package/dist/uploads/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -1
  542. package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  543. package/dist/uploads/fetchAPI-multipart/processMultipart.js +4 -0
  544. package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
  545. package/dist/uploads/fetchAPI-multipart/processNested.d.ts.map +1 -1
  546. package/dist/uploads/fetchAPI-multipart/utilities.d.ts.map +1 -1
  547. package/dist/uploads/fileExists.d.ts.map +1 -1
  548. package/dist/uploads/generateFileData.d.ts +2 -1
  549. package/dist/uploads/generateFileData.d.ts.map +1 -1
  550. package/dist/uploads/generateFileData.js +5 -2
  551. package/dist/uploads/generateFileData.js.map +1 -1
  552. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  553. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  554. package/dist/uploads/getFileByPath.d.ts +1 -1
  555. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  556. package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
  557. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  558. package/dist/uploads/image-resizing/createImageSize.d.ts.map +1 -1
  559. package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +1 -1
  560. package/dist/uploads/image-resizing/getImageResizeAction.d.ts +1 -1
  561. package/dist/uploads/image-resizing/getImageResizeAction.d.ts.map +1 -1
  562. package/dist/uploads/image-resizing/parseFilename.d.ts.map +1 -1
  563. package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts.map +1 -1
  564. package/dist/uploads/matchMimeType.d.ts +8 -0
  565. package/dist/uploads/matchMimeType.d.ts.map +1 -0
  566. package/dist/uploads/matchMimeType.js +19 -0
  567. package/dist/uploads/matchMimeType.js.map +1 -0
  568. package/dist/uploads/matchMimeType.spec.js +66 -0
  569. package/dist/uploads/matchMimeType.spec.js.map +1 -0
  570. package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
  571. package/dist/uploads/safeFetch.d.ts.map +1 -1
  572. package/dist/uploads/safeFetch.js +11 -5
  573. package/dist/uploads/safeFetch.js.map +1 -1
  574. package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
  575. package/dist/uploads/tempFile.d.ts.map +1 -1
  576. package/dist/uploads/types.d.ts +68 -1
  577. package/dist/uploads/types.d.ts.map +1 -1
  578. package/dist/uploads/types.js.map +1 -1
  579. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  580. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  581. package/dist/utilities/addDataAndFileToRequest.js +11 -4
  582. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  583. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  584. package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
  585. package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -1
  586. package/dist/utilities/appendDateTimezoneSelectFields.js +2 -2
  587. package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
  588. package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
  589. package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
  590. package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
  591. package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
  592. package/dist/utilities/configToJSONSchema.d.ts +68 -16
  593. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  594. package/dist/utilities/configToJSONSchema.js +312 -117
  595. package/dist/utilities/configToJSONSchema.js.map +1 -1
  596. package/dist/utilities/configToJSONSchema.spec.js +656 -85
  597. package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
  598. package/dist/utilities/createLocalReq.d.ts +2 -2
  599. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  600. package/dist/utilities/createLocalReq.js.map +1 -1
  601. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  602. package/dist/utilities/createPayloadRequest.js +1 -0
  603. package/dist/utilities/createPayloadRequest.js.map +1 -1
  604. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  605. package/dist/utilities/deepCopyObject.js +8 -0
  606. package/dist/utilities/deepCopyObject.js.map +1 -1
  607. package/dist/utilities/dependencies/dependencyChecker.js +1 -1
  608. package/dist/utilities/dependencies/dependencyChecker.js.map +1 -1
  609. package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -1
  610. package/dist/utilities/dependencies/getDependencies.js +5 -5
  611. package/dist/utilities/dependencies/getDependencies.js.map +1 -1
  612. package/dist/utilities/dependencies/resolveFrom.d.ts.map +1 -1
  613. package/dist/utilities/dynamicImport.js +1 -1
  614. package/dist/utilities/dynamicImport.js.map +1 -1
  615. package/dist/utilities/escapeRegExp.d.ts.map +1 -1
  616. package/dist/utilities/extractID.d.ts.map +1 -1
  617. package/dist/utilities/filterDataToSelectedLocales.d.ts.map +1 -1
  618. package/dist/utilities/filterDataToSelectedLocales.js +5 -12
  619. package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
  620. package/dist/utilities/filterDataToSelectedLocales.spec.js +1 -2
  621. package/dist/utilities/filterDataToSelectedLocales.spec.js.map +1 -1
  622. package/dist/utilities/flattenAllFields.d.ts.map +1 -1
  623. package/dist/utilities/flattenAllFields.js +7 -22
  624. package/dist/utilities/flattenAllFields.js.map +1 -1
  625. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  626. package/dist/utilities/formatErrors.d.ts.map +1 -1
  627. package/dist/utilities/formatErrors.js +3 -1
  628. package/dist/utilities/formatErrors.js.map +1 -1
  629. package/dist/utilities/formatLabels.d.ts.map +1 -1
  630. package/dist/utilities/getBestFitFromSizes.d.ts.map +1 -1
  631. package/dist/utilities/getBlockSelect.d.ts.map +1 -1
  632. package/dist/utilities/getDataByPath.d.ts.map +1 -1
  633. package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
  634. package/dist/utilities/getEntityPermissions/getEntityPermissions.js +2 -0
  635. package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
  636. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts +7 -1
  637. package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
  638. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +24 -7
  639. package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
  640. package/dist/utilities/getFieldByPath.d.ts.map +1 -1
  641. package/dist/utilities/getFieldByPath.js +1 -1
  642. package/dist/utilities/getFieldByPath.js.map +1 -1
  643. package/dist/utilities/getFieldPermissions.d.ts.map +1 -1
  644. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  645. package/dist/utilities/getRequestEntity.d.ts.map +1 -1
  646. package/dist/utilities/getRequestLanguage.d.ts +2 -2
  647. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  648. package/dist/utilities/getRequestLanguage.js.map +1 -1
  649. package/dist/utilities/getRequestOrigin.d.ts +2 -2
  650. package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
  651. package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
  652. package/dist/utilities/getSelectMode.d.ts.map +1 -1
  653. package/dist/utilities/getSiblingData.d.ts.map +1 -1
  654. package/dist/utilities/getTranslatedLabel.d.ts.map +1 -1
  655. package/dist/utilities/getVersionsConfig.d.ts +1 -1
  656. package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
  657. package/dist/utilities/getVersionsConfig.js.map +1 -1
  658. package/dist/utilities/handleEndpoints.d.ts.map +1 -1
  659. package/dist/utilities/handleEndpoints.js +7 -3
  660. package/dist/utilities/handleEndpoints.js.map +1 -1
  661. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  662. package/dist/utilities/isEntityHidden.d.ts +2 -2
  663. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  664. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  665. package/dist/utilities/isURLAllowed.js +9 -3
  666. package/dist/utilities/isURLAllowed.js.map +1 -1
  667. package/dist/utilities/isURLAllowed.spec.js +78 -0
  668. package/dist/utilities/isURLAllowed.spec.js.map +1 -0
  669. package/dist/utilities/isValidID.d.ts +1 -1
  670. package/dist/utilities/isValidID.d.ts.map +1 -1
  671. package/dist/utilities/logError.d.ts.map +1 -1
  672. package/dist/utilities/logger.d.ts +1 -1
  673. package/dist/utilities/logger.d.ts.map +1 -1
  674. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  675. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -1
  676. package/dist/utilities/mergeLocalizedData.d.ts +14 -4
  677. package/dist/utilities/mergeLocalizedData.d.ts.map +1 -1
  678. package/dist/utilities/mergeLocalizedData.js +54 -46
  679. package/dist/utilities/mergeLocalizedData.js.map +1 -1
  680. package/dist/utilities/mergeLocalizedData.spec.js +23 -23
  681. package/dist/utilities/mergeLocalizedData.spec.js.map +1 -1
  682. package/dist/utilities/miniChalk.d.ts.map +1 -1
  683. package/dist/utilities/optionsAreEqual.d.ts.map +1 -1
  684. package/dist/utilities/parseBooleanString.d.ts.map +1 -1
  685. package/dist/utilities/parseCookies.d.ts +1 -1
  686. package/dist/utilities/parseCookies.d.ts.map +1 -1
  687. package/dist/utilities/parseParams/index.d.ts +2 -5
  688. package/dist/utilities/parseParams/index.d.ts.map +1 -1
  689. package/dist/utilities/parseParams/index.js.map +1 -1
  690. package/dist/utilities/parseParams/index.spec.js +0 -9
  691. package/dist/utilities/parseParams/index.spec.js.map +1 -1
  692. package/dist/utilities/profiling.d.ts.map +1 -1
  693. package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
  694. package/dist/utilities/resolveSelect.d.ts.map +1 -1
  695. package/dist/utilities/routeError.d.ts.map +1 -1
  696. package/dist/utilities/sanitizeFallbackLocale.d.ts.map +1 -1
  697. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  698. package/dist/utilities/sanitizeJoinParams.d.ts.map +1 -1
  699. package/dist/utilities/sanitizePopulateParam.d.ts.map +1 -1
  700. package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
  701. package/dist/utilities/sanitizeSelectParam.d.ts.map +1 -1
  702. package/dist/utilities/sanitizeSortParams.d.ts.map +1 -1
  703. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  704. package/dist/utilities/slugify.d.ts.map +1 -1
  705. package/dist/utilities/stripUnselectedFields.d.ts.map +1 -1
  706. package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
  707. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  708. package/dist/utilities/telemetry/events/adminInit.js +2 -3
  709. package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
  710. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  711. package/dist/utilities/telemetry/events/serverInit.js +2 -3
  712. package/dist/utilities/telemetry/events/serverInit.js.map +1 -1
  713. package/dist/utilities/telemetry/index.d.ts +15 -4
  714. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  715. package/dist/utilities/telemetry/index.js +6 -1
  716. package/dist/utilities/telemetry/index.js.map +1 -1
  717. package/dist/utilities/telemetry/index.spec.js +43 -0
  718. package/dist/utilities/telemetry/index.spec.js.map +1 -0
  719. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  720. package/dist/utilities/timestamp.d.ts.map +1 -1
  721. package/dist/utilities/toKebabCase.d.ts.map +1 -1
  722. package/dist/utilities/transformColumnPreferences.d.ts.map +1 -1
  723. package/dist/utilities/transformColumnPreferences.js +4 -2
  724. package/dist/utilities/transformColumnPreferences.js.map +1 -1
  725. package/dist/utilities/transformWhereQuery.d.ts.map +1 -1
  726. package/dist/utilities/traverseFields.d.ts.map +1 -1
  727. package/dist/utilities/traverseFields.js +2 -4
  728. package/dist/utilities/traverseFields.js.map +1 -1
  729. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  730. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  731. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  732. package/dist/utilities/unflatten.d.ts.map +1 -1
  733. package/dist/utilities/validateMimeType.d.ts.map +1 -1
  734. package/dist/utilities/validateTimezones.d.ts.map +1 -1
  735. package/dist/utilities/validateWhereQuery.d.ts.map +1 -1
  736. package/dist/utilities/wordBoundariesRegex.d.ts.map +1 -1
  737. package/dist/utilities/wrapInternalEndpoints.d.ts.map +1 -1
  738. package/dist/versions/baseFields.d.ts +1 -2
  739. package/dist/versions/baseFields.d.ts.map +1 -1
  740. package/dist/versions/baseFields.js +0 -13
  741. package/dist/versions/baseFields.js.map +1 -1
  742. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  743. package/dist/versions/buildCollectionFields.js +0 -2
  744. package/dist/versions/buildCollectionFields.js.map +1 -1
  745. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  746. package/dist/versions/buildGlobalFields.js +0 -2
  747. package/dist/versions/buildGlobalFields.js.map +1 -1
  748. package/dist/versions/buildSingleLocalePublishData.d.ts +32 -0
  749. package/dist/versions/buildSingleLocalePublishData.d.ts.map +1 -0
  750. package/dist/versions/buildSingleLocalePublishData.js +37 -0
  751. package/dist/versions/buildSingleLocalePublishData.js.map +1 -0
  752. package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
  753. package/dist/versions/defaults.d.ts.map +1 -1
  754. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  755. package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
  756. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  757. package/dist/versions/drafts/getQueryDraftsSelect.d.ts.map +1 -1
  758. package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -1
  759. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  760. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  761. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  762. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  763. package/dist/versions/migrations/localizeStatus/shared.d.ts.map +1 -1
  764. package/dist/versions/saveVersion.d.ts +0 -2
  765. package/dist/versions/saveVersion.d.ts.map +1 -1
  766. package/dist/versions/saveVersion.js +12 -17
  767. package/dist/versions/saveVersion.js.map +1 -1
  768. package/dist/versions/schedule/job.d.ts.map +1 -1
  769. package/dist/versions/schedule/job.js +6 -10
  770. package/dist/versions/schedule/job.js.map +1 -1
  771. package/dist/versions/types.d.ts +2 -15
  772. package/dist/versions/types.d.ts.map +1 -1
  773. package/dist/versions/types.js.map +1 -1
  774. package/package.json +9 -6
  775. package/dist/database/migrations/templates/localizeStatus.d.ts +0 -10
  776. package/dist/database/migrations/templates/localizeStatus.d.ts.map +0 -1
  777. package/dist/database/migrations/templates/localizeStatus.js +0 -54
  778. package/dist/database/migrations/templates/localizeStatus.js.map +0 -1
  779. package/dist/fields/baseFields/slug/index.d.ts +0 -89
  780. package/dist/fields/baseFields/slug/index.d.ts.map +0 -1
  781. package/dist/fields/baseFields/slug/index.js +0 -81
  782. package/dist/fields/baseFields/slug/index.js.map +0 -1
  783. package/dist/versions/migrations/localizeStatus/index.d.ts +0 -12
  784. package/dist/versions/migrations/localizeStatus/index.d.ts.map +0 -1
  785. package/dist/versions/migrations/localizeStatus/index.js +0 -33
  786. package/dist/versions/migrations/localizeStatus/index.js.map +0 -1
  787. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts +0 -9
  788. package/dist/versions/migrations/localizeStatus/mongo/down.d.ts.map +0 -1
  789. package/dist/versions/migrations/localizeStatus/mongo/down.js +0 -112
  790. package/dist/versions/migrations/localizeStatus/mongo/down.js.map +0 -1
  791. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts +0 -8
  792. package/dist/versions/migrations/localizeStatus/mongo/index.d.ts.map +0 -1
  793. package/dist/versions/migrations/localizeStatus/mongo/index.js +0 -8
  794. package/dist/versions/migrations/localizeStatus/mongo/index.js.map +0 -1
  795. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts +0 -9
  796. package/dist/versions/migrations/localizeStatus/mongo/up.d.ts.map +0 -1
  797. package/dist/versions/migrations/localizeStatus/mongo/up.js +0 -220
  798. package/dist/versions/migrations/localizeStatus/mongo/up.js.map +0 -1
  799. package/dist/versions/migrations/localizeStatus/sql/down.d.ts +0 -11
  800. package/dist/versions/migrations/localizeStatus/sql/down.d.ts.map +0 -1
  801. package/dist/versions/migrations/localizeStatus/sql/down.js +0 -213
  802. package/dist/versions/migrations/localizeStatus/sql/down.js.map +0 -1
  803. package/dist/versions/migrations/localizeStatus/sql/index.d.ts +0 -8
  804. package/dist/versions/migrations/localizeStatus/sql/index.d.ts.map +0 -1
  805. package/dist/versions/migrations/localizeStatus/sql/index.js +0 -8
  806. package/dist/versions/migrations/localizeStatus/sql/index.js.map +0 -1
  807. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts +0 -13
  808. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts.map +0 -1
  809. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js +0 -51
  810. package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js.map +0 -1
  811. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts +0 -13
  812. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts.map +0 -1
  813. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js +0 -54
  814. package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js.map +0 -1
  815. package/dist/versions/migrations/localizeStatus/sql/up.d.ts +0 -11
  816. package/dist/versions/migrations/localizeStatus/sql/up.d.ts.map +0 -1
  817. package/dist/versions/migrations/localizeStatus/sql/up.js +0 -277
  818. package/dist/versions/migrations/localizeStatus/sql/up.js.map +0 -1
  819. package/dist/versions/saveSnapshot.d.ts +0 -18
  820. package/dist/versions/saveSnapshot.d.ts.map +0 -1
  821. package/dist/versions/saveSnapshot.js +0 -38
  822. package/dist/versions/saveSnapshot.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Folder-name markers that distinguish the supported framework conventions.
3
+ * Shared between import-map resolution and `payload build` framework detection so
4
+ * the two cannot drift.
5
+ */ export const NEXT_PAYLOAD_ROUTE_GROUP = '(payload)';
6
+ export const TANSTACK_PAYLOAD_DIR = '_payload';
7
+
8
+ //# sourceMappingURL=frameworkConventions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/bin/frameworkConventions.ts"],"sourcesContent":["/**\n * Folder-name markers that distinguish the supported framework conventions.\n * Shared between import-map resolution and `payload build` framework detection so\n * the two cannot drift.\n */\nexport const NEXT_PAYLOAD_ROUTE_GROUP = '(payload)'\nexport const TANSTACK_PAYLOAD_DIR = '_payload'\n"],"names":["NEXT_PAYLOAD_ROUTE_GROUP","TANSTACK_PAYLOAD_DIR"],"mappings":"AAAA;;;;CAIC,GACD,OAAO,MAAMA,2BAA2B,YAAW;AACnD,OAAO,MAAMC,uBAAuB,WAAU"}
@@ -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,EAAoB,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC9E,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,QAgFA"}
@@ -28,6 +28,16 @@ export function iterateCollections({ addToImportMap, baseDir, collections, confi
28
28
  if (collection.upload?.admin?.components?.controls) {
29
29
  addToImportMap(collection.upload?.admin?.components?.controls);
30
30
  }
31
+ const filePreview = collection.upload?.admin?.components?.filePreview;
32
+ if (filePreview) {
33
+ if (typeof filePreview === 'string' || typeof filePreview === 'object' && 'path' in filePreview) {
34
+ addToImportMap(filePreview);
35
+ } else {
36
+ for (const component of Object.values(filePreview)){
37
+ addToImportMap(component);
38
+ }
39
+ }
40
+ }
31
41
  if (collection.admin?.components?.views?.edit) {
32
42
  for (const editViewConfig of Object.values(collection.admin?.components?.views?.edit)){
33
43
  if ('Component' in editViewConfig) {
@@ -44,6 +54,7 @@ export function iterateCollections({ addToImportMap, baseDir, collections, confi
44
54
  }
45
55
  addToImportMap(collection.admin?.components?.views?.list?.Component);
46
56
  addToImportMap(collection.admin?.components?.views?.list?.actions);
57
+ addToImportMap(collection.admin?.components?.views?.list?.NoResults);
47
58
  // Register custom collection view components (any key other than 'edit' and 'list')
48
59
  if (collection.admin?.components?.views) {
49
60
  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 { PayloadComponent, 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 const filePreview = collection.upload?.admin?.components?.filePreview\n if (filePreview) {\n if (\n typeof filePreview === 'string' ||\n (typeof filePreview === 'object' && 'path' in filePreview)\n ) {\n addToImportMap(filePreview as PayloadComponent)\n } else {\n for (const component of Object.values(filePreview as Record<string, PayloadComponent>)) {\n addToImportMap(component)\n }\n }\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","filePreview","component","Object","values","views","editViewConfig","Component","actions","tab","Pill","list","NoResults","key","view","entries"],"mappings":"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"}
@@ -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":"AAGA,SAASA,uBAAuB,QAAQ,wBAAuB;AAC/D,SAASC,kBAAkB,QAAQ,0BAAyB;AAC5D,SAASC,yBAAyB,QAAQ,qBAAoB;AAC9D,SAASC,cAAc,QAAQ,sBAAqB;AAEpD,OAAO,SAASC,cAAc,EAC5BC,cAAc,EACdC,OAAO,EACPC,MAAM,EACNC,SAAS,EACTC,OAAO,EAOR;IACCR,mBAAmB;QACjBI;QACAC;QACAI,aAAaH,OAAOG,WAAW;QAC/BH;QACAC;QACAC;IACF;IAEAN,eAAe;QACbE;QACAC;QACAC;QACAI,SAASJ,OAAOI,OAAO;QACvBH;QACAC;IACF;IAEA,IAAIF,QAAQK,QAAQ;QAClB,MAAMA,SAASC,OAAOC,MAAM,CAACP,OAAOK,MAAM;QAC1C,IAAIA,QAAQG,QAAQ;YAClBb,0BAA0B;gBACxBG;gBACAC;gBACAC;gBACAS,QAAQJ;gBACRJ;gBACAC;YACF;QACF;IACF;IAEA,IAAI,OAAOF,OAAOU,KAAK,EAAEC,WAAW,UAAU;QAC5Cb,eAAeE,OAAOU,KAAK,EAAEC,QAAQC;IACvC;IAEAd,eAAeE,OAAOU,KAAK,EAAEG,YAAYC;IACzChB,eAAeE,OAAOU,KAAK,EAAEG,YAAYE;IACzCjB,eAAeE,OAAOU,KAAK,EAAEG,YAAYG,QAAQC;IACjDnB,eAAeE,OAAOU,KAAK,EAAEG,YAAYK;IACzC,IAAIlB,OAAOU,KAAK,EAAEG,YAAYM,uBAAuBX,QAAQ;QAC3D,KAAK,MAAMY,wBAAwBpB,OAAOU,KAAK,CAACG,UAAU,CAACM,qBAAqB,CAAE;YAChF,IAAI1B,wBAAwB2B,uBAAuB;gBACjD,KAAK,MAAMC,eAAeD,qBAAqBE,KAAK,CAAE;oBACpDxB,eAAeuB;gBACjB;YACF,OAAO;gBACLvB,eAAesB;YACjB;QACF;IACF;IACAtB,eAAeE,OAAOU,KAAK,EAAEG,YAAYU,UAAUC;IACnD1B,eAAeE,OAAOU,KAAK,EAAEG,YAAYU,UAAUE;IAEnD3B,eAAeE,OAAOU,KAAK,EAAEG,YAAYa;IACzC5B,eAAeE,OAAOU,KAAK,EAAEG,YAAYc;IACzC7B,eAAeE,OAAOU,KAAK,EAAEG,YAAYe;IACzC9B,eAAeE,OAAOU,KAAK,EAAEG,YAAYgB;IACzC/B,eAAeE,OAAOU,KAAK,EAAEG,YAAYiB;IACzChC,eAAeE,OAAOU,KAAK,EAAEG,YAAYkB;IACzCjC,eAAeE,OAAOU,KAAK,EAAEG,YAAYmB;IACzClC,eAAeE,OAAOU,KAAK,EAAEG,YAAYoB;IACzCnC,eAAeE,OAAOU,KAAK,EAAEG,YAAYqB;IAEzCpC,eAAeE,OAAOU,KAAK,EAAEG,YAAYsB;IAEzC,eAAe;IACf,IAAInC,OAAOU,KAAK,EAAEG,YAAYuB,SAASC,MAAM7B,QAAQ;QACnD,KAAK,MAAM8B,OAAOtC,OAAOU,KAAK,CAACG,UAAU,CAACuB,OAAO,CAACC,IAAI,CAAE;YACtDvC,eAAewC,IAAIzB,UAAU,CAACW,IAAI;YAClC1B,eAAewC,IAAIzB,UAAU,CAAC0B,OAAO;QACvC;IACF;IAEA,IAAIvC,OAAOU,KAAK,EAAEG,YAAY2B,OAAO;QACnC,IAAIlC,OAAOmC,IAAI,CAACzC,OAAOU,KAAK,EAAEG,YAAY2B,QAAQhC,QAAQ;YACxD,IAAK,MAAMkC,OAAO1C,OAAOU,KAAK,EAAEG,YAAY2B,MAAO;gBACjD,MAAMG,kBAAkB3C,OAAOU,KAAK,EAAEG,YAAY2B,KAAK,CAACE,IAAI;gBAC5D5C,eAAe6C,iBAAiB/B;YAClC;QACF;IACF;IAEA,IAAIZ,OAAOU,KAAK,EAAEkC,WAAWC,SAASrC,QAAQ;QAC5C,KAAK,MAAMsC,mBAAmB9C,OAAOU,KAAK,CAACkC,SAAS,CAACC,OAAO,CAAE;YAC5D/C,eAAegD,gBAAgBlC,SAAS;YACxC,IAAIkC,gBAAgBrC,MAAM,EAAED,QAAQ;gBAClCb,0BAA0B;oBACxBG;oBACAC;oBACAC;oBACAS,QAAQqC,gBAAgBrC,MAAM;oBAC9BR;oBACAC;gBACF;YACF;QACF;IACF;IAEA,IAAIF,QAAQU,OAAOT,WAAW8C,YAAYvC,QAAQ;QAChD,KAAK,MAAMwC,aAAahD,OAAOU,KAAK,CAACT,SAAS,CAAC8C,UAAU,CAAE;YACzDC,UAAU;gBACRlD;gBACAC;gBACAC;gBACAC;gBACAC;YACF;QACF;IACF;IAEA,IAAIF,QAAQU,OAAOuC,cAAc;QAC/B,KAAK,MAAMC,cAAc5C,OAAOC,MAAM,CAACP,OAAOU,KAAK,CAACuC,YAAY,EAAG;YACjEnD,eAAeoD,WAAWC,IAAI;QAChC;IACF;AAEA;;;;;;;;;;;;;;GAcC,GAAG,qKAAqK;AAC3K"}
@@ -1 +1 @@
1
- {"version":3,"file":"iterateFields.d.ts","sourceRoot":"","sources":["../../../src/bin/generateImportMap/iterateFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAe5E,wBAAgB,yBAAyB,CAAC,EACxC,cAAc,EACd,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,CAAA;IACjC,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;CACjB,QAmFA"}
1
+ {"version":3,"file":"iterateFields.d.ts","sourceRoot":"","sources":["../../../src/bin/generateImportMap/iterateFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAkB5E,wBAAgB,yBAAyB,CAAC,EACxC,cAAc,EACd,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,CAAA;IACjC,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;CACjB,QAmFA"}
@@ -1,4 +1,7 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */ function hasKey(obj, key) {
1
+ /* eslint-disable @typescript-eslint/no-unused-expressions */ // Only checks that `obj` has `key`.
2
+ // Keep this narrow: adding `& T` makes TypeScript expand large field types at every call,
3
+ // and callers already read components from `field` directly and don't need extra type info from this function.
4
+ function hasKey(obj, key) {
2
5
  return obj != null && Object.prototype.hasOwnProperty.call(obj, key);
3
6
  }
4
7
  const defaultUIFieldComponentKeys = [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/bin/generateImportMap/iterateFields.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-expressions */\nimport type { PayloadComponent, SanitizedConfig } from '../../config/types.js'\nimport type { Block, Field, Tab } from '../../fields/config/types.js'\nimport type { AddToImportMap, Imports, InternalImportMap } from './index.js'\n\nfunction hasKey<T, K extends string>(\n obj: null | T | undefined,\n key: K,\n): obj is { [P in K]: PayloadComponent | PayloadComponent[] } & T {\n return obj != null && Object.prototype.hasOwnProperty.call(obj, key)\n}\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\nexport function genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields,\n importMap,\n imports,\n}: {\n addToImportMap: AddToImportMap\n baseDir: string\n config: SanitizedConfig\n fields: Block[] | Field[] | Tab[]\n importMap: InternalImportMap\n imports: Imports\n}) {\n for (const field of fields) {\n if ('fields' in field) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: field.fields,\n importMap,\n imports,\n })\n } else if (field.type === 'blocks') {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: field.blocks.filter((block) => typeof block !== 'string'),\n importMap,\n imports,\n })\n } else if (field.type === 'tabs') {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: field.tabs,\n importMap,\n imports,\n })\n } else if (field.type === 'richText') {\n if (\n field?.editor &&\n typeof field.editor === 'object' &&\n field.editor.generateImportMap &&\n typeof field.editor.generateImportMap === 'function'\n ) {\n field.editor.generateImportMap({\n addToImportMap,\n baseDir,\n config,\n importMap,\n imports,\n })\n }\n } else if (field.type === 'ui') {\n if (field?.admin?.components) {\n // Render any extra, untyped components\n for (const key in field.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n addToImportMap(field.admin.components[key])\n }\n }\n }\n\n hasKey(field?.admin, 'jsx') && addToImportMap(field.admin.jsx) // For Blocks\n\n hasKey(field?.admin?.components, 'Label') && addToImportMap(field.admin.components.Label)\n\n hasKey(field?.admin?.components, 'Block') && addToImportMap(field.admin.components.Block)\n\n hasKey(field?.admin?.components, 'Cell') && addToImportMap(field?.admin?.components?.Cell)\n\n hasKey(field?.admin?.components, 'Description') &&\n addToImportMap(field?.admin?.components?.Description)\n\n hasKey(field?.admin?.components, 'Field') && addToImportMap(field?.admin?.components?.Field)\n hasKey(field?.admin?.components, 'Filter') && addToImportMap(field?.admin?.components?.Filter)\n\n hasKey(field?.admin?.components, 'Error') && addToImportMap(field?.admin?.components?.Error)\n\n hasKey(field?.admin?.components, 'afterInput') &&\n addToImportMap(field?.admin?.components?.afterInput)\n\n hasKey(field?.admin?.components, 'beforeInput') &&\n addToImportMap(field?.admin?.components?.beforeInput)\n\n hasKey(field?.admin?.components, 'RowLabel') &&\n addToImportMap(field?.admin?.components?.RowLabel)\n\n hasKey(field?.admin?.components, 'Diff') && addToImportMap(field?.admin?.components?.Diff)\n }\n}\n"],"names":["hasKey","obj","key","Object","prototype","hasOwnProperty","call","defaultUIFieldComponentKeys","genImportMapIterateFields","addToImportMap","baseDir","config","fields","importMap","imports","field","type","blocks","filter","block","tabs","editor","generateImportMap","admin","components","jsx","Label","Block","Cell","Description","Field","Filter","Error","afterInput","beforeInput","RowLabel","Diff"],"mappings":"AAAA,2DAA2D,GAK3D,SAASA,OACPC,GAAyB,EACzBC,GAAM;IAEN,OAAOD,OAAO,QAAQE,OAAOC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,KAAKC;AAClE;AAEA,MAAMK,8BAAkF;IACtF;IACA;IACA;IACA;CACD;AACD,OAAO,SAASC,0BAA0B,EACxCC,cAAc,EACdC,OAAO,EACPC,MAAM,EACNC,MAAM,EACNC,SAAS,EACTC,OAAO,EAQR;IACC,KAAK,MAAMC,SAASH,OAAQ;QAC1B,IAAI,YAAYG,OAAO;YACrBP,0BAA0B;gBACxBC;gBACAC;gBACAC;gBACAC,QAAQG,MAAMH,MAAM;gBACpBC;gBACAC;YACF;QACF,OAAO,IAAIC,MAAMC,IAAI,KAAK,UAAU;YAClCR,0BAA0B;gBACxBC;gBACAC;gBACAC;gBACAC,QAAQG,MAAME,MAAM,CAACC,MAAM,CAAC,CAACC,QAAU,OAAOA,UAAU;gBACxDN;gBACAC;YACF;QACF,OAAO,IAAIC,MAAMC,IAAI,KAAK,QAAQ;YAChCR,0BAA0B;gBACxBC;gBACAC;gBACAC;gBACAC,QAAQG,MAAMK,IAAI;gBAClBP;gBACAC;YACF;QACF,OAAO,IAAIC,MAAMC,IAAI,KAAK,YAAY;YACpC,IACED,OAAOM,UACP,OAAON,MAAMM,MAAM,KAAK,YACxBN,MAAMM,MAAM,CAACC,iBAAiB,IAC9B,OAAOP,MAAMM,MAAM,CAACC,iBAAiB,KAAK,YAC1C;gBACAP,MAAMM,MAAM,CAACC,iBAAiB,CAAC;oBAC7Bb;oBACAC;oBACAC;oBACAE;oBACAC;gBACF;YACF;QACF,OAAO,IAAIC,MAAMC,IAAI,KAAK,MAAM;YAC9B,IAAID,OAAOQ,OAAOC,YAAY;gBAC5B,uCAAuC;gBACvC,IAAK,MAAMtB,OAAOa,MAAMQ,KAAK,CAACC,UAAU,CAAE;oBACxC,IAAItB,OAAOK,6BAA6B;wBACtC;oBACF;oBACAE,eAAeM,MAAMQ,KAAK,CAACC,UAAU,CAACtB,IAAI;gBAC5C;YACF;QACF;QAEAF,OAAOe,OAAOQ,OAAO,UAAUd,eAAeM,MAAMQ,KAAK,CAACE,GAAG,GAAE,aAAa;QAE5EzB,OAAOe,OAAOQ,OAAOC,YAAY,YAAYf,eAAeM,MAAMQ,KAAK,CAACC,UAAU,CAACE,KAAK;QAExF1B,OAAOe,OAAOQ,OAAOC,YAAY,YAAYf,eAAeM,MAAMQ,KAAK,CAACC,UAAU,CAACG,KAAK;QAExF3B,OAAOe,OAAOQ,OAAOC,YAAY,WAAWf,eAAeM,OAAOQ,OAAOC,YAAYI;QAErF5B,OAAOe,OAAOQ,OAAOC,YAAY,kBAC/Bf,eAAeM,OAAOQ,OAAOC,YAAYK;QAE3C7B,OAAOe,OAAOQ,OAAOC,YAAY,YAAYf,eAAeM,OAAOQ,OAAOC,YAAYM;QACtF9B,OAAOe,OAAOQ,OAAOC,YAAY,aAAaf,eAAeM,OAAOQ,OAAOC,YAAYO;QAEvF/B,OAAOe,OAAOQ,OAAOC,YAAY,YAAYf,eAAeM,OAAOQ,OAAOC,YAAYQ;QAEtFhC,OAAOe,OAAOQ,OAAOC,YAAY,iBAC/Bf,eAAeM,OAAOQ,OAAOC,YAAYS;QAE3CjC,OAAOe,OAAOQ,OAAOC,YAAY,kBAC/Bf,eAAeM,OAAOQ,OAAOC,YAAYU;QAE3ClC,OAAOe,OAAOQ,OAAOC,YAAY,eAC/Bf,eAAeM,OAAOQ,OAAOC,YAAYW;QAE3CnC,OAAOe,OAAOQ,OAAOC,YAAY,WAAWf,eAAeM,OAAOQ,OAAOC,YAAYY;IACvF;AACF"}
1
+ {"version":3,"sources":["../../../src/bin/generateImportMap/iterateFields.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-expressions */\nimport type { PayloadComponent, SanitizedConfig } from '../../config/types.js'\nimport type { Block, Field, Tab } from '../../fields/config/types.js'\nimport type { AddToImportMap, Imports, InternalImportMap } from './index.js'\n\n// Only checks that `obj` has `key`.\n// Keep this narrow: adding `& T` makes TypeScript expand large field types at every call,\n// and callers already read components from `field` directly and don't need extra type info from this function.\nfunction hasKey<K extends string>(\n obj: unknown,\n key: K,\n): obj is { [P in K]: PayloadComponent | PayloadComponent[] } {\n return obj != null && Object.prototype.hasOwnProperty.call(obj, key)\n}\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\nexport function genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields,\n importMap,\n imports,\n}: {\n addToImportMap: AddToImportMap\n baseDir: string\n config: SanitizedConfig\n fields: Block[] | Field[] | Tab[]\n importMap: InternalImportMap\n imports: Imports\n}) {\n for (const field of fields) {\n if ('fields' in field) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: field.fields,\n importMap,\n imports,\n })\n } else if (field.type === 'blocks') {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: field.blocks.filter((block) => typeof block !== 'string'),\n importMap,\n imports,\n })\n } else if (field.type === 'tabs') {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: field.tabs,\n importMap,\n imports,\n })\n } else if (field.type === 'richText') {\n if (\n field?.editor &&\n typeof field.editor === 'object' &&\n field.editor.generateImportMap &&\n typeof field.editor.generateImportMap === 'function'\n ) {\n field.editor.generateImportMap({\n addToImportMap,\n baseDir,\n config,\n importMap,\n imports,\n })\n }\n } else if (field.type === 'ui') {\n if (field?.admin?.components) {\n // Render any extra, untyped components\n for (const key in field.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n addToImportMap(field.admin.components[key])\n }\n }\n }\n\n hasKey(field?.admin, 'jsx') && addToImportMap(field.admin.jsx) // For Blocks\n\n hasKey(field?.admin?.components, 'Label') && addToImportMap(field.admin.components.Label)\n\n hasKey(field?.admin?.components, 'Block') && addToImportMap(field.admin.components.Block)\n\n hasKey(field?.admin?.components, 'Cell') && addToImportMap(field?.admin?.components?.Cell)\n\n hasKey(field?.admin?.components, 'Description') &&\n addToImportMap(field?.admin?.components?.Description)\n\n hasKey(field?.admin?.components, 'Field') && addToImportMap(field?.admin?.components?.Field)\n hasKey(field?.admin?.components, 'Filter') && addToImportMap(field?.admin?.components?.Filter)\n\n hasKey(field?.admin?.components, 'Error') && addToImportMap(field?.admin?.components?.Error)\n\n hasKey(field?.admin?.components, 'afterInput') &&\n addToImportMap(field?.admin?.components?.afterInput)\n\n hasKey(field?.admin?.components, 'beforeInput') &&\n addToImportMap(field?.admin?.components?.beforeInput)\n\n hasKey(field?.admin?.components, 'RowLabel') &&\n addToImportMap(field?.admin?.components?.RowLabel)\n\n hasKey(field?.admin?.components, 'Diff') && addToImportMap(field?.admin?.components?.Diff)\n }\n}\n"],"names":["hasKey","obj","key","Object","prototype","hasOwnProperty","call","defaultUIFieldComponentKeys","genImportMapIterateFields","addToImportMap","baseDir","config","fields","importMap","imports","field","type","blocks","filter","block","tabs","editor","generateImportMap","admin","components","jsx","Label","Block","Cell","Description","Field","Filter","Error","afterInput","beforeInput","RowLabel","Diff"],"mappings":"AAAA,2DAA2D,GAK3D,oCAAoC;AACpC,0FAA0F;AAC1F,+GAA+G;AAC/G,SAASA,OACPC,GAAY,EACZC,GAAM;IAEN,OAAOD,OAAO,QAAQE,OAAOC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,KAAKC;AAClE;AAEA,MAAMK,8BAAkF;IACtF;IACA;IACA;IACA;CACD;AACD,OAAO,SAASC,0BAA0B,EACxCC,cAAc,EACdC,OAAO,EACPC,MAAM,EACNC,MAAM,EACNC,SAAS,EACTC,OAAO,EAQR;IACC,KAAK,MAAMC,SAASH,OAAQ;QAC1B,IAAI,YAAYG,OAAO;YACrBP,0BAA0B;gBACxBC;gBACAC;gBACAC;gBACAC,QAAQG,MAAMH,MAAM;gBACpBC;gBACAC;YACF;QACF,OAAO,IAAIC,MAAMC,IAAI,KAAK,UAAU;YAClCR,0BAA0B;gBACxBC;gBACAC;gBACAC;gBACAC,QAAQG,MAAME,MAAM,CAACC,MAAM,CAAC,CAACC,QAAU,OAAOA,UAAU;gBACxDN;gBACAC;YACF;QACF,OAAO,IAAIC,MAAMC,IAAI,KAAK,QAAQ;YAChCR,0BAA0B;gBACxBC;gBACAC;gBACAC;gBACAC,QAAQG,MAAMK,IAAI;gBAClBP;gBACAC;YACF;QACF,OAAO,IAAIC,MAAMC,IAAI,KAAK,YAAY;YACpC,IACED,OAAOM,UACP,OAAON,MAAMM,MAAM,KAAK,YACxBN,MAAMM,MAAM,CAACC,iBAAiB,IAC9B,OAAOP,MAAMM,MAAM,CAACC,iBAAiB,KAAK,YAC1C;gBACAP,MAAMM,MAAM,CAACC,iBAAiB,CAAC;oBAC7Bb;oBACAC;oBACAC;oBACAE;oBACAC;gBACF;YACF;QACF,OAAO,IAAIC,MAAMC,IAAI,KAAK,MAAM;YAC9B,IAAID,OAAOQ,OAAOC,YAAY;gBAC5B,uCAAuC;gBACvC,IAAK,MAAMtB,OAAOa,MAAMQ,KAAK,CAACC,UAAU,CAAE;oBACxC,IAAItB,OAAOK,6BAA6B;wBACtC;oBACF;oBACAE,eAAeM,MAAMQ,KAAK,CAACC,UAAU,CAACtB,IAAI;gBAC5C;YACF;QACF;QAEAF,OAAOe,OAAOQ,OAAO,UAAUd,eAAeM,MAAMQ,KAAK,CAACE,GAAG,GAAE,aAAa;QAE5EzB,OAAOe,OAAOQ,OAAOC,YAAY,YAAYf,eAAeM,MAAMQ,KAAK,CAACC,UAAU,CAACE,KAAK;QAExF1B,OAAOe,OAAOQ,OAAOC,YAAY,YAAYf,eAAeM,MAAMQ,KAAK,CAACC,UAAU,CAACG,KAAK;QAExF3B,OAAOe,OAAOQ,OAAOC,YAAY,WAAWf,eAAeM,OAAOQ,OAAOC,YAAYI;QAErF5B,OAAOe,OAAOQ,OAAOC,YAAY,kBAC/Bf,eAAeM,OAAOQ,OAAOC,YAAYK;QAE3C7B,OAAOe,OAAOQ,OAAOC,YAAY,YAAYf,eAAeM,OAAOQ,OAAOC,YAAYM;QACtF9B,OAAOe,OAAOQ,OAAOC,YAAY,aAAaf,eAAeM,OAAOQ,OAAOC,YAAYO;QAEvF/B,OAAOe,OAAOQ,OAAOC,YAAY,YAAYf,eAAeM,OAAOQ,OAAOC,YAAYQ;QAEtFhC,OAAOe,OAAOQ,OAAOC,YAAY,iBAC/Bf,eAAeM,OAAOQ,OAAOC,YAAYS;QAE3CjC,OAAOe,OAAOQ,OAAOC,YAAY,kBAC/Bf,eAAeM,OAAOQ,OAAOC,YAAYU;QAE3ClC,OAAOe,OAAOQ,OAAOC,YAAY,eAC/Bf,eAAeM,OAAOQ,OAAOC,YAAYW;QAE3CnC,OAAOe,OAAOQ,OAAOC,YAAY,WAAWf,eAAeM,OAAOQ,OAAOC,YAAYY;IACvF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getFromImportMap.d.ts","sourceRoot":"","sources":["../../../../src/bin/generateImportMap/utilities/getFromImportMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAI5C,eAAO,MAAM,gBAAgB,GAAI,OAAO,EAAE,MAAM;IAC9C,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,KAAG,OAuBH,CAAA"}
1
+ {"version":3,"file":"getFromImportMap.d.ts","sourceRoot":"","sources":["../../../../src/bin/generateImportMap/utilities/getFromImportMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAI5C,eAAO,MAAM,gBAAgB,GAAI,OAAO,QAAQ;IAC9C,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,KAAG,OAuBH,CAAA"}
@@ -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":"AA+BA;;;;;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"}
@@ -1,5 +1,6 @@
1
1
  import fs from 'fs/promises';
2
2
  import path from 'path';
3
+ import { NEXT_PAYLOAD_ROUTE_GROUP, TANSTACK_PAYLOAD_DIR } from '../../frameworkConventions.js';
3
4
  async function pathOrFileExists(path) {
4
5
  try {
5
6
  await fs.access(path);
@@ -8,9 +9,27 @@ async function pathOrFileExists(path) {
8
9
  return false;
9
10
  }
10
11
  }
12
+ /**
13
+ * Default directory patterns for import map resolution, covering the supported
14
+ * framework conventions. Directories are probed in order and the first existing
15
+ * one wins; the conventions are mutually exclusive in practice, so a Next.js app
16
+ * never matches the TanStack patterns and vice versa.
17
+ *
18
+ * Adapters with a bespoke layout can still bypass this via `candidateDirectories`.
19
+ */ const defaultCandidateDirectories = (rootDir, adminRoute)=>[
20
+ // Next.js App Router: `(payload)` route group nested under the admin route
21
+ path.resolve(rootDir, `app/${NEXT_PAYLOAD_ROUTE_GROUP}${adminRoute}/`),
22
+ path.resolve(rootDir, `src/app/${NEXT_PAYLOAD_ROUTE_GROUP}${adminRoute}/`),
23
+ // TanStack Start: `_payload` pathless route folder at the app root
24
+ path.resolve(rootDir, `app/${TANSTACK_PAYLOAD_DIR}/`),
25
+ path.resolve(rootDir, `src/app/${TANSTACK_PAYLOAD_DIR}/`)
26
+ ];
11
27
  /**
12
28
  * 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 }) {
29
+ *
30
+ * @param candidateDirectories - Optional array of directory paths to search for the import map.
31
+ * Defaults to Next.js app directory convention. Framework adapters can provide their own.
32
+ */ export async function resolveImportMapFilePath({ adminRoute = '/admin', candidateDirectories, importMapFile, rootDir }) {
14
33
  let importMapFilePath = undefined;
15
34
  if (importMapFile?.length) {
16
35
  if (!await pathOrFileExists(importMapFile)) {
@@ -24,24 +43,20 @@ async function pathOrFileExists(path) {
24
43
  }
25
44
  importMapFilePath = importMapFile;
26
45
  } 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
- });
46
+ const directories = candidateDirectories ?? defaultCandidateDirectories(rootDir, adminRoute);
47
+ for (const dir of directories){
48
+ if (await pathOrFileExists(dir)) {
49
+ importMapFilePath = path.resolve(dir, 'importMap.js');
50
+ if (!await pathOrFileExists(importMapFilePath)) {
51
+ await fs.writeFile(importMapFilePath, '', {
52
+ flag: 'wx'
53
+ });
54
+ }
55
+ break;
35
56
  }
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}`);
57
+ }
58
+ if (!importMapFilePath) {
59
+ return new Error(`Could not find Payload import map folder. Looked in ${directories.join(' and ')}`);
45
60
  }
46
61
  }
47
62
  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\nimport { NEXT_PAYLOAD_ROUTE_GROUP, TANSTACK_PAYLOAD_DIR } from '../../frameworkConventions.js'\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 import map resolution, covering the supported\n * framework conventions. Directories are probed in order and the first existing\n * one wins; the conventions are mutually exclusive in practice, so a Next.js app\n * never matches the TanStack patterns and vice versa.\n *\n * Adapters with a bespoke layout can still bypass this via `candidateDirectories`.\n */\nconst defaultCandidateDirectories = (rootDir: string, adminRoute: string): string[] => [\n // Next.js App Router: `(payload)` route group nested under the admin route\n path.resolve(rootDir, `app/${NEXT_PAYLOAD_ROUTE_GROUP}${adminRoute}/`),\n path.resolve(rootDir, `src/app/${NEXT_PAYLOAD_ROUTE_GROUP}${adminRoute}/`),\n // TanStack Start: `_payload` pathless route folder at the app root\n path.resolve(rootDir, `app/${TANSTACK_PAYLOAD_DIR}/`),\n path.resolve(rootDir, `src/app/${TANSTACK_PAYLOAD_DIR}/`),\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","NEXT_PAYLOAD_ROUTE_GROUP","TANSTACK_PAYLOAD_DIR","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,SAASC,wBAAwB,EAAEC,oBAAoB,QAAQ,gCAA+B;AAE9F,eAAeC,iBAAiBH,IAAY;IAC1C,IAAI;QACF,MAAMD,GAAGK,MAAM,CAACJ;QAChB,OAAO;IACT,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEA;;;;;;;CAOC,GACD,MAAMK,8BAA8B,CAACC,SAAiBC,aAAiC;QACrF,2EAA2E;QAC3EP,KAAKQ,OAAO,CAACF,SAAS,CAAC,IAAI,EAAEL,2BAA2BM,WAAW,CAAC,CAAC;QACrEP,KAAKQ,OAAO,CAACF,SAAS,CAAC,QAAQ,EAAEL,2BAA2BM,WAAW,CAAC,CAAC;QACzE,mEAAmE;QACnEP,KAAKQ,OAAO,CAACF,SAAS,CAAC,IAAI,EAAEJ,qBAAqB,CAAC,CAAC;QACpDF,KAAKQ,OAAO,CAACF,SAAS,CAAC,QAAQ,EAAEJ,qBAAqB,CAAC,CAAC;KACzD;AAED;;;;;CAKC,GACD,OAAO,eAAeO,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,MAAMZ,GAAGgB,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,oBAAoBZ,KAAKQ,OAAO,CAACa,KAAK;gBACtC,IAAI,CAAE,MAAMlB,iBAAiBS,oBAAqB;oBAChD,MAAMb,GAAGgB,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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,GAAG,qBAgCf,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,GAAG,qBAgCf,CAAA"}
package/dist/bin/index.js CHANGED
@@ -4,6 +4,7 @@ import { pathToFileURL } from 'node:url';
4
4
  import path from 'path';
5
5
  import { findConfig } from '../config/find.js';
6
6
  import { getPayload } from '../index.js';
7
+ import { build } from './build.js';
7
8
  import { generateImportMap } from './generateImportMap/index.js';
8
9
  import { generateTypes } from './generateTypes.js';
9
10
  import { info } from './info.js';
@@ -11,6 +12,7 @@ import { loadEnv } from './loadEnv.js';
11
12
  import { migrate, availableCommands as migrateCommands } from './migrate.js';
12
13
  // Note: this does not account for any user bin scripts
13
14
  const availableScripts = [
15
+ 'build',
14
16
  'generate:db-schema',
15
17
  'generate:importmap',
16
18
  'generate:types',
@@ -121,6 +123,13 @@ async function runBinScript({ args, script }) {
121
123
  await generateImportMap(config);
122
124
  return {};
123
125
  }
126
+ if (script === 'build') {
127
+ await build({
128
+ config
129
+ });
130
+ return {} // build() awaits next build and owns process exit, propagating its code
131
+ ;
132
+ }
124
133
  if (script === 'jobs:run') {
125
134
  const payload = await getPayload({
126
135
  config