payload 3.0.0-alpha.7 → 3.0.0-alpha.70

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 (1339) hide show
  1. package/bin.js +17 -1
  2. package/dist/admin/RichText.d.ts +37 -19
  3. package/dist/admin/RichText.d.ts.map +1 -1
  4. package/dist/admin/RichText.js +2 -5
  5. package/dist/admin/RichText.js.map +1 -0
  6. package/dist/admin/elements/Cell.d.ts +8 -8
  7. package/dist/admin/elements/Cell.d.ts.map +1 -1
  8. package/dist/admin/elements/Cell.js +2 -5
  9. package/dist/admin/elements/Cell.js.map +1 -0
  10. package/dist/admin/elements/DatePicker.js +2 -5
  11. package/dist/admin/elements/DatePicker.js.map +1 -0
  12. package/dist/admin/elements/PreviewButton.d.ts +2 -8
  13. package/dist/admin/elements/PreviewButton.d.ts.map +1 -1
  14. package/dist/admin/elements/PreviewButton.js +2 -5
  15. package/dist/admin/elements/PreviewButton.js.map +1 -0
  16. package/dist/admin/elements/PublishButton.d.ts +2 -10
  17. package/dist/admin/elements/PublishButton.d.ts.map +1 -1
  18. package/dist/admin/elements/PublishButton.js +2 -5
  19. package/dist/admin/elements/PublishButton.js.map +1 -0
  20. package/dist/admin/elements/SaveButton.d.ts +2 -7
  21. package/dist/admin/elements/SaveButton.d.ts.map +1 -1
  22. package/dist/admin/elements/SaveButton.js +2 -5
  23. package/dist/admin/elements/SaveButton.js.map +1 -0
  24. package/dist/admin/elements/SaveDraftButton.d.ts +2 -8
  25. package/dist/admin/elements/SaveDraftButton.d.ts.map +1 -1
  26. package/dist/admin/elements/SaveDraftButton.js +2 -5
  27. package/dist/admin/elements/SaveDraftButton.js.map +1 -0
  28. package/dist/admin/elements/Tab.d.ts +6 -3
  29. package/dist/admin/elements/Tab.d.ts.map +1 -1
  30. package/dist/admin/elements/Tab.js +2 -5
  31. package/dist/admin/elements/Tab.js.map +1 -0
  32. package/dist/admin/elements/WithServerSideProps.d.ts +5 -0
  33. package/dist/admin/elements/WithServerSideProps.d.ts.map +1 -0
  34. package/dist/admin/elements/WithServerSideProps.js +3 -0
  35. package/dist/admin/elements/WithServerSideProps.js.map +1 -0
  36. package/dist/admin/forms/Error.d.ts +1 -0
  37. package/dist/admin/forms/Error.d.ts.map +1 -1
  38. package/dist/admin/forms/Error.js +2 -5
  39. package/dist/admin/forms/Error.js.map +1 -0
  40. package/dist/admin/forms/FieldDescription.d.ts +12 -6
  41. package/dist/admin/forms/FieldDescription.d.ts.map +1 -1
  42. package/dist/admin/forms/FieldDescription.js +2 -5
  43. package/dist/admin/forms/FieldDescription.js.map +1 -0
  44. package/dist/admin/forms/FieldTypes.js +2 -5
  45. package/dist/admin/forms/FieldTypes.js.map +1 -0
  46. package/dist/admin/forms/Form.d.ts +26 -0
  47. package/dist/admin/forms/Form.d.ts.map +1 -1
  48. package/dist/admin/forms/Form.js +2 -5
  49. package/dist/admin/forms/Form.js.map +1 -0
  50. package/dist/admin/forms/Label.d.ts +5 -1
  51. package/dist/admin/forms/Label.d.ts.map +1 -1
  52. package/dist/admin/forms/Label.js +2 -5
  53. package/dist/admin/forms/Label.js.map +1 -0
  54. package/dist/admin/forms/RowLabel.d.ts +3 -9
  55. package/dist/admin/forms/RowLabel.d.ts.map +1 -1
  56. package/dist/admin/forms/RowLabel.js +2 -5
  57. package/dist/admin/forms/RowLabel.js.map +1 -0
  58. package/dist/admin/types.d.ts +16 -18
  59. package/dist/admin/types.d.ts.map +1 -1
  60. package/dist/admin/types.js +2 -5
  61. package/dist/admin/types.js.map +1 -0
  62. package/dist/admin/views/types.d.ts +55 -0
  63. package/dist/admin/views/types.d.ts.map +1 -0
  64. package/dist/admin/views/types.js +3 -0
  65. package/dist/admin/views/types.js.map +1 -0
  66. package/dist/assets/assets.d.js +1 -2
  67. package/dist/assets/assets.d.js.map +1 -0
  68. package/dist/auth/baseFields/accountLock.d.ts +1 -1
  69. package/dist/auth/baseFields/accountLock.d.ts.map +1 -1
  70. package/dist/auth/baseFields/accountLock.js +6 -16
  71. package/dist/auth/baseFields/accountLock.js.map +1 -0
  72. package/dist/auth/baseFields/apiKey.d.ts +1 -1
  73. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  74. package/dist/auth/baseFields/apiKey.js +13 -30
  75. package/dist/auth/baseFields/apiKey.js.map +1 -0
  76. package/dist/auth/baseFields/auth.d.ts +1 -1
  77. package/dist/auth/baseFields/auth.d.ts.map +1 -1
  78. package/dist/auth/baseFields/auth.js +5 -19
  79. package/dist/auth/baseFields/auth.js.map +1 -0
  80. package/dist/auth/baseFields/verification.d.ts +1 -1
  81. package/dist/auth/baseFields/verification.d.ts.map +1 -1
  82. package/dist/auth/baseFields/verification.js +6 -20
  83. package/dist/auth/baseFields/verification.js.map +1 -0
  84. package/dist/auth/cookies.d.ts +22 -6
  85. package/dist/auth/cookies.d.ts.map +1 -1
  86. package/dist/auth/cookies.js +49 -45
  87. package/dist/auth/cookies.js.map +1 -0
  88. package/dist/auth/crypto.js +7 -30
  89. package/dist/auth/crypto.js.map +1 -0
  90. package/dist/auth/defaultAccess.d.ts +2 -2
  91. package/dist/auth/defaultAccess.d.ts.map +1 -1
  92. package/dist/auth/defaultAccess.js +2 -12
  93. package/dist/auth/defaultAccess.js.map +1 -0
  94. package/dist/auth/defaultUser.d.ts +1 -1
  95. package/dist/auth/defaultUser.d.ts.map +1 -1
  96. package/dist/auth/defaultUser.js +6 -21
  97. package/dist/auth/defaultUser.js.map +1 -0
  98. package/dist/auth/executeAccess.d.ts +3 -3
  99. package/dist/auth/executeAccess.d.ts.map +1 -1
  100. package/dist/auth/executeAccess.js +5 -15
  101. package/dist/auth/executeAccess.js.map +1 -0
  102. package/dist/auth/executeAuthStrategies.d.ts +4 -0
  103. package/dist/auth/executeAuthStrategies.d.ts.map +1 -0
  104. package/dist/auth/executeAuthStrategies.js +11 -0
  105. package/dist/auth/executeAuthStrategies.js.map +1 -0
  106. package/dist/auth/extractJWT.d.ts +1 -1
  107. package/dist/auth/extractJWT.d.ts.map +1 -1
  108. package/dist/auth/extractJWT.js +4 -14
  109. package/dist/auth/extractJWT.js.map +1 -0
  110. package/dist/auth/getAccessResults.d.ts +3 -3
  111. package/dist/auth/getAccessResults.d.ts.map +1 -1
  112. package/dist/auth/getAccessResults.js +16 -22
  113. package/dist/auth/getAccessResults.js.map +1 -0
  114. package/dist/auth/getFieldsToSign.d.ts +3 -3
  115. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  116. package/dist/auth/getFieldsToSign.js +5 -15
  117. package/dist/auth/getFieldsToSign.js.map +1 -0
  118. package/dist/auth/index.d.ts +3 -3
  119. package/dist/auth/index.d.ts.map +1 -1
  120. package/dist/auth/index.js +4 -27
  121. package/dist/auth/index.js.map +1 -0
  122. package/dist/auth/isLocked.js +2 -12
  123. package/dist/auth/isLocked.js.map +1 -0
  124. package/dist/auth/operations/access.d.ts +3 -3
  125. package/dist/auth/operations/access.d.ts.map +1 -1
  126. package/dist/auth/operations/access.js +12 -22
  127. package/dist/auth/operations/access.js.map +1 -0
  128. package/dist/auth/operations/auth.d.ts +14 -0
  129. package/dist/auth/operations/auth.d.ts.map +1 -0
  130. package/dist/auth/operations/auth.js +35 -0
  131. package/dist/auth/operations/auth.js.map +1 -0
  132. package/dist/auth/operations/forgotPassword.d.ts +3 -3
  133. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  134. package/dist/auth/operations/forgotPassword.js +27 -39
  135. package/dist/auth/operations/forgotPassword.js.map +1 -0
  136. package/dist/auth/operations/init.d.ts +2 -2
  137. package/dist/auth/operations/init.d.ts.map +1 -1
  138. package/dist/auth/operations/init.js +2 -12
  139. package/dist/auth/operations/init.js.map +1 -0
  140. package/dist/auth/operations/local/auth.d.ts +4 -0
  141. package/dist/auth/operations/local/auth.d.ts.map +1 -0
  142. package/dist/auth/operations/local/auth.js +13 -0
  143. package/dist/auth/operations/local/auth.js.map +1 -0
  144. package/dist/auth/operations/local/forgotPassword.d.ts +4 -4
  145. package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
  146. package/dist/auth/operations/local/forgotPassword.js +8 -18
  147. package/dist/auth/operations/local/forgotPassword.js.map +1 -0
  148. package/dist/auth/operations/local/index.d.ts +6 -5
  149. package/dist/auth/operations/local/index.d.ts.map +1 -1
  150. package/dist/auth/operations/local/index.js +14 -27
  151. package/dist/auth/operations/local/index.js.map +1 -0
  152. package/dist/auth/operations/local/login.d.ts +5 -5
  153. package/dist/auth/operations/local/login.d.ts.map +1 -1
  154. package/dist/auth/operations/local/login.js +8 -18
  155. package/dist/auth/operations/local/login.js.map +1 -0
  156. package/dist/auth/operations/local/resetPassword.d.ts +5 -5
  157. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  158. package/dist/auth/operations/local/resetPassword.js +8 -18
  159. package/dist/auth/operations/local/resetPassword.js.map +1 -0
  160. package/dist/auth/operations/local/unlock.d.ts +4 -4
  161. package/dist/auth/operations/local/unlock.d.ts.map +1 -1
  162. package/dist/auth/operations/local/unlock.js +8 -18
  163. package/dist/auth/operations/local/unlock.js.map +1 -0
  164. package/dist/auth/operations/local/verifyEmail.d.ts +4 -4
  165. package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
  166. package/dist/auth/operations/local/verifyEmail.js +8 -18
  167. package/dist/auth/operations/local/verifyEmail.js.map +1 -0
  168. package/dist/auth/operations/login.d.ts +6 -10
  169. package/dist/auth/operations/login.d.ts.map +1 -1
  170. package/dist/auth/operations/login.js +52 -50
  171. package/dist/auth/operations/login.js.map +1 -0
  172. package/dist/auth/operations/logout.d.ts +3 -3
  173. package/dist/auth/operations/logout.d.ts.map +1 -1
  174. package/dist/auth/operations/logout.js +6 -21
  175. package/dist/auth/operations/logout.js.map +1 -0
  176. package/dist/auth/operations/me.d.ts +7 -7
  177. package/dist/auth/operations/me.d.ts.map +1 -1
  178. package/dist/auth/operations/me.js +4 -19
  179. package/dist/auth/operations/me.js.map +1 -0
  180. package/dist/auth/operations/refresh.d.ts +4 -4
  181. package/dist/auth/operations/refresh.d.ts.map +1 -1
  182. package/dist/auth/operations/refresh.js +19 -34
  183. package/dist/auth/operations/refresh.js.map +1 -0
  184. package/dist/auth/operations/registerFirstUser.d.ts +5 -13
  185. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  186. package/dist/auth/operations/registerFirstUser.js +11 -21
  187. package/dist/auth/operations/registerFirstUser.js.map +1 -0
  188. package/dist/auth/operations/resetPassword.d.ts +3 -3
  189. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  190. package/dist/auth/operations/resetPassword.js +21 -43
  191. package/dist/auth/operations/resetPassword.js.map +1 -0
  192. package/dist/auth/operations/unlock.d.ts +3 -3
  193. package/dist/auth/operations/unlock.d.ts.map +1 -1
  194. package/dist/auth/operations/unlock.js +17 -39
  195. package/dist/auth/operations/unlock.js.map +1 -0
  196. package/dist/auth/operations/verifyEmail.d.ts +3 -3
  197. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  198. package/dist/auth/operations/verifyEmail.js +14 -37
  199. package/dist/auth/operations/verifyEmail.js.map +1 -0
  200. package/dist/auth/sendVerificationEmail.d.ts +9 -10
  201. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  202. package/dist/auth/sendVerificationEmail.js +9 -19
  203. package/dist/auth/sendVerificationEmail.js.map +1 -0
  204. package/dist/auth/strategies/apiKey.d.ts +2 -2
  205. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  206. package/dist/auth/strategies/apiKey.js +6 -19
  207. package/dist/auth/strategies/apiKey.js.map +1 -0
  208. package/dist/auth/strategies/jwt.d.ts +1 -1
  209. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  210. package/dist/auth/strategies/jwt.js +6 -21
  211. package/dist/auth/strategies/jwt.js.map +1 -0
  212. package/dist/auth/strategies/local/authenticate.d.ts +1 -1
  213. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  214. package/dist/auth/strategies/local/authenticate.js +6 -21
  215. package/dist/auth/strategies/local/authenticate.js.map +1 -0
  216. package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
  217. package/dist/auth/strategies/local/generatePasswordSaltHash.js +7 -22
  218. package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -0
  219. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +4 -4
  220. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  221. package/dist/auth/strategies/local/incrementLoginAttempts.js +4 -12
  222. package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -0
  223. package/dist/auth/strategies/local/register.d.ts +4 -4
  224. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  225. package/dist/auth/strategies/local/register.js +9 -16
  226. package/dist/auth/strategies/local/register.js.map +1 -0
  227. package/dist/auth/strategies/local/resetLoginAttempts.d.ts +4 -4
  228. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  229. package/dist/auth/strategies/local/resetLoginAttempts.js +3 -12
  230. package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -0
  231. package/dist/auth/types.d.ts +12 -7
  232. package/dist/auth/types.d.ts.map +1 -1
  233. package/dist/auth/types.js +2 -12
  234. package/dist/auth/types.js.map +1 -0
  235. package/dist/bin/generateTypes.d.ts +1 -1
  236. package/dist/bin/generateTypes.d.ts.map +1 -1
  237. package/dist/bin/generateTypes.js +10 -34
  238. package/dist/bin/generateTypes.js.map +1 -0
  239. package/dist/bin/index.d.ts +1 -1
  240. package/dist/bin/index.d.ts.map +1 -1
  241. package/dist/bin/index.js +25 -69
  242. package/dist/bin/index.js.map +1 -0
  243. package/dist/bin/loadEnv.js +13 -26
  244. package/dist/bin/loadEnv.js.map +1 -0
  245. package/dist/bin/loader/clientExtensions.d.ts +2 -0
  246. package/dist/bin/loader/clientExtensions.d.ts.map +1 -0
  247. package/dist/bin/loader/clientExtensions.js +13 -0
  248. package/dist/bin/loader/clientExtensions.js.map +1 -0
  249. package/dist/bin/loader/compile.d.ts +5 -0
  250. package/dist/bin/loader/compile.d.ts.map +1 -0
  251. package/dist/bin/loader/compile.js +27 -0
  252. package/dist/bin/loader/compile.js.map +1 -0
  253. package/dist/bin/loader/index.d.ts +34 -0
  254. package/dist/bin/loader/index.d.ts.map +1 -0
  255. package/dist/bin/loader/index.js +118 -0
  256. package/dist/bin/loader/index.js.map +1 -0
  257. package/dist/bin/loader/read-default-tsconfig.d.ts +4 -0
  258. package/dist/bin/loader/read-default-tsconfig.d.ts.map +1 -0
  259. package/dist/bin/loader/read-default-tsconfig.js +92 -0
  260. package/dist/bin/loader/read-default-tsconfig.js.map +1 -0
  261. package/dist/bin/loader/resolveOriginalPath.d.ts +10 -0
  262. package/dist/bin/loader/resolveOriginalPath.d.ts.map +1 -0
  263. package/dist/bin/loader/resolveOriginalPath.js +32 -0
  264. package/dist/bin/loader/resolveOriginalPath.js.map +1 -0
  265. package/dist/bin/migrate.d.ts +7 -1
  266. package/dist/bin/migrate.d.ts.map +1 -1
  267. package/dist/bin/migrate.js +12 -37
  268. package/dist/bin/migrate.js.map +1 -0
  269. package/dist/collections/config/build.d.ts +1 -1
  270. package/dist/collections/config/build.d.ts.map +1 -1
  271. package/dist/collections/config/build.js +2 -12
  272. package/dist/collections/config/build.js.map +1 -0
  273. package/dist/collections/config/client.d.ts +326 -0
  274. package/dist/collections/config/client.d.ts.map +1 -0
  275. package/dist/collections/config/client.js +74 -0
  276. package/dist/collections/config/client.js.map +1 -0
  277. package/dist/collections/config/defaults.d.ts +6 -5
  278. package/dist/collections/config/defaults.d.ts.map +1 -1
  279. package/dist/collections/config/defaults.js +10 -32
  280. package/dist/collections/config/defaults.js.map +1 -0
  281. package/dist/collections/config/sanitize.d.ts +3 -4
  282. package/dist/collections/config/sanitize.d.ts.map +1 -1
  283. package/dist/collections/config/sanitize.js +42 -55
  284. package/dist/collections/config/sanitize.js.map +1 -0
  285. package/dist/collections/config/schema.d.ts.map +1 -1
  286. package/dist/collections/config/schema.js +155 -176
  287. package/dist/collections/config/schema.js.map +1 -0
  288. package/dist/collections/config/types.d.ts +54 -71
  289. package/dist/collections/config/types.d.ts.map +1 -1
  290. package/dist/collections/config/types.js +2 -5
  291. package/dist/collections/config/types.js.map +1 -0
  292. package/dist/collections/dataloader.d.ts +16 -2
  293. package/dist/collections/dataloader.d.ts.map +1 -1
  294. package/dist/collections/dataloader.js +35 -37
  295. package/dist/collections/dataloader.js.map +1 -0
  296. package/dist/collections/operations/count.d.ts +13 -0
  297. package/dist/collections/operations/count.d.ts.map +1 -0
  298. package/dist/collections/operations/count.js +75 -0
  299. package/dist/collections/operations/count.js.map +1 -0
  300. package/dist/collections/operations/create.d.ts +5 -13
  301. package/dist/collections/operations/create.d.ts.map +1 -1
  302. package/dist/collections/operations/create.js +40 -58
  303. package/dist/collections/operations/create.js.map +1 -0
  304. package/dist/collections/operations/delete.d.ts +6 -15
  305. package/dist/collections/operations/delete.d.ts.map +1 -1
  306. package/dist/collections/operations/delete.js +28 -42
  307. package/dist/collections/operations/delete.js.map +1 -0
  308. package/dist/collections/operations/deleteByID.d.ts +3 -4
  309. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  310. package/dist/collections/operations/deleteByID.js +28 -42
  311. package/dist/collections/operations/deleteByID.js.map +1 -0
  312. package/dist/collections/operations/docAccess.d.ts +4 -4
  313. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  314. package/dist/collections/operations/docAccess.js +12 -22
  315. package/dist/collections/operations/docAccess.js.map +1 -0
  316. package/dist/collections/operations/duplicate.d.ts +14 -0
  317. package/dist/collections/operations/duplicate.d.ts.map +1 -0
  318. package/dist/collections/operations/duplicate.js +259 -0
  319. package/dist/collections/operations/duplicate.js.map +1 -0
  320. package/dist/collections/operations/find.d.ts +4 -5
  321. package/dist/collections/operations/find.d.ts.map +1 -1
  322. package/dist/collections/operations/find.js +26 -40
  323. package/dist/collections/operations/find.js.map +1 -0
  324. package/dist/collections/operations/findByID.d.ts +3 -3
  325. package/dist/collections/operations/findByID.d.ts.map +1 -1
  326. package/dist/collections/operations/findByID.js +22 -36
  327. package/dist/collections/operations/findByID.js.map +1 -0
  328. package/dist/collections/operations/findVersionByID.d.ts +4 -4
  329. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  330. package/dist/collections/operations/findVersionByID.js +20 -34
  331. package/dist/collections/operations/findVersionByID.js.map +1 -0
  332. package/dist/collections/operations/findVersions.d.ts +5 -6
  333. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  334. package/dist/collections/operations/findVersions.js +21 -35
  335. package/dist/collections/operations/findVersions.js.map +1 -0
  336. package/dist/collections/operations/local/count.d.ts +20 -0
  337. package/dist/collections/operations/local/count.d.ts.map +1 -0
  338. package/dist/collections/operations/local/count.js +19 -0
  339. package/dist/collections/operations/local/count.js.map +1 -0
  340. package/dist/collections/operations/local/create.d.ts +7 -8
  341. package/dist/collections/operations/local/create.d.ts.map +1 -1
  342. package/dist/collections/operations/local/create.js +11 -25
  343. package/dist/collections/operations/local/create.js.map +1 -0
  344. package/dist/collections/operations/local/delete.d.ts +8 -8
  345. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  346. package/dist/collections/operations/local/delete.js +10 -20
  347. package/dist/collections/operations/local/delete.js.map +1 -0
  348. package/dist/collections/operations/local/duplicate.d.ts +21 -0
  349. package/dist/collections/operations/local/duplicate.d.ts.map +1 -0
  350. package/dist/collections/operations/local/duplicate.js +25 -0
  351. package/dist/collections/operations/local/duplicate.js.map +1 -0
  352. package/dist/collections/operations/local/find.d.ts +6 -7
  353. package/dist/collections/operations/local/find.d.ts.map +1 -1
  354. package/dist/collections/operations/local/find.js +8 -18
  355. package/dist/collections/operations/local/find.js.map +1 -0
  356. package/dist/collections/operations/local/findByID.d.ts +5 -7
  357. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  358. package/dist/collections/operations/local/findByID.js +8 -18
  359. package/dist/collections/operations/local/findByID.js.map +1 -0
  360. package/dist/collections/operations/local/findVersionByID.d.ts +6 -7
  361. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  362. package/dist/collections/operations/local/findVersionByID.js +8 -18
  363. package/dist/collections/operations/local/findVersionByID.js.map +1 -0
  364. package/dist/collections/operations/local/findVersions.d.ts +7 -8
  365. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  366. package/dist/collections/operations/local/findVersions.js +8 -18
  367. package/dist/collections/operations/local/findVersions.js.map +1 -0
  368. package/dist/collections/operations/local/index.d.ts +18 -13
  369. package/dist/collections/operations/local/index.d.ts.map +1 -1
  370. package/dist/collections/operations/local/index.js +24 -35
  371. package/dist/collections/operations/local/index.js.map +1 -0
  372. package/dist/collections/operations/local/restoreVersion.d.ts +5 -6
  373. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  374. package/dist/collections/operations/local/restoreVersion.js +8 -18
  375. package/dist/collections/operations/local/restoreVersion.js.map +1 -0
  376. package/dist/collections/operations/local/update.d.ts +7 -8
  377. package/dist/collections/operations/local/update.d.ts.map +1 -1
  378. package/dist/collections/operations/local/update.js +12 -27
  379. package/dist/collections/operations/local/update.js.map +1 -0
  380. package/dist/collections/operations/restoreVersion.d.ts +3 -3
  381. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  382. package/dist/collections/operations/restoreVersion.js +27 -41
  383. package/dist/collections/operations/restoreVersion.js.map +1 -0
  384. package/dist/collections/operations/update.d.ts +6 -11
  385. package/dist/collections/operations/update.d.ts.map +1 -1
  386. package/dist/collections/operations/update.js +48 -61
  387. package/dist/collections/operations/update.js.map +1 -0
  388. package/dist/collections/operations/updateByID.d.ts +5 -13
  389. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  390. package/dist/collections/operations/updateByID.js +48 -61
  391. package/dist/collections/operations/updateByID.js.map +1 -0
  392. package/dist/collections/operations/utils.d.ts +20 -14
  393. package/dist/collections/operations/utils.d.ts.map +1 -1
  394. package/dist/collections/operations/utils.js +3 -12
  395. package/dist/collections/operations/utils.js.map +1 -0
  396. package/dist/config/build.d.ts +1 -1
  397. package/dist/config/build.d.ts.map +1 -1
  398. package/dist/config/build.js +9 -16
  399. package/dist/config/build.js.map +1 -0
  400. package/dist/config/client.d.ts +19 -0
  401. package/dist/config/client.d.ts.map +1 -0
  402. package/dist/config/client.js +67 -0
  403. package/dist/config/client.js.map +1 -0
  404. package/dist/config/defaults.d.ts +1 -1
  405. package/dist/config/defaults.d.ts.map +1 -1
  406. package/dist/config/defaults.js +5 -21
  407. package/dist/config/defaults.js.map +1 -0
  408. package/dist/config/find.d.ts +1 -2
  409. package/dist/config/find.d.ts.map +1 -1
  410. package/dist/config/find.js +38 -43
  411. package/dist/config/find.js.map +1 -0
  412. package/dist/config/sanitize.d.ts +2 -2
  413. package/dist/config/sanitize.d.ts.map +1 -1
  414. package/dist/config/sanitize.js +59 -43
  415. package/dist/config/sanitize.js.map +1 -0
  416. package/dist/config/schema.d.ts.map +1 -1
  417. package/dist/config/schema.js +114 -133
  418. package/dist/config/schema.js.map +1 -0
  419. package/dist/config/shared/adminViewSchema.js +9 -24
  420. package/dist/config/shared/adminViewSchema.js.map +1 -0
  421. package/dist/config/shared/componentSchema.js +21 -50
  422. package/dist/config/shared/componentSchema.js.map +1 -0
  423. package/dist/config/types.d.ts +93 -103
  424. package/dist/config/types.d.ts.map +1 -1
  425. package/dist/config/types.js +4 -25
  426. package/dist/config/types.js.map +1 -0
  427. package/dist/config/validate.d.ts +2 -3
  428. package/dist/config/validate.d.ts.map +1 -1
  429. package/dist/config/validate.js +17 -74
  430. package/dist/config/validate.js.map +1 -0
  431. package/dist/database/combineQueries.d.ts +1 -1
  432. package/dist/database/combineQueries.d.ts.map +1 -1
  433. package/dist/database/combineQueries.js +4 -14
  434. package/dist/database/combineQueries.js.map +1 -0
  435. package/dist/database/createDatabaseAdapter.d.ts +1 -1
  436. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  437. package/dist/database/createDatabaseAdapter.js +14 -24
  438. package/dist/database/createDatabaseAdapter.js.map +1 -0
  439. package/dist/database/flattenWhereToOperators.d.ts +1 -1
  440. package/dist/database/flattenWhereToOperators.d.ts.map +1 -1
  441. package/dist/database/flattenWhereToOperators.js +2 -12
  442. package/dist/database/flattenWhereToOperators.js.map +1 -0
  443. package/dist/database/getLocalizedPaths.d.ts +3 -3
  444. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  445. package/dist/database/getLocalizedPaths.js +7 -22
  446. package/dist/database/getLocalizedPaths.js.map +1 -0
  447. package/dist/database/migrations/createMigration.d.ts +1 -1
  448. package/dist/database/migrations/createMigration.d.ts.map +1 -1
  449. package/dist/database/migrations/createMigration.js +7 -22
  450. package/dist/database/migrations/createMigration.js.map +1 -0
  451. package/dist/database/migrations/getMigrations.d.ts +2 -2
  452. package/dist/database/migrations/getMigrations.d.ts.map +1 -1
  453. package/dist/database/migrations/getMigrations.js +4 -12
  454. package/dist/database/migrations/getMigrations.js.map +1 -0
  455. package/dist/database/migrations/migrate.d.ts +1 -1
  456. package/dist/database/migrations/migrate.d.ts.map +1 -1
  457. package/dist/database/migrations/migrate.js +12 -22
  458. package/dist/database/migrations/migrate.js.map +1 -0
  459. package/dist/database/migrations/migrateDown.d.ts +1 -1
  460. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  461. package/dist/database/migrations/migrateDown.js +12 -22
  462. package/dist/database/migrations/migrateDown.js.map +1 -0
  463. package/dist/database/migrations/migrateRefresh.d.ts +1 -1
  464. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  465. package/dist/database/migrations/migrateRefresh.js +16 -24
  466. package/dist/database/migrations/migrateRefresh.js.map +1 -0
  467. package/dist/database/migrations/migrateReset.d.ts +1 -1
  468. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  469. package/dist/database/migrations/migrateReset.js +12 -22
  470. package/dist/database/migrations/migrateReset.js.map +1 -0
  471. package/dist/database/migrations/migrateStatus.d.ts +1 -1
  472. package/dist/database/migrations/migrateStatus.d.ts.map +1 -1
  473. package/dist/database/migrations/migrateStatus.js +8 -18
  474. package/dist/database/migrations/migrateStatus.js.map +1 -0
  475. package/dist/database/migrations/migrationTemplate.js +2 -12
  476. package/dist/database/migrations/migrationTemplate.js.map +1 -0
  477. package/dist/database/migrations/migrationsCollection.d.ts +1 -1
  478. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  479. package/dist/database/migrations/migrationsCollection.js +2 -12
  480. package/dist/database/migrations/migrationsCollection.js.map +1 -0
  481. package/dist/database/migrations/readMigrationFiles.d.ts +2 -2
  482. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  483. package/dist/database/migrations/readMigrationFiles.js +18 -25
  484. package/dist/database/migrations/readMigrationFiles.js.map +1 -0
  485. package/dist/database/queryValidation/types.d.ts +2 -2
  486. package/dist/database/queryValidation/types.d.ts.map +1 -1
  487. package/dist/database/queryValidation/types.js +2 -5
  488. package/dist/database/queryValidation/types.js.map +1 -0
  489. package/dist/database/queryValidation/validateQueryPaths.d.ts +6 -6
  490. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  491. package/dist/database/queryValidation/validateQueryPaths.js +13 -28
  492. package/dist/database/queryValidation/validateQueryPaths.js.map +1 -0
  493. package/dist/database/queryValidation/validateSearchParams.d.ts +6 -6
  494. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  495. package/dist/database/queryValidation/validateSearchParams.js +18 -25
  496. package/dist/database/queryValidation/validateSearchParams.js.map +1 -0
  497. package/dist/database/types.d.ts +44 -28
  498. package/dist/database/types.d.ts.map +1 -1
  499. package/dist/database/types.js +2 -5
  500. package/dist/database/types.js.map +1 -0
  501. package/dist/email/consoleEmailAdapter.d.ts +3 -0
  502. package/dist/email/consoleEmailAdapter.d.ts.map +1 -0
  503. package/dist/email/consoleEmailAdapter.js +17 -0
  504. package/dist/email/consoleEmailAdapter.js.map +1 -0
  505. package/dist/email/defaults.d.ts +2 -2
  506. package/dist/email/defaults.d.ts.map +1 -1
  507. package/dist/email/defaults.js +4 -14
  508. package/dist/email/defaults.js.map +1 -0
  509. package/dist/email/getStringifiedToAddress.d.ts +3 -0
  510. package/dist/email/getStringifiedToAddress.d.ts.map +1 -0
  511. package/dist/email/getStringifiedToAddress.js +20 -0
  512. package/dist/email/getStringifiedToAddress.js.map +1 -0
  513. package/dist/email/sendEmail.d.ts +3 -2
  514. package/dist/email/sendEmail.d.ts.map +1 -1
  515. package/dist/email/sendEmail.js +9 -15
  516. package/dist/email/sendEmail.js.map +1 -0
  517. package/dist/email/types.d.ts +26 -18
  518. package/dist/email/types.d.ts.map +1 -1
  519. package/dist/email/types.js +6 -5
  520. package/dist/email/types.js.map +1 -0
  521. package/dist/errors/APIError.d.ts +2 -2
  522. package/dist/errors/APIError.d.ts.map +1 -1
  523. package/dist/errors/APIError.js +4 -20
  524. package/dist/errors/APIError.js.map +1 -0
  525. package/dist/errors/AuthenticationError.d.ts +2 -3
  526. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  527. package/dist/errors/AuthenticationError.js +6 -22
  528. package/dist/errors/AuthenticationError.js.map +1 -0
  529. package/dist/errors/DuplicateCollection.d.ts +2 -3
  530. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  531. package/dist/errors/DuplicateCollection.js +3 -19
  532. package/dist/errors/DuplicateCollection.js.map +1 -0
  533. package/dist/errors/DuplicateFieldName.d.ts +2 -3
  534. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  535. package/dist/errors/DuplicateFieldName.js +3 -19
  536. package/dist/errors/DuplicateFieldName.js.map +1 -0
  537. package/dist/errors/DuplicateGlobal.d.ts +3 -4
  538. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  539. package/dist/errors/DuplicateGlobal.js +3 -19
  540. package/dist/errors/DuplicateGlobal.js.map +1 -0
  541. package/dist/errors/ErrorDeletingFile.d.ts +2 -3
  542. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  543. package/dist/errors/ErrorDeletingFile.js +6 -22
  544. package/dist/errors/ErrorDeletingFile.js.map +1 -0
  545. package/dist/errors/FileRetrievalError.d.ts +6 -0
  546. package/dist/errors/FileRetrievalError.d.ts.map +1 -0
  547. package/dist/errors/FileRetrievalError.js +13 -0
  548. package/dist/errors/FileRetrievalError.js.map +1 -0
  549. package/dist/errors/FileUploadError.d.ts +2 -3
  550. package/dist/errors/FileUploadError.d.ts.map +1 -1
  551. package/dist/errors/FileUploadError.js +6 -22
  552. package/dist/errors/FileUploadError.js.map +1 -0
  553. package/dist/errors/Forbidden.d.ts +2 -3
  554. package/dist/errors/Forbidden.d.ts.map +1 -1
  555. package/dist/errors/Forbidden.js +6 -22
  556. package/dist/errors/Forbidden.js.map +1 -0
  557. package/dist/errors/InvalidConfiguration.d.ts +2 -3
  558. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  559. package/dist/errors/InvalidConfiguration.js +5 -21
  560. package/dist/errors/InvalidConfiguration.js.map +1 -0
  561. package/dist/errors/InvalidFieldName.d.ts +3 -4
  562. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  563. package/dist/errors/InvalidFieldName.js +3 -19
  564. package/dist/errors/InvalidFieldName.js.map +1 -0
  565. package/dist/errors/InvalidFieldRelationship.d.ts +3 -4
  566. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  567. package/dist/errors/InvalidFieldRelationship.js +3 -19
  568. package/dist/errors/InvalidFieldRelationship.js.map +1 -0
  569. package/dist/errors/InvalidSchema.d.ts +2 -3
  570. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  571. package/dist/errors/InvalidSchema.js +5 -21
  572. package/dist/errors/InvalidSchema.js.map +1 -0
  573. package/dist/errors/LockedAuth.d.ts +2 -3
  574. package/dist/errors/LockedAuth.d.ts.map +1 -1
  575. package/dist/errors/LockedAuth.js +6 -22
  576. package/dist/errors/LockedAuth.js.map +1 -0
  577. package/dist/errors/MissingCollectionLabel.d.ts +2 -3
  578. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  579. package/dist/errors/MissingCollectionLabel.js +3 -19
  580. package/dist/errors/MissingCollectionLabel.js.map +1 -0
  581. package/dist/errors/MissingEditorProp.d.ts +6 -0
  582. package/dist/errors/MissingEditorProp.d.ts.map +1 -0
  583. package/dist/errors/MissingEditorProp.js +9 -0
  584. package/dist/errors/MissingEditorProp.js.map +1 -0
  585. package/dist/errors/MissingFieldInputOptions.d.ts +3 -4
  586. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  587. package/dist/errors/MissingFieldInputOptions.js +3 -19
  588. package/dist/errors/MissingFieldInputOptions.js.map +1 -0
  589. package/dist/errors/MissingFieldType.d.ts +3 -4
  590. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  591. package/dist/errors/MissingFieldType.js +5 -21
  592. package/dist/errors/MissingFieldType.js.map +1 -0
  593. package/dist/errors/MissingFile.d.ts +2 -3
  594. package/dist/errors/MissingFile.d.ts.map +1 -1
  595. package/dist/errors/MissingFile.js +6 -22
  596. package/dist/errors/MissingFile.js.map +1 -0
  597. package/dist/errors/NotFound.d.ts +2 -3
  598. package/dist/errors/NotFound.d.ts.map +1 -1
  599. package/dist/errors/NotFound.js +6 -22
  600. package/dist/errors/NotFound.js.map +1 -0
  601. package/dist/errors/QueryError.d.ts +2 -3
  602. package/dist/errors/QueryError.d.ts.map +1 -1
  603. package/dist/errors/QueryError.js +5 -21
  604. package/dist/errors/QueryError.js.map +1 -0
  605. package/dist/errors/TimestampsRequired.d.ts +3 -4
  606. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  607. package/dist/errors/TimestampsRequired.js +3 -19
  608. package/dist/errors/TimestampsRequired.js.map +1 -0
  609. package/dist/errors/UnathorizedError.d.ts +2 -3
  610. package/dist/errors/UnathorizedError.d.ts.map +1 -1
  611. package/dist/errors/UnathorizedError.js +6 -22
  612. package/dist/errors/UnathorizedError.js.map +1 -0
  613. package/dist/errors/ValidationError.d.ts +2 -3
  614. package/dist/errors/ValidationError.d.ts.map +1 -1
  615. package/dist/errors/ValidationError.js +7 -23
  616. package/dist/errors/ValidationError.js.map +1 -0
  617. package/dist/errors/index.d.ts +20 -19
  618. package/dist/errors/index.d.ts.map +1 -1
  619. package/dist/errors/index.js +21 -94
  620. package/dist/errors/index.js.map +1 -0
  621. package/dist/errors/types.d.ts +1 -1
  622. package/dist/errors/types.d.ts.map +1 -1
  623. package/dist/errors/types.js +2 -19
  624. package/dist/errors/types.js.map +1 -0
  625. package/dist/exports/auth.d.ts +6 -5
  626. package/dist/exports/auth.d.ts.map +1 -1
  627. package/dist/exports/auth.js +6 -44
  628. package/dist/exports/auth.js.map +1 -0
  629. package/dist/exports/components/utilities.js +1 -2
  630. package/dist/exports/components/utilities.js.map +1 -0
  631. package/dist/exports/config.d.ts +13 -10
  632. package/dist/exports/config.d.ts.map +1 -1
  633. package/dist/exports/config.js +13 -59
  634. package/dist/exports/config.js.map +1 -0
  635. package/dist/exports/database.d.ts +22 -22
  636. package/dist/exports/database.d.ts.map +1 -1
  637. package/dist/exports/database.js +21 -108
  638. package/dist/exports/database.js.map +1 -0
  639. package/dist/exports/errors.d.ts +1 -1
  640. package/dist/exports/errors.d.ts.map +1 -1
  641. package/dist/exports/errors.js +2 -68
  642. package/dist/exports/errors.js.map +1 -0
  643. package/dist/exports/fields/index.d.ts +2 -2
  644. package/dist/exports/fields/index.d.ts.map +1 -1
  645. package/dist/exports/fields/index.js +3 -26
  646. package/dist/exports/fields/index.js.map +1 -0
  647. package/dist/exports/fields/validations.d.ts +1 -1
  648. package/dist/exports/fields/validations.d.ts.map +1 -1
  649. package/dist/exports/fields/validations.js +2 -19
  650. package/dist/exports/fields/validations.js.map +1 -0
  651. package/dist/exports/i18n/ar.d.ts +2 -0
  652. package/dist/exports/i18n/ar.d.ts.map +1 -0
  653. package/dist/exports/i18n/ar.js +3 -0
  654. package/dist/exports/i18n/ar.js.map +1 -0
  655. package/dist/exports/i18n/az.d.ts +2 -0
  656. package/dist/exports/i18n/az.d.ts.map +1 -0
  657. package/dist/exports/i18n/az.js +3 -0
  658. package/dist/exports/i18n/az.js.map +1 -0
  659. package/dist/exports/i18n/bg.d.ts +2 -0
  660. package/dist/exports/i18n/bg.d.ts.map +1 -0
  661. package/dist/exports/i18n/bg.js +3 -0
  662. package/dist/exports/i18n/bg.js.map +1 -0
  663. package/dist/exports/i18n/cs.d.ts +2 -0
  664. package/dist/exports/i18n/cs.d.ts.map +1 -0
  665. package/dist/exports/i18n/cs.js +3 -0
  666. package/dist/exports/i18n/cs.js.map +1 -0
  667. package/dist/exports/i18n/de.d.ts +2 -0
  668. package/dist/exports/i18n/de.d.ts.map +1 -0
  669. package/dist/exports/i18n/de.js +3 -0
  670. package/dist/exports/i18n/de.js.map +1 -0
  671. package/dist/exports/i18n/en.d.ts +2 -0
  672. package/dist/exports/i18n/en.d.ts.map +1 -0
  673. package/dist/exports/i18n/en.js +3 -0
  674. package/dist/exports/i18n/en.js.map +1 -0
  675. package/dist/exports/i18n/es.d.ts +2 -0
  676. package/dist/exports/i18n/es.d.ts.map +1 -0
  677. package/dist/exports/i18n/es.js +3 -0
  678. package/dist/exports/i18n/es.js.map +1 -0
  679. package/dist/exports/i18n/fa.d.ts +2 -0
  680. package/dist/exports/i18n/fa.d.ts.map +1 -0
  681. package/dist/exports/i18n/fa.js +3 -0
  682. package/dist/exports/i18n/fa.js.map +1 -0
  683. package/dist/exports/i18n/fr.d.ts +2 -0
  684. package/dist/exports/i18n/fr.d.ts.map +1 -0
  685. package/dist/exports/i18n/fr.js +3 -0
  686. package/dist/exports/i18n/fr.js.map +1 -0
  687. package/dist/exports/i18n/hr.d.ts +2 -0
  688. package/dist/exports/i18n/hr.d.ts.map +1 -0
  689. package/dist/exports/i18n/hr.js +3 -0
  690. package/dist/exports/i18n/hr.js.map +1 -0
  691. package/dist/exports/i18n/hu.d.ts +2 -0
  692. package/dist/exports/i18n/hu.d.ts.map +1 -0
  693. package/dist/exports/i18n/hu.js +3 -0
  694. package/dist/exports/i18n/hu.js.map +1 -0
  695. package/dist/exports/i18n/it.d.ts +2 -0
  696. package/dist/exports/i18n/it.d.ts.map +1 -0
  697. package/dist/exports/i18n/it.js +3 -0
  698. package/dist/exports/i18n/it.js.map +1 -0
  699. package/dist/exports/i18n/ja.d.ts +2 -0
  700. package/dist/exports/i18n/ja.d.ts.map +1 -0
  701. package/dist/exports/i18n/ja.js +3 -0
  702. package/dist/exports/i18n/ja.js.map +1 -0
  703. package/dist/exports/i18n/ko.d.ts +2 -0
  704. package/dist/exports/i18n/ko.d.ts.map +1 -0
  705. package/dist/exports/i18n/ko.js +3 -0
  706. package/dist/exports/i18n/ko.js.map +1 -0
  707. package/dist/exports/i18n/my.d.ts +2 -0
  708. package/dist/exports/i18n/my.d.ts.map +1 -0
  709. package/dist/exports/i18n/my.js +3 -0
  710. package/dist/exports/i18n/my.js.map +1 -0
  711. package/dist/exports/i18n/nb.d.ts +2 -0
  712. package/dist/exports/i18n/nb.d.ts.map +1 -0
  713. package/dist/exports/i18n/nb.js +3 -0
  714. package/dist/exports/i18n/nb.js.map +1 -0
  715. package/dist/exports/i18n/nl.d.ts +2 -0
  716. package/dist/exports/i18n/nl.d.ts.map +1 -0
  717. package/dist/exports/i18n/nl.js +3 -0
  718. package/dist/exports/i18n/nl.js.map +1 -0
  719. package/dist/exports/i18n/pl.d.ts +2 -0
  720. package/dist/exports/i18n/pl.d.ts.map +1 -0
  721. package/dist/exports/i18n/pl.js +3 -0
  722. package/dist/exports/i18n/pl.js.map +1 -0
  723. package/dist/exports/i18n/pt.d.ts +2 -0
  724. package/dist/exports/i18n/pt.d.ts.map +1 -0
  725. package/dist/exports/i18n/pt.js +3 -0
  726. package/dist/exports/i18n/pt.js.map +1 -0
  727. package/dist/exports/i18n/ro.d.ts +2 -0
  728. package/dist/exports/i18n/ro.d.ts.map +1 -0
  729. package/dist/exports/i18n/ro.js +3 -0
  730. package/dist/exports/i18n/ro.js.map +1 -0
  731. package/dist/exports/i18n/rs.d.ts +2 -0
  732. package/dist/exports/i18n/rs.d.ts.map +1 -0
  733. package/dist/exports/i18n/rs.js +3 -0
  734. package/dist/exports/i18n/rs.js.map +1 -0
  735. package/dist/exports/i18n/rsLatin.d.ts +2 -0
  736. package/dist/exports/i18n/rsLatin.d.ts.map +1 -0
  737. package/dist/exports/i18n/rsLatin.js +3 -0
  738. package/dist/exports/i18n/rsLatin.js.map +1 -0
  739. package/dist/exports/i18n/ru.d.ts +2 -0
  740. package/dist/exports/i18n/ru.d.ts.map +1 -0
  741. package/dist/exports/i18n/ru.js +3 -0
  742. package/dist/exports/i18n/ru.js.map +1 -0
  743. package/dist/exports/i18n/sv.d.ts +2 -0
  744. package/dist/exports/i18n/sv.d.ts.map +1 -0
  745. package/dist/exports/i18n/sv.js +3 -0
  746. package/dist/exports/i18n/sv.js.map +1 -0
  747. package/dist/exports/i18n/th.d.ts +2 -0
  748. package/dist/exports/i18n/th.d.ts.map +1 -0
  749. package/dist/exports/i18n/th.js +3 -0
  750. package/dist/exports/i18n/th.js.map +1 -0
  751. package/dist/exports/i18n/tr.d.ts +2 -0
  752. package/dist/exports/i18n/tr.d.ts.map +1 -0
  753. package/dist/exports/i18n/tr.js +3 -0
  754. package/dist/exports/i18n/tr.js.map +1 -0
  755. package/dist/exports/i18n/uk.d.ts +2 -0
  756. package/dist/exports/i18n/uk.d.ts.map +1 -0
  757. package/dist/exports/i18n/uk.js +3 -0
  758. package/dist/exports/i18n/uk.js.map +1 -0
  759. package/dist/exports/i18n/vi.d.ts +2 -0
  760. package/dist/exports/i18n/vi.d.ts.map +1 -0
  761. package/dist/exports/i18n/vi.js +3 -0
  762. package/dist/exports/i18n/vi.js.map +1 -0
  763. package/dist/exports/i18n/zh.d.ts +2 -0
  764. package/dist/exports/i18n/zh.d.ts.map +1 -0
  765. package/dist/exports/i18n/zh.js +3 -0
  766. package/dist/exports/i18n/zh.js.map +1 -0
  767. package/dist/exports/i18n/zhTw.d.ts +2 -0
  768. package/dist/exports/i18n/zhTw.d.ts.map +1 -0
  769. package/dist/exports/i18n/zhTw.js +3 -0
  770. package/dist/exports/i18n/zhTw.js.map +1 -0
  771. package/dist/exports/i18n.d.ts +2 -0
  772. package/dist/exports/i18n.d.ts.map +1 -0
  773. package/dist/exports/i18n.js +3 -0
  774. package/dist/exports/i18n.js.map +1 -0
  775. package/dist/exports/node.d.ts +6 -0
  776. package/dist/exports/node.d.ts.map +1 -0
  777. package/dist/exports/node.js +6 -0
  778. package/dist/exports/node.js.map +1 -0
  779. package/dist/exports/operations.d.ts +30 -28
  780. package/dist/exports/operations.d.ts.map +1 -1
  781. package/dist/exports/operations.js +31 -125
  782. package/dist/exports/operations.js.map +1 -0
  783. package/dist/exports/types.d.ts +17 -11
  784. package/dist/exports/types.d.ts.map +1 -1
  785. package/dist/exports/types.js +4 -74
  786. package/dist/exports/types.js.map +1 -0
  787. package/dist/exports/uploads.d.ts +2 -0
  788. package/dist/exports/uploads.d.ts.map +1 -0
  789. package/dist/exports/uploads.js +3 -0
  790. package/dist/exports/uploads.js.map +1 -0
  791. package/dist/exports/utilities.d.ts +36 -27
  792. package/dist/exports/utilities.d.ts.map +1 -1
  793. package/dist/exports/utilities.js +36 -141
  794. package/dist/exports/utilities.js.map +1 -0
  795. package/dist/exports/versions.d.ts +8 -9
  796. package/dist/exports/versions.d.ts.map +1 -1
  797. package/dist/exports/versions.js +8 -45
  798. package/dist/exports/versions.js.map +1 -0
  799. package/dist/fields/baseFields/baseBlockFields.d.ts +1 -1
  800. package/dist/fields/baseFields/baseBlockFields.d.ts.map +1 -1
  801. package/dist/fields/baseFields/baseBlockFields.js +6 -16
  802. package/dist/fields/baseFields/baseBlockFields.js.map +1 -0
  803. package/dist/fields/baseFields/baseIDField.d.ts +2 -2
  804. package/dist/fields/baseFields/baseIDField.d.ts.map +1 -1
  805. package/dist/fields/baseFields/baseIDField.js +17 -23
  806. package/dist/fields/baseFields/baseIDField.js.map +1 -0
  807. package/dist/fields/config/client.d.ts +1315 -0
  808. package/dist/fields/config/client.d.ts.map +1 -0
  809. package/dist/fields/config/client.js +80 -0
  810. package/dist/fields/config/client.js.map +1 -0
  811. package/dist/fields/config/sanitize.d.ts +14 -3
  812. package/dist/fields/config/sanitize.d.ts.map +1 -1
  813. package/dist/fields/config/sanitize.js +92 -68
  814. package/dist/fields/config/sanitize.js.map +1 -0
  815. package/dist/fields/config/sanitize.spec.js +77 -87
  816. package/dist/fields/config/sanitize.spec.js.map +1 -0
  817. package/dist/fields/config/schema.d.ts.map +1 -1
  818. package/dist/fields/config/schema.js +355 -431
  819. package/dist/fields/config/schema.js.map +1 -0
  820. package/dist/fields/config/types.d.ts +155 -69
  821. package/dist/fields/config/types.d.ts.map +1 -1
  822. package/dist/fields/config/types.js +15 -69
  823. package/dist/fields/config/types.js.map +1 -0
  824. package/dist/fields/getDefaultValue.d.ts +3 -3
  825. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  826. package/dist/fields/getDefaultValue.js +8 -13
  827. package/dist/fields/getDefaultValue.js.map +1 -0
  828. package/dist/fields/hooks/afterChange/index.d.ts +8 -4
  829. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  830. package/dist/fields/hooks/afterChange/index.js +9 -16
  831. package/dist/fields/hooks/afterChange/index.js.map +1 -0
  832. package/dist/fields/hooks/afterChange/promise.d.ts +5 -5
  833. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  834. package/dist/fields/hooks/afterChange/promise.js +14 -22
  835. package/dist/fields/hooks/afterChange/promise.js.map +1 -0
  836. package/dist/fields/hooks/afterChange/traverseFields.d.ts +5 -5
  837. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  838. package/dist/fields/hooks/afterChange/traverseFields.js +4 -14
  839. package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -0
  840. package/dist/fields/hooks/afterRead/index.d.ts +14 -4
  841. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  842. package/dist/fields/hooks/afterRead/index.js +16 -17
  843. package/dist/fields/hooks/afterRead/index.js.map +1 -0
  844. package/dist/fields/hooks/afterRead/promise.d.ts +10 -6
  845. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  846. package/dist/fields/hooks/afterRead/promise.js +47 -55
  847. package/dist/fields/hooks/afterRead/promise.js.map +1 -0
  848. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +5 -4
  849. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  850. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +20 -24
  851. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -0
  852. package/dist/fields/hooks/afterRead/traverseFields.d.ts +10 -6
  853. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  854. package/dist/fields/hooks/afterRead/traverseFields.js +5 -14
  855. package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -0
  856. package/dist/fields/hooks/beforeChange/beforeDuplicate.d.ts +3 -0
  857. package/dist/fields/hooks/beforeChange/beforeDuplicate.d.ts.map +1 -0
  858. package/dist/fields/hooks/beforeChange/beforeDuplicate.js +6 -0
  859. package/dist/fields/hooks/beforeChange/beforeDuplicate.js.map +1 -0
  860. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js +2 -12
  861. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js.map +1 -0
  862. package/dist/fields/hooks/beforeChange/getExistingRowDoc.js +2 -12
  863. package/dist/fields/hooks/beforeChange/getExistingRowDoc.js.map +1 -0
  864. package/dist/fields/hooks/beforeChange/index.d.ts +15 -6
  865. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  866. package/dist/fields/hooks/beforeChange/index.js +21 -19
  867. package/dist/fields/hooks/beforeChange/index.js.map +1 -0
  868. package/dist/fields/hooks/beforeChange/promise.d.ts +8 -8
  869. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  870. package/dist/fields/hooks/beforeChange/promise.js +74 -55
  871. package/dist/fields/hooks/beforeChange/promise.js.map +1 -0
  872. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +28 -8
  873. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  874. package/dist/fields/hooks/beforeChange/traverseFields.js +12 -14
  875. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -0
  876. package/dist/fields/hooks/beforeValidate/index.d.ts +13 -4
  877. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  878. package/dist/fields/hooks/beforeValidate/index.js +13 -16
  879. package/dist/fields/hooks/beforeValidate/index.js.map +1 -0
  880. package/dist/fields/hooks/beforeValidate/promise.d.ts +11 -5
  881. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  882. package/dist/fields/hooks/beforeValidate/promise.js +32 -39
  883. package/dist/fields/hooks/beforeValidate/promise.js.map +1 -0
  884. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +11 -5
  885. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  886. package/dist/fields/hooks/beforeValidate/traverseFields.js +4 -14
  887. package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -0
  888. package/dist/fields/mergeBaseFields.d.ts +1 -1
  889. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  890. package/dist/fields/mergeBaseFields.js +8 -23
  891. package/dist/fields/mergeBaseFields.js.map +1 -0
  892. package/dist/fields/setDefaultBeforeDuplicate.d.ts +3 -0
  893. package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -0
  894. package/dist/fields/setDefaultBeforeDuplicate.js +20 -0
  895. package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -0
  896. package/dist/fields/sortableFieldTypes.js +2 -12
  897. package/dist/fields/sortableFieldTypes.js.map +1 -0
  898. package/dist/fields/validations.d.ts +10 -8
  899. package/dist/fields/validations.d.ts.map +1 -1
  900. package/dist/fields/validations.js +79 -102
  901. package/dist/fields/validations.js.map +1 -0
  902. package/dist/fields/validations.spec.js +98 -87
  903. package/dist/fields/validations.spec.js.map +1 -0
  904. package/dist/globals/config/client.d.ts +21 -0
  905. package/dist/globals/config/client.d.ts.map +1 -0
  906. package/dist/globals/config/client.js +49 -0
  907. package/dist/globals/config/client.js.map +1 -0
  908. package/dist/globals/config/sanitize.d.ts +3 -4
  909. package/dist/globals/config/sanitize.d.ts.map +1 -1
  910. package/dist/globals/config/sanitize.js +48 -63
  911. package/dist/globals/config/sanitize.js.map +1 -0
  912. package/dist/globals/config/schema.d.ts.map +1 -1
  913. package/dist/globals/config/schema.js +57 -70
  914. package/dist/globals/config/schema.js.map +1 -0
  915. package/dist/globals/config/types.d.ts +25 -38
  916. package/dist/globals/config/types.d.ts.map +1 -1
  917. package/dist/globals/config/types.js +2 -5
  918. package/dist/globals/config/types.js.map +1 -0
  919. package/dist/globals/operations/docAccess.d.ts +4 -4
  920. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  921. package/dist/globals/operations/docAccess.js +12 -22
  922. package/dist/globals/operations/docAccess.js.map +1 -0
  923. package/dist/globals/operations/findOne.d.ts +3 -4
  924. package/dist/globals/operations/findOne.d.ts.map +1 -1
  925. package/dist/globals/operations/findOne.js +15 -29
  926. package/dist/globals/operations/findOne.js.map +1 -0
  927. package/dist/globals/operations/findVersionByID.d.ts +4 -4
  928. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  929. package/dist/globals/operations/findVersionByID.js +19 -33
  930. package/dist/globals/operations/findVersionByID.js.map +1 -0
  931. package/dist/globals/operations/findVersions.d.ts +5 -6
  932. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  933. package/dist/globals/operations/findVersions.js +21 -35
  934. package/dist/globals/operations/findVersions.js.map +1 -0
  935. package/dist/globals/operations/local/findOne.d.ts +5 -7
  936. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  937. package/dist/globals/operations/local/findOne.js +11 -21
  938. package/dist/globals/operations/local/findOne.js.map +1 -0
  939. package/dist/globals/operations/local/findVersionByID.d.ts +6 -8
  940. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  941. package/dist/globals/operations/local/findVersionByID.js +10 -19
  942. package/dist/globals/operations/local/findVersionByID.js.map +1 -0
  943. package/dist/globals/operations/local/findVersions.d.ts +7 -9
  944. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  945. package/dist/globals/operations/local/findVersions.js +9 -19
  946. package/dist/globals/operations/local/findVersions.js.map +1 -0
  947. package/dist/globals/operations/local/index.d.ts +5 -5
  948. package/dist/globals/operations/local/index.d.ts.map +1 -1
  949. package/dist/globals/operations/local/index.js +12 -27
  950. package/dist/globals/operations/local/index.js.map +1 -0
  951. package/dist/globals/operations/local/restoreVersion.d.ts +5 -7
  952. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  953. package/dist/globals/operations/local/restoreVersion.js +9 -19
  954. package/dist/globals/operations/local/restoreVersion.js.map +1 -0
  955. package/dist/globals/operations/local/update.d.ts +5 -7
  956. package/dist/globals/operations/local/update.d.ts.map +1 -1
  957. package/dist/globals/operations/local/update.js +9 -19
  958. package/dist/globals/operations/local/update.js.map +1 -0
  959. package/dist/globals/operations/restoreVersion.d.ts +4 -4
  960. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  961. package/dist/globals/operations/restoreVersion.js +17 -31
  962. package/dist/globals/operations/restoreVersion.js.map +1 -0
  963. package/dist/globals/operations/update.d.ts +5 -13
  964. package/dist/globals/operations/update.d.ts.map +1 -1
  965. package/dist/globals/operations/update.js +25 -38
  966. package/dist/globals/operations/update.js.map +1 -0
  967. package/dist/index.d.ts +75 -53
  968. package/dist/index.d.ts.map +1 -1
  969. package/dist/index.js +102 -87
  970. package/dist/index.js.map +1 -0
  971. package/dist/preferences/deleteUserPreferences.d.ts +4 -4
  972. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  973. package/dist/preferences/deleteUserPreferences.js +2 -12
  974. package/dist/preferences/deleteUserPreferences.js.map +1 -0
  975. package/dist/preferences/operations/delete.d.ts +2 -2
  976. package/dist/preferences/operations/delete.d.ts.map +1 -1
  977. package/dist/preferences/operations/delete.js +14 -31
  978. package/dist/preferences/operations/delete.js.map +1 -0
  979. package/dist/preferences/operations/findOne.d.ts +2 -2
  980. package/dist/preferences/operations/findOne.d.ts.map +1 -1
  981. package/dist/preferences/operations/findOne.js +5 -19
  982. package/dist/preferences/operations/findOne.js.map +1 -0
  983. package/dist/preferences/operations/update.d.ts +2 -2
  984. package/dist/preferences/operations/update.d.ts.map +1 -1
  985. package/dist/preferences/operations/update.js +8 -23
  986. package/dist/preferences/operations/update.js.map +1 -0
  987. package/dist/preferences/preferencesCollection.d.ts +2 -2
  988. package/dist/preferences/preferencesCollection.d.ts.map +1 -1
  989. package/dist/preferences/preferencesCollection.js +8 -18
  990. package/dist/preferences/preferencesCollection.js.map +1 -0
  991. package/dist/preferences/requestHandlers/delete.d.ts +1 -1
  992. package/dist/preferences/requestHandlers/delete.d.ts.map +1 -1
  993. package/dist/preferences/requestHandlers/delete.js +22 -24
  994. package/dist/preferences/requestHandlers/delete.js.map +1 -0
  995. package/dist/preferences/requestHandlers/findOne.d.ts +1 -1
  996. package/dist/preferences/requestHandlers/findOne.d.ts.map +1 -1
  997. package/dist/preferences/requestHandlers/findOne.js +22 -24
  998. package/dist/preferences/requestHandlers/findOne.js.map +1 -0
  999. package/dist/preferences/requestHandlers/update.d.ts +1 -1
  1000. package/dist/preferences/requestHandlers/update.d.ts.map +1 -1
  1001. package/dist/preferences/requestHandlers/update.js +23 -26
  1002. package/dist/preferences/requestHandlers/update.js.map +1 -0
  1003. package/dist/preferences/types.d.ts +8 -8
  1004. package/dist/preferences/types.d.ts.map +1 -1
  1005. package/dist/preferences/types.js +2 -5
  1006. package/dist/preferences/types.js.map +1 -0
  1007. package/dist/translations/getLocalI18n.d.ts +3 -2
  1008. package/dist/translations/getLocalI18n.d.ts.map +1 -1
  1009. package/dist/translations/getLocalI18n.js +4 -16
  1010. package/dist/translations/getLocalI18n.js.map +1 -0
  1011. package/dist/types/constants.js +2 -12
  1012. package/dist/types/constants.js.map +1 -0
  1013. package/dist/types/index.d.ts +28 -22
  1014. package/dist/types/index.d.ts.map +1 -1
  1015. package/dist/types/index.js +2 -12
  1016. package/dist/types/index.js.map +1 -0
  1017. package/dist/uploads/canResizeImage.js +4 -13
  1018. package/dist/uploads/canResizeImage.js.map +1 -0
  1019. package/dist/uploads/cropImage.d.ts +3 -7
  1020. package/dist/uploads/cropImage.d.ts.map +1 -1
  1021. package/dist/uploads/cropImage.js +4 -28
  1022. package/dist/uploads/cropImage.js.map +1 -0
  1023. package/dist/uploads/deleteAssociatedFiles.d.ts +5 -5
  1024. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  1025. package/dist/uploads/deleteAssociatedFiles.js +11 -26
  1026. package/dist/uploads/deleteAssociatedFiles.js.map +1 -0
  1027. package/dist/uploads/docWithFilenameExists.d.ts +2 -2
  1028. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  1029. package/dist/uploads/docWithFilenameExists.js +2 -12
  1030. package/dist/uploads/docWithFilenameExists.js.map +1 -0
  1031. package/dist/uploads/fileExists.js +4 -19
  1032. package/dist/uploads/fileExists.js.map +1 -0
  1033. package/dist/uploads/formatFilesize.js +2 -12
  1034. package/dist/uploads/formatFilesize.js.map +1 -0
  1035. package/dist/uploads/generateFileData.d.ts +5 -5
  1036. package/dist/uploads/generateFileData.d.ts.map +1 -1
  1037. package/dist/uploads/generateFileData.js +44 -56
  1038. package/dist/uploads/generateFileData.js.map +1 -0
  1039. package/dist/uploads/getBaseFields.d.ts +5 -5
  1040. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  1041. package/dist/uploads/getBaseFields.js +52 -36
  1042. package/dist/uploads/getBaseFields.js.map +1 -0
  1043. package/dist/uploads/getExternalFile.d.ts +5 -4
  1044. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  1045. package/dist/uploads/getExternalFile.js +14 -20
  1046. package/dist/uploads/getExternalFile.js.map +1 -0
  1047. package/dist/uploads/getFileByPath.d.ts +2 -3
  1048. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  1049. package/dist/uploads/getFileByPath.js +11 -26
  1050. package/dist/uploads/getFileByPath.js.map +1 -0
  1051. package/dist/uploads/getImageSize.d.ts +3 -3
  1052. package/dist/uploads/getImageSize.d.ts.map +1 -1
  1053. package/dist/uploads/getImageSize.js +21 -22
  1054. package/dist/uploads/getImageSize.js.map +1 -0
  1055. package/dist/uploads/getSafeFilename.d.ts +2 -2
  1056. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  1057. package/dist/uploads/getSafeFilename.js +8 -23
  1058. package/dist/uploads/getSafeFilename.js.map +1 -0
  1059. package/dist/uploads/imageResizer.d.ts +8 -7
  1060. package/dist/uploads/imageResizer.d.ts.map +1 -1
  1061. package/dist/uploads/imageResizer.js +29 -44
  1062. package/dist/uploads/imageResizer.js.map +1 -0
  1063. package/dist/uploads/isImage.d.ts.map +1 -1
  1064. package/dist/uploads/isImage.js +4 -13
  1065. package/dist/uploads/isImage.js.map +1 -0
  1066. package/dist/uploads/mimeTypeValidator.d.ts +1 -1
  1067. package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
  1068. package/dist/uploads/mimeTypeValidator.js +2 -12
  1069. package/dist/uploads/mimeTypeValidator.js.map +1 -0
  1070. package/dist/uploads/mimeTypeValidator.spec.js +11 -15
  1071. package/dist/uploads/mimeTypeValidator.spec.js.map +1 -0
  1072. package/dist/uploads/saveBufferToFile.d.ts +1 -1
  1073. package/dist/uploads/saveBufferToFile.js +6 -21
  1074. package/dist/uploads/saveBufferToFile.js.map +1 -0
  1075. package/dist/uploads/tempFile.d.ts +7 -0
  1076. package/dist/uploads/tempFile.d.ts.map +1 -0
  1077. package/dist/uploads/tempFile.js +39 -0
  1078. package/dist/uploads/tempFile.js.map +1 -0
  1079. package/dist/uploads/types.d.ts +19 -5
  1080. package/dist/uploads/types.d.ts.map +1 -1
  1081. package/dist/uploads/types.js +2 -5
  1082. package/dist/uploads/types.js.map +1 -0
  1083. package/dist/uploads/unlinkTempFiles.d.ts +4 -4
  1084. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  1085. package/dist/uploads/unlinkTempFiles.js +9 -22
  1086. package/dist/uploads/unlinkTempFiles.js.map +1 -0
  1087. package/dist/uploads/uploadFiles.d.ts +4 -4
  1088. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  1089. package/dist/uploads/uploadFiles.js +6 -21
  1090. package/dist/uploads/uploadFiles.js.map +1 -0
  1091. package/dist/utilities/checkDuplicateCollections.d.ts +1 -1
  1092. package/dist/utilities/checkDuplicateCollections.d.ts.map +1 -1
  1093. package/dist/utilities/checkDuplicateCollections.js +4 -14
  1094. package/dist/utilities/checkDuplicateCollections.js.map +1 -0
  1095. package/dist/utilities/combineMerge.js +4 -19
  1096. package/dist/utilities/combineMerge.js.map +1 -0
  1097. package/dist/utilities/commitTransaction.d.ts +2 -2
  1098. package/dist/utilities/commitTransaction.d.ts.map +1 -1
  1099. package/dist/utilities/commitTransaction.js +4 -12
  1100. package/dist/utilities/commitTransaction.js.map +1 -0
  1101. package/dist/utilities/configToJSONSchema.d.ts +12 -6
  1102. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  1103. package/dist/utilities/configToJSONSchema.js +138 -98
  1104. package/dist/utilities/configToJSONSchema.js.map +1 -0
  1105. package/dist/utilities/configToJSONSchema.spec.js +6 -10
  1106. package/dist/utilities/configToJSONSchema.spec.js.map +1 -0
  1107. package/dist/utilities/convertData.js +3 -23
  1108. package/dist/utilities/convertData.js.map +1 -0
  1109. package/dist/utilities/createArrayFromCommaDelineated.js +2 -12
  1110. package/dist/utilities/createArrayFromCommaDelineated.js.map +1 -0
  1111. package/dist/utilities/createLocalReq.d.ts +5 -5
  1112. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  1113. package/dist/utilities/createLocalReq.js +32 -41
  1114. package/dist/utilities/createLocalReq.js.map +1 -0
  1115. package/dist/utilities/deepCopyObject.js +2 -12
  1116. package/dist/utilities/deepCopyObject.js.map +1 -0
  1117. package/dist/utilities/deepMerge.js +2 -12
  1118. package/dist/utilities/deepMerge.js.map +1 -0
  1119. package/dist/utilities/fieldSchemaToJSON.d.ts +3 -3
  1120. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
  1121. package/dist/utilities/fieldSchemaToJSON.js +22 -22
  1122. package/dist/utilities/fieldSchemaToJSON.js.map +1 -0
  1123. package/dist/utilities/flattenTopLevelFields.d.ts +3 -2
  1124. package/dist/utilities/flattenTopLevelFields.d.ts.map +1 -1
  1125. package/dist/utilities/flattenTopLevelFields.js +7 -17
  1126. package/dist/utilities/flattenTopLevelFields.js.map +1 -0
  1127. package/dist/utilities/formatLabels.d.ts +0 -1
  1128. package/dist/utilities/formatLabels.d.ts.map +1 -1
  1129. package/dist/utilities/formatLabels.js +10 -70
  1130. package/dist/utilities/formatLabels.js.map +1 -0
  1131. package/dist/utilities/formatLabels.spec.js +8 -12
  1132. package/dist/utilities/formatLabels.spec.js.map +1 -0
  1133. package/dist/utilities/getCSSVariable.js +2 -12
  1134. package/dist/utilities/getCSSVariable.js.map +1 -0
  1135. package/dist/utilities/getCollectionIDFieldTypes.d.ts +13 -0
  1136. package/dist/utilities/getCollectionIDFieldTypes.d.ts.map +1 -0
  1137. package/dist/utilities/getCollectionIDFieldTypes.js +16 -0
  1138. package/dist/utilities/getCollectionIDFieldTypes.js.map +1 -0
  1139. package/dist/utilities/getEntityPolicies.d.ts +5 -5
  1140. package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
  1141. package/dist/utilities/getEntityPolicies.js +7 -17
  1142. package/dist/utilities/getEntityPolicies.js.map +1 -0
  1143. package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
  1144. package/dist/utilities/getObjectDotNotation.js +2 -12
  1145. package/dist/utilities/getObjectDotNotation.js.map +1 -0
  1146. package/dist/utilities/getUniqueListBy.js +2 -12
  1147. package/dist/utilities/getUniqueListBy.js.map +1 -0
  1148. package/dist/utilities/importWithoutClientFiles.d.ts +7 -0
  1149. package/dist/utilities/importWithoutClientFiles.d.ts.map +1 -0
  1150. package/dist/utilities/importWithoutClientFiles.js +44 -0
  1151. package/dist/utilities/importWithoutClientFiles.js.map +1 -0
  1152. package/dist/utilities/initTransaction.d.ts +2 -2
  1153. package/dist/utilities/initTransaction.d.ts.map +1 -1
  1154. package/dist/utilities/initTransaction.js +5 -12
  1155. package/dist/utilities/initTransaction.js.map +1 -0
  1156. package/dist/utilities/isEntityHidden.d.ts +4 -4
  1157. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  1158. package/dist/utilities/isEntityHidden.js +2 -12
  1159. package/dist/utilities/isEntityHidden.js.map +1 -0
  1160. package/dist/utilities/isNumber.js +2 -12
  1161. package/dist/utilities/isNumber.js.map +1 -0
  1162. package/dist/utilities/isPlainObject.d.ts +2 -0
  1163. package/dist/utilities/isPlainObject.d.ts.map +1 -0
  1164. package/dist/utilities/isPlainObject.js +25 -0
  1165. package/dist/utilities/isPlainObject.js.map +1 -0
  1166. package/dist/utilities/isReactComponent.d.ts +6 -0
  1167. package/dist/utilities/isReactComponent.d.ts.map +1 -0
  1168. package/dist/utilities/isReactComponent.js +17 -0
  1169. package/dist/utilities/isReactComponent.js.map +1 -0
  1170. package/dist/utilities/isValidID.d.ts.map +1 -1
  1171. package/dist/utilities/isValidID.js +6 -20
  1172. package/dist/utilities/isValidID.js.map +1 -0
  1173. package/dist/utilities/isolateObjectProperty.js +2 -12
  1174. package/dist/utilities/isolateObjectProperty.js.map +1 -0
  1175. package/dist/utilities/killTransaction.d.ts +2 -2
  1176. package/dist/utilities/killTransaction.d.ts.map +1 -1
  1177. package/dist/utilities/killTransaction.js +4 -12
  1178. package/dist/utilities/killTransaction.js.map +1 -0
  1179. package/dist/utilities/logger.d.ts +6 -6
  1180. package/dist/utilities/logger.d.ts.map +1 -1
  1181. package/dist/utilities/logger.js +18 -37
  1182. package/dist/utilities/logger.js.map +1 -0
  1183. package/dist/utilities/mapAsync.js +2 -12
  1184. package/dist/utilities/mapAsync.js.map +1 -0
  1185. package/dist/utilities/mergeListSearchAndWhere.d.ts +12 -0
  1186. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -0
  1187. package/dist/utilities/mergeListSearchAndWhere.js +57 -0
  1188. package/dist/utilities/mergeListSearchAndWhere.js.map +1 -0
  1189. package/dist/utilities/overwriteMerge.js +2 -12
  1190. package/dist/utilities/overwriteMerge.js.map +1 -0
  1191. package/dist/utilities/parseCookies.js +4 -14
  1192. package/dist/utilities/parseCookies.js.map +1 -0
  1193. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  1194. package/dist/utilities/sanitizeInternalFields.js +2 -12
  1195. package/dist/utilities/sanitizeInternalFields.js.map +1 -0
  1196. package/dist/utilities/setsAreEqual.js +2 -12
  1197. package/dist/utilities/setsAreEqual.js.map +1 -0
  1198. package/dist/utilities/telemetry/events/adminInit.d.ts +3 -3
  1199. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  1200. package/dist/utilities/telemetry/events/adminInit.js +8 -18
  1201. package/dist/utilities/telemetry/events/adminInit.js.map +1 -0
  1202. package/dist/utilities/telemetry/events/serverInit.d.ts +1 -1
  1203. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  1204. package/dist/utilities/telemetry/events/serverInit.js +4 -14
  1205. package/dist/utilities/telemetry/events/serverInit.js.map +1 -0
  1206. package/dist/utilities/telemetry/index.d.ts +12 -3
  1207. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  1208. package/dist/utilities/telemetry/index.js +80 -50
  1209. package/dist/utilities/telemetry/index.js.map +1 -0
  1210. package/dist/utilities/telemetry/oneWayHash.d.ts +1 -0
  1211. package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
  1212. package/dist/utilities/telemetry/oneWayHash.js +4 -14
  1213. package/dist/utilities/telemetry/oneWayHash.js.map +1 -0
  1214. package/dist/utilities/timestamp.js +2 -12
  1215. package/dist/utilities/timestamp.js.map +1 -0
  1216. package/dist/utilities/toKebabCase.js +2 -12
  1217. package/dist/utilities/toKebabCase.js.map +1 -0
  1218. package/dist/utilities/wait.d.ts +1 -2
  1219. package/dist/utilities/wait.d.ts.map +1 -1
  1220. package/dist/utilities/wait.js +2 -13
  1221. package/dist/utilities/wait.js.map +1 -0
  1222. package/dist/utilities/wordBoundariesRegex.js +3 -13
  1223. package/dist/utilities/wordBoundariesRegex.js.map +1 -0
  1224. package/dist/versions/baseFields.d.ts +4 -2
  1225. package/dist/versions/baseFields.d.ts.map +1 -1
  1226. package/dist/versions/baseFields.js +8 -32
  1227. package/dist/versions/baseFields.js.map +1 -0
  1228. package/dist/versions/buildCollectionFields.d.ts +2 -2
  1229. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  1230. package/dist/versions/buildCollectionFields.js +2 -12
  1231. package/dist/versions/buildCollectionFields.js.map +1 -0
  1232. package/dist/versions/buildGlobalFields.d.ts +2 -2
  1233. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  1234. package/dist/versions/buildGlobalFields.js +12 -22
  1235. package/dist/versions/buildGlobalFields.js.map +1 -0
  1236. package/dist/versions/deleteCollectionVersions.d.ts +4 -4
  1237. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  1238. package/dist/versions/deleteCollectionVersions.js +2 -12
  1239. package/dist/versions/deleteCollectionVersions.js.map +1 -0
  1240. package/dist/versions/drafts/appendVersionToQueryKey.d.ts +1 -1
  1241. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  1242. package/dist/versions/drafts/appendVersionToQueryKey.js +2 -12
  1243. package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -0
  1244. package/dist/versions/drafts/getQueryDraftsSort.js +2 -12
  1245. package/dist/versions/drafts/getQueryDraftsSort.js.map +1 -0
  1246. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +5 -5
  1247. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  1248. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +13 -27
  1249. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -0
  1250. package/dist/versions/enforceMaxVersions.d.ts +4 -4
  1251. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  1252. package/dist/versions/enforceMaxVersions.js +3 -12
  1253. package/dist/versions/enforceMaxVersions.js.map +1 -0
  1254. package/dist/versions/getLatestCollectionVersion.d.ts +4 -4
  1255. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  1256. package/dist/versions/getLatestCollectionVersion.js +6 -14
  1257. package/dist/versions/getLatestCollectionVersion.js.map +1 -0
  1258. package/dist/versions/getLatestGlobalVersion.d.ts +4 -4
  1259. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  1260. package/dist/versions/getLatestGlobalVersion.js +6 -15
  1261. package/dist/versions/getLatestGlobalVersion.js.map +1 -0
  1262. package/dist/versions/saveVersion.d.ts +5 -5
  1263. package/dist/versions/saveVersion.d.ts.map +1 -1
  1264. package/dist/versions/saveVersion.js +10 -24
  1265. package/dist/versions/saveVersion.js.map +1 -0
  1266. package/dist/versions/types.js +2 -5
  1267. package/dist/versions/types.js.map +1 -0
  1268. package/package.json +73 -77
  1269. package/.eslintrc.js +0 -58
  1270. package/.release-it.js +0 -51
  1271. package/auth.d.ts +0 -6
  1272. package/auth.js +0 -45
  1273. package/config.d.ts +0 -11
  1274. package/config.js +0 -60
  1275. package/database.d.ts +0 -23
  1276. package/database.js +0 -109
  1277. package/dist/auth/getAuthenticatedUser.d.ts +0 -3
  1278. package/dist/auth/getAuthenticatedUser.d.ts.map +0 -1
  1279. package/dist/auth/getAuthenticatedUser.js +0 -21
  1280. package/dist/bundlers/mocks/db-mongodb.js +0 -3
  1281. package/dist/bundlers/mocks/db-postgres.js +0 -13
  1282. package/dist/bundlers/mocks/dotENV.js +0 -15
  1283. package/dist/bundlers/mocks/emptyModule.js +0 -13
  1284. package/dist/bundlers/mocks/fileMock.js +0 -13
  1285. package/dist/bundlers/types.d.ts +0 -8
  1286. package/dist/bundlers/types.d.ts.map +0 -1
  1287. package/dist/bundlers/types.js +0 -6
  1288. package/dist/config/clientFiles.d.ts +0 -2
  1289. package/dist/config/clientFiles.d.ts.map +0 -1
  1290. package/dist/config/clientFiles.js +0 -23
  1291. package/dist/config/createClientConfig.d.ts +0 -6
  1292. package/dist/config/createClientConfig.d.ts.map +0 -1
  1293. package/dist/config/createClientConfig.js +0 -132
  1294. package/dist/config/load.d.ts +0 -6
  1295. package/dist/config/load.d.ts.map +0 -1
  1296. package/dist/config/load.js +0 -45
  1297. package/dist/email/build.d.ts +0 -5
  1298. package/dist/email/build.d.ts.map +0 -1
  1299. package/dist/email/build.js +0 -78
  1300. package/dist/email/mockHandler.d.ts +0 -5
  1301. package/dist/email/mockHandler.d.ts.map +0 -1
  1302. package/dist/email/mockHandler.js +0 -39
  1303. package/dist/express/middleware/errorHandler.d.ts +0 -2
  1304. package/dist/express/middleware/errorHandler.d.ts.map +0 -1
  1305. package/dist/express/middleware/errorHandler.js +0 -3
  1306. package/dist/express/middleware/index.d.ts +0 -2
  1307. package/dist/express/middleware/index.d.ts.map +0 -1
  1308. package/dist/express/middleware/index.js +0 -3
  1309. package/dist/globals/config/build.d.ts +0 -2
  1310. package/dist/globals/config/build.d.ts.map +0 -1
  1311. package/dist/globals/config/build.js +0 -3
  1312. package/dist/globals/graphql/resolvers/docAccess.d.ts +0 -2
  1313. package/dist/globals/graphql/resolvers/docAccess.d.ts.map +0 -1
  1314. package/dist/globals/graphql/resolvers/docAccess.js +0 -3
  1315. package/dist/localization/middleware.d.ts +0 -5
  1316. package/dist/localization/middleware.d.ts.map +0 -1
  1317. package/dist/localization/middleware.js +0 -47
  1318. package/dist/localization/sanitizeFallbackLocale.d.ts +0 -3
  1319. package/dist/localization/sanitizeFallbackLocale.d.ts.map +0 -1
  1320. package/dist/localization/sanitizeFallbackLocale.js +0 -19
  1321. package/dist/translations/extractTranslations.d.ts +0 -2
  1322. package/dist/translations/extractTranslations.d.ts.map +0 -1
  1323. package/dist/translations/extractTranslations.js +0 -30
  1324. package/dist/utilities/getIDType.d.ts +0 -4
  1325. package/dist/utilities/getIDType.d.ts.map +0 -1
  1326. package/dist/utilities/getIDType.js +0 -18
  1327. package/dist/versions/getVersionsModelName.d.ts +0 -4
  1328. package/dist/versions/getVersionsModelName.d.ts.map +0 -1
  1329. package/dist/versions/getVersionsModelName.js +0 -13
  1330. package/errors.d.ts +0 -2
  1331. package/errors.js +0 -69
  1332. package/operations.d.ts +0 -29
  1333. package/operations.js +0 -126
  1334. package/types.d.ts +0 -12
  1335. package/types.js +0 -75
  1336. package/utilities.d.ts +0 -28
  1337. package/utilities.js +0 -142
  1338. package/versions.d.ts +0 -10
  1339. package/versions.js +0 -46
@@ -1,31 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _filetype = require("file-type");
12
- const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
13
- const _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
1
+ import fileType from 'file-type';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ const { fromFile } = fileType;
19
5
  const mimeTypeEstimate = {
20
6
  svg: 'image/svg+xml'
21
7
  };
22
- const getFileByPath = async (filePath)=>{
8
+ export const getFileByPath = async (filePath)=>{
23
9
  if (typeof filePath === 'string') {
24
- const data = _fs.default.readFileSync(filePath);
25
- const mimetype = (0, _filetype.fromFile)(filePath);
26
- const { size } = _fs.default.statSync(filePath);
27
- const name = _path.default.basename(filePath);
28
- const ext = _path.default.extname(filePath).slice(1);
10
+ const data = fs.readFileSync(filePath);
11
+ const mimetype = fromFile(filePath);
12
+ const { size } = fs.statSync(filePath);
13
+ const name = path.basename(filePath);
14
+ const ext = path.extname(filePath).slice(1);
29
15
  const mime = (await mimetype)?.mime || mimeTypeEstimate[ext];
30
16
  return {
31
17
  name,
@@ -36,6 +22,5 @@ const getFileByPath = async (filePath)=>{
36
22
  }
37
23
  return undefined;
38
24
  };
39
- const _default = getFileByPath;
40
25
 
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEZpbGVCeVBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbUZpbGUgfSBmcm9tICdmaWxlLXR5cGUnXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgdHlwZSB7IEN1c3RvbVBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwb3J0cy90eXBlcydcblxuY29uc3QgbWltZVR5cGVFc3RpbWF0ZSA9IHtcbiAgc3ZnOiAnaW1hZ2Uvc3ZnK3htbCcsXG59XG5cbmNvbnN0IGdldEZpbGVCeVBhdGggPSBhc3luYyAoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8Q3VzdG9tUGF5bG9hZFJlcXVlc3RbJ2ZpbGUnXT4gPT4ge1xuICBpZiAodHlwZW9mIGZpbGVQYXRoID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGRhdGEgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgpXG4gICAgY29uc3QgbWltZXR5cGUgPSBmcm9tRmlsZShmaWxlUGF0aClcbiAgICBjb25zdCB7IHNpemUgfSA9IGZzLnN0YXRTeW5jKGZpbGVQYXRoKVxuXG4gICAgY29uc3QgbmFtZSA9IHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpXG4gICAgY29uc3QgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKS5zbGljZSgxKVxuXG4gICAgY29uc3QgbWltZSA9IChhd2FpdCBtaW1ldHlwZSk/Lm1pbWUgfHwgbWltZVR5cGVFc3RpbWF0ZVtleHRdXG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIGRhdGEsXG4gICAgICBtaW1ldHlwZTogbWltZSxcbiAgICAgIHNpemUsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRGaWxlQnlQYXRoXG4iXSwibmFtZXMiOlsibWltZVR5cGVFc3RpbWF0ZSIsInN2ZyIsImdldEZpbGVCeVBhdGgiLCJmaWxlUGF0aCIsImRhdGEiLCJmcyIsInJlYWRGaWxlU3luYyIsIm1pbWV0eXBlIiwiZnJvbUZpbGUiLCJzaXplIiwic3RhdFN5bmMiLCJuYW1lIiwicGF0aCIsImJhc2VuYW1lIiwiZXh0IiwiZXh0bmFtZSIsInNsaWNlIiwibWltZSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFnQ0E7OztlQUFBOzs7MEJBaEN5QjsyREFDVjs2REFDRTs7Ozs7O0FBSWpCLE1BQU1BLG1CQUFtQjtJQUN2QkMsS0FBSztBQUNQO0FBRUEsTUFBTUMsZ0JBQWdCLE9BQU9DO0lBQzNCLElBQUksT0FBT0EsYUFBYSxVQUFVO1FBQ2hDLE1BQU1DLE9BQU9DLFdBQUUsQ0FBQ0MsWUFBWSxDQUFDSDtRQUM3QixNQUFNSSxXQUFXQyxJQUFBQSxrQkFBUSxFQUFDTDtRQUMxQixNQUFNLEVBQUVNLElBQUksRUFBRSxHQUFHSixXQUFFLENBQUNLLFFBQVEsQ0FBQ1A7UUFFN0IsTUFBTVEsT0FBT0MsYUFBSSxDQUFDQyxRQUFRLENBQUNWO1FBQzNCLE1BQU1XLE1BQU1GLGFBQUksQ0FBQ0csT0FBTyxDQUFDWixVQUFVYSxLQUFLLENBQUM7UUFFekMsTUFBTUMsT0FBTyxBQUFDLENBQUEsTUFBTVYsUUFBTyxHQUFJVSxRQUFRakIsZ0JBQWdCLENBQUNjLElBQUk7UUFFNUQsT0FBTztZQUNMSDtZQUNBUDtZQUNBRyxVQUFVVTtZQUNWUjtRQUNGO0lBQ0Y7SUFFQSxPQUFPUztBQUNUO01BRUEsV0FBZWhCIn0=
26
+ //# sourceMappingURL=getFileByPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/uploads/getFileByPath.ts"],"sourcesContent":["import fileType from 'file-type'\nimport fs from 'fs'\nimport path from 'path'\nconst { fromFile } = fileType\n\nimport type { PayloadRequestWithData } from '../types/index.js'\n\nconst mimeTypeEstimate = {\n svg: 'image/svg+xml',\n}\n\nexport const getFileByPath = async (filePath: string): Promise<PayloadRequestWithData['file']> => {\n if (typeof filePath === 'string') {\n const data = fs.readFileSync(filePath)\n const mimetype = fromFile(filePath)\n const { size } = fs.statSync(filePath)\n\n const name = path.basename(filePath)\n const ext = path.extname(filePath).slice(1)\n\n const mime = (await mimetype)?.mime || mimeTypeEstimate[ext]\n\n return {\n name,\n data,\n mimetype: mime,\n size,\n }\n }\n\n return undefined\n}\n"],"names":["fileType","fs","path","fromFile","mimeTypeEstimate","svg","getFileByPath","filePath","data","readFileSync","mimetype","size","statSync","name","basename","ext","extname","slice","mime","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,cAAc,YAAW;AAChC,OAAOC,QAAQ,KAAI;AACnB,OAAOC,UAAU,OAAM;AACvB,MAAM,EAAEC,QAAQ,EAAE,GAAGH;AAIrB,MAAMI,mBAAmB;IACvBC,KAAK;AACP;AAEA,OAAO,MAAMC,gBAAgB,OAAOC;IAClC,IAAI,OAAOA,aAAa,UAAU;QAChC,MAAMC,OAAOP,GAAGQ,YAAY,CAACF;QAC7B,MAAMG,WAAWP,SAASI;QAC1B,MAAM,EAAEI,IAAI,EAAE,GAAGV,GAAGW,QAAQ,CAACL;QAE7B,MAAMM,OAAOX,KAAKY,QAAQ,CAACP;QAC3B,MAAMQ,MAAMb,KAAKc,OAAO,CAACT,UAAUU,KAAK,CAAC;QAEzC,MAAMC,OAAO,AAAC,CAAA,MAAMR,QAAO,GAAIQ,QAAQd,gBAAgB,CAACW,IAAI;QAE5D,OAAO;YACLF;YACAL;YACAE,UAAUQ;YACVP;QACF;IACF;IAEA,OAAOQ;AACT,EAAC"}
@@ -1,4 +1,4 @@
1
- import type { PayloadRequest } from '../exports/types';
2
- import type { ProbedImageSize } from './types';
3
- export default function (file: PayloadRequest['file']): Promise<ProbedImageSize>;
1
+ import type { PayloadRequestWithData } from '../types/index.js';
2
+ import type { ProbedImageSize } from './types.js';
3
+ export declare function getImageSize(file: PayloadRequestWithData['file']): Promise<ProbedImageSize>;
4
4
  //# sourceMappingURL=getImageSize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getImageSize.d.ts","sourceRoot":"","sources":["../../src/uploads/getImageSize.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,yBAA+B,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAOrF"}
1
+ {"version":3,"file":"getImageSize.d.ts","sourceRoot":"","sources":["../../src/uploads/getImageSize.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAOjD,wBAAsB,YAAY,CAAC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAmBjG"}
@@ -1,26 +1,25 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
- const _probeimagesize = /*#__PURE__*/ _interop_require_default(require("probe-image-size"));
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- async function _default(file) {
1
+ import fs from 'fs';
2
+ import sizeOfImport from 'image-size';
3
+ import { promisify } from 'util';
4
+ import { temporaryFileTask } from './tempFile.js';
5
+ const { imageSize } = sizeOfImport;
6
+ const imageSizePromise = promisify(imageSize);
7
+ export async function getImageSize(file) {
19
8
  if (file.tempFilePath) {
20
- const data = _fs.default.readFileSync(file.tempFilePath);
21
- return _probeimagesize.default.sync(data);
9
+ return imageSizePromise(file.tempFilePath);
10
+ }
11
+ // Tiff file do not support buffers or streams, so we must write to file first
12
+ // then retrieve dimensions. https://github.com/image-size/image-size/issues/103
13
+ if (file.mimetype === 'image/tiff') {
14
+ const dimensions = await temporaryFileTask(async (filepath)=>{
15
+ fs.writeFileSync(filepath, file.data);
16
+ return imageSizePromise(filepath);
17
+ }, {
18
+ extension: 'tiff'
19
+ });
20
+ return dimensions;
22
21
  }
23
- return _probeimagesize.default.sync(file.data);
22
+ return imageSize(file.data);
24
23
  }
25
24
 
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEltYWdlU2l6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcHJvYmVJbWFnZVNpemUgZnJvbSAncHJvYmUtaW1hZ2Utc2l6ZSdcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cG9ydHMvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIChmaWxlOiBQYXlsb2FkUmVxdWVzdFsnZmlsZSddKTogUHJvbWlzZTxQcm9iZWRJbWFnZVNpemU+IHtcbiAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgY29uc3QgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhmaWxlLnRlbXBGaWxlUGF0aClcbiAgICByZXR1cm4gcHJvYmVJbWFnZVNpemUuc3luYyhkYXRhKVxuICB9XG5cbiAgcmV0dXJuIHByb2JlSW1hZ2VTaXplLnN5bmMoZmlsZS5kYXRhKVxufVxuIl0sIm5hbWVzIjpbImZpbGUiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJwcm9iZUltYWdlU2l6ZSIsInN5bmMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBTUE7OztlQUFBOzs7MkRBTmU7dUVBQ1k7Ozs7OztBQUtaLGVBQWYsU0FBK0JBLElBQTRCO0lBQ3pELElBQUlBLEtBQUtDLFlBQVksRUFBRTtRQUNyQixNQUFNQyxPQUFPQyxXQUFFLENBQUNDLFlBQVksQ0FBQ0osS0FBS0MsWUFBWTtRQUM5QyxPQUFPSSx1QkFBYyxDQUFDQyxJQUFJLENBQUNKO0lBQzdCO0lBRUEsT0FBT0csdUJBQWMsQ0FBQ0MsSUFBSSxDQUFDTixLQUFLRSxJQUFJO0FBQ3RDIn0=
25
+ //# sourceMappingURL=getImageSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/uploads/getImageSize.ts"],"sourcesContent":["import fs from 'fs'\nimport sizeOfImport from 'image-size'\nimport { promisify } from 'util'\n\nimport type { PayloadRequestWithData } from '../types/index.js'\nimport type { ProbedImageSize } from './types.js'\n\nimport { temporaryFileTask } from './tempFile.js'\n\nconst { imageSize } = sizeOfImport\nconst imageSizePromise = promisify(imageSize)\n\nexport async function getImageSize(file: PayloadRequestWithData['file']): Promise<ProbedImageSize> {\n if (file.tempFilePath) {\n return imageSizePromise(file.tempFilePath)\n }\n\n // Tiff file do not support buffers or streams, so we must write to file first\n // then retrieve dimensions. https://github.com/image-size/image-size/issues/103\n if (file.mimetype === 'image/tiff') {\n const dimensions = await temporaryFileTask(\n async (filepath: string) => {\n fs.writeFileSync(filepath, file.data)\n return imageSizePromise(filepath)\n },\n { extension: 'tiff' },\n )\n return dimensions\n }\n\n return imageSize(file.data)\n}\n"],"names":["fs","sizeOfImport","promisify","temporaryFileTask","imageSize","imageSizePromise","getImageSize","file","tempFilePath","mimetype","dimensions","filepath","writeFileSync","data","extension"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,QAAQ,KAAI;AACnB,OAAOC,kBAAkB,aAAY;AACrC,SAASC,SAAS,QAAQ,OAAM;AAKhC,SAASC,iBAAiB,QAAQ,gBAAe;AAEjD,MAAM,EAAEC,SAAS,EAAE,GAAGH;AACtB,MAAMI,mBAAmBH,UAAUE;AAEnC,OAAO,eAAeE,aAAaC,IAAoC;IACrE,IAAIA,KAAKC,YAAY,EAAE;QACrB,OAAOH,iBAAiBE,KAAKC,YAAY;IAC3C;IAEA,8EAA8E;IAC9E,gFAAgF;IAChF,IAAID,KAAKE,QAAQ,KAAK,cAAc;QAClC,MAAMC,aAAa,MAAMP,kBACvB,OAAOQ;YACLX,GAAGY,aAAa,CAACD,UAAUJ,KAAKM,IAAI;YACpC,OAAOR,iBAAiBM;QAC1B,GACA;YAAEG,WAAW;QAAO;QAEtB,OAAOJ;IACT;IAEA,OAAON,UAAUG,KAAKM,IAAI;AAC5B"}
@@ -1,8 +1,8 @@
1
- import type { PayloadRequest } from '../types';
1
+ import type { PayloadRequestWithData } from '../types/index.js';
2
2
  type Args = {
3
3
  collectionSlug: string;
4
4
  desiredFilename: string;
5
- req: PayloadRequest;
5
+ req: PayloadRequestWithData;
6
6
  staticPath: string;
7
7
  };
8
8
  declare function getSafeFileName({ collectionSlug, desiredFilename, req, staticPath, }: Args): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"getSafeFilename.d.ts","sourceRoot":"","sources":["../../src/uploads/getSafeFilename.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAsB9C,KAAK,IAAI,GAAG;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,iBAAe,eAAe,CAAC,EAC7B,cAAc,EACd,eAAe,EACf,GAAG,EACH,UAAU,GACX,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBxB;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"getSafeFilename.d.ts","sourceRoot":"","sources":["../../src/uploads/getSafeFilename.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAsB/D,KAAK,IAAI,GAAG;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,sBAAsB,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,iBAAe,eAAe,CAAC,EAC7B,cAAc,EACd,eAAe,EACf,GAAG,EACH,UAAU,GACX,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBxB;AAED,eAAe,eAAe,CAAA"}
@@ -1,24 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _sanitizefilename = /*#__PURE__*/ _interop_require_default(require("sanitize-filename"));
12
- const _docWithFilenameExists = /*#__PURE__*/ _interop_require_default(require("./docWithFilenameExists"));
13
- const _fileExists = /*#__PURE__*/ _interop_require_default(require("./fileExists"));
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
1
+ import sanitize from 'sanitize-filename';
2
+ import docWithFilenameExists from './docWithFilenameExists.js';
3
+ import fileExists from './fileExists.js';
19
4
  const incrementName = (name)=>{
20
5
  const extension = name.split('.').pop();
21
- const baseFilename = (0, _sanitizefilename.default)(name.substring(0, name.lastIndexOf('.')) || name);
6
+ const baseFilename = sanitize(name.substring(0, name.lastIndexOf('.')) || name);
22
7
  let incrementedName = baseFilename;
23
8
  const regex = /(.*)-(\d+)$/;
24
9
  const found = baseFilename.match(regex);
@@ -35,16 +20,16 @@ const incrementName = (name)=>{
35
20
  async function getSafeFileName({ collectionSlug, desiredFilename, req, staticPath }) {
36
21
  let modifiedFilename = desiredFilename;
37
22
  // eslint-disable-next-line no-await-in-loop
38
- while(await (0, _docWithFilenameExists.default)({
23
+ while(await docWithFilenameExists({
39
24
  collectionSlug,
40
25
  filename: modifiedFilename,
41
26
  path: staticPath,
42
27
  req
43
- }) || await (0, _fileExists.default)(`${staticPath}/${modifiedFilename}`)){
28
+ }) || await fileExists(`${staticPath}/${modifiedFilename}`)){
44
29
  modifiedFilename = incrementName(modifiedFilename);
45
30
  }
46
31
  return modifiedFilename;
47
32
  }
48
- const _default = getSafeFileName;
33
+ export default getSafeFileName;
49
34
 
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldFNhZmVGaWxlbmFtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2FuaXRpemUgZnJvbSAnc2FuaXRpemUtZmlsZW5hbWUnXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IGRvY1dpdGhGaWxlbmFtZUV4aXN0cyBmcm9tICcuL2RvY1dpdGhGaWxlbmFtZUV4aXN0cydcbmltcG9ydCBmaWxlRXhpc3RzIGZyb20gJy4vZmlsZUV4aXN0cydcblxuY29uc3QgaW5jcmVtZW50TmFtZSA9IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gbmFtZS5zcGxpdCgnLicpLnBvcCgpXG4gIGNvbnN0IGJhc2VGaWxlbmFtZSA9IHNhbml0aXplKG5hbWUuc3Vic3RyaW5nKDAsIG5hbWUubGFzdEluZGV4T2YoJy4nKSkgfHwgbmFtZSlcbiAgbGV0IGluY3JlbWVudGVkTmFtZSA9IGJhc2VGaWxlbmFtZVxuICBjb25zdCByZWdleCA9IC8oLiopLShcXGQrKSQvXG4gIGNvbnN0IGZvdW5kID0gYmFzZUZpbGVuYW1lLm1hdGNoKHJlZ2V4KVxuICBpZiAoZm91bmQgPT09IG51bGwpIHtcbiAgICBpbmNyZW1lbnRlZE5hbWUgKz0gJy0xJ1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1hdGNoZWROYW1lID0gZm91bmRbMV1cbiAgICBjb25zdCBtYXRjaGVkTnVtYmVyID0gZm91bmRbMl1cbiAgICBjb25zdCBpbmNyZW1lbnRlZCA9IE51bWJlcihtYXRjaGVkTnVtYmVyKSArIDFcbiAgICBpbmNyZW1lbnRlZE5hbWUgPSBgJHttYXRjaGVkTmFtZX0tJHtpbmNyZW1lbnRlZH1gXG4gIH1cbiAgcmV0dXJuIGAke2luY3JlbWVudGVkTmFtZX0uJHtleHRlbnNpb259YFxufVxuXG50eXBlIEFyZ3MgPSB7XG4gIGNvbGxlY3Rpb25TbHVnOiBzdHJpbmdcbiAgZGVzaXJlZEZpbGVuYW1lOiBzdHJpbmdcbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzdGF0aWNQYXRoOiBzdHJpbmdcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0U2FmZUZpbGVOYW1lKHtcbiAgY29sbGVjdGlvblNsdWcsXG4gIGRlc2lyZWRGaWxlbmFtZSxcbiAgcmVxLFxuICBzdGF0aWNQYXRoLFxufTogQXJncyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGxldCBtb2RpZmllZEZpbGVuYW1lID0gZGVzaXJlZEZpbGVuYW1lXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgd2hpbGUgKFxuICAgIChhd2FpdCBkb2NXaXRoRmlsZW5hbWVFeGlzdHMoe1xuICAgICAgY29sbGVjdGlvblNsdWcsXG4gICAgICBmaWxlbmFtZTogbW9kaWZpZWRGaWxlbmFtZSxcbiAgICAgIHBhdGg6IHN0YXRpY1BhdGgsXG4gICAgICByZXEsXG4gICAgfSkpIHx8XG4gICAgKGF3YWl0IGZpbGVFeGlzdHMoYCR7c3RhdGljUGF0aH0vJHttb2RpZmllZEZpbGVuYW1lfWApKVxuICApIHtcbiAgICBtb2RpZmllZEZpbGVuYW1lID0gaW5jcmVtZW50TmFtZShtb2RpZmllZEZpbGVuYW1lKVxuICB9XG4gIHJldHVybiBtb2RpZmllZEZpbGVuYW1lXG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFNhZmVGaWxlTmFtZVxuIl0sIm5hbWVzIjpbImluY3JlbWVudE5hbWUiLCJuYW1lIiwiZXh0ZW5zaW9uIiwic3BsaXQiLCJwb3AiLCJiYXNlRmlsZW5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiaW5jcmVtZW50ZWROYW1lIiwicmVnZXgiLCJmb3VuZCIsIm1hdGNoIiwibWF0Y2hlZE5hbWUiLCJtYXRjaGVkTnVtYmVyIiwiaW5jcmVtZW50ZWQiLCJOdW1iZXIiLCJnZXRTYWZlRmlsZU5hbWUiLCJjb2xsZWN0aW9uU2x1ZyIsImRlc2lyZWRGaWxlbmFtZSIsInJlcSIsInN0YXRpY1BhdGgiLCJtb2RpZmllZEZpbGVuYW1lIiwiZG9jV2l0aEZpbGVuYW1lRXhpc3RzIiwiZmlsZW5hbWUiLCJwYXRoIiwiZmlsZUV4aXN0cyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFzREE7OztlQUFBOzs7eUVBdERxQjs4RUFJYTttRUFDWDs7Ozs7O0FBRXZCLE1BQU1BLGdCQUFnQixDQUFDQztJQUNyQixNQUFNQyxZQUFZRCxLQUFLRSxLQUFLLENBQUMsS0FBS0MsR0FBRztJQUNyQyxNQUFNQyxlQUFlQyxJQUFBQSx5QkFBUSxFQUFDTCxLQUFLTSxTQUFTLENBQUMsR0FBR04sS0FBS08sV0FBVyxDQUFDLFNBQVNQO0lBQzFFLElBQUlRLGtCQUFrQko7SUFDdEIsTUFBTUssUUFBUTtJQUNkLE1BQU1DLFFBQVFOLGFBQWFPLEtBQUssQ0FBQ0Y7SUFDakMsSUFBSUMsVUFBVSxNQUFNO1FBQ2xCRixtQkFBbUI7SUFDckIsT0FBTztRQUNMLE1BQU1JLGNBQWNGLEtBQUssQ0FBQyxFQUFFO1FBQzVCLE1BQU1HLGdCQUFnQkgsS0FBSyxDQUFDLEVBQUU7UUFDOUIsTUFBTUksY0FBY0MsT0FBT0YsaUJBQWlCO1FBQzVDTCxrQkFBa0IsQ0FBQyxFQUFFSSxZQUFZLENBQUMsRUFBRUUsWUFBWSxDQUFDO0lBQ25EO0lBQ0EsT0FBTyxDQUFDLEVBQUVOLGdCQUFnQixDQUFDLEVBQUVQLFVBQVUsQ0FBQztBQUMxQztBQVNBLGVBQWVlLGdCQUFnQixFQUM3QkMsY0FBYyxFQUNkQyxlQUFlLEVBQ2ZDLEdBQUcsRUFDSEMsVUFBVSxFQUNMO0lBQ0wsSUFBSUMsbUJBQW1CSDtJQUV2Qiw0Q0FBNEM7SUFDNUMsTUFDRSxBQUFDLE1BQU1JLElBQUFBLDhCQUFxQixFQUFDO1FBQzNCTDtRQUNBTSxVQUFVRjtRQUNWRyxNQUFNSjtRQUNORDtJQUNGLE1BQ0MsTUFBTU0sSUFBQUEsbUJBQVUsRUFBQyxDQUFDLEVBQUVMLFdBQVcsQ0FBQyxFQUFFQyxpQkFBaUIsQ0FBQyxFQUNyRDtRQUNBQSxtQkFBbUJ0QixjQUFjc0I7SUFDbkM7SUFDQSxPQUFPQTtBQUNUO01BRUEsV0FBZUwifQ==
35
+ //# sourceMappingURL=getSafeFilename.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/uploads/getSafeFilename.ts"],"sourcesContent":["import sanitize from 'sanitize-filename'\n\nimport type { PayloadRequestWithData } from '../types/index.js'\n\nimport docWithFilenameExists from './docWithFilenameExists.js'\nimport fileExists from './fileExists.js'\n\nconst incrementName = (name: string) => {\n const extension = name.split('.').pop()\n const baseFilename = sanitize(name.substring(0, name.lastIndexOf('.')) || name)\n let incrementedName = baseFilename\n const regex = /(.*)-(\\d+)$/\n const found = baseFilename.match(regex)\n if (found === null) {\n incrementedName += '-1'\n } else {\n const matchedName = found[1]\n const matchedNumber = found[2]\n const incremented = Number(matchedNumber) + 1\n incrementedName = `${matchedName}-${incremented}`\n }\n return `${incrementedName}.${extension}`\n}\n\ntype Args = {\n collectionSlug: string\n desiredFilename: string\n req: PayloadRequestWithData\n staticPath: string\n}\n\nasync function getSafeFileName({\n collectionSlug,\n desiredFilename,\n req,\n staticPath,\n}: Args): Promise<string> {\n let modifiedFilename = desiredFilename\n\n // eslint-disable-next-line no-await-in-loop\n while (\n (await docWithFilenameExists({\n collectionSlug,\n filename: modifiedFilename,\n path: staticPath,\n req,\n })) ||\n (await fileExists(`${staticPath}/${modifiedFilename}`))\n ) {\n modifiedFilename = incrementName(modifiedFilename)\n }\n return modifiedFilename\n}\n\nexport default getSafeFileName\n"],"names":["sanitize","docWithFilenameExists","fileExists","incrementName","name","extension","split","pop","baseFilename","substring","lastIndexOf","incrementedName","regex","found","match","matchedName","matchedNumber","incremented","Number","getSafeFileName","collectionSlug","desiredFilename","req","staticPath","modifiedFilename","filename","path"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,cAAc,oBAAmB;AAIxC,OAAOC,2BAA2B,6BAA4B;AAC9D,OAAOC,gBAAgB,kBAAiB;AAExC,MAAMC,gBAAgB,CAACC;IACrB,MAAMC,YAAYD,KAAKE,KAAK,CAAC,KAAKC,GAAG;IACrC,MAAMC,eAAeR,SAASI,KAAKK,SAAS,CAAC,GAAGL,KAAKM,WAAW,CAAC,SAASN;IAC1E,IAAIO,kBAAkBH;IACtB,MAAMI,QAAQ;IACd,MAAMC,QAAQL,aAAaM,KAAK,CAACF;IACjC,IAAIC,UAAU,MAAM;QAClBF,mBAAmB;IACrB,OAAO;QACL,MAAMI,cAAcF,KAAK,CAAC,EAAE;QAC5B,MAAMG,gBAAgBH,KAAK,CAAC,EAAE;QAC9B,MAAMI,cAAcC,OAAOF,iBAAiB;QAC5CL,kBAAkB,CAAC,EAAEI,YAAY,CAAC,EAAEE,YAAY,CAAC;IACnD;IACA,OAAO,CAAC,EAAEN,gBAAgB,CAAC,EAAEN,UAAU,CAAC;AAC1C;AASA,eAAec,gBAAgB,EAC7BC,cAAc,EACdC,eAAe,EACfC,GAAG,EACHC,UAAU,EACL;IACL,IAAIC,mBAAmBH;IAEvB,4CAA4C;IAC5C,MACE,AAAC,MAAMpB,sBAAsB;QAC3BmB;QACAK,UAAUD;QACVE,MAAMH;QACND;IACF,MACC,MAAMpB,WAAW,CAAC,EAAEqB,WAAW,CAAC,EAAEC,iBAAiB,CAAC,EACrD;QACAA,mBAAmBrB,cAAcqB;IACnC;IACA,OAAOA;AACT;AAEA,eAAeL,gBAAe"}
@@ -1,18 +1,19 @@
1
- import type { SanitizedCollectionConfig } from '../collections/config/types';
2
- import type { UploadEdits } from '../exports/types';
3
- import type { CustomPayloadRequest, PayloadRequest } from '../types';
4
- import type { FileSizes, FileToSave, ProbedImageSize } from './types';
1
+ import type { SanitizedCollectionConfig } from '../collections/config/types.js';
2
+ import type { SharpDependency } from '../config/types.js';
3
+ import type { PayloadRequestWithData, UploadEdits } from '../types/index.js';
4
+ import type { FileSizes, FileToSave, ProbedImageSize } from './types.js';
5
5
  type ResizeArgs = {
6
6
  config: SanitizedCollectionConfig;
7
7
  dimensions: ProbedImageSize;
8
- file: CustomPayloadRequest['file'];
8
+ file: PayloadRequestWithData['file'];
9
9
  mimeType: string;
10
- req: PayloadRequest & {
10
+ req: PayloadRequestWithData & {
11
11
  query?: {
12
12
  uploadEdits?: UploadEdits;
13
13
  };
14
14
  };
15
15
  savedFilename: string;
16
+ sharp: SharpDependency;
16
17
  staticPath: string;
17
18
  };
18
19
  /** Result from resizing and transforming the requested image sizes */
@@ -34,6 +35,6 @@ type ImageSizesResult = {
34
35
  * @param resizeConfig - the resize config
35
36
  * @returns the result of the resize operation(s)
36
37
  */
37
- export default function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, staticPath, }: ResizeArgs): Promise<ImageSizesResult>;
38
+ export default function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, sharp, staticPath, }: ResizeArgs): Promise<ImageSizesResult>;
38
39
  export {};
39
40
  //# sourceMappingURL=imageResizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACpE,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAa,eAAe,EAAE,MAAM,SAAS,CAAA;AAK1F,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,GAAG;QACpB,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,WAAW,CAAA;SAC1B,CAAA;KACF,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AAiKD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,UAAU,GACX,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkIxC"}
1
+ {"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAa,eAAe,EAAE,MAAM,YAAY,CAAA;AAK7F,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,sBAAsB,GAAG;QAC5B,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,WAAW,CAAA;SAC1B,CAAA;KACF,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,eAAe,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AAiKD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,KAAK,EACL,UAAU,GACX,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkIxC"}
@@ -1,37 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, /**
6
- * For the provided image sizes, handle the resizing and the transforms
7
- * (format, trim, etc.) of each requested image size and return the result object.
8
- * This only handles the image sizes. The transforms of the original image
9
- * are handled in {@link ./generateFileData.ts}.
10
- *
11
- * The image will be resized according to the provided
12
- * resize config. If no image sizes are requested, the resolved data will be empty.
13
- * For every image that dos not need to be resized, an result object with `null`
14
- * parameters will be returned.
15
- *
16
- * @param resizeConfig - the resize config
17
- * @returns the result of the resize operation(s)
18
- */ "default", {
19
- enumerable: true,
20
- get: function() {
21
- return resizeAndTransformImageSizes;
22
- }
23
- });
24
- const _filetype = require("file-type");
25
- const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
26
- const _sanitizefilename = /*#__PURE__*/ _interop_require_default(require("sanitize-filename"));
27
- const _sharp = /*#__PURE__*/ _interop_require_default(require("sharp"));
28
- const _isNumber = require("../utilities/isNumber");
29
- const _fileExists = /*#__PURE__*/ _interop_require_default(require("./fileExists"));
30
- function _interop_require_default(obj) {
31
- return obj && obj.__esModule ? obj : {
32
- default: obj
33
- };
34
- }
1
+ import fileType from 'file-type';
2
+ const { fromBuffer } = fileType;
3
+ import fs from 'fs';
4
+ import sanitize from 'sanitize-filename';
5
+ import { isNumber } from '../utilities/isNumber.js';
6
+ import fileExists from './fileExists.js';
35
7
  /**
36
8
  * Sanitize the image name and extract the extension from the source image
37
9
  *
@@ -39,7 +11,7 @@ function _interop_require_default(obj) {
39
11
  * @returns the sanitized name and extension
40
12
  */ const getSanitizedImageData = (sourceImage)=>{
41
13
  const extension = sourceImage.split('.').pop();
42
- const name = (0, _sanitizefilename.default)(sourceImage.substring(0, sourceImage.lastIndexOf('.')) || sourceImage);
14
+ const name = sanitize(sourceImage.substring(0, sourceImage.lastIndexOf('.')) || sourceImage);
43
15
  return {
44
16
  name,
45
17
  ext: extension
@@ -130,7 +102,7 @@ function _interop_require_default(obj) {
130
102
  * @returns true if the image should passed directly to sharp
131
103
  */ const applyPayloadAdjustments = ({ fit, height, width, withoutEnlargement, withoutReduction }, original)=>{
132
104
  if (fit === 'contain' || fit === 'inside') return false;
133
- if (!(0, _isNumber.isNumber)(height) && !(0, _isNumber.isNumber)(width)) return false;
105
+ if (!isNumber(height) && !isNumber(width)) return false;
134
106
  const targetAspectRatio = width / height;
135
107
  const originalAspectRatio = original.width / original.height;
136
108
  if (originalAspectRatio === targetAspectRatio) return false;
@@ -157,14 +129,27 @@ function _interop_require_default(obj) {
157
129
  }
158
130
  return resizeConfig;
159
131
  };
160
- async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, staticPath }) {
132
+ /**
133
+ * For the provided image sizes, handle the resizing and the transforms
134
+ * (format, trim, etc.) of each requested image size and return the result object.
135
+ * This only handles the image sizes. The transforms of the original image
136
+ * are handled in {@link ./generateFileData.ts}.
137
+ *
138
+ * The image will be resized according to the provided
139
+ * resize config. If no image sizes are requested, the resolved data will be empty.
140
+ * For every image that dos not need to be resized, an result object with `null`
141
+ * parameters will be returned.
142
+ *
143
+ * @param resizeConfig - the resize config
144
+ * @returns the result of the resize operation(s)
145
+ */ export default async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, sharp, staticPath }) {
161
146
  const { imageSizes } = config.upload;
162
147
  // Noting to resize here so return as early as possible
163
148
  if (!imageSizes) return {
164
149
  sizeData: {},
165
150
  sizesToSave: []
166
151
  };
167
- const sharpBase = (0, _sharp.default)(file.tempFilePath || file.data).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
152
+ const sharpBase = sharp(file.tempFilePath || file.data).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
168
153
  ;
169
154
  const results = await Promise.all(imageSizes.map(async (imageResizeConfig)=>{
170
155
  imageResizeConfig = sanitizeResizeConfig(imageResizeConfig);
@@ -191,8 +176,8 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
191
176
  });
192
177
  // Focal point adjustments
193
178
  const focalPoint = {
194
- x: (0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.x) ? req.query.uploadEdits.focalPoint.x : 50,
195
- y: (0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.y) ? req.query.uploadEdits.focalPoint.y : 50
179
+ x: isNumber(req.query.uploadEdits.focalPoint?.x) ? req.query.uploadEdits.focalPoint.x : 50,
180
+ y: isNumber(req.query.uploadEdits.focalPoint?.y) ? req.query.uploadEdits.focalPoint.y : 50
196
181
  };
197
182
  const safeResizeWidth = resizeWidth ?? scaledImageInfo.width;
198
183
  const maxOffsetX = scaledImageInfo.width - safeResizeWidth;
@@ -223,12 +208,12 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
223
208
  });
224
209
  const sanitizedImage = getSanitizedImageData(savedFilename);
225
210
  req.payloadUploadSizes[imageResizeConfig.name] = bufferData;
226
- const mimeInfo = await (0, _filetype.fromBuffer)(bufferData);
211
+ const mimeInfo = await fromBuffer(bufferData);
227
212
  const imageNameWithDimensions = createImageName(sanitizedImage.name, bufferInfo, mimeInfo?.ext || sanitizedImage.ext);
228
213
  const imagePath = `${staticPath}/${imageNameWithDimensions}`;
229
- if (await (0, _fileExists.default)(imagePath)) {
214
+ if (await fileExists(imagePath)) {
230
215
  try {
231
- _fs.default.unlinkSync(imagePath);
216
+ fs.unlinkSync(imagePath);
232
217
  } catch {
233
218
  // Ignore unlink errors
234
219
  }
@@ -251,4 +236,4 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
251
236
  });
252
237
  }
253
238
 
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE91dHB1dEluZm8gfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBVcGxvYWRFZGl0cyB9IGZyb20gJy4uL2V4cG9ydHMvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEN1c3RvbVBheWxvYWRSZXF1ZXN0LCBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWxlU2l6ZSwgRmlsZVNpemVzLCBGaWxlVG9TYXZlLCBJbWFnZVNpemUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2lzTnVtYmVyJ1xuaW1wb3J0IGZpbGVFeGlzdHMgZnJvbSAnLi9maWxlRXhpc3RzJ1xuXG50eXBlIFJlc2l6ZUFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemVcbiAgZmlsZTogQ3VzdG9tUGF5bG9hZFJlcXVlc3RbJ2ZpbGUnXVxuICBtaW1lVHlwZTogc3RyaW5nXG4gIHJlcTogUGF5bG9hZFJlcXVlc3QgJiB7XG4gICAgcXVlcnk/OiB7XG4gICAgICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG4gICAgfVxuICB9XG4gIHNhdmVkRmlsZW5hbWU6IHN0cmluZ1xuICBzdGF0aWNQYXRoOiBzdHJpbmdcbn1cblxuLyoqIFJlc3VsdCBmcm9tIHJlc2l6aW5nIGFuZCB0cmFuc2Zvcm1pbmcgdGhlIHJlcXVlc3RlZCBpbWFnZSBzaXplcyAqL1xudHlwZSBJbWFnZVNpemVzUmVzdWx0ID0ge1xuICBzaXplRGF0YTogRmlsZVNpemVzXG4gIHNpemVzVG9TYXZlOiBGaWxlVG9TYXZlW11cbn1cblxudHlwZSBTYW5pdGl6ZWRJbWFnZURhdGEgPSB7XG4gIGV4dDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xufVxuXG4vKipcbiAqIFNhbml0aXplIHRoZSBpbWFnZSBuYW1lIGFuZCBleHRyYWN0IHRoZSBleHRlbnNpb24gZnJvbSB0aGUgc291cmNlIGltYWdlXG4gKlxuICogQHBhcmFtIHNvdXJjZUltYWdlIC0gdGhlIHNvdXJjZSBpbWFnZVxuICogQHJldHVybnMgdGhlIHNhbml0aXplZCBuYW1lIGFuZCBleHRlbnNpb25cbiAqL1xuY29uc3QgZ2V0U2FuaXRpemVkSW1hZ2VEYXRhID0gKHNvdXJjZUltYWdlOiBzdHJpbmcpOiBTYW5pdGl6ZWRJbWFnZURhdGEgPT4ge1xuICBjb25zdCBleHRlbnNpb24gPSBzb3VyY2VJbWFnZS5zcGxpdCgnLicpLnBvcCgpXG4gIGNvbnN0IG5hbWUgPSBzYW5pdGl6ZShzb3VyY2VJbWFnZS5zdWJzdHJpbmcoMCwgc291cmNlSW1hZ2UubGFzdEluZGV4T2YoJy4nKSkgfHwgc291cmNlSW1hZ2UpXG4gIHJldHVybiB7IG5hbWUsIGV4dDogZXh0ZW5zaW9uIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgaW1hZ2UgbmFtZSBiYXNlZCBvbiB0aGUgb3V0cHV0IGltYWdlIG5hbWUsIHRoZSBkaW1lbnNpb25zIGFuZFxuICogdGhlIGV4dGVuc2lvbi5cbiAqXG4gKiBJZ25vcmUgdGhlIGZhY3QgdGhhdCBkdXBsaWNhdGUgbmFtZXMgY291bGQgaGFwcGVuIGlmIHRoZSB0aGVyZSBpcyBvbmVcbiAqIHNpemUgd2l0aCBgd2lkdGggQU5EIGhlaWdodGAgYW5kIG9uZSB3aXRoIG9ubHkgYGhlaWdodCBPUiB3aWR0aGAuIEJlY2F1c2VcbiAqIHNwYWNlIGlzIGV4cGVuc2l2ZSwgd2Ugd2lsbCByZXVzZSB0aGUgc2FtZSBpbWFnZSBmb3IgYm90aCBzaXplcy5cbiAqXG4gKiBAcGFyYW0gb3V0cHV0SW1hZ2VOYW1lIC0gdGhlIHNhbml0aXplZCBpbWFnZSBuYW1lXG4gKiBAcGFyYW0gYnVmZmVySW5mbyAtIHRoZSBidWZmZXIgaW5mb1xuICogQHBhcmFtIGV4dGVuc2lvbiAtIHRoZSBleHRlbnNpb24gdG8gdXNlXG4gKiBAcmV0dXJucyB0aGUgbmV3IGltYWdlIG5hbWUgdGhhdCBpcyBub3QgdGFrZW5cbiAqL1xuY29uc3QgY3JlYXRlSW1hZ2VOYW1lID0gKFxuICBvdXRwdXRJbWFnZU5hbWU6IHN0cmluZyxcbiAgeyBoZWlnaHQsIHdpZHRoIH06IE91dHB1dEluZm8sXG4gIGV4dGVuc2lvbjogc3RyaW5nLFxuKSA9PiBgJHtvdXRwdXRJbWFnZU5hbWV9LSR7d2lkdGh9eCR7aGVpZ2h0fS4ke2V4dGVuc2lvbn1gXG5cbi8qKlxuICogQ3JlYXRlIHRoZSByZXN1bHQgb2JqZWN0IGZvciB0aGUgaW1hZ2UgcmVzaXplIG9wZXJhdGlvbiBiYXNlZCBvbiB0aGVcbiAqIHByb3ZpZGVkIHBhcmFtZXRlcnMuIElmIHRoZSBuYW1lIGlzIG5vdCBwcm92aWRlZCwgYW4gZW1wdHkgcmVzdWx0IG9iamVjdFxuICogaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlbmFtZSAtIHRoZSBmaWxlbmFtZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSB3aWR0aCAtIHRoZSB3aWR0aCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBoZWlnaHQgLSB0aGUgaGVpZ2h0IG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGZpbGVzaXplIC0gdGhlIGZpbGVzaXplIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIG1pbWVUeXBlIC0gdGhlIG1pbWUgdHlwZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBzaXplc1RvU2F2ZSAtIHRoZSBzaXplcyB0byBzYXZlXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdFxuICovXG5jb25zdCBjcmVhdGVSZXN1bHQgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgZmlsZW5hbWU6IEZpbGVTaXplWydmaWxlbmFtZSddID0gbnVsbCxcbiAgd2lkdGg6IEZpbGVTaXplWyd3aWR0aCddID0gbnVsbCxcbiAgaGVpZ2h0OiBGaWxlU2l6ZVsnaGVpZ2h0J10gPSBudWxsLFxuICBmaWxlc2l6ZTogRmlsZVNpemVbJ2ZpbGVzaXplJ10gPSBudWxsLFxuICBtaW1lVHlwZTogRmlsZVNpemVbJ21pbWVUeXBlJ10gPSBudWxsLFxuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdID0gW10sXG4pOiBJbWFnZVNpemVzUmVzdWx0ID0+ICh7XG4gIHNpemVEYXRhOiB7XG4gICAgW25hbWVdOiB7XG4gICAgICBmaWxlbmFtZSxcbiAgICAgIGZpbGVzaXplLFxuICAgICAgaGVpZ2h0LFxuICAgICAgbWltZVR5cGUsXG4gICAgICB3aWR0aCxcbiAgICB9LFxuICB9LFxuICBzaXplc1RvU2F2ZSxcbn0pXG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGltYWdlIG5lZWRzIHRvIGJlIHJlc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9uc1xuICogYW5kIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplLiBJZiB0aGUgcmVzaXplIG9wdGlvbnMgd2l0aG91dEVubGFyZ2VtZW50IG9yIHdpdGhvdXRSZWR1Y3Rpb24gYXJlIHByb3ZpZGVkLFxuICogdGhlIGltYWdlIHdpbGwgYmUgcmVzaXplZCByZWdhcmRsZXNzIG9mIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucywgZ2l2ZW4gdGhhdCB0aGVcbiAqIHdpZHRoIG9yIGhlaWdodCB0byBiZSByZXNpemVkIGlzIHByb3ZpZGVkLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMgYW5kIHJlc2l6ZSBvcHRpb25zXG4gKiBAcGFyYW0gb3JpZ2luYWwgLSB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZVxuICogQHJldHVybnMgdHJ1ZSBpZiByZXNpemluZyBpcyBub3QgbmVlZGVkLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuY29uc3QgcHJldmVudFJlc2l6ZSA9IChcbiAgeyBoZWlnaHQ6IGRlc2lyZWRIZWlnaHQsIHdpZHRoOiBkZXNpcmVkV2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pOiBib29sZWFuID0+IHtcbiAgLy8gZGVmYXVsdCBpcyB0byBhbGxvdyByZWR1Y3Rpb25cbiAgaWYgKHdpdGhvdXRSZWR1Y3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIC8vIGRlZmF1bHQgaXMgdG8gcHJldmVudCBlbmxhcmdlbWVudFxuICBpZiAod2l0aG91dEVubGFyZ2VtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkID0gIWRlc2lyZWRIZWlnaHQgfHwgIWRlc2lyZWRXaWR0aFxuICBpZiAoaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCkge1xuICAgIC8vIElmIHdpZHRoIGFuZCBoZWlnaHQgYXJlIG5vdCBkZWZpbmVkLCBpdCBtZWFucyB0aGVyZSBpcyBhIGZvcm1hdCBjb252ZXJzaW9uXG4gICAgLy8gYW5kIHRoZSBpbWFnZSBuZWVkcyB0byBiZSBcInJlc2l6ZWRcIiAodHJhbnNmb3JtZWQpLlxuICAgIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudFdpZHRoID0gZGVzaXJlZFdpZHRoID4gb3JpZ2luYWwud2lkdGhcbiAgY29uc3QgaGFzSW5zdWZmaWNpZW50SGVpZ2h0ID0gZGVzaXJlZEhlaWdodCA+IG9yaWdpbmFsLmhlaWdodFxuICBpZiAoaGFzSW5zdWZmaWNpZW50V2lkdGggJiYgaGFzSW5zdWZmaWNpZW50SGVpZ2h0KSB7XG4gICAgLy8gZG9lc24ndCBuZWVkIHJlc2l6ZSAtIHByZXZlbnQgZW5sYXJnZW1lbnQuIFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUgaW5zdWZmaWNpZW50LlxuICAgIC8vIGlmIG9ubHkgb25lIGRpbWVuc2lvbiBpcyBpbnN1ZmZpY2llbnQgYW5kIHRoZSBvdGhlciBpcyBzdWZmaWNpZW50LCByZXNpemluZyBuZWVkcyB0byBoYXBwZW4sIGFzIHRoZSBpbWFnZVxuICAgIC8vIHNob3VsZCBiZSByZXNpemVkIHRvIHRoZSBzdWZmaWNpZW50IGRpbWVuc2lvbi5cbiAgICByZXR1cm4gdHJ1ZSAvLyBkbyBub3QgY3JlYXRlIGEgbmV3IHNpemVcbiAgfVxuXG4gIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgaW1hZ2Ugc2hvdWxkIGJlIHBhc3NlZCBkaXJlY3RseSB0byBzaGFycCB3aXRob3V0IHBheWxvYWQgYWRqdXN0aW5nIHByb3BlcnRpZXMuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucyBhbmQgcmVzaXplIG9wdGlvbnNcbiAqIEBwYXJhbSBvcmlnaW5hbCAtIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBpbWFnZSBzaG91bGQgcGFzc2VkIGRpcmVjdGx5IHRvIHNoYXJwXG4gKi9cbmNvbnN0IGFwcGx5UGF5bG9hZEFkanVzdG1lbnRzID0gKFxuICB7IGZpdCwgaGVpZ2h0LCB3aWR0aCwgd2l0aG91dEVubGFyZ2VtZW50LCB3aXRob3V0UmVkdWN0aW9uIH06IEltYWdlU2l6ZSxcbiAgb3JpZ2luYWw6IFByb2JlZEltYWdlU2l6ZSxcbikgPT4ge1xuICBpZiAoZml0ID09PSAnY29udGFpbicgfHwgZml0ID09PSAnaW5zaWRlJykgcmV0dXJuIGZhbHNlXG4gIGlmICghaXNOdW1iZXIoaGVpZ2h0KSAmJiAhaXNOdW1iZXIod2lkdGgpKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCB0YXJnZXRBc3BlY3RSYXRpbyA9IHdpZHRoIC8gaGVpZ2h0XG4gIGNvbnN0IG9yaWdpbmFsQXNwZWN0UmF0aW8gPSBvcmlnaW5hbC53aWR0aCAvIG9yaWdpbmFsLmhlaWdodFxuICBpZiAob3JpZ2luYWxBc3BlY3RSYXRpbyA9PT0gdGFyZ2V0QXNwZWN0UmF0aW8pIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IHNraXBFbmxhcmdlbWVudCA9IHdpdGhvdXRFbmxhcmdlbWVudCAmJiAob3JpZ2luYWwuaGVpZ2h0IDwgaGVpZ2h0IHx8IG9yaWdpbmFsLndpZHRoIDwgd2lkdGgpXG4gIGNvbnN0IHNraXBSZWR1Y3Rpb24gPSB3aXRob3V0UmVkdWN0aW9uICYmIChvcmlnaW5hbC5oZWlnaHQgPiBoZWlnaHQgfHwgb3JpZ2luYWwud2lkdGggPiB3aWR0aClcbiAgaWYgKHNraXBFbmxhcmdlbWVudCB8fCBza2lwUmVkdWN0aW9uKSByZXR1cm4gZmFsc2VcblxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIFNhbml0aXplIHRoZSByZXNpemUgY29uZmlnLiBJZiB0aGUgcmVzaXplIGNvbmZpZyBoYXMgdGhlIGB3aXRob3V0UmVkdWN0aW9uYFxuICogcHJvcGVydHkgc2V0IHRvIHRydWUsIHRoZSBgZml0YCBhbmQgYHBvc2l0aW9uYCBwcm9wZXJ0aWVzIHdpbGwgYmUgc2V0IHRvIGBjb250YWluYFxuICogYW5kIGB0b3AgbGVmdGAgcmVzcGVjdGl2ZWx5LlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSB0aGUgcmVzaXplIGNvbmZpZ1xuICogQHJldHVybnMgYSBzYW5pdGl6ZWQgcmVzaXplIGNvbmZpZ1xuICovXG5jb25zdCBzYW5pdGl6ZVJlc2l6ZUNvbmZpZyA9IChyZXNpemVDb25maWc6IEltYWdlU2l6ZSk6IEltYWdlU2l6ZSA9PiB7XG4gIGlmIChyZXNpemVDb25maWcud2l0aG91dFJlZHVjdGlvbikge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXNpemVDb25maWcsXG4gICAgICAvLyBXaHkgZml0IGBjb250YWluYCBzaG91bGQgYWxzbyBiZSBzZXQgdG8gaHR0cHM6Ly9naXRodWIuY29tL2xvdmVsbC9zaGFycC9pc3N1ZXMvMzU5NVxuICAgICAgZml0OiByZXNpemVDb25maWc/LmZpdCB8fCAnY29udGFpbicsXG4gICAgICBwb3NpdGlvbjogcmVzaXplQ29uZmlnPy5wb3NpdGlvbiB8fCAnbGVmdCB0b3AnLFxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzaXplQ29uZmlnXG59XG5cbi8qKlxuICogRm9yIHRoZSBwcm92aWRlZCBpbWFnZSBzaXplcywgaGFuZGxlIHRoZSByZXNpemluZyBhbmQgdGhlIHRyYW5zZm9ybXNcbiAqIChmb3JtYXQsIHRyaW0sIGV0Yy4pIG9mIGVhY2ggcmVxdWVzdGVkIGltYWdlIHNpemUgYW5kIHJldHVybiB0aGUgcmVzdWx0IG9iamVjdC5cbiAqIFRoaXMgb25seSBoYW5kbGVzIHRoZSBpbWFnZSBzaXplcy4gVGhlIHRyYW5zZm9ybXMgb2YgdGhlIG9yaWdpbmFsIGltYWdlXG4gKiBhcmUgaGFuZGxlZCBpbiB7QGxpbmsgLi9nZW5lcmF0ZUZpbGVEYXRhLnRzfS5cbiAqXG4gKiBUaGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWRcbiAqIHJlc2l6ZSBjb25maWcuIElmIG5vIGltYWdlIHNpemVzIGFyZSByZXF1ZXN0ZWQsIHRoZSByZXNvbHZlZCBkYXRhIHdpbGwgYmUgZW1wdHkuXG4gKiBGb3IgZXZlcnkgaW1hZ2UgdGhhdCBkb3Mgbm90IG5lZWQgdG8gYmUgcmVzaXplZCwgYW4gcmVzdWx0IG9iamVjdCB3aXRoIGBudWxsYFxuICogcGFyYW1ldGVycyB3aWxsIGJlIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSB0aGUgcmVzaXplIGNvbmZpZ1xuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgcmVzaXplIG9wZXJhdGlvbihzKVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzKHtcbiAgY29uZmlnLFxuICBkaW1lbnNpb25zLFxuICBmaWxlLFxuICBtaW1lVHlwZSxcbiAgcmVxLFxuICBzYXZlZEZpbGVuYW1lLFxuICBzdGF0aWNQYXRoLFxufTogUmVzaXplQXJncyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4ge1xuICBjb25zdCB7IGltYWdlU2l6ZXMgfSA9IGNvbmZpZy51cGxvYWRcbiAgLy8gTm90aW5nIHRvIHJlc2l6ZSBoZXJlIHNvIHJldHVybiBhcyBlYXJseSBhcyBwb3NzaWJsZVxuICBpZiAoIWltYWdlU2l6ZXMpIHJldHVybiB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH1cblxuICBjb25zdCBzaGFycEJhc2UgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuXG4gIGNvbnN0IHJlc3VsdHM6IEltYWdlU2l6ZXNSZXN1bHRbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGltYWdlU2l6ZXMubWFwKGFzeW5jIChpbWFnZVJlc2l6ZUNvbmZpZyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4gPT4ge1xuICAgICAgaW1hZ2VSZXNpemVDb25maWcgPSBzYW5pdGl6ZVJlc2l6ZUNvbmZpZyhpbWFnZVJlc2l6ZUNvbmZpZylcblxuICAgICAgLy8gVGhpcyBjaGVja3MgaWYgYSByZXNpemUgc2hvdWxkIGhhcHBlbi4gSWYgbm90LCB0aGUgcmVzaXplZCBpbWFnZSB3aWxsIGJlXG4gICAgICAvLyBza2lwcGVkIENPTVBMRVRFTFkgYW5kIHRodXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBpbWFnZXMuXG4gICAgICAvLyBBbGwgZnVydGhlciBmb3JtYXQvdHJpbSBvcHRpb25zIHdpbGwgdGh1cyBiZSBza2lwcGVkIGFzIHdlbGwuXG4gICAgICBpZiAocHJldmVudFJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZywgZGltZW5zaW9ucykpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdChpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBpbWFnZVRvUmVzaXplID0gc2hhcnBCYXNlLmNsb25lKClcbiAgICAgIGxldCByZXNpemVkID0gaW1hZ2VUb1Jlc2l6ZVxuXG4gICAgICBpZiAoXG4gICAgICAgIHJlcS5xdWVyeT8udXBsb2FkRWRpdHM/LmZvY2FsUG9pbnQgJiZcbiAgICAgICAgYXBwbHlQYXlsb2FkQWRqdXN0bWVudHMoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQ6IHJlc2l6ZUhlaWdodCwgd2lkdGg6IHJlc2l6ZVdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuICAgICAgICBjb25zdCByZXNpemVBc3BlY3RSYXRpbyA9IHJlc2l6ZVdpZHRoIC8gcmVzaXplSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQXNwZWN0UmF0aW8gPSBkaW1lbnNpb25zLndpZHRoIC8gZGltZW5zaW9ucy5oZWlnaHRcbiAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IHJlc2l6ZUFzcGVjdFJhdGlvIDwgb3JpZ2luYWxBc3BlY3RSYXRpb1xuXG4gICAgICAgIC8vIFNjYWxlIHRoZSBpbWFnZSB1cCBvciBkb3duIHRvIGZpdCB0aGUgcmVzaXplIGRpbWVuc2lvbnNcbiAgICAgICAgY29uc3Qgc2NhbGVkSW1hZ2UgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZSh7XG4gICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gcmVzaXplSGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICB3aWR0aDogcHJpb3JpdGl6ZUhlaWdodCA/IG51bGwgOiByZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgeyBpbmZvOiBzY2FsZWRJbWFnZUluZm8gfSA9IGF3YWl0IHNjYWxlZEltYWdlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICAvLyBGb2NhbCBwb2ludCBhZGp1c3RtZW50c1xuICAgICAgICBjb25zdCBmb2NhbFBvaW50ID0ge1xuICAgICAgICAgIHg6IGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py54KVxuICAgICAgICAgICAgPyByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC54XG4gICAgICAgICAgICA6IDUwLFxuICAgICAgICAgIHk6IGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py55KVxuICAgICAgICAgICAgPyByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC55XG4gICAgICAgICAgICA6IDUwLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZVdpZHRoID0gcmVzaXplV2lkdGggPz8gc2NhbGVkSW1hZ2VJbmZvLndpZHRoXG4gICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBzY2FsZWRJbWFnZUluZm8ud2lkdGggLSBzYWZlUmVzaXplV2lkdGhcbiAgICAgICAgY29uc3QgbGVmdEZvY2FsRWRnZSA9IE1hdGgucm91bmQoXG4gICAgICAgICAgc2NhbGVkSW1hZ2VJbmZvLndpZHRoICogKGZvY2FsUG9pbnQueCAvIDEwMCkgLSBzYWZlUmVzaXplV2lkdGggLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRYID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgbGVmdEZvY2FsRWRnZSksIG1heE9mZnNldFgpXG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZUhlaWdodCA9IHJlc2l6ZUhlaWdodCA/PyBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0XG4gICAgICAgIGNvbnN0IG1heE9mZnNldFkgPSBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0IC0gc2FmZVJlc2l6ZUhlaWdodFxuICAgICAgICBjb25zdCB0b3BGb2NhbEVkZ2UgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIHNjYWxlZEltYWdlSW5mby5oZWlnaHQgKiAoZm9jYWxQb2ludC55IC8gMTAwKSAtIHNhZmVSZXNpemVIZWlnaHQgLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRZID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgdG9wRm9jYWxFZGdlKSwgbWF4T2Zmc2V0WSlcblxuICAgICAgICAvLyBleHRyYWN0IHRoZSBmb2NhbCBhcmVhIGZyb20gdGhlIHNjYWxlZCBpbWFnZVxuICAgICAgICByZXNpemVkID0gc2NhbGVkSW1hZ2UuZXh0cmFjdCh7XG4gICAgICAgICAgaGVpZ2h0OiBzYWZlUmVzaXplSGVpZ2h0LFxuICAgICAgICAgIGxlZnQ6IHNhZmVPZmZzZXRYLFxuICAgICAgICAgIHRvcDogc2FmZU9mZnNldFksXG4gICAgICAgICAgd2lkdGg6IHNhZmVSZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2l6ZWQgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudG9Gb3JtYXQoXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5vcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50cmltKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGRhdGE6IGJ1ZmZlckRhdGEsIGluZm86IGJ1ZmZlckluZm8gfSA9IGF3YWl0IHJlc2l6ZWQudG9CdWZmZXIoe1xuICAgICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNhbml0aXplZEltYWdlID0gZ2V0U2FuaXRpemVkSW1hZ2VEYXRhKHNhdmVkRmlsZW5hbWUpXG5cbiAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXNbaW1hZ2VSZXNpemVDb25maWcubmFtZV0gPSBidWZmZXJEYXRhXG5cbiAgICAgIGNvbnN0IG1pbWVJbmZvID0gYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXJEYXRhKVxuXG4gICAgICBjb25zdCBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyA9IGNyZWF0ZUltYWdlTmFtZShcbiAgICAgICAgc2FuaXRpemVkSW1hZ2UubmFtZSxcbiAgICAgICAgYnVmZmVySW5mbyxcbiAgICAgICAgbWltZUluZm8/LmV4dCB8fCBzYW5pdGl6ZWRJbWFnZS5leHQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7aW1hZ2VOYW1lV2l0aERpbWVuc2lvbnN9YFxuXG4gICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhpbWFnZVBhdGgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZnMudW5saW5rU3luYyhpbWFnZVBhdGgpXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSB1bmxpbmsgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBoZWlnaHQsIHNpemUsIHdpZHRoIH0gPSBidWZmZXJJbmZvXG4gICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KFxuICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lLFxuICAgICAgICBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbWltZUluZm8/Lm1pbWUgfHwgbWltZVR5cGUsXG4gICAgICAgIFt7IGJ1ZmZlcjogYnVmZmVyRGF0YSwgcGF0aDogaW1hZ2VQYXRoIH1dLFxuICAgICAgKVxuICAgIH0pLFxuICApXG5cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxuICAgIChhY2MsIHJlc3VsdCkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihhY2Muc2l6ZURhdGEsIHJlc3VsdC5zaXplRGF0YSlcbiAgICAgIGFjYy5zaXplc1RvU2F2ZS5wdXNoKC4uLnJlc3VsdC5zaXplc1RvU2F2ZSlcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LFxuICAgIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJnZXRTYW5pdGl6ZWRJbWFnZURhdGEiLCJzb3VyY2VJbWFnZSIsImV4dGVuc2lvbiIsInNwbGl0IiwicG9wIiwibmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJleHQiLCJjcmVhdGVJbWFnZU5hbWUiLCJvdXRwdXRJbWFnZU5hbWUiLCJoZWlnaHQiLCJ3aWR0aCIsImNyZWF0ZVJlc3VsdCIsImZpbGVuYW1lIiwiZmlsZXNpemUiLCJtaW1lVHlwZSIsInNpemVzVG9TYXZlIiwic2l6ZURhdGEiLCJwcmV2ZW50UmVzaXplIiwiZGVzaXJlZEhlaWdodCIsImRlc2lyZWRXaWR0aCIsIndpdGhvdXRFbmxhcmdlbWVudCIsIndpdGhvdXRSZWR1Y3Rpb24iLCJvcmlnaW5hbCIsInVuZGVmaW5lZCIsImlzV2lkdGhPckhlaWdodE5vdERlZmluZWQiLCJoYXNJbnN1ZmZpY2llbnRXaWR0aCIsImhhc0luc3VmZmljaWVudEhlaWdodCIsImFwcGx5UGF5bG9hZEFkanVzdG1lbnRzIiwiZml0IiwiaXNOdW1iZXIiLCJ0YXJnZXRBc3BlY3RSYXRpbyIsIm9yaWdpbmFsQXNwZWN0UmF0aW8iLCJza2lwRW5sYXJnZW1lbnQiLCJza2lwUmVkdWN0aW9uIiwic2FuaXRpemVSZXNpemVDb25maWciLCJyZXNpemVDb25maWciLCJwb3NpdGlvbiIsImNvbmZpZyIsImRpbWVuc2lvbnMiLCJmaWxlIiwicmVxIiwic2F2ZWRGaWxlbmFtZSIsInN0YXRpY1BhdGgiLCJpbWFnZVNpemVzIiwidXBsb2FkIiwic2hhcnBCYXNlIiwic2hhcnAiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwicm90YXRlIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJpbWFnZVJlc2l6ZUNvbmZpZyIsImltYWdlVG9SZXNpemUiLCJjbG9uZSIsInJlc2l6ZWQiLCJxdWVyeSIsInVwbG9hZEVkaXRzIiwiZm9jYWxQb2ludCIsInJlc2l6ZUhlaWdodCIsInJlc2l6ZVdpZHRoIiwicmVzaXplQXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0Iiwic2NhbGVkSW1hZ2UiLCJyZXNpemUiLCJpbmZvIiwic2NhbGVkSW1hZ2VJbmZvIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsIngiLCJ5Iiwic2FmZVJlc2l6ZVdpZHRoIiwibWF4T2Zmc2V0WCIsImxlZnRGb2NhbEVkZ2UiLCJNYXRoIiwicm91bmQiLCJzYWZlT2Zmc2V0WCIsIm1pbiIsIm1heCIsInNhZmVSZXNpemVIZWlnaHQiLCJtYXhPZmZzZXRZIiwidG9wRm9jYWxFZGdlIiwic2FmZU9mZnNldFkiLCJleHRyYWN0IiwibGVmdCIsInRvcCIsImZvcm1hdE9wdGlvbnMiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltT3B0aW9ucyIsInRyaW0iLCJidWZmZXJEYXRhIiwiYnVmZmVySW5mbyIsInNhbml0aXplZEltYWdlIiwicGF5bG9hZFVwbG9hZFNpemVzIiwibWltZUluZm8iLCJmcm9tQnVmZmVyIiwiaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMiLCJpbWFnZVBhdGgiLCJmaWxlRXhpc3RzIiwiZnMiLCJ1bmxpbmtTeW5jIiwic2l6ZSIsIm1pbWUiLCJidWZmZXIiLCJwYXRoIiwicmVkdWNlIiwiYWNjIiwicmVzdWx0IiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFrTUE7Ozs7Ozs7Ozs7Ozs7Q0FhQyxHQUNEOzs7ZUFBOEJBOzs7MEJBOU1IOzJEQUNaO3lFQUNNOzhEQUNIOzBCQU9PO21FQUNGOzs7Ozs7QUEyQnZCOzs7OztDQUtDLEdBQ0QsTUFBTUMsd0JBQXdCLENBQUNDO0lBQzdCLE1BQU1DLFlBQVlELFlBQVlFLEtBQUssQ0FBQyxLQUFLQyxHQUFHO0lBQzVDLE1BQU1DLE9BQU9DLElBQUFBLHlCQUFRLEVBQUNMLFlBQVlNLFNBQVMsQ0FBQyxHQUFHTixZQUFZTyxXQUFXLENBQUMsU0FBU1A7SUFDaEYsT0FBTztRQUFFSTtRQUFNSSxLQUFLUDtJQUFVO0FBQ2hDO0FBRUE7Ozs7Ozs7Ozs7OztDQVlDLEdBQ0QsTUFBTVEsa0JBQWtCLENBQ3RCQyxpQkFDQSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBYyxFQUM3QlgsWUFDRyxDQUFDLEVBQUVTLGdCQUFnQixDQUFDLEVBQUVFLE1BQU0sQ0FBQyxFQUFFRCxPQUFPLENBQUMsRUFBRVYsVUFBVSxDQUFDO0FBRXpEOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDRCxNQUFNWSxlQUFlLENBQ25CVCxNQUNBVSxXQUFpQyxJQUFJLEVBQ3JDRixRQUEyQixJQUFJLEVBQy9CRCxTQUE2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
239
+ //# sourceMappingURL=imageResizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/uploads/imageResizer.ts"],"sourcesContent":["import type { OutputInfo } from 'sharp'\n\nimport fileType from 'file-type'\nconst { fromBuffer } = fileType\n\nimport fs from 'fs'\nimport sanitize from 'sanitize-filename'\n\nimport type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SharpDependency } from '../config/types.js'\nimport type { PayloadRequestWithData, UploadEdits } from '../types/index.js'\nimport type { FileSize, FileSizes, FileToSave, ImageSize, ProbedImageSize } from './types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport fileExists from './fileExists.js'\n\ntype ResizeArgs = {\n config: SanitizedCollectionConfig\n dimensions: ProbedImageSize\n file: PayloadRequestWithData['file']\n mimeType: string\n req: PayloadRequestWithData & {\n query?: {\n uploadEdits?: UploadEdits\n }\n }\n savedFilename: string\n sharp: SharpDependency\n staticPath: string\n}\n\n/** Result from resizing and transforming the requested image sizes */\ntype ImageSizesResult = {\n sizeData: FileSizes\n sizesToSave: FileToSave[]\n}\n\ntype SanitizedImageData = {\n ext: string\n name: string\n}\n\n/**\n * Sanitize the image name and extract the extension from the source image\n *\n * @param sourceImage - the source image\n * @returns the sanitized name and extension\n */\nconst getSanitizedImageData = (sourceImage: string): SanitizedImageData => {\n const extension = sourceImage.split('.').pop()\n const name = sanitize(sourceImage.substring(0, sourceImage.lastIndexOf('.')) || sourceImage)\n return { name, ext: extension }\n}\n\n/**\n * Create a new image name based on the output image name, the dimensions and\n * the extension.\n *\n * Ignore the fact that duplicate names could happen if the there is one\n * size with `width AND height` and one with only `height OR width`. Because\n * space is expensive, we will reuse the same image for both sizes.\n *\n * @param outputImageName - the sanitized image name\n * @param bufferInfo - the buffer info\n * @param extension - the extension to use\n * @returns the new image name that is not taken\n */\nconst createImageName = (\n outputImageName: string,\n { height, width }: OutputInfo,\n extension: string,\n) => `${outputImageName}-${width}x${height}.${extension}`\n\n/**\n * Create the result object for the image resize operation based on the\n * provided parameters. If the name is not provided, an empty result object\n * is returned.\n *\n * @param name - the name of the image\n * @param filename - the filename of the image\n * @param width - the width of the image\n * @param height - the height of the image\n * @param filesize - the filesize of the image\n * @param mimeType - the mime type of the image\n * @param sizesToSave - the sizes to save\n * @returns the result object\n */\nconst createResult = (\n name: string,\n filename: FileSize['filename'] = null,\n width: FileSize['width'] = null,\n height: FileSize['height'] = null,\n filesize: FileSize['filesize'] = null,\n mimeType: FileSize['mimeType'] = null,\n sizesToSave: FileToSave[] = [],\n): ImageSizesResult => ({\n sizeData: {\n [name]: {\n filename,\n filesize,\n height,\n mimeType,\n width,\n },\n },\n sizesToSave,\n})\n\n/**\n * Check if the image needs to be resized according to the requested dimensions\n * and the original image size. If the resize options withoutEnlargement or withoutReduction are provided,\n * the image will be resized regardless of the requested dimensions, given that the\n * width or height to be resized is provided.\n *\n * @param resizeConfig - object containing the requested dimensions and resize options\n * @param original - the original image size\n * @returns true if resizing is not needed, false otherwise\n */\nconst preventResize = (\n { height: desiredHeight, width: desiredWidth, withoutEnlargement, withoutReduction }: ImageSize,\n original: ProbedImageSize,\n): boolean => {\n // default is to allow reduction\n if (withoutReduction !== undefined) {\n return false // needs resize\n }\n\n // default is to prevent enlargement\n if (withoutEnlargement !== undefined) {\n return false // needs resize\n }\n\n const isWidthOrHeightNotDefined = !desiredHeight || !desiredWidth\n if (isWidthOrHeightNotDefined) {\n // If width and height are not defined, it means there is a format conversion\n // and the image needs to be \"resized\" (transformed).\n return false // needs resize\n }\n\n const hasInsufficientWidth = desiredWidth > original.width\n const hasInsufficientHeight = desiredHeight > original.height\n if (hasInsufficientWidth && hasInsufficientHeight) {\n // doesn't need resize - prevent enlargement. This should only happen if both width and height are insufficient.\n // if only one dimension is insufficient and the other is sufficient, resizing needs to happen, as the image\n // should be resized to the sufficient dimension.\n return true // do not create a new size\n }\n\n return false // needs resize\n}\n\n/**\n * Check if the image should be passed directly to sharp without payload adjusting properties.\n *\n * @param resizeConfig - object containing the requested dimensions and resize options\n * @param original - the original image size\n * @returns true if the image should passed directly to sharp\n */\nconst applyPayloadAdjustments = (\n { fit, height, width, withoutEnlargement, withoutReduction }: ImageSize,\n original: ProbedImageSize,\n) => {\n if (fit === 'contain' || fit === 'inside') return false\n if (!isNumber(height) && !isNumber(width)) return false\n\n const targetAspectRatio = width / height\n const originalAspectRatio = original.width / original.height\n if (originalAspectRatio === targetAspectRatio) return false\n\n const skipEnlargement = withoutEnlargement && (original.height < height || original.width < width)\n const skipReduction = withoutReduction && (original.height > height || original.width > width)\n if (skipEnlargement || skipReduction) return false\n\n return true\n}\n\n/**\n * Sanitize the resize config. If the resize config has the `withoutReduction`\n * property set to true, the `fit` and `position` properties will be set to `contain`\n * and `top left` respectively.\n *\n * @param resizeConfig - the resize config\n * @returns a sanitized resize config\n */\nconst sanitizeResizeConfig = (resizeConfig: ImageSize): ImageSize => {\n if (resizeConfig.withoutReduction) {\n return {\n ...resizeConfig,\n // Why fit `contain` should also be set to https://github.com/lovell/sharp/issues/3595\n fit: resizeConfig?.fit || 'contain',\n position: resizeConfig?.position || 'left top',\n }\n }\n return resizeConfig\n}\n\n/**\n * For the provided image sizes, handle the resizing and the transforms\n * (format, trim, etc.) of each requested image size and return the result object.\n * This only handles the image sizes. The transforms of the original image\n * are handled in {@link ./generateFileData.ts}.\n *\n * The image will be resized according to the provided\n * resize config. If no image sizes are requested, the resolved data will be empty.\n * For every image that dos not need to be resized, an result object with `null`\n * parameters will be returned.\n *\n * @param resizeConfig - the resize config\n * @returns the result of the resize operation(s)\n */\nexport default async function resizeAndTransformImageSizes({\n config,\n dimensions,\n file,\n mimeType,\n req,\n savedFilename,\n sharp,\n staticPath,\n}: ResizeArgs): Promise<ImageSizesResult> {\n const { imageSizes } = config.upload\n // Noting to resize here so return as early as possible\n if (!imageSizes) return { sizeData: {}, sizesToSave: [] }\n\n const sharpBase = sharp(file.tempFilePath || file.data).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081\n\n const results: ImageSizesResult[] = await Promise.all(\n imageSizes.map(async (imageResizeConfig): Promise<ImageSizesResult> => {\n imageResizeConfig = sanitizeResizeConfig(imageResizeConfig)\n\n // This checks if a resize should happen. If not, the resized image will be\n // skipped COMPLETELY and thus will not be included in the resulting images.\n // All further format/trim options will thus be skipped as well.\n if (preventResize(imageResizeConfig, dimensions)) {\n return createResult(imageResizeConfig.name)\n }\n\n const imageToResize = sharpBase.clone()\n let resized = imageToResize\n\n if (\n req.query?.uploadEdits?.focalPoint &&\n applyPayloadAdjustments(imageResizeConfig, dimensions)\n ) {\n const { height: resizeHeight, width: resizeWidth } = imageResizeConfig\n const resizeAspectRatio = resizeWidth / resizeHeight\n const originalAspectRatio = dimensions.width / dimensions.height\n const prioritizeHeight = resizeAspectRatio < originalAspectRatio\n\n // Scale the image up or down to fit the resize dimensions\n const scaledImage = imageToResize.resize({\n height: prioritizeHeight ? resizeHeight : null,\n width: prioritizeHeight ? null : resizeWidth,\n })\n const { info: scaledImageInfo } = await scaledImage.toBuffer({ resolveWithObject: true })\n\n // Focal point adjustments\n const focalPoint = {\n x: isNumber(req.query.uploadEdits.focalPoint?.x)\n ? req.query.uploadEdits.focalPoint.x\n : 50,\n y: isNumber(req.query.uploadEdits.focalPoint?.y)\n ? req.query.uploadEdits.focalPoint.y\n : 50,\n }\n\n const safeResizeWidth = resizeWidth ?? scaledImageInfo.width\n const maxOffsetX = scaledImageInfo.width - safeResizeWidth\n const leftFocalEdge = Math.round(\n scaledImageInfo.width * (focalPoint.x / 100) - safeResizeWidth / 2,\n )\n const safeOffsetX = Math.min(Math.max(0, leftFocalEdge), maxOffsetX)\n\n const safeResizeHeight = resizeHeight ?? scaledImageInfo.height\n const maxOffsetY = scaledImageInfo.height - safeResizeHeight\n const topFocalEdge = Math.round(\n scaledImageInfo.height * (focalPoint.y / 100) - safeResizeHeight / 2,\n )\n const safeOffsetY = Math.min(Math.max(0, topFocalEdge), maxOffsetY)\n\n // extract the focal area from the scaled image\n resized = scaledImage.extract({\n height: safeResizeHeight,\n left: safeOffsetX,\n top: safeOffsetY,\n width: safeResizeWidth,\n })\n } else {\n resized = imageToResize.resize(imageResizeConfig)\n }\n\n if (imageResizeConfig.formatOptions) {\n resized = resized.toFormat(\n imageResizeConfig.formatOptions.format,\n imageResizeConfig.formatOptions.options,\n )\n }\n\n if (imageResizeConfig.trimOptions) {\n resized = resized.trim(imageResizeConfig.trimOptions)\n }\n\n const { data: bufferData, info: bufferInfo } = await resized.toBuffer({\n resolveWithObject: true,\n })\n\n const sanitizedImage = getSanitizedImageData(savedFilename)\n\n req.payloadUploadSizes[imageResizeConfig.name] = bufferData\n\n const mimeInfo = await fromBuffer(bufferData)\n\n const imageNameWithDimensions = createImageName(\n sanitizedImage.name,\n bufferInfo,\n mimeInfo?.ext || sanitizedImage.ext,\n )\n\n const imagePath = `${staticPath}/${imageNameWithDimensions}`\n\n if (await fileExists(imagePath)) {\n try {\n fs.unlinkSync(imagePath)\n } catch {\n // Ignore unlink errors\n }\n }\n\n const { height, size, width } = bufferInfo\n return createResult(\n imageResizeConfig.name,\n imageNameWithDimensions,\n width,\n height,\n size,\n mimeInfo?.mime || mimeType,\n [{ buffer: bufferData, path: imagePath }],\n )\n }),\n )\n\n return results.reduce(\n (acc, result) => {\n Object.assign(acc.sizeData, result.sizeData)\n acc.sizesToSave.push(...result.sizesToSave)\n return acc\n },\n { sizeData: {}, sizesToSave: [] },\n )\n}\n"],"names":["fileType","fromBuffer","fs","sanitize","isNumber","fileExists","getSanitizedImageData","sourceImage","extension","split","pop","name","substring","lastIndexOf","ext","createImageName","outputImageName","height","width","createResult","filename","filesize","mimeType","sizesToSave","sizeData","preventResize","desiredHeight","desiredWidth","withoutEnlargement","withoutReduction","original","undefined","isWidthOrHeightNotDefined","hasInsufficientWidth","hasInsufficientHeight","applyPayloadAdjustments","fit","targetAspectRatio","originalAspectRatio","skipEnlargement","skipReduction","sanitizeResizeConfig","resizeConfig","position","resizeAndTransformImageSizes","config","dimensions","file","req","savedFilename","sharp","staticPath","imageSizes","upload","sharpBase","tempFilePath","data","rotate","results","Promise","all","map","imageResizeConfig","imageToResize","clone","resized","query","uploadEdits","focalPoint","resizeHeight","resizeWidth","resizeAspectRatio","prioritizeHeight","scaledImage","resize","info","scaledImageInfo","toBuffer","resolveWithObject","x","y","safeResizeWidth","maxOffsetX","leftFocalEdge","Math","round","safeOffsetX","min","max","safeResizeHeight","maxOffsetY","topFocalEdge","safeOffsetY","extract","left","top","formatOptions","toFormat","format","options","trimOptions","trim","bufferData","bufferInfo","sanitizedImage","payloadUploadSizes","mimeInfo","imageNameWithDimensions","imagePath","unlinkSync","size","mime","buffer","path","reduce","acc","result","Object","assign","push"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"isImage.d.ts","sourceRoot":"","sources":["../../src/uploads/isImage.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIzD"}
1
+ {"version":3,"file":"isImage.d.ts","sourceRoot":"","sources":["../../src/uploads/isImage.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMzD"}
@@ -1,21 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return isImage;
9
- }
10
- });
11
- function isImage(mimeType) {
1
+ export default function isImage(mimeType) {
12
2
  return [
13
3
  'image/jpeg',
14
4
  'image/png',
15
5
  'image/gif',
16
6
  'image/svg+xml',
17
- 'image/webp'
7
+ 'image/webp',
8
+ 'image/avif'
18
9
  ].indexOf(mimeType) > -1;
19
10
  }
20
11
 
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2lzSW1hZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNJbWFnZShtaW1lVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZycsICdpbWFnZS9naWYnLCAnaW1hZ2Uvc3ZnK3htbCcsICdpbWFnZS93ZWJwJ10uaW5kZXhPZihtaW1lVHlwZSkgPiAtMVxuICApXG59XG4iXSwibmFtZXMiOlsiaXNJbWFnZSIsIm1pbWVUeXBlIiwiaW5kZXhPZiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBQTs7O2VBQXdCQTs7O0FBQVQsU0FBU0EsUUFBUUMsUUFBZ0I7SUFDOUMsT0FDRTtRQUFDO1FBQWM7UUFBYTtRQUFhO1FBQWlCO0tBQWEsQ0FBQ0MsT0FBTyxDQUFDRCxZQUFZLENBQUM7QUFFakcifQ==
12
+ //# sourceMappingURL=isImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/uploads/isImage.ts"],"sourcesContent":["export default function isImage(mimeType: string): boolean {\n return (\n ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp', 'image/avif'].indexOf(\n mimeType,\n ) > -1\n )\n}\n"],"names":["isImage","mimeType","indexOf"],"rangeMappings":";;;;;;;;;","mappings":"AAAA,eAAe,SAASA,QAAQC,QAAgB;IAC9C,OACE;QAAC;QAAc;QAAa;QAAa;QAAiB;QAAc;KAAa,CAACC,OAAO,CAC3FD,YACE,CAAC;AAET"}
@@ -1,3 +1,3 @@
1
- import type { Validate } from '../fields/config/types';
1
+ import type { Validate } from '../fields/config/types.js';
2
2
  export declare const mimeTypeValidator: (mimeTypes: string[]) => Validate;
3
3
  //# sourceMappingURL=mimeTypeValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mimeTypeValidator.d.ts","sourceRoot":"","sources":["../../src/uploads/mimeTypeValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEtD,eAAO,MAAM,iBAAiB,cAChB,MAAM,EAAE,KAAG,QAYtB,CAAA"}
1
+ {"version":3,"file":"mimeTypeValidator.d.ts","sourceRoot":"","sources":["../../src/uploads/mimeTypeValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEzD,eAAO,MAAM,iBAAiB,cAChB,MAAM,EAAE,KAAG,QAYtB,CAAA"}
@@ -1,14 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "mimeTypeValidator", {
6
- enumerable: true,
7
- get: function() {
8
- return mimeTypeValidator;
9
- }
10
- });
11
- const mimeTypeValidator = (mimeTypes)=>(val, { siblingData })=>{
1
+ export const mimeTypeValidator = (mimeTypes)=>(val, { siblingData })=>{
12
2
  if (!siblingData.filename) {
13
3
  return true;
14
4
  }
@@ -19,4 +9,4 @@ const mimeTypeValidator = (mimeTypes)=>(val, { siblingData })=>{
19
9
  return !cleanedMimeTypes.some((v)=>val.startsWith(v)) ? `Invalid file type: '${val}'` : true;
20
10
  };
21
11
 
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL21pbWVUeXBlVmFsaWRhdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVmFsaWRhdGUgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgbWltZVR5cGVWYWxpZGF0b3IgPVxuICAobWltZVR5cGVzOiBzdHJpbmdbXSk6IFZhbGlkYXRlID0+XG4gICh2YWw6IHN0cmluZywgeyBzaWJsaW5nRGF0YSB9KSA9PiB7XG4gICAgaWYgKCFzaWJsaW5nRGF0YS5maWxlbmFtZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoIXZhbCkge1xuICAgICAgcmV0dXJuICdJbnZhbGlkIGZpbGUgdHlwZSdcbiAgICB9XG5cbiAgICBjb25zdCBjbGVhbmVkTWltZVR5cGVzID0gbWltZVR5cGVzLm1hcCgodikgPT4gdi5yZXBsYWNlKCcqJywgJycpKVxuICAgIHJldHVybiAhY2xlYW5lZE1pbWVUeXBlcy5zb21lKCh2KSA9PiB2YWwuc3RhcnRzV2l0aCh2KSkgPyBgSW52YWxpZCBmaWxlIHR5cGU6ICcke3ZhbH0nYCA6IHRydWVcbiAgfVxuIl0sIm5hbWVzIjpbIm1pbWVUeXBlVmFsaWRhdG9yIiwibWltZVR5cGVzIiwidmFsIiwic2libGluZ0RhdGEiLCJmaWxlbmFtZSIsImNsZWFuZWRNaW1lVHlwZXMiLCJtYXAiLCJ2IiwicmVwbGFjZSIsInNvbWUiLCJzdGFydHNXaXRoIl0sIm1hcHBpbmdzIjoiOzs7OytCQUVhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxvQkFDWCxDQUFDQyxZQUNELENBQUNDLEtBQWEsRUFBRUMsV0FBVyxFQUFFO1FBQzNCLElBQUksQ0FBQ0EsWUFBWUMsUUFBUSxFQUFFO1lBQ3pCLE9BQU87UUFDVDtRQUVBLElBQUksQ0FBQ0YsS0FBSztZQUNSLE9BQU87UUFDVDtRQUVBLE1BQU1HLG1CQUFtQkosVUFBVUssR0FBRyxDQUFDLENBQUNDLElBQU1BLEVBQUVDLE9BQU8sQ0FBQyxLQUFLO1FBQzdELE9BQU8sQ0FBQ0gsaUJBQWlCSSxJQUFJLENBQUMsQ0FBQ0YsSUFBTUwsSUFBSVEsVUFBVSxDQUFDSCxNQUFNLENBQUMsb0JBQW9CLEVBQUVMLElBQUksQ0FBQyxDQUFDLEdBQUc7SUFDNUYifQ==
12
+ //# sourceMappingURL=mimeTypeValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/uploads/mimeTypeValidator.ts"],"sourcesContent":["import type { Validate } from '../fields/config/types.js'\n\nexport const mimeTypeValidator =\n (mimeTypes: string[]): Validate =>\n (val: string, { siblingData }) => {\n if (!siblingData.filename) {\n return true\n }\n\n if (!val) {\n return 'Invalid file type'\n }\n\n const cleanedMimeTypes = mimeTypes.map((v) => v.replace('*', ''))\n return !cleanedMimeTypes.some((v) => val.startsWith(v)) ? `Invalid file type: '${val}'` : true\n }\n"],"names":["mimeTypeValidator","mimeTypes","val","siblingData","filename","cleanedMimeTypes","map","v","replace","some","startsWith"],"rangeMappings":";;;;;;;;;","mappings":"AAEA,OAAO,MAAMA,oBACX,CAACC,YACD,CAACC,KAAa,EAAEC,WAAW,EAAE;QAC3B,IAAI,CAACA,YAAYC,QAAQ,EAAE;YACzB,OAAO;QACT;QAEA,IAAI,CAACF,KAAK;YACR,OAAO;QACT;QAEA,MAAMG,mBAAmBJ,UAAUK,GAAG,CAAC,CAACC,IAAMA,EAAEC,OAAO,CAAC,KAAK;QAC7D,OAAO,CAACH,iBAAiBI,IAAI,CAAC,CAACF,IAAML,IAAIQ,UAAU,CAACH,MAAM,CAAC,oBAAoB,EAAEL,IAAI,CAAC,CAAC,GAAG;IAC5F,EAAC"}