payload 3.0.0-alpha.3 → 3.0.0-alpha.30

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 (774) hide show
  1. package/auth.d.ts +5 -5
  2. package/auth.js +5 -44
  3. package/bin.js +40 -1
  4. package/components.d.ts +14 -0
  5. package/components.js +71 -0
  6. package/config.d.ts +10 -10
  7. package/config.js +10 -59
  8. package/database.d.ts +22 -22
  9. package/database.js +21 -108
  10. package/dist/admin/RichText.d.ts +4 -4
  11. package/dist/admin/RichText.d.ts.map +1 -1
  12. package/dist/admin/RichText.js +2 -5
  13. package/dist/admin/elements/Cell.d.ts +2 -2
  14. package/dist/admin/elements/Cell.d.ts.map +1 -1
  15. package/dist/admin/elements/Cell.js +2 -5
  16. package/dist/admin/elements/DatePicker.js +2 -5
  17. package/dist/admin/elements/PreviewButton.js +2 -5
  18. package/dist/admin/elements/PublishButton.js +2 -5
  19. package/dist/admin/elements/SaveButton.js +2 -5
  20. package/dist/admin/elements/SaveDraftButton.js +2 -5
  21. package/dist/admin/elements/Tab.d.ts +3 -3
  22. package/dist/admin/elements/Tab.d.ts.map +1 -1
  23. package/dist/admin/elements/Tab.js +2 -5
  24. package/dist/admin/forms/Error.js +2 -5
  25. package/dist/admin/forms/FieldDescription.js +2 -5
  26. package/dist/admin/forms/FieldTypes.js +2 -5
  27. package/dist/admin/forms/Form.d.ts +22 -0
  28. package/dist/admin/forms/Form.d.ts.map +1 -1
  29. package/dist/admin/forms/Form.js +2 -5
  30. package/dist/admin/forms/Label.js +2 -5
  31. package/dist/admin/forms/RowLabel.d.ts +1 -1
  32. package/dist/admin/forms/RowLabel.d.ts.map +1 -1
  33. package/dist/admin/forms/RowLabel.js +2 -5
  34. package/dist/admin/types.d.ts +19 -18
  35. package/dist/admin/types.d.ts.map +1 -1
  36. package/dist/admin/types.js +2 -5
  37. package/dist/admin/views/types.d.ts +41 -0
  38. package/dist/admin/views/types.d.ts.map +1 -0
  39. package/dist/admin/views/types.js +3 -0
  40. package/dist/assets/assets.d.js +0 -1
  41. package/dist/auth/baseFields/accountLock.d.ts +1 -1
  42. package/dist/auth/baseFields/accountLock.d.ts.map +1 -1
  43. package/dist/auth/baseFields/accountLock.js +6 -16
  44. package/dist/auth/baseFields/apiKey.d.ts +1 -1
  45. package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
  46. package/dist/auth/baseFields/apiKey.js +6 -21
  47. package/dist/auth/baseFields/auth.d.ts +1 -1
  48. package/dist/auth/baseFields/auth.d.ts.map +1 -1
  49. package/dist/auth/baseFields/auth.js +6 -16
  50. package/dist/auth/baseFields/verification.d.ts +1 -1
  51. package/dist/auth/baseFields/verification.d.ts.map +1 -1
  52. package/dist/auth/baseFields/verification.js +8 -18
  53. package/dist/auth/cookies.d.ts +2 -2
  54. package/dist/auth/cookies.d.ts.map +1 -1
  55. package/dist/auth/cookies.js +6 -33
  56. package/dist/auth/crypto.js +7 -30
  57. package/dist/auth/defaultAccess.d.ts +1 -1
  58. package/dist/auth/defaultAccess.d.ts.map +1 -1
  59. package/dist/auth/defaultAccess.js +2 -12
  60. package/dist/auth/defaultUser.d.ts +1 -1
  61. package/dist/auth/defaultUser.d.ts.map +1 -1
  62. package/dist/auth/defaultUser.js +6 -16
  63. package/dist/auth/executeAccess.d.ts +2 -2
  64. package/dist/auth/executeAccess.d.ts.map +1 -1
  65. package/dist/auth/executeAccess.js +5 -15
  66. package/dist/auth/extractJWT.d.ts +1 -1
  67. package/dist/auth/extractJWT.d.ts.map +1 -1
  68. package/dist/auth/extractJWT.js +4 -14
  69. package/dist/auth/getAccessResults.d.ts +2 -2
  70. package/dist/auth/getAccessResults.d.ts.map +1 -1
  71. package/dist/auth/getAccessResults.js +9 -19
  72. package/dist/auth/getAuthenticatedUser.d.ts +1 -1
  73. package/dist/auth/getAuthenticatedUser.d.ts.map +1 -1
  74. package/dist/auth/getAuthenticatedUser.js +2 -12
  75. package/dist/auth/getFieldsToSign.d.ts +2 -2
  76. package/dist/auth/getFieldsToSign.d.ts.map +1 -1
  77. package/dist/auth/getFieldsToSign.js +5 -15
  78. package/dist/auth/index.d.ts +3 -3
  79. package/dist/auth/index.d.ts.map +1 -1
  80. package/dist/auth/index.js +4 -27
  81. package/dist/auth/isLocked.js +2 -12
  82. package/dist/auth/operations/access.d.ts +2 -2
  83. package/dist/auth/operations/access.d.ts.map +1 -1
  84. package/dist/auth/operations/access.js +12 -22
  85. package/dist/auth/operations/forgotPassword.d.ts +2 -2
  86. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  87. package/dist/auth/operations/forgotPassword.js +17 -32
  88. package/dist/auth/operations/init.d.ts +1 -1
  89. package/dist/auth/operations/init.d.ts.map +1 -1
  90. package/dist/auth/operations/init.js +2 -12
  91. package/dist/auth/operations/local/forgotPassword.d.ts +3 -3
  92. package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
  93. package/dist/auth/operations/local/forgotPassword.js +8 -18
  94. package/dist/auth/operations/local/index.d.ts +5 -5
  95. package/dist/auth/operations/local/index.d.ts.map +1 -1
  96. package/dist/auth/operations/local/index.js +12 -27
  97. package/dist/auth/operations/local/login.d.ts +4 -4
  98. package/dist/auth/operations/local/login.d.ts.map +1 -1
  99. package/dist/auth/operations/local/login.js +8 -18
  100. package/dist/auth/operations/local/resetPassword.d.ts +4 -4
  101. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  102. package/dist/auth/operations/local/resetPassword.js +8 -18
  103. package/dist/auth/operations/local/unlock.d.ts +3 -3
  104. package/dist/auth/operations/local/unlock.d.ts.map +1 -1
  105. package/dist/auth/operations/local/unlock.js +8 -18
  106. package/dist/auth/operations/local/verifyEmail.d.ts +3 -3
  107. package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
  108. package/dist/auth/operations/local/verifyEmail.js +8 -18
  109. package/dist/auth/operations/login.d.ts +7 -7
  110. package/dist/auth/operations/login.d.ts.map +1 -1
  111. package/dist/auth/operations/login.js +32 -47
  112. package/dist/auth/operations/logout.d.ts +2 -2
  113. package/dist/auth/operations/logout.d.ts.map +1 -1
  114. package/dist/auth/operations/logout.js +6 -21
  115. package/dist/auth/operations/me.d.ts +3 -3
  116. package/dist/auth/operations/me.d.ts.map +1 -1
  117. package/dist/auth/operations/me.js +4 -19
  118. package/dist/auth/operations/refresh.d.ts +3 -3
  119. package/dist/auth/operations/refresh.d.ts.map +1 -1
  120. package/dist/auth/operations/refresh.js +19 -34
  121. package/dist/auth/operations/registerFirstUser.d.ts +9 -9
  122. package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
  123. package/dist/auth/operations/registerFirstUser.js +11 -21
  124. package/dist/auth/operations/resetPassword.d.ts +2 -2
  125. package/dist/auth/operations/resetPassword.d.ts.map +1 -1
  126. package/dist/auth/operations/resetPassword.js +20 -43
  127. package/dist/auth/operations/unlock.d.ts +2 -2
  128. package/dist/auth/operations/unlock.d.ts.map +1 -1
  129. package/dist/auth/operations/unlock.js +16 -39
  130. package/dist/auth/operations/verifyEmail.d.ts +2 -2
  131. package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
  132. package/dist/auth/operations/verifyEmail.js +14 -37
  133. package/dist/auth/sendVerificationEmail.d.ts +5 -5
  134. package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
  135. package/dist/auth/sendVerificationEmail.js +4 -14
  136. package/dist/auth/strategies/apiKey.d.ts +2 -2
  137. package/dist/auth/strategies/apiKey.d.ts.map +1 -1
  138. package/dist/auth/strategies/apiKey.js +4 -19
  139. package/dist/auth/strategies/jwt.d.ts +1 -1
  140. package/dist/auth/strategies/jwt.d.ts.map +1 -1
  141. package/dist/auth/strategies/jwt.js +6 -21
  142. package/dist/auth/strategies/local/authenticate.d.ts +1 -1
  143. package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
  144. package/dist/auth/strategies/local/authenticate.js +6 -21
  145. package/dist/auth/strategies/local/generatePasswordSaltHash.js +7 -22
  146. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +3 -3
  147. package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
  148. package/dist/auth/strategies/local/incrementLoginAttempts.js +2 -12
  149. package/dist/auth/strategies/local/register.d.ts +3 -3
  150. package/dist/auth/strategies/local/register.d.ts.map +1 -1
  151. package/dist/auth/strategies/local/register.js +6 -16
  152. package/dist/auth/strategies/local/resetLoginAttempts.d.ts +3 -3
  153. package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
  154. package/dist/auth/strategies/local/resetLoginAttempts.js +2 -12
  155. package/dist/auth/types.d.ts +2 -2
  156. package/dist/auth/types.d.ts.map +1 -1
  157. package/dist/auth/types.js +2 -12
  158. package/dist/bin/generateTypes.d.ts +1 -1
  159. package/dist/bin/generateTypes.d.ts.map +1 -1
  160. package/dist/bin/generateTypes.js +12 -27
  161. package/dist/bin/index.js +11 -53
  162. package/dist/bin/loadEnv.js +13 -26
  163. package/dist/bin/migrate.js +15 -30
  164. package/dist/collections/config/build.d.ts +1 -1
  165. package/dist/collections/config/build.d.ts.map +1 -1
  166. package/dist/collections/config/build.js +2 -12
  167. package/dist/collections/config/defaults.d.ts +5 -5
  168. package/dist/collections/config/defaults.js +9 -32
  169. package/dist/collections/config/sanitize.d.ts +2 -2
  170. package/dist/collections/config/sanitize.d.ts.map +1 -1
  171. package/dist/collections/config/sanitize.js +34 -49
  172. package/dist/collections/config/schema.js +157 -172
  173. package/dist/collections/config/types.d.ts +13 -13
  174. package/dist/collections/config/types.d.ts.map +1 -1
  175. package/dist/collections/config/types.js +2 -5
  176. package/dist/collections/dataloader.d.ts +2 -2
  177. package/dist/collections/dataloader.d.ts.map +1 -1
  178. package/dist/collections/dataloader.js +8 -23
  179. package/dist/collections/operations/create.d.ts +9 -9
  180. package/dist/collections/operations/create.d.ts.map +1 -1
  181. package/dist/collections/operations/create.js +38 -53
  182. package/dist/collections/operations/delete.d.ts +9 -10
  183. package/dist/collections/operations/delete.d.ts.map +1 -1
  184. package/dist/collections/operations/delete.js +27 -42
  185. package/dist/collections/operations/deleteByID.d.ts +2 -3
  186. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  187. package/dist/collections/operations/deleteByID.js +27 -42
  188. package/dist/collections/operations/docAccess.d.ts +3 -3
  189. package/dist/collections/operations/docAccess.d.ts.map +1 -1
  190. package/dist/collections/operations/docAccess.js +12 -22
  191. package/dist/collections/operations/find.d.ts +3 -4
  192. package/dist/collections/operations/find.d.ts.map +1 -1
  193. package/dist/collections/operations/find.js +25 -40
  194. package/dist/collections/operations/findByID.d.ts +2 -2
  195. package/dist/collections/operations/findByID.d.ts.map +1 -1
  196. package/dist/collections/operations/findByID.js +21 -36
  197. package/dist/collections/operations/findVersionByID.d.ts +3 -3
  198. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  199. package/dist/collections/operations/findVersionByID.js +19 -34
  200. package/dist/collections/operations/findVersions.d.ts +4 -5
  201. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  202. package/dist/collections/operations/findVersions.js +20 -35
  203. package/dist/collections/operations/local/create.d.ts +4 -5
  204. package/dist/collections/operations/local/create.d.ts.map +1 -1
  205. package/dist/collections/operations/local/create.js +10 -25
  206. package/dist/collections/operations/local/delete.d.ts +5 -5
  207. package/dist/collections/operations/local/delete.d.ts.map +1 -1
  208. package/dist/collections/operations/local/delete.js +10 -20
  209. package/dist/collections/operations/local/find.d.ts +3 -4
  210. package/dist/collections/operations/local/find.d.ts.map +1 -1
  211. package/dist/collections/operations/local/find.js +8 -18
  212. package/dist/collections/operations/local/findByID.d.ts +2 -4
  213. package/dist/collections/operations/local/findByID.d.ts.map +1 -1
  214. package/dist/collections/operations/local/findByID.js +8 -18
  215. package/dist/collections/operations/local/findVersionByID.d.ts +3 -4
  216. package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
  217. package/dist/collections/operations/local/findVersionByID.js +8 -18
  218. package/dist/collections/operations/local/findVersions.d.ts +4 -5
  219. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  220. package/dist/collections/operations/local/findVersions.js +8 -18
  221. package/dist/collections/operations/local/index.d.ts +13 -13
  222. package/dist/collections/operations/local/index.d.ts.map +1 -1
  223. package/dist/collections/operations/local/index.js +20 -35
  224. package/dist/collections/operations/local/restoreVersion.d.ts +2 -3
  225. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  226. package/dist/collections/operations/local/restoreVersion.js +8 -18
  227. package/dist/collections/operations/local/update.d.ts +4 -5
  228. package/dist/collections/operations/local/update.d.ts.map +1 -1
  229. package/dist/collections/operations/local/update.js +12 -27
  230. package/dist/collections/operations/restoreVersion.d.ts +2 -2
  231. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  232. package/dist/collections/operations/restoreVersion.js +26 -41
  233. package/dist/collections/operations/update.d.ts +7 -8
  234. package/dist/collections/operations/update.d.ts.map +1 -1
  235. package/dist/collections/operations/update.js +43 -58
  236. package/dist/collections/operations/updateByID.d.ts +9 -9
  237. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  238. package/dist/collections/operations/updateByID.js +44 -59
  239. package/dist/collections/operations/utils.d.ts +12 -12
  240. package/dist/collections/operations/utils.d.ts.map +1 -1
  241. package/dist/collections/operations/utils.js +3 -12
  242. package/dist/config/build.d.ts +1 -1
  243. package/dist/config/build.d.ts.map +1 -1
  244. package/dist/config/build.js +9 -15
  245. package/dist/config/clientFiles.js +2 -12
  246. package/dist/config/createClientConfig.d.ts +2 -2
  247. package/dist/config/createClientConfig.d.ts.map +1 -1
  248. package/dist/config/createClientConfig.js +12 -25
  249. package/dist/config/defaults.d.ts +1 -1
  250. package/dist/config/defaults.d.ts.map +1 -1
  251. package/dist/config/defaults.js +4 -19
  252. package/dist/config/find.js +18 -33
  253. package/dist/config/load.d.ts +2 -4
  254. package/dist/config/load.d.ts.map +1 -1
  255. package/dist/config/load.js +8 -37
  256. package/dist/config/sanitize.d.ts +1 -1
  257. package/dist/config/sanitize.d.ts.map +1 -1
  258. package/dist/config/sanitize.js +25 -40
  259. package/dist/config/schema.d.ts.map +1 -1
  260. package/dist/config/schema.js +116 -133
  261. package/dist/config/shared/adminViewSchema.js +9 -24
  262. package/dist/config/shared/componentSchema.js +21 -50
  263. package/dist/config/types.d.ts +21 -30
  264. package/dist/config/types.d.ts.map +1 -1
  265. package/dist/config/types.js +9 -21
  266. package/dist/config/validate.d.ts +1 -1
  267. package/dist/config/validate.d.ts.map +1 -1
  268. package/dist/config/validate.js +15 -71
  269. package/dist/database/combineQueries.d.ts +1 -1
  270. package/dist/database/combineQueries.d.ts.map +1 -1
  271. package/dist/database/combineQueries.js +4 -14
  272. package/dist/database/createDatabaseAdapter.d.ts +1 -1
  273. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  274. package/dist/database/createDatabaseAdapter.js +14 -24
  275. package/dist/database/flattenWhereToOperators.d.ts +1 -1
  276. package/dist/database/flattenWhereToOperators.d.ts.map +1 -1
  277. package/dist/database/flattenWhereToOperators.js +2 -12
  278. package/dist/database/getLocalizedPaths.d.ts +3 -3
  279. package/dist/database/getLocalizedPaths.d.ts.map +1 -1
  280. package/dist/database/getLocalizedPaths.js +7 -22
  281. package/dist/database/migrations/createMigration.d.ts +1 -1
  282. package/dist/database/migrations/createMigration.d.ts.map +1 -1
  283. package/dist/database/migrations/createMigration.js +7 -22
  284. package/dist/database/migrations/getMigrations.d.ts +2 -2
  285. package/dist/database/migrations/getMigrations.d.ts.map +1 -1
  286. package/dist/database/migrations/getMigrations.js +4 -12
  287. package/dist/database/migrations/migrate.d.ts +1 -1
  288. package/dist/database/migrations/migrate.d.ts.map +1 -1
  289. package/dist/database/migrations/migrate.js +12 -22
  290. package/dist/database/migrations/migrateDown.d.ts +1 -1
  291. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  292. package/dist/database/migrations/migrateDown.js +12 -22
  293. package/dist/database/migrations/migrateRefresh.d.ts +1 -1
  294. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  295. package/dist/database/migrations/migrateRefresh.js +16 -24
  296. package/dist/database/migrations/migrateReset.d.ts +1 -1
  297. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  298. package/dist/database/migrations/migrateReset.js +12 -22
  299. package/dist/database/migrations/migrateStatus.d.ts +1 -1
  300. package/dist/database/migrations/migrateStatus.d.ts.map +1 -1
  301. package/dist/database/migrations/migrateStatus.js +8 -18
  302. package/dist/database/migrations/migrationTemplate.js +2 -12
  303. package/dist/database/migrations/migrationsCollection.d.ts +1 -1
  304. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  305. package/dist/database/migrations/migrationsCollection.js +2 -12
  306. package/dist/database/migrations/readMigrationFiles.d.ts +2 -2
  307. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  308. package/dist/database/migrations/readMigrationFiles.js +12 -24
  309. package/dist/database/queryValidation/types.d.ts +2 -2
  310. package/dist/database/queryValidation/types.d.ts.map +1 -1
  311. package/dist/database/queryValidation/types.js +2 -5
  312. package/dist/database/queryValidation/validateQueryPaths.d.ts +5 -5
  313. package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
  314. package/dist/database/queryValidation/validateQueryPaths.js +13 -28
  315. package/dist/database/queryValidation/validateSearchParams.d.ts +5 -5
  316. package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
  317. package/dist/database/queryValidation/validateSearchParams.js +17 -25
  318. package/dist/database/types.d.ts +9 -7
  319. package/dist/database/types.d.ts.map +1 -1
  320. package/dist/database/types.js +2 -5
  321. package/dist/email/build.d.ts +2 -2
  322. package/dist/email/build.d.ts.map +1 -1
  323. package/dist/email/build.js +11 -26
  324. package/dist/email/defaults.d.ts +1 -1
  325. package/dist/email/defaults.d.ts.map +1 -1
  326. package/dist/email/defaults.js +2 -12
  327. package/dist/email/mockHandler.d.ts +2 -2
  328. package/dist/email/mockHandler.d.ts.map +1 -1
  329. package/dist/email/mockHandler.js +8 -23
  330. package/dist/email/sendEmail.js +2 -12
  331. package/dist/email/types.js +2 -5
  332. package/dist/errors/APIError.js +4 -19
  333. package/dist/errors/AuthenticationError.d.ts +1 -1
  334. package/dist/errors/AuthenticationError.d.ts.map +1 -1
  335. package/dist/errors/AuthenticationError.js +7 -22
  336. package/dist/errors/DuplicateCollection.d.ts +1 -1
  337. package/dist/errors/DuplicateCollection.d.ts.map +1 -1
  338. package/dist/errors/DuplicateCollection.js +4 -19
  339. package/dist/errors/DuplicateFieldName.d.ts +1 -1
  340. package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
  341. package/dist/errors/DuplicateFieldName.js +4 -19
  342. package/dist/errors/DuplicateGlobal.d.ts +2 -2
  343. package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
  344. package/dist/errors/DuplicateGlobal.js +4 -19
  345. package/dist/errors/ErrorDeletingFile.d.ts +1 -1
  346. package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
  347. package/dist/errors/ErrorDeletingFile.js +7 -22
  348. package/dist/errors/FileUploadError.d.ts +1 -1
  349. package/dist/errors/FileUploadError.d.ts.map +1 -1
  350. package/dist/errors/FileUploadError.js +7 -22
  351. package/dist/errors/Forbidden.d.ts +1 -1
  352. package/dist/errors/Forbidden.d.ts.map +1 -1
  353. package/dist/errors/Forbidden.js +7 -22
  354. package/dist/errors/InvalidConfiguration.d.ts +1 -1
  355. package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
  356. package/dist/errors/InvalidConfiguration.js +6 -21
  357. package/dist/errors/InvalidFieldName.d.ts +2 -2
  358. package/dist/errors/InvalidFieldName.d.ts.map +1 -1
  359. package/dist/errors/InvalidFieldName.js +4 -19
  360. package/dist/errors/InvalidFieldRelationship.d.ts +2 -2
  361. package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
  362. package/dist/errors/InvalidFieldRelationship.js +4 -19
  363. package/dist/errors/InvalidSchema.d.ts +1 -1
  364. package/dist/errors/InvalidSchema.d.ts.map +1 -1
  365. package/dist/errors/InvalidSchema.js +6 -21
  366. package/dist/errors/LockedAuth.d.ts +1 -1
  367. package/dist/errors/LockedAuth.d.ts.map +1 -1
  368. package/dist/errors/LockedAuth.js +7 -22
  369. package/dist/errors/MissingCollectionLabel.d.ts +1 -1
  370. package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
  371. package/dist/errors/MissingCollectionLabel.js +4 -19
  372. package/dist/errors/MissingFieldInputOptions.d.ts +2 -2
  373. package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
  374. package/dist/errors/MissingFieldInputOptions.js +4 -19
  375. package/dist/errors/MissingFieldType.d.ts +2 -2
  376. package/dist/errors/MissingFieldType.d.ts.map +1 -1
  377. package/dist/errors/MissingFieldType.js +6 -21
  378. package/dist/errors/MissingFile.d.ts +1 -1
  379. package/dist/errors/MissingFile.d.ts.map +1 -1
  380. package/dist/errors/MissingFile.js +7 -22
  381. package/dist/errors/NotFound.d.ts +1 -1
  382. package/dist/errors/NotFound.d.ts.map +1 -1
  383. package/dist/errors/NotFound.js +7 -22
  384. package/dist/errors/QueryError.d.ts +1 -1
  385. package/dist/errors/QueryError.d.ts.map +1 -1
  386. package/dist/errors/QueryError.js +6 -21
  387. package/dist/errors/TimestampsRequired.d.ts +2 -2
  388. package/dist/errors/TimestampsRequired.d.ts.map +1 -1
  389. package/dist/errors/TimestampsRequired.js +4 -19
  390. package/dist/errors/UnathorizedError.d.ts +1 -1
  391. package/dist/errors/UnathorizedError.d.ts.map +1 -1
  392. package/dist/errors/UnathorizedError.js +7 -22
  393. package/dist/errors/ValidationError.d.ts +1 -1
  394. package/dist/errors/ValidationError.d.ts.map +1 -1
  395. package/dist/errors/ValidationError.js +8 -23
  396. package/dist/errors/index.d.ts +19 -19
  397. package/dist/errors/index.d.ts.map +1 -1
  398. package/dist/errors/index.js +20 -94
  399. package/dist/errors/types.d.ts +1 -1
  400. package/dist/errors/types.d.ts.map +1 -1
  401. package/dist/errors/types.js +2 -19
  402. package/dist/exports/auth.d.ts +5 -5
  403. package/dist/exports/auth.d.ts.map +1 -1
  404. package/dist/exports/auth.js +5 -44
  405. package/dist/exports/components/utilities.js +0 -1
  406. package/dist/exports/config.d.ts +10 -10
  407. package/dist/exports/config.d.ts.map +1 -1
  408. package/dist/exports/config.js +10 -59
  409. package/dist/exports/database.d.ts +22 -22
  410. package/dist/exports/database.d.ts.map +1 -1
  411. package/dist/exports/database.js +21 -108
  412. package/dist/exports/errors.d.ts +1 -1
  413. package/dist/exports/errors.d.ts.map +1 -1
  414. package/dist/exports/errors.js +2 -68
  415. package/dist/exports/fields/index.d.ts +2 -2
  416. package/dist/exports/fields/index.d.ts.map +1 -1
  417. package/dist/exports/fields/index.js +3 -26
  418. package/dist/exports/fields/validations.d.ts +1 -1
  419. package/dist/exports/fields/validations.d.ts.map +1 -1
  420. package/dist/exports/fields/validations.js +2 -19
  421. package/dist/exports/operations.d.ts +28 -28
  422. package/dist/exports/operations.d.ts.map +1 -1
  423. package/dist/exports/operations.js +29 -125
  424. package/dist/exports/types.d.ts +11 -11
  425. package/dist/exports/types.d.ts.map +1 -1
  426. package/dist/exports/types.js +4 -74
  427. package/dist/exports/utilities.d.ts +27 -27
  428. package/dist/exports/utilities.d.ts.map +1 -1
  429. package/dist/exports/utilities.js +28 -141
  430. package/dist/exports/versions.d.ts +9 -9
  431. package/dist/exports/versions.d.ts.map +1 -1
  432. package/dist/exports/versions.js +9 -45
  433. package/dist/fields/baseFields/baseBlockFields.d.ts +1 -1
  434. package/dist/fields/baseFields/baseBlockFields.d.ts.map +1 -1
  435. package/dist/fields/baseFields/baseBlockFields.js +6 -16
  436. package/dist/fields/baseFields/baseIDField.d.ts +1 -1
  437. package/dist/fields/baseFields/baseIDField.d.ts.map +1 -1
  438. package/dist/fields/baseFields/baseIDField.js +7 -21
  439. package/dist/fields/config/sanitize.d.ts +2 -2
  440. package/dist/fields/config/sanitize.d.ts.map +1 -1
  441. package/dist/fields/config/sanitize.js +28 -43
  442. package/dist/fields/config/sanitize.spec.js +25 -29
  443. package/dist/fields/config/schema.js +336 -431
  444. package/dist/fields/config/types.d.ts +5 -6
  445. package/dist/fields/config/types.d.ts.map +1 -1
  446. package/dist/fields/config/types.js +15 -69
  447. package/dist/fields/getDefaultValue.d.ts +1 -1
  448. package/dist/fields/getDefaultValue.d.ts.map +1 -1
  449. package/dist/fields/getDefaultValue.js +2 -12
  450. package/dist/fields/hooks/afterChange/index.d.ts +3 -3
  451. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  452. package/dist/fields/hooks/afterChange/index.js +6 -16
  453. package/dist/fields/hooks/afterChange/promise.d.ts +4 -4
  454. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  455. package/dist/fields/hooks/afterChange/promise.js +14 -22
  456. package/dist/fields/hooks/afterChange/traverseFields.d.ts +4 -4
  457. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  458. package/dist/fields/hooks/afterChange/traverseFields.js +4 -14
  459. package/dist/fields/hooks/afterRead/index.d.ts +3 -3
  460. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  461. package/dist/fields/hooks/afterRead/index.js +6 -16
  462. package/dist/fields/hooks/afterRead/promise.d.ts +4 -4
  463. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  464. package/dist/fields/hooks/afterRead/promise.js +28 -38
  465. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +2 -2
  466. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
  467. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +5 -15
  468. package/dist/fields/hooks/afterRead/traverseFields.d.ts +4 -4
  469. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  470. package/dist/fields/hooks/afterRead/traverseFields.js +4 -14
  471. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js +2 -12
  472. package/dist/fields/hooks/beforeChange/getExistingRowDoc.js +2 -12
  473. package/dist/fields/hooks/beforeChange/index.d.ts +3 -4
  474. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  475. package/dist/fields/hooks/beforeChange/index.js +8 -18
  476. package/dist/fields/hooks/beforeChange/promise.d.ts +4 -5
  477. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  478. package/dist/fields/hooks/beforeChange/promise.js +26 -35
  479. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +4 -5
  480. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  481. package/dist/fields/hooks/beforeChange/traverseFields.js +4 -14
  482. package/dist/fields/hooks/beforeValidate/index.d.ts +3 -3
  483. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  484. package/dist/fields/hooks/beforeValidate/index.js +6 -16
  485. package/dist/fields/hooks/beforeValidate/promise.d.ts +4 -4
  486. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  487. package/dist/fields/hooks/beforeValidate/promise.js +30 -39
  488. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +4 -4
  489. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  490. package/dist/fields/hooks/beforeValidate/traverseFields.js +4 -14
  491. package/dist/fields/mergeBaseFields.d.ts +1 -1
  492. package/dist/fields/mergeBaseFields.d.ts.map +1 -1
  493. package/dist/fields/mergeBaseFields.js +8 -23
  494. package/dist/fields/sortableFieldTypes.js +2 -12
  495. package/dist/fields/validations.d.ts +6 -6
  496. package/dist/fields/validations.d.ts.map +1 -1
  497. package/dist/fields/validations.js +31 -97
  498. package/dist/fields/validations.spec.js +93 -87
  499. package/dist/globals/config/sanitize.d.ts +2 -2
  500. package/dist/globals/config/sanitize.d.ts.map +1 -1
  501. package/dist/globals/config/sanitize.js +19 -34
  502. package/dist/globals/config/schema.js +55 -70
  503. package/dist/globals/config/types.d.ts +11 -11
  504. package/dist/globals/config/types.d.ts.map +1 -1
  505. package/dist/globals/config/types.js +2 -5
  506. package/dist/globals/operations/docAccess.d.ts +3 -3
  507. package/dist/globals/operations/docAccess.d.ts.map +1 -1
  508. package/dist/globals/operations/docAccess.js +12 -22
  509. package/dist/globals/operations/findOne.d.ts +2 -2
  510. package/dist/globals/operations/findOne.d.ts.map +1 -1
  511. package/dist/globals/operations/findOne.js +14 -29
  512. package/dist/globals/operations/findVersionByID.d.ts +3 -3
  513. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  514. package/dist/globals/operations/findVersionByID.js +18 -33
  515. package/dist/globals/operations/findVersions.d.ts +4 -5
  516. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  517. package/dist/globals/operations/findVersions.js +20 -35
  518. package/dist/globals/operations/local/findOne.d.ts +2 -4
  519. package/dist/globals/operations/local/findOne.d.ts.map +1 -1
  520. package/dist/globals/operations/local/findOne.js +11 -21
  521. package/dist/globals/operations/local/findVersionByID.d.ts +3 -5
  522. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  523. package/dist/globals/operations/local/findVersionByID.js +9 -19
  524. package/dist/globals/operations/local/findVersions.d.ts +4 -6
  525. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  526. package/dist/globals/operations/local/findVersions.js +9 -19
  527. package/dist/globals/operations/local/index.d.ts +5 -5
  528. package/dist/globals/operations/local/index.d.ts.map +1 -1
  529. package/dist/globals/operations/local/index.js +12 -27
  530. package/dist/globals/operations/local/restoreVersion.d.ts +2 -4
  531. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  532. package/dist/globals/operations/local/restoreVersion.js +9 -19
  533. package/dist/globals/operations/local/update.d.ts +2 -4
  534. package/dist/globals/operations/local/update.d.ts.map +1 -1
  535. package/dist/globals/operations/local/update.js +9 -19
  536. package/dist/globals/operations/restoreVersion.d.ts +3 -3
  537. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  538. package/dist/globals/operations/restoreVersion.js +16 -31
  539. package/dist/globals/operations/update.d.ts +9 -9
  540. package/dist/globals/operations/update.d.ts.map +1 -1
  541. package/dist/globals/operations/update.js +23 -38
  542. package/dist/index.d.ts +29 -29
  543. package/dist/index.d.ts.map +1 -1
  544. package/dist/index.js +50 -70
  545. package/dist/localization/middleware.js +2 -12
  546. package/dist/localization/sanitizeFallbackLocale.js +2 -12
  547. package/dist/preferences/deleteUserPreferences.d.ts +3 -3
  548. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  549. package/dist/preferences/deleteUserPreferences.js +2 -12
  550. package/dist/preferences/operations/delete.d.ts +2 -2
  551. package/dist/preferences/operations/delete.d.ts.map +1 -1
  552. package/dist/preferences/operations/delete.js +10 -25
  553. package/dist/preferences/operations/findOne.d.ts +2 -2
  554. package/dist/preferences/operations/findOne.d.ts.map +1 -1
  555. package/dist/preferences/operations/findOne.js +2 -12
  556. package/dist/preferences/operations/update.d.ts +1 -1
  557. package/dist/preferences/operations/update.d.ts.map +1 -1
  558. package/dist/preferences/operations/update.js +8 -23
  559. package/dist/preferences/preferencesCollection.d.ts +2 -2
  560. package/dist/preferences/preferencesCollection.d.ts.map +1 -1
  561. package/dist/preferences/preferencesCollection.js +8 -18
  562. package/dist/preferences/requestHandlers/delete.d.ts +1 -1
  563. package/dist/preferences/requestHandlers/delete.d.ts.map +1 -1
  564. package/dist/preferences/requestHandlers/delete.js +6 -21
  565. package/dist/preferences/requestHandlers/findOne.d.ts +1 -1
  566. package/dist/preferences/requestHandlers/findOne.d.ts.map +1 -1
  567. package/dist/preferences/requestHandlers/findOne.js +6 -21
  568. package/dist/preferences/requestHandlers/update.d.ts +1 -1
  569. package/dist/preferences/requestHandlers/update.d.ts.map +1 -1
  570. package/dist/preferences/requestHandlers/update.js +6 -21
  571. package/dist/preferences/types.d.ts +2 -2
  572. package/dist/preferences/types.d.ts.map +1 -1
  573. package/dist/preferences/types.js +2 -5
  574. package/dist/translations/extractTranslations.js +4 -14
  575. package/dist/translations/getLocalI18n.d.ts +1 -1
  576. package/dist/translations/getLocalI18n.d.ts.map +1 -1
  577. package/dist/translations/getLocalI18n.js +5 -15
  578. package/dist/types/constants.js +2 -12
  579. package/dist/types/index.d.ts +8 -6
  580. package/dist/types/index.d.ts.map +1 -1
  581. package/dist/types/index.js +2 -12
  582. package/dist/uploads/canResizeImage.js +2 -12
  583. package/dist/uploads/cropImage.d.ts +3 -7
  584. package/dist/uploads/cropImage.d.ts.map +1 -1
  585. package/dist/uploads/cropImage.js +4 -28
  586. package/dist/uploads/deleteAssociatedFiles.d.ts +4 -4
  587. package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
  588. package/dist/uploads/deleteAssociatedFiles.js +11 -26
  589. package/dist/uploads/docWithFilenameExists.d.ts +1 -1
  590. package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
  591. package/dist/uploads/docWithFilenameExists.js +2 -12
  592. package/dist/uploads/fileExists.js +4 -19
  593. package/dist/uploads/formatFilesize.js +2 -12
  594. package/dist/uploads/generateFileData.d.ts +4 -4
  595. package/dist/uploads/generateFileData.d.ts.map +1 -1
  596. package/dist/uploads/generateFileData.js +42 -55
  597. package/dist/uploads/getBaseFields.d.ts +3 -3
  598. package/dist/uploads/getBaseFields.d.ts.map +1 -1
  599. package/dist/uploads/getBaseFields.js +6 -16
  600. package/dist/uploads/getExternalFile.d.ts +2 -2
  601. package/dist/uploads/getExternalFile.d.ts.map +1 -1
  602. package/dist/uploads/getExternalFile.js +5 -15
  603. package/dist/uploads/getFileByPath.d.ts +1 -1
  604. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  605. package/dist/uploads/getFileByPath.js +11 -25
  606. package/dist/uploads/getImageSize.d.ts +2 -2
  607. package/dist/uploads/getImageSize.d.ts.map +1 -1
  608. package/dist/uploads/getImageSize.js +7 -22
  609. package/dist/uploads/getSafeFilename.d.ts +1 -1
  610. package/dist/uploads/getSafeFilename.d.ts.map +1 -1
  611. package/dist/uploads/getSafeFilename.js +8 -23
  612. package/dist/uploads/imageResizer.d.ts +6 -5
  613. package/dist/uploads/imageResizer.d.ts.map +1 -1
  614. package/dist/uploads/imageResizer.js +29 -44
  615. package/dist/uploads/isImage.js +2 -12
  616. package/dist/uploads/mimeTypeValidator.d.ts +1 -1
  617. package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
  618. package/dist/uploads/mimeTypeValidator.js +2 -12
  619. package/dist/uploads/mimeTypeValidator.spec.js +11 -15
  620. package/dist/uploads/saveBufferToFile.d.ts +1 -1
  621. package/dist/uploads/saveBufferToFile.js +6 -21
  622. package/dist/uploads/types.d.ts +8 -2
  623. package/dist/uploads/types.d.ts.map +1 -1
  624. package/dist/uploads/types.js +2 -5
  625. package/dist/uploads/unlinkTempFiles.d.ts +3 -3
  626. package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
  627. package/dist/uploads/unlinkTempFiles.js +9 -22
  628. package/dist/uploads/uploadFiles.d.ts +3 -3
  629. package/dist/uploads/uploadFiles.d.ts.map +1 -1
  630. package/dist/uploads/uploadFiles.js +6 -21
  631. package/dist/utilities/checkDuplicateCollections.d.ts +1 -1
  632. package/dist/utilities/checkDuplicateCollections.d.ts.map +1 -1
  633. package/dist/utilities/checkDuplicateCollections.js +4 -14
  634. package/dist/utilities/combineMerge.js +4 -19
  635. package/dist/utilities/commitTransaction.d.ts +1 -1
  636. package/dist/utilities/commitTransaction.d.ts.map +1 -1
  637. package/dist/utilities/commitTransaction.js +4 -12
  638. package/dist/utilities/configToJSONSchema.d.ts +4 -4
  639. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  640. package/dist/utilities/configToJSONSchema.js +63 -81
  641. package/dist/utilities/configToJSONSchema.spec.js +5 -9
  642. package/dist/utilities/convertData.js +3 -23
  643. package/dist/utilities/createArrayFromCommaDelineated.js +2 -12
  644. package/dist/utilities/createLocalReq.d.ts +3 -3
  645. package/dist/utilities/createLocalReq.d.ts.map +1 -1
  646. package/dist/utilities/createLocalReq.js +7 -16
  647. package/dist/utilities/deepCopyObject.js +2 -12
  648. package/dist/utilities/deepMerge.js +2 -12
  649. package/dist/utilities/fieldSchemaToJSON.d.ts +2 -2
  650. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
  651. package/dist/utilities/fieldSchemaToJSON.js +2 -12
  652. package/dist/utilities/flattenTopLevelFields.d.ts +1 -1
  653. package/dist/utilities/flattenTopLevelFields.d.ts.map +1 -1
  654. package/dist/utilities/flattenTopLevelFields.js +6 -16
  655. package/dist/utilities/formatLabels.d.ts +2 -1
  656. package/dist/utilities/formatLabels.d.ts.map +1 -1
  657. package/dist/utilities/formatLabels.js +10 -70
  658. package/dist/utilities/formatLabels.spec.js +8 -12
  659. package/dist/utilities/getCSSVariable.js +2 -12
  660. package/dist/utilities/getEntityPolicies.d.ts +4 -4
  661. package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
  662. package/dist/utilities/getEntityPolicies.js +4 -14
  663. package/dist/utilities/getIDType.d.ts +2 -2
  664. package/dist/utilities/getIDType.d.ts.map +1 -1
  665. package/dist/utilities/getIDType.js +2 -12
  666. package/dist/utilities/getObjectDotNotation.js +2 -12
  667. package/dist/utilities/getUniqueListBy.js +2 -12
  668. package/dist/utilities/initTransaction.d.ts +1 -1
  669. package/dist/utilities/initTransaction.d.ts.map +1 -1
  670. package/dist/utilities/initTransaction.js +5 -12
  671. package/dist/utilities/isEntityHidden.d.ts +2 -2
  672. package/dist/utilities/isEntityHidden.d.ts.map +1 -1
  673. package/dist/utilities/isEntityHidden.js +2 -12
  674. package/dist/utilities/isNumber.js +2 -12
  675. package/dist/utilities/isPlainObject.d.ts +2 -0
  676. package/dist/utilities/isPlainObject.d.ts.map +1 -0
  677. package/dist/utilities/isPlainObject.js +25 -0
  678. package/dist/utilities/isValidID.d.ts.map +1 -1
  679. package/dist/utilities/isValidID.js +6 -20
  680. package/dist/utilities/isolateObjectProperty.js +2 -12
  681. package/dist/utilities/killTransaction.d.ts +1 -1
  682. package/dist/utilities/killTransaction.d.ts.map +1 -1
  683. package/dist/utilities/killTransaction.js +4 -12
  684. package/dist/utilities/logger.d.ts +6 -6
  685. package/dist/utilities/logger.d.ts.map +1 -1
  686. package/dist/utilities/logger.js +18 -37
  687. package/dist/utilities/mapAsync.js +2 -12
  688. package/dist/utilities/overwriteMerge.js +2 -12
  689. package/dist/utilities/parseCookies.js +4 -14
  690. package/dist/utilities/sanitizeInternalFields.js +2 -12
  691. package/dist/utilities/setsAreEqual.js +2 -12
  692. package/dist/utilities/telemetry/events/adminInit.d.ts +2 -2
  693. package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
  694. package/dist/utilities/telemetry/events/adminInit.js +7 -17
  695. package/dist/utilities/telemetry/events/serverInit.d.ts +1 -1
  696. package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
  697. package/dist/utilities/telemetry/events/serverInit.js +4 -14
  698. package/dist/utilities/telemetry/index.d.ts +3 -3
  699. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  700. package/dist/utilities/telemetry/index.js +18 -40
  701. package/dist/utilities/telemetry/oneWayHash.js +4 -14
  702. package/dist/utilities/timestamp.js +2 -12
  703. package/dist/utilities/toKebabCase.js +2 -12
  704. package/dist/utilities/wait.js +2 -12
  705. package/dist/utilities/wordBoundariesRegex.js +3 -13
  706. package/dist/versions/baseFields.d.ts +1 -1
  707. package/dist/versions/baseFields.d.ts.map +1 -1
  708. package/dist/versions/baseFields.js +7 -25
  709. package/dist/versions/buildCollectionFields.d.ts +2 -2
  710. package/dist/versions/buildCollectionFields.d.ts.map +1 -1
  711. package/dist/versions/buildCollectionFields.js +2 -12
  712. package/dist/versions/buildGlobalFields.d.ts +2 -2
  713. package/dist/versions/buildGlobalFields.d.ts.map +1 -1
  714. package/dist/versions/buildGlobalFields.js +12 -22
  715. package/dist/versions/deleteCollectionVersions.d.ts +3 -3
  716. package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
  717. package/dist/versions/deleteCollectionVersions.js +2 -12
  718. package/dist/versions/drafts/appendVersionToQueryKey.d.ts +1 -1
  719. package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
  720. package/dist/versions/drafts/appendVersionToQueryKey.js +2 -12
  721. package/dist/versions/drafts/getQueryDraftsSort.js +2 -12
  722. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +4 -4
  723. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
  724. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +12 -27
  725. package/dist/versions/enforceMaxVersions.d.ts +3 -3
  726. package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
  727. package/dist/versions/enforceMaxVersions.js +2 -12
  728. package/dist/versions/getLatestCollectionVersion.d.ts +3 -3
  729. package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
  730. package/dist/versions/getLatestCollectionVersion.js +4 -14
  731. package/dist/versions/getLatestGlobalVersion.d.ts +3 -3
  732. package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
  733. package/dist/versions/getLatestGlobalVersion.js +5 -15
  734. package/dist/versions/getVersionsModelName.d.ts +2 -2
  735. package/dist/versions/getVersionsModelName.d.ts.map +1 -1
  736. package/dist/versions/getVersionsModelName.js +2 -12
  737. package/dist/versions/saveVersion.d.ts +4 -4
  738. package/dist/versions/saveVersion.d.ts.map +1 -1
  739. package/dist/versions/saveVersion.js +8 -23
  740. package/dist/versions/types.js +2 -5
  741. package/errors.d.ts +1 -1
  742. package/errors.js +2 -68
  743. package/graphql.d.ts +3 -0
  744. package/graphql.js +27 -0
  745. package/operations.d.ts +28 -28
  746. package/operations.js +29 -125
  747. package/package.json +17 -6
  748. package/types.d.ts +11 -11
  749. package/types.js +4 -74
  750. package/utilities.d.ts +27 -27
  751. package/utilities.js +28 -141
  752. package/versions.d.ts +9 -9
  753. package/versions.js +9 -45
  754. package/.eslintrc.js +0 -58
  755. package/dist/bundlers/mocks/db-mongodb.js +0 -3
  756. package/dist/bundlers/mocks/db-postgres.js +0 -13
  757. package/dist/bundlers/mocks/dotENV.js +0 -15
  758. package/dist/bundlers/mocks/emptyModule.js +0 -13
  759. package/dist/bundlers/mocks/fileMock.js +0 -13
  760. package/dist/bundlers/types.d.ts +0 -8
  761. package/dist/bundlers/types.d.ts.map +0 -1
  762. package/dist/bundlers/types.js +0 -6
  763. package/dist/express/middleware/errorHandler.d.ts +0 -2
  764. package/dist/express/middleware/errorHandler.d.ts.map +0 -1
  765. package/dist/express/middleware/errorHandler.js +0 -3
  766. package/dist/express/middleware/index.d.ts +0 -2
  767. package/dist/express/middleware/index.d.ts.map +0 -1
  768. package/dist/express/middleware/index.js +0 -3
  769. package/dist/globals/config/build.d.ts +0 -2
  770. package/dist/globals/config/build.d.ts.map +0 -1
  771. package/dist/globals/config/build.js +0 -3
  772. package/dist/globals/graphql/resolvers/docAccess.d.ts +0 -2
  773. package/dist/globals/graphql/resolvers/docAccess.d.ts.map +0 -1
  774. package/dist/globals/graphql/resolvers/docAccess.js +0 -3
@@ -1,16 +1,6 @@
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 _extractTranslations = require("../translations/extractTranslations");
12
- const _mimeTypeValidator = require("./mimeTypeValidator");
13
- const labels = (0, _extractTranslations.extractTranslations)([
1
+ import { extractTranslations } from '../translations/extractTranslations.js';
2
+ import { mimeTypeValidator } from './mimeTypeValidator.js';
3
+ const labels = extractTranslations([
14
4
  'upload:width',
15
5
  'upload:height',
16
6
  'upload:fileSize',
@@ -97,7 +87,7 @@ const getBaseUploadFields = ({ collection, config })=>{
97
87
  height
98
88
  ];
99
89
  if (uploadOptions.mimeTypes) {
100
- mimeType.validate = (0, _mimeTypeValidator.mimeTypeValidator)(uploadOptions.mimeTypes);
90
+ mimeType.validate = mimeTypeValidator(uploadOptions.mimeTypes);
101
91
  }
102
92
  if (uploadOptions.imageSizes) {
103
93
  uploadFields = uploadFields.concat([
@@ -145,6 +135,6 @@ const getBaseUploadFields = ({ collection, config })=>{
145
135
  }
146
136
  return uploadFields;
147
137
  };
148
- const _default = getBaseUploadFields;
138
+ export default getBaseUploadFields;
149
139
 
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEJhc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgVXBsb2FkQ29uZmlnIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgZXh0cmFjdFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL3RyYW5zbGF0aW9ucy9leHRyYWN0VHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgbWltZVR5cGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbWVUeXBlVmFsaWRhdG9yJ1xuXG5jb25zdCBsYWJlbHMgPSBleHRyYWN0VHJhbnNsYXRpb25zKFtcbiAgJ3VwbG9hZDp3aWR0aCcsXG4gICd1cGxvYWQ6aGVpZ2h0JyxcbiAgJ3VwbG9hZDpmaWxlU2l6ZScsXG4gICd1cGxvYWQ6ZmlsZU5hbWUnLFxuICAndXBsb2FkOnNpemVzJyxcbl0pXG5cbnR5cGUgT3B0aW9ucyA9IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBjb25maWc6IENvbmZpZ1xufVxuXG5jb25zdCBnZXRCYXNlVXBsb2FkRmllbGRzID0gKHsgY29sbGVjdGlvbiwgY29uZmlnIH06IE9wdGlvbnMpOiBGaWVsZFtdID0+IHtcbiAgY29uc3QgdXBsb2FkT3B0aW9uczogVXBsb2FkQ29uZmlnID0gdHlwZW9mIGNvbGxlY3Rpb24udXBsb2FkID09PSAnb2JqZWN0JyA/IGNvbGxlY3Rpb24udXBsb2FkIDoge31cblxuICBjb25zdCBtaW1lVHlwZTogRmllbGQgPSB7XG4gICAgbmFtZTogJ21pbWVUeXBlJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6ICdNSU1FIFR5cGUnLFxuICB9XG5cbiAgY29uc3QgdXJsOiBGaWVsZCA9IHtcbiAgICBuYW1lOiAndXJsJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6ICdVUkwnLFxuICB9XG5cbiAgY29uc3Qgd2lkdGg6IEZpZWxkID0ge1xuICAgIG5hbWU6ICd3aWR0aCcsXG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOndpZHRoJ10sXG4gIH1cblxuICBjb25zdCBoZWlnaHQ6IEZpZWxkID0ge1xuICAgIG5hbWU6ICdoZWlnaHQnLFxuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGFkbWluOiB7XG4gICAgICBoaWRkZW46IHRydWUsXG4gICAgICByZWFkT25seTogdHJ1ZSxcbiAgICB9LFxuICAgIGxhYmVsOiBsYWJlbHNbJ3VwbG9hZDpoZWlnaHQnXSxcbiAgfVxuXG4gIGNvbnN0IGZpbGVzaXplOiBGaWVsZCA9IHtcbiAgICBuYW1lOiAnZmlsZXNpemUnLFxuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGFkbWluOiB7XG4gICAgICBoaWRkZW46IHRydWUsXG4gICAgICByZWFkT25seTogdHJ1ZSxcbiAgICB9LFxuICAgIGxhYmVsOiBsYWJlbHNbJ3VwbG9hZDpmaWxlU2l6ZSddLFxuICB9XG5cbiAgY29uc3QgZmlsZW5hbWU6IEZpZWxkID0ge1xuICAgIG5hbWU6ICdmaWxlbmFtZScsXG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGFkbWluOiB7XG4gICAgICBkaXNhYmxlQnVsa0VkaXQ6IHRydWUsXG4gICAgICBoaWRkZW46IHRydWUsXG4gICAgICByZWFkT25seTogdHJ1ZSxcbiAgICB9LFxuICAgIGluZGV4OiB0cnVlLFxuICAgIGxhYmVsOiBsYWJlbHNbJ3VwbG9hZDpmaWxlTmFtZSddLFxuICAgIHVuaXF1ZTogdHJ1ZSxcbiAgfVxuXG4gIGxldCB1cGxvYWRGaWVsZHM6IEZpZWxkW10gPSBbXG4gICAge1xuICAgICAgLi4udXJsLFxuICAgICAgaG9va3M6IHtcbiAgICAgICAgYWZ0ZXJSZWFkOiBbXG4gICAgICAgICAgKHsgZGF0YSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoZGF0YT8uZmlsZW5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbmZpZy5zZXJ2ZXJVUkx9JHtjb25maWcucm91dGVzLmFwaX0vJHtjb2xsZWN0aW9uLnNsdWd9L2ZpbGUvJHtkYXRhLmZpbGVuYW1lfWBcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgZmlsZW5hbWUsXG4gICAgbWltZVR5cGUsXG4gICAgZmlsZXNpemUsXG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICBdXG5cbiAgaWYgKHVwbG9hZE9wdGlvbnMubWltZVR5cGVzKSB7XG4gICAgbWltZVR5cGUudmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcih1cGxvYWRPcHRpb25zLm1pbWVUeXBlcylcbiAgfVxuXG4gIGlmICh1cGxvYWRPcHRpb25zLmltYWdlU2l6ZXMpIHtcbiAgICB1cGxvYWRGaWVsZHMgPSB1cGxvYWRGaWVsZHMuY29uY2F0KFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3NpemVzJyxcbiAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGZpZWxkczogdXBsb2FkT3B0aW9ucy5pbWFnZVNpemVzLm1hcCgoc2l6ZSkgPT4gKHtcbiAgICAgICAgICBuYW1lOiBzaXplLm5hbWUsXG4gICAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC4uLnVybCxcbiAgICAgICAgICAgICAgaG9va3M6IHtcbiAgICAgICAgICAgICAgICBhZnRlclJlYWQ6IFtcbiAgICAgICAgICAgICAgICAgICh7IGRhdGEgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplRmlsZW5hbWUgPSBkYXRhPy5zaXplcz8uW3NpemUubmFtZV0/LmZpbGVuYW1lXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpemVGaWxlbmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtjb25maWcuc2VydmVyVVJMfSR7Y29uZmlnLnJvdXRlcy5hcGl9LyR7Y29sbGVjdGlvbi5zbHVnfS9maWxlLyR7c2l6ZUZpbGVuYW1lfWBcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICBtaW1lVHlwZSxcbiAgICAgICAgICAgIGZpbGVzaXplLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5maWxlbmFtZSxcbiAgICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBsYWJlbDogc2l6ZS5uYW1lLFxuICAgICAgICB9KSksXG4gICAgICAgIGxhYmVsOiBsYWJlbHNbJ3VwbG9hZDpTaXplcyddLFxuICAgICAgfSxcbiAgICBdKVxuICB9XG4gIHJldHVybiB1cGxvYWRGaWVsZHNcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0QmFzZVVwbG9hZEZpZWxkc1xuIl0sIm5hbWVzIjpbImxhYmVscyIsImV4dHJhY3RUcmFuc2xhdGlvbnMiLCJnZXRCYXNlVXBsb2FkRmllbGRzIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsInVwbG9hZE9wdGlvbnMiLCJ1cGxvYWQiLCJtaW1lVHlwZSIsIm5hbWUiLCJ0eXBlIiwiYWRtaW4iLCJoaWRkZW4iLCJyZWFkT25seSIsImxhYmVsIiwidXJsIiwid2lkdGgiLCJoZWlnaHQiLCJmaWxlc2l6ZSIsImZpbGVuYW1lIiwiZGlzYWJsZUJ1bGtFZGl0IiwiaW5kZXgiLCJ1bmlxdWUiLCJ1cGxvYWRGaWVsZHMiLCJob29rcyIsImFmdGVyUmVhZCIsImRhdGEiLCJzZXJ2ZXJVUkwiLCJyb3V0ZXMiLCJhcGkiLCJzbHVnIiwidW5kZWZpbmVkIiwibWltZVR5cGVzIiwidmFsaWRhdGUiLCJtaW1lVHlwZVZhbGlkYXRvciIsImltYWdlU2l6ZXMiLCJjb25jYXQiLCJmaWVsZHMiLCJtYXAiLCJzaXplIiwic2l6ZUZpbGVuYW1lIiwic2l6ZXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBa0tBOzs7ZUFBQTs7O3FDQTdKb0M7bUNBQ0Y7QUFFbEMsTUFBTUEsU0FBU0MsSUFBQUEsd0NBQW1CLEVBQUM7SUFDakM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBT0QsTUFBTUMsc0JBQXNCLENBQUMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLEVBQVc7SUFDMUQsTUFBTUMsZ0JBQThCLE9BQU9GLFdBQVdHLE1BQU0sS0FBSyxXQUFXSCxXQUFXRyxNQUFNLEdBQUcsQ0FBQztJQUVqRyxNQUFNQyxXQUFrQjtRQUN0QkMsTUFBTTtRQUNOQyxNQUFNO1FBQ05DLE9BQU87WUFDTEMsUUFBUTtZQUNSQyxVQUFVO1FBQ1o7UUFDQUMsT0FBTztJQUNUO0lBRUEs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
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEJhc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzLmQudHMnXG5pbXBvcnQgdHlwZSB7IENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcy5kLnRzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMuZC50cydcbmltcG9ydCB0eXBlIHsgVXBsb2FkQ29uZmlnIH0gZnJvbSAnLi90eXBlcy5kLnRzJ1xuXG5pbXBvcnQgeyBleHRyYWN0VHJhbnNsYXRpb25zIH0gZnJvbSAnLi4vdHJhbnNsYXRpb25zL2V4dHJhY3RUcmFuc2xhdGlvbnMuanMnXG5pbXBvcnQgeyBtaW1lVHlwZVZhbGlkYXRvciB9IGZyb20gJy4vbWltZVR5cGVWYWxpZGF0b3IuanMnXG5cbmNvbnN0IGxhYmVscyA9IGV4dHJhY3RUcmFuc2xhdGlvbnMoW1xuICAndXBsb2FkOndpZHRoJyxcbiAgJ3VwbG9hZDpoZWlnaHQnLFxuICAndXBsb2FkOmZpbGVTaXplJyxcbiAgJ3VwbG9hZDpmaWxlTmFtZScsXG4gICd1cGxvYWQ6c2l6ZXMnLFxuXSlcblxudHlwZSBPcHRpb25zID0ge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnXG4gIGNvbmZpZzogQ29uZmlnXG59XG5cbmNvbnN0IGdldEJhc2VVcGxvYWRGaWVsZHMgPSAoeyBjb2xsZWN0aW9uLCBjb25maWcgfTogT3B0aW9ucyk6IEZpZWxkW10gPT4ge1xuICBjb25zdCB1cGxvYWRPcHRpb25zOiBVcGxvYWRDb25maWcgPSB0eXBlb2YgY29sbGVjdGlvbi51cGxvYWQgPT09ICdvYmplY3QnID8gY29sbGVjdGlvbi51cGxvYWQgOiB7fVxuXG4gIGNvbnN0IG1pbWVUeXBlOiBGaWVsZCA9IHtcbiAgICBuYW1lOiAnbWltZVR5cGUnLFxuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogJ01JTUUgVHlwZScsXG4gIH1cblxuICBjb25zdCB1cmw6IEZpZWxkID0ge1xuICAgIG5hbWU6ICd1cmwnLFxuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogJ1VSTCcsXG4gIH1cblxuICBjb25zdCB3aWR0aDogRmllbGQgPSB7XG4gICAgbmFtZTogJ3dpZHRoJyxcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogbGFiZWxzWyd1cGxvYWQ6d2lkdGgnXSxcbiAgfVxuXG4gIGNvbnN0IGhlaWdodDogRmllbGQgPSB7XG4gICAgbmFtZTogJ2hlaWdodCcsXG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmhlaWdodCddLFxuICB9XG5cbiAgY29uc3QgZmlsZXNpemU6IEZpZWxkID0ge1xuICAgIG5hbWU6ICdmaWxlc2l6ZScsXG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmZpbGVTaXplJ10sXG4gIH1cblxuICBjb25zdCBmaWxlbmFtZTogRmllbGQgPSB7XG4gICAgbmFtZTogJ2ZpbGVuYW1lJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgYWRtaW46IHtcbiAgICAgIGRpc2FibGVCdWxrRWRpdDogdHJ1ZSxcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgaW5kZXg6IHRydWUsXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmZpbGVOYW1lJ10sXG4gICAgdW5pcXVlOiB0cnVlLFxuICB9XG5cbiAgbGV0IHVwbG9hZEZpZWxkczogRmllbGRbXSA9IFtcbiAgICB7XG4gICAgICAuLi51cmwsXG4gICAgICBob29rczoge1xuICAgICAgICBhZnRlclJlYWQ6IFtcbiAgICAgICAgICAoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhPy5maWxlbmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gYCR7Y29uZmlnLnNlcnZlclVSTH0ke2NvbmZpZy5yb3V0ZXMuYXBpfS8ke2NvbGxlY3Rpb24uc2x1Z30vZmlsZS8ke2RhdGEuZmlsZW5hbWV9YFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBmaWxlbmFtZSxcbiAgICBtaW1lVHlwZSxcbiAgICBmaWxlc2l6ZSxcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gIF1cblxuICBpZiAodXBsb2FkT3B0aW9ucy5taW1lVHlwZXMpIHtcbiAgICBtaW1lVHlwZS52YWxpZGF0ZSA9IG1pbWVUeXBlVmFsaWRhdG9yKHVwbG9hZE9wdGlvbnMubWltZVR5cGVzKVxuICB9XG5cbiAgaWYgKHVwbG9hZE9wdGlvbnMuaW1hZ2VTaXplcykge1xuICAgIHVwbG9hZEZpZWxkcyA9IHVwbG9hZEZpZWxkcy5jb25jYXQoW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnc2l6ZXMnLFxuICAgICAgICB0eXBlOiAnZ3JvdXAnLFxuICAgICAgICBhZG1pbjoge1xuICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZmllbGRzOiB1cGxvYWRPcHRpb25zLmltYWdlU2l6ZXMubWFwKChzaXplKSA9PiAoe1xuICAgICAgICAgIG5hbWU6IHNpemUubmFtZSxcbiAgICAgICAgICB0eXBlOiAnZ3JvdXAnLFxuICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4udXJsLFxuICAgICAgICAgICAgICBob29rczoge1xuICAgICAgICAgICAgICAgIGFmdGVyUmVhZDogW1xuICAgICAgICAgICAgICAgICAgKHsgZGF0YSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVGaWxlbmFtZSA9IGRhdGE/LnNpemVzPy5bc2l6ZS5uYW1lXT8uZmlsZW5hbWVcblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZUZpbGVuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbmZpZy5zZXJ2ZXJVUkx9JHtjb25maWcucm91dGVzLmFwaX0vJHtjb2xsZWN0aW9uLnNsdWd9L2ZpbGUvJHtzaXplRmlsZW5hbWV9YFxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIG1pbWVUeXBlLFxuICAgICAgICAgICAgZmlsZXNpemUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC4uLmZpbGVuYW1lLFxuICAgICAgICAgICAgICB1bmlxdWU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGxhYmVsOiBzaXplLm5hbWUsXG4gICAgICAgIH0pKSxcbiAgICAgICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOlNpemVzJ10sXG4gICAgICB9LFxuICAgIF0pXG4gIH1cbiAgcmV0dXJuIHVwbG9hZEZpZWxkc1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRCYXNlVXBsb2FkRmllbGRzXG4iXSwibmFtZXMiOlsiZXh0cmFjdFRyYW5zbGF0aW9ucyIsIm1pbWVUeXBlVmFsaWRhdG9yIiwibGFiZWxzIiwiZ2V0QmFzZVVwbG9hZEZpZWxkcyIsImNvbGxlY3Rpb24iLCJjb25maWciLCJ1cGxvYWRPcHRpb25zIiwidXBsb2FkIiwibWltZVR5cGUiLCJuYW1lIiwidHlwZSIsImFkbWluIiwiaGlkZGVuIiwicmVhZE9ubHkiLCJsYWJlbCIsInVybCIsIndpZHRoIiwiaGVpZ2h0IiwiZmlsZXNpemUiLCJmaWxlbmFtZSIsImRpc2FibGVCdWxrRWRpdCIsImluZGV4IiwidW5pcXVlIiwidXBsb2FkRmllbGRzIiwiaG9va3MiLCJhZnRlclJlYWQiLCJkYXRhIiwic2VydmVyVVJMIiwicm91dGVzIiwiYXBpIiwic2x1ZyIsInVuZGVmaW5lZCIsIm1pbWVUeXBlcyIsInZhbGlkYXRlIiwiaW1hZ2VTaXplcyIsImNvbmNhdCIsImZpZWxkcyIsIm1hcCIsInNpemUiLCJzaXplRmlsZW5hbWUiLCJzaXplcyJdLCJtYXBwaW5ncyI6IkFBS0EsU0FBU0EsbUJBQW1CLFFBQVEseUNBQXdDO0FBQzVFLFNBQVNDLGlCQUFpQixRQUFRLHlCQUF3QjtBQUUxRCxNQUFNQyxTQUFTRixvQkFBb0I7SUFDakM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBT0QsTUFBTUcsc0JBQXNCLENBQUMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLEVBQVc7SUFDMUQsTUFBTUMsZ0JBQThCLE9BQU9GLFdBQVdHLE1BQU0sS0FBSyxXQUFXSCxXQUFXRyxNQUFNLEdBQUcsQ0FBQztJQUVqRyxNQUFNQyxXQUFrQjtRQUN0QkMsTUFBTTtRQUNOQyxNQUFNO1FBQ05DLE9BQU87WUFDTEMs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
@@ -1,5 +1,5 @@
1
- import type { PayloadRequest } from '../exports/types';
2
- import type { File, FileData } from './types';
1
+ import type { PayloadRequest } from '../types/index.ts';
2
+ import type { File, FileData } from './types.d.ts';
3
3
  type Args = {
4
4
  data: FileData;
5
5
  req: PayloadRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"getExternalFile.d.ts","sourceRoot":"","sources":["../../src/uploads/getExternalFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAI7C,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,QAAQ,CAAA;IACd,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,eAAe,kBAAyB,IAAI,KAAG,QAAQ,IAAI,CA4BvE,CAAA"}
1
+ {"version":3,"file":"getExternalFile.d.ts","sourceRoot":"","sources":["../../src/uploads/getExternalFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAIlD,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,QAAQ,CAAA;IACd,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,eAAe,kBAAyB,IAAI,KAAG,QAAQ,IAAI,CA4BvE,CAAA"}
@@ -1,15 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "getExternalFile", {
6
- enumerable: true,
7
- get: function() {
8
- return getExternalFile;
9
- }
10
- });
11
- const _errors = require("../errors");
12
- const getExternalFile = async ({ data, req })=>{
1
+ import { APIError } from '../errors/index.js';
2
+ export const getExternalFile = async ({ data, req })=>{
13
3
  const baseUrl = req.origin || `${req.protocol}://${req.host}`;
14
4
  const { filename, url } = data;
15
5
  if (typeof url === 'string') {
@@ -21,7 +11,7 @@ const getExternalFile = async ({ data, req })=>{
21
11
  },
22
12
  method: 'GET'
23
13
  });
24
- if (!res.ok) throw new _errors.APIError(`Failed to fetch file from ${fileURL}`, res.status);
14
+ if (!res.ok) throw new APIError(`Failed to fetch file from ${fileURL}`, res.status);
25
15
  const data = await res.arrayBuffer();
26
16
  return {
27
17
  name: filename,
@@ -30,7 +20,7 @@ const getExternalFile = async ({ data, req })=>{
30
20
  size: Number(res.headers.get('content-length')) || 0
31
21
  };
32
22
  }
33
- throw new _errors.APIError('Invalid file url', 400);
23
+ throw new APIError('Invalid file url', 400);
34
24
  };
35
25
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEV4dGVybmFsRmlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwb3J0cy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZSwgRmlsZURhdGEgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBBUElFcnJvciB9IGZyb20gJy4uL2Vycm9ycydcblxudHlwZSBBcmdzID0ge1xuICBkYXRhOiBGaWxlRGF0YVxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG59XG5leHBvcnQgY29uc3QgZ2V0RXh0ZXJuYWxGaWxlID0gYXN5bmMgKHsgZGF0YSwgcmVxIH06IEFyZ3MpOiBQcm9taXNlPEZpbGU+ID0+IHtcbiAgY29uc3QgYmFzZVVybCA9IHJlcS5vcmlnaW4gfHwgYCR7cmVxLnByb3RvY29sfTovLyR7cmVxLmhvc3R9YFxuICBjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSA9IGRhdGFcblxuICBpZiAodHlwZW9mIHVybCA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBmaWxlVVJMID0gYCR7YmFzZVVybH0ke3VybH1gXG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChmaWxlVVJMLCB7XG4gICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi5yZXEuaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pXG5cbiAgICBpZiAoIXJlcy5vaykgdGhyb3cgbmV3IEFQSUVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggZmlsZSBmcm9tICR7ZmlsZVVSTH1gLCByZXMuc3RhdHVzKVxuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpXG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogZmlsZW5hbWUsXG4gICAgICBkYXRhOiBCdWZmZXIuZnJvbShkYXRhKSxcbiAgICAgIG1pbWV0eXBlOiByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpIHx8IHVuZGVmaW5lZCxcbiAgICAgIHNpemU6IE51bWJlcihyZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtbGVuZ3RoJykpIHx8IDAsXG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEFQSUVycm9yKCdJbnZhbGlkIGZpbGUgdXJsJywgNDAwKVxufVxuIl0sIm5hbWVzIjpbImdldEV4dGVybmFsRmlsZSIsImRhdGEiLCJyZXEiLCJiYXNlVXJsIiwib3JpZ2luIiwicHJvdG9jb2wiLCJob3N0IiwiZmlsZW5hbWUiLCJ1cmwiLCJmaWxlVVJMIiwicmVzIiwiZmV0Y2giLCJjcmVkZW50aWFscyIsImhlYWRlcnMiLCJtZXRob2QiLCJvayIsIkFQSUVycm9yIiwic3RhdHVzIiwiYXJyYXlCdWZmZXIiLCJuYW1lIiwiQnVmZmVyIiwiZnJvbSIsIm1pbWV0eXBlIiwiZ2V0IiwidW5kZWZpbmVkIiwic2l6ZSIsIk51bWJlciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFTYUE7OztlQUFBQTs7O3dCQU5ZO0FBTWxCLE1BQU1BLGtCQUFrQixPQUFPLEVBQUVDLElBQUksRUFBRUMsR0FBRyxFQUFRO0lBQ3ZELE1BQU1DLFVBQVVELElBQUlFLE1BQU0sSUFBSSxDQUFDLEVBQUVGLElBQUlHLFFBQVEsQ0FBQyxHQUFHLEVBQUVILElBQUlJLElBQUksQ0FBQyxDQUFDO0lBQzdELE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxHQUFHLEVBQUUsR0FBR1A7SUFFMUIsSUFBSSxPQUFPTyxRQUFRLFVBQVU7UUFDM0IsTUFBTUMsVUFBVSxDQUFDLEVBQUVOLFFBQVEsRUFBRUssSUFBSSxDQUFDO1FBRWxDLE1BQU1FLE1BQU0sTUFBTUMsTUFBTUYsU0FBUztZQUMvQkcsYUFBYTtZQUNiQyxTQUFTO2dCQUNQLEdBQUdYLElBQUlXLE9BQU87WUFDaEI7WUFDQUMsUUFBUTtRQUNWO1FBRUEsSUFBSSxDQUFDSixJQUFJSyxFQUFFLEVBQUUsTUFBTSxJQUFJQyxnQkFBUSxDQUFDLENBQUMsMEJBQTBCLEVBQUVQLFFBQVEsQ0FBQyxFQUFFQyxJQUFJTyxNQUFNO1FBRWxGLE1BQU1oQixPQUFPLE1BQU1TLElBQUlRLFdBQVc7UUFFbEMsT0FBTztZQUNMQyxNQUFNWjtZQUNOTixNQUFNbUIsT0FBT0MsSUFBSSxDQUFDcEI7WUFDbEJxQixVQUFVWixJQUFJRyxPQUFPLENBQUNVLEdBQUcsQ0FBQyxtQkFBbUJDO1lBQzdDQyxNQUFNQyxPQUFPaEIsSUFBSUcsT0FBTyxDQUFDVSxHQUFHLENBQUMsc0JBQXNCO1FBQ3JEO0lBQ0Y7SUFFQSxNQUFNLElBQUlQLGdCQUFRLENBQUMsb0JBQW9CO0FBQ3pDIn0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEV4dGVybmFsRmlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMvaW5kZXgudHMnXG5pbXBvcnQgdHlwZSB7IEZpbGUsIEZpbGVEYXRhIH0gZnJvbSAnLi90eXBlcy5kLnRzJ1xuXG5pbXBvcnQgeyBBUElFcnJvciB9IGZyb20gJy4uL2Vycm9ycy9pbmRleC5qcydcblxudHlwZSBBcmdzID0ge1xuICBkYXRhOiBGaWxlRGF0YVxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG59XG5leHBvcnQgY29uc3QgZ2V0RXh0ZXJuYWxGaWxlID0gYXN5bmMgKHsgZGF0YSwgcmVxIH06IEFyZ3MpOiBQcm9taXNlPEZpbGU+ID0+IHtcbiAgY29uc3QgYmFzZVVybCA9IHJlcS5vcmlnaW4gfHwgYCR7cmVxLnByb3RvY29sfTovLyR7cmVxLmhvc3R9YFxuICBjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSA9IGRhdGFcblxuICBpZiAodHlwZW9mIHVybCA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBmaWxlVVJMID0gYCR7YmFzZVVybH0ke3VybH1gXG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChmaWxlVVJMLCB7XG4gICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi5yZXEuaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pXG5cbiAgICBpZiAoIXJlcy5vaykgdGhyb3cgbmV3IEFQSUVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggZmlsZSBmcm9tICR7ZmlsZVVSTH1gLCByZXMuc3RhdHVzKVxuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpXG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogZmlsZW5hbWUsXG4gICAgICBkYXRhOiBCdWZmZXIuZnJvbShkYXRhKSxcbiAgICAgIG1pbWV0eXBlOiByZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpIHx8IHVuZGVmaW5lZCxcbiAgICAgIHNpemU6IE51bWJlcihyZXMuaGVhZGVycy5nZXQoJ2NvbnRlbnQtbGVuZ3RoJykpIHx8IDAsXG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEFQSUVycm9yKCdJbnZhbGlkIGZpbGUgdXJsJywgNDAwKVxufVxuIl0sIm5hbWVzIjpbIkFQSUVycm9yIiwiZ2V0RXh0ZXJuYWxGaWxlIiwiZGF0YSIsInJlcSIsImJhc2VVcmwiLCJvcmlnaW4iLCJwcm90b2NvbCIsImhvc3QiLCJmaWxlbmFtZSIsInVybCIsImZpbGVVUkwiLCJyZXMiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwiaGVhZGVycyIsIm1ldGhvZCIsIm9rIiwic3RhdHVzIiwiYXJyYXlCdWZmZXIiLCJuYW1lIiwiQnVmZmVyIiwiZnJvbSIsIm1pbWV0eXBlIiwiZ2V0IiwidW5kZWZpbmVkIiwic2l6ZSIsIk51bWJlciJdLCJtYXBwaW5ncyI6IkFBR0EsU0FBU0EsUUFBUSxRQUFRLHFCQUFvQjtBQU03QyxPQUFPLE1BQU1DLGtCQUFrQixPQUFPLEVBQUVDLElBQUksRUFBRUMsR0FBRyxFQUFRO0lBQ3ZELE1BQU1DLFVBQVVELElBQUlFLE1BQU0sSUFBSSxDQUFDLEVBQUVGLElBQUlHLFFBQVEsQ0FBQyxHQUFHLEVBQUVILElBQUlJLElBQUksQ0FBQyxDQUFDO0lBQzdELE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxHQUFHLEVBQUUsR0FBR1A7SUFFMUIsSUFBSSxPQUFPTyxRQUFRLFVBQVU7UUFDM0IsTUFBTUMsVUFBVSxDQUFDLEVBQUVOLFFBQVEsRUFBRUssSUFBSSxDQUFDO1FBRWxDLE1BQU1FLE1BQU0sTUFBTUMsTUFBTUYsU0FBUztZQUMvQkcsYUFBYTtZQUNiQyxTQUFTO2dCQUNQLEdBQUdYLElBQUlXLE9BQU87WUFDaEI7WUFDQUMsUUFBUTtRQUNWO1FBRUEsSUFBSSxDQUFDSixJQUFJSyxFQUFFLEVBQUUsTUFBTSxJQUFJaEIsU0FBUyxDQUFDLDBCQUEwQixFQUFFVSxRQUFRLENBQUMsRUFBRUMsSUFBSU0sTUFBTTtRQUVsRixNQUFNZixPQUFPLE1BQU1TLElBQUlPLFdBQVc7UUFFbEMsT0FBTztZQUNMQyxNQUFNWDtZQUNOTixNQUFNa0IsT0FBT0MsSUFBSSxDQUFDbkI7WUFDbEJvQixVQUFVWCxJQUFJRyxPQUFPLENBQUNTLEdBQUcsQ0FBQyxtQkFBbUJDO1lBQzdDQyxNQUFNQyxPQUFPZixJQUFJRyxPQUFPLENBQUNTLEdBQUcsQ0FBQyxzQkFBc0I7UUFDckQ7SUFDRjtJQUVBLE1BQU0sSUFBSXZCLFNBQVMsb0JBQW9CO0FBQ3pDLEVBQUMifQ==
@@ -1,4 +1,4 @@
1
- import type { CustomPayloadRequest } from '../exports/types';
1
+ import type { CustomPayloadRequest } from '../types/index.d.ts';
2
2
  declare const getFileByPath: (filePath: string) => Promise<CustomPayloadRequest['file']>;
3
3
  export default getFileByPath;
4
4
  //# sourceMappingURL=getFileByPath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFileByPath.d.ts","sourceRoot":"","sources":["../../src/uploads/getFileByPath.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAM5D,QAAA,MAAM,aAAa,aAAoB,MAAM,KAAG,QAAQ,oBAAoB,CAAC,MAAM,CAAC,CAoBnF,CAAA;AAED,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"getFileByPath.d.ts","sourceRoot":"","sources":["../../src/uploads/getFileByPath.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAM/D,QAAA,MAAM,aAAa,aAAoB,MAAM,KAAG,QAAQ,oBAAoB,CAAC,MAAM,CAAC,CAoBnF,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -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
8
  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,6 @@ const getFileByPath = async (filePath)=>{
36
22
  }
37
23
  return undefined;
38
24
  };
39
- const _default = getFileByPath;
25
+ export default getFileByPath;
40
26
 
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEZpbGVCeVBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbUZpbGUgfSBmcm9tICdmaWxlLXR5cGUnXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgdHlwZSB7IEN1c3RvbVBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwb3J0cy90eXBlcydcblxuY29uc3QgbWltZVR5cGVFc3RpbWF0ZSA9IHtcbiAgc3ZnOiAnaW1hZ2Uvc3ZnK3htbCcsXG59XG5cbmNvbnN0IGdldEZpbGVCeVBhdGggPSBhc3luYyAoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8Q3VzdG9tUGF5bG9hZFJlcXVlc3RbJ2ZpbGUnXT4gPT4ge1xuICBpZiAodHlwZW9mIGZpbGVQYXRoID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGRhdGEgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgpXG4gICAgY29uc3QgbWltZXR5cGUgPSBmcm9tRmlsZShmaWxlUGF0aClcbiAgICBjb25zdCB7IHNpemUgfSA9IGZzLnN0YXRTeW5jKGZpbGVQYXRoKVxuXG4gICAgY29uc3QgbmFtZSA9IHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpXG4gICAgY29uc3QgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKS5zbGljZSgxKVxuXG4gICAgY29uc3QgbWltZSA9IChhd2FpdCBtaW1ldHlwZSk/Lm1pbWUgfHwgbWltZVR5cGVFc3RpbWF0ZVtleHRdXG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIGRhdGEsXG4gICAgICBtaW1ldHlwZTogbWltZSxcbiAgICAgIHNpemUsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRGaWxlQnlQYXRoXG4iXSwibmFtZXMiOlsibWltZVR5cGVFc3RpbWF0ZSIsInN2ZyIsImdldEZpbGVCeVBhdGgiLCJmaWxlUGF0aCIsImRhdGEiLCJmcyIsInJlYWRGaWxlU3luYyIsIm1pbWV0eXBlIiwiZnJvbUZpbGUiLCJzaXplIiwic3RhdFN5bmMiLCJuYW1lIiwicGF0aCIsImJhc2VuYW1lIiwiZXh0IiwiZXh0bmFtZSIsInNsaWNlIiwibWltZSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFnQ0E7OztlQUFBOzs7MEJBaEN5QjsyREFDVjs2REFDRTs7Ozs7O0FBSWpCLE1BQU1BLG1CQUFtQjtJQUN2QkMsS0FBSztBQUNQO0FBRUEsTUFBTUMsZ0JBQWdCLE9BQU9DO0lBQzNCLElBQUksT0FBT0EsYUFBYSxVQUFVO1FBQ2hDLE1BQU1DLE9BQU9DLFdBQUUsQ0FBQ0MsWUFBWSxDQUFDSDtRQUM3QixNQUFNSSxXQUFXQyxJQUFBQSxrQkFBUSxFQUFDTDtRQUMxQixNQUFNLEVBQUVNLElBQUksRUFBRSxHQUFHSixXQUFFLENBQUNLLFFBQVEsQ0FBQ1A7UUFFN0IsTUFBTVEsT0FBT0MsYUFBSSxDQUFDQyxRQUFRLENBQUNWO1FBQzNCLE1BQU1XLE1BQU1GLGFBQUksQ0FBQ0csT0FBTyxDQUFDWixVQUFVYSxLQUFLLENBQUM7UUFFekMsTUFBTUMsT0FBTyxBQUFDLENBQUEsTUFBTVYsUUFBTyxHQUFJVSxRQUFRakIsZ0JBQWdCLENBQUNjLElBQUk7UUFFNUQsT0FBTztZQUNMSDtZQUNBUDtZQUNBRyxVQUFVVTtZQUNWUjtRQUNGO0lBQ0Y7SUFFQSxPQUFPUztBQUNUO01BRUEsV0FBZWhCIn0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEZpbGVCeVBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpbGVUeXBlIGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5jb25zdCB7IGZyb21GaWxlIH0gPSBmaWxlVHlwZVxuXG5pbXBvcnQgdHlwZSB7IEN1c3RvbVBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMvaW5kZXguZC50cydcblxuY29uc3QgbWltZVR5cGVFc3RpbWF0ZSA9IHtcbiAgc3ZnOiAnaW1hZ2Uvc3ZnK3htbCcsXG59XG5cbmNvbnN0IGdldEZpbGVCeVBhdGggPSBhc3luYyAoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8Q3VzdG9tUGF5bG9hZFJlcXVlc3RbJ2ZpbGUnXT4gPT4ge1xuICBpZiAodHlwZW9mIGZpbGVQYXRoID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGRhdGEgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgpXG4gICAgY29uc3QgbWltZXR5cGUgPSBmcm9tRmlsZShmaWxlUGF0aClcbiAgICBjb25zdCB7IHNpemUgfSA9IGZzLnN0YXRTeW5jKGZpbGVQYXRoKVxuXG4gICAgY29uc3QgbmFtZSA9IHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpXG4gICAgY29uc3QgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKS5zbGljZSgxKVxuXG4gICAgY29uc3QgbWltZSA9IChhd2FpdCBtaW1ldHlwZSk/Lm1pbWUgfHwgbWltZVR5cGVFc3RpbWF0ZVtleHRdXG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIGRhdGEsXG4gICAgICBtaW1ldHlwZTogbWltZSxcbiAgICAgIHNpemUsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRGaWxlQnlQYXRoXG4iXSwibmFtZXMiOlsiZmlsZVR5cGUiLCJmcyIsInBhdGgiLCJmcm9tRmlsZSIsIm1pbWVUeXBlRXN0aW1hdGUiLCJzdmciLCJnZXRGaWxlQnlQYXRoIiwiZmlsZVBhdGgiLCJkYXRhIiwicmVhZEZpbGVTeW5jIiwibWltZXR5cGUiLCJzaXplIiwic3RhdFN5bmMiLCJuYW1lIiwiYmFzZW5hbWUiLCJleHQiLCJleHRuYW1lIiwic2xpY2UiLCJtaW1lIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxjQUFjLFlBQVc7QUFDaEMsT0FBT0MsUUFBUSxLQUFJO0FBQ25CLE9BQU9DLFVBQVUsT0FBTTtBQUN2QixNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHSDtBQUlyQixNQUFNSSxtQkFBbUI7SUFDdkJDLEtBQUs7QUFDUDtBQUVBLE1BQU1DLGdCQUFnQixPQUFPQztJQUMzQixJQUFJLE9BQU9BLGFBQWEsVUFBVTtRQUNoQyxNQUFNQyxPQUFPUCxHQUFHUSxZQUFZLENBQUNGO1FBQzdCLE1BQU1HLFdBQVdQLFNBQVNJO1FBQzFCLE1BQU0sRUFBRUksSUFBSSxFQUFFLEdBQUdWLEdBQUdXLFFBQVEsQ0FBQ0w7UUFFN0IsTUFBTU0sT0FBT1gsS0FBS1ksUUFBUSxDQUFDUDtRQUMzQixNQUFNUSxNQUFNYixLQUFLYyxPQUFPLENBQUNULFVBQVVVLEtBQUssQ0FBQztRQUV6QyxNQUFNQyxPQUFPLEFBQUMsQ0FBQSxNQUFNUixRQUFPLEdBQUlRLFFBQVFkLGdCQUFnQixDQUFDVyxJQUFJO1FBRTVELE9BQU87WUFDTEY7WUFDQUw7WUFDQUUsVUFBVVE7WUFDVlA7UUFDRjtJQUNGO0lBRUEsT0FBT1E7QUFDVDtBQUVBLGVBQWViLGNBQWEifQ==
@@ -1,4 +1,4 @@
1
- import type { PayloadRequest } from '../exports/types';
2
- import type { ProbedImageSize } from './types';
1
+ import type { PayloadRequest } from '../types/index.d.ts';
2
+ import type { ProbedImageSize } from './types.d.ts';
3
3
  export default function (file: PayloadRequest['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":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,yBAA+B,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAOrF"}
@@ -1,26 +1,11 @@
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 probeImageSize from 'probe-image-size';
3
+ export default async function(file) {
19
4
  if (file.tempFilePath) {
20
- const data = _fs.default.readFileSync(file.tempFilePath);
21
- return _probeimagesize.default.sync(data);
5
+ const data = fs.readFileSync(file.tempFilePath);
6
+ return probeImageSize.sync(data);
22
7
  }
23
- return _probeimagesize.default.sync(file.data);
8
+ return probeImageSize.sync(file.data);
24
9
  }
25
10
 
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEltYWdlU2l6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcHJvYmVJbWFnZVNpemUgZnJvbSAncHJvYmUtaW1hZ2Utc2l6ZSdcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cG9ydHMvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIChmaWxlOiBQYXlsb2FkUmVxdWVzdFsnZmlsZSddKTogUHJvbWlzZTxQcm9iZWRJbWFnZVNpemU+IHtcbiAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgY29uc3QgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhmaWxlLnRlbXBGaWxlUGF0aClcbiAgICByZXR1cm4gcHJvYmVJbWFnZVNpemUuc3luYyhkYXRhKVxuICB9XG5cbiAgcmV0dXJuIHByb2JlSW1hZ2VTaXplLnN5bmMoZmlsZS5kYXRhKVxufVxuIl0sIm5hbWVzIjpbImZpbGUiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJwcm9iZUltYWdlU2l6ZSIsInN5bmMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBTUE7OztlQUFBOzs7MkRBTmU7dUVBQ1k7Ozs7OztBQUtaLGVBQWYsU0FBK0JBLElBQTRCO0lBQ3pELElBQUlBLEtBQUtDLFlBQVksRUFBRTtRQUNyQixNQUFNQyxPQUFPQyxXQUFFLENBQUNDLFlBQVksQ0FBQ0osS0FBS0MsWUFBWTtRQUM5QyxPQUFPSSx1QkFBYyxDQUFDQyxJQUFJLENBQUNKO0lBQzdCO0lBRUEsT0FBT0csdUJBQWMsQ0FBQ0MsSUFBSSxDQUFDTixLQUFLRSxJQUFJO0FBQ3RDIn0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEltYWdlU2l6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcHJvYmVJbWFnZVNpemUgZnJvbSAncHJvYmUtaW1hZ2Utc2l6ZSdcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzL2luZGV4LmQudHMnXG5pbXBvcnQgdHlwZSB7IFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMuZC50cydcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gKGZpbGU6IFBheWxvYWRSZXF1ZXN0WydmaWxlJ10pOiBQcm9taXNlPFByb2JlZEltYWdlU2l6ZT4ge1xuICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICBjb25zdCBkYXRhID0gZnMucmVhZEZpbGVTeW5jKGZpbGUudGVtcEZpbGVQYXRoKVxuICAgIHJldHVybiBwcm9iZUltYWdlU2l6ZS5zeW5jKGRhdGEpXG4gIH1cblxuICByZXR1cm4gcHJvYmVJbWFnZVNpemUuc3luYyhmaWxlLmRhdGEpXG59XG4iXSwibmFtZXMiOlsiZnMiLCJwcm9iZUltYWdlU2l6ZSIsImZpbGUiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwicmVhZEZpbGVTeW5jIiwic3luYyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsUUFBUSxLQUFJO0FBQ25CLE9BQU9DLG9CQUFvQixtQkFBa0I7QUFLN0MsZUFBZSxlQUFnQkMsSUFBNEI7SUFDekQsSUFBSUEsS0FBS0MsWUFBWSxFQUFFO1FBQ3JCLE1BQU1DLE9BQU9KLEdBQUdLLFlBQVksQ0FBQ0gsS0FBS0MsWUFBWTtRQUM5QyxPQUFPRixlQUFlSyxJQUFJLENBQUNGO0lBQzdCO0lBRUEsT0FBT0gsZUFBZUssSUFBSSxDQUFDSixLQUFLRSxJQUFJO0FBQ3RDIn0=
@@ -1,4 +1,4 @@
1
- import type { PayloadRequest } from '../types';
1
+ import type { PayloadRequest } from '../types/index.d.ts';
2
2
  type Args = {
3
3
  collectionSlug: string;
4
4
  desiredFilename: 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,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAsBzD,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,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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldFNhZmVGaWxlbmFtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2FuaXRpemUgZnJvbSAnc2FuaXRpemUtZmlsZW5hbWUnXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcy9pbmRleC5kLnRzJ1xuXG5pbXBvcnQgZG9jV2l0aEZpbGVuYW1lRXhpc3RzIGZyb20gJy4vZG9jV2l0aEZpbGVuYW1lRXhpc3RzLmpzJ1xuaW1wb3J0IGZpbGVFeGlzdHMgZnJvbSAnLi9maWxlRXhpc3RzLmpzJ1xuXG5jb25zdCBpbmNyZW1lbnROYW1lID0gKG5hbWU6IHN0cmluZykgPT4ge1xuICBjb25zdCBleHRlbnNpb24gPSBuYW1lLnNwbGl0KCcuJykucG9wKClcbiAgY29uc3QgYmFzZUZpbGVuYW1lID0gc2FuaXRpemUobmFtZS5zdWJzdHJpbmcoMCwgbmFtZS5sYXN0SW5kZXhPZignLicpKSB8fCBuYW1lKVxuICBsZXQgaW5jcmVtZW50ZWROYW1lID0gYmFzZUZpbGVuYW1lXG4gIGNvbnN0IHJlZ2V4ID0gLyguKiktKFxcZCspJC9cbiAgY29uc3QgZm91bmQgPSBiYXNlRmlsZW5hbWUubWF0Y2gocmVnZXgpXG4gIGlmIChmb3VuZCA9PT0gbnVsbCkge1xuICAgIGluY3JlbWVudGVkTmFtZSArPSAnLTEnXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbWF0Y2hlZE5hbWUgPSBmb3VuZFsxXVxuICAgIGNvbnN0IG1hdGNoZWROdW1iZXIgPSBmb3VuZFsyXVxuICAgIGNvbnN0IGluY3JlbWVudGVkID0gTnVtYmVyKG1hdGNoZWROdW1iZXIpICsgMVxuICAgIGluY3JlbWVudGVkTmFtZSA9IGAke21hdGNoZWROYW1lfS0ke2luY3JlbWVudGVkfWBcbiAgfVxuICByZXR1cm4gYCR7aW5jcmVtZW50ZWROYW1lfS4ke2V4dGVuc2lvbn1gXG59XG5cbnR5cGUgQXJncyA9IHtcbiAgY29sbGVjdGlvblNsdWc6IHN0cmluZ1xuICBkZXNpcmVkRmlsZW5hbWU6IHN0cmluZ1xuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHN0YXRpY1BhdGg6IHN0cmluZ1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRTYWZlRmlsZU5hbWUoe1xuICBjb2xsZWN0aW9uU2x1ZyxcbiAgZGVzaXJlZEZpbGVuYW1lLFxuICByZXEsXG4gIHN0YXRpY1BhdGgsXG59OiBBcmdzKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgbGV0IG1vZGlmaWVkRmlsZW5hbWUgPSBkZXNpcmVkRmlsZW5hbWVcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICB3aGlsZSAoXG4gICAgKGF3YWl0IGRvY1dpdGhGaWxlbmFtZUV4aXN0cyh7XG4gICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgIGZpbGVuYW1lOiBtb2RpZmllZEZpbGVuYW1lLFxuICAgICAgcGF0aDogc3RhdGljUGF0aCxcbiAgICAgIHJlcSxcbiAgICB9KSkgfHxcbiAgICAoYXdhaXQgZmlsZUV4aXN0cyhgJHtzdGF0aWNQYXRofS8ke21vZGlmaWVkRmlsZW5hbWV9YCkpXG4gICkge1xuICAgIG1vZGlmaWVkRmlsZW5hbWUgPSBpbmNyZW1lbnROYW1lKG1vZGlmaWVkRmlsZW5hbWUpXG4gIH1cbiAgcmV0dXJuIG1vZGlmaWVkRmlsZW5hbWVcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0U2FmZUZpbGVOYW1lXG4iXSwibmFtZXMiOlsic2FuaXRpemUiLCJkb2NXaXRoRmlsZW5hbWVFeGlzdHMiLCJmaWxlRXhpc3RzIiwiaW5jcmVtZW50TmFtZSIsIm5hbWUiLCJleHRlbnNpb24iLCJzcGxpdCIsInBvcCIsImJhc2VGaWxlbmFtZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiaW5jcmVtZW50ZWROYW1lIiwicmVnZXgiLCJmb3VuZCIsIm1hdGNoIiwibWF0Y2hlZE5hbWUiLCJtYXRjaGVkTnVtYmVyIiwiaW5jcmVtZW50ZWQiLCJOdW1iZXIiLCJnZXRTYWZlRmlsZU5hbWUiLCJjb2xsZWN0aW9uU2x1ZyIsImRlc2lyZWRGaWxlbmFtZSIsInJlcSIsInN0YXRpY1BhdGgiLCJtb2RpZmllZEZpbGVuYW1lIiwiZmlsZW5hbWUiLCJwYXRoIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxjQUFjLG9CQUFtQjtBQUl4QyxPQUFPQywyQkFBMkIsNkJBQTRCO0FBQzlELE9BQU9DLGdCQUFnQixrQkFBaUI7QUFFeEMsTUFBTUMsZ0JBQWdCLENBQUNDO0lBQ3JCLE1BQU1DLFlBQVlELEtBQUtFLEtBQUssQ0FBQyxLQUFLQyxHQUFHO0lBQ3JDLE1BQU1DLGVBQWVSLFNBQVNJLEtBQUtLLFNBQVMsQ0FBQyxHQUFHTCxLQUFLTSxXQUFXLENBQUMsU0FBU047SUFDMUUsSUFBSU8sa0JBQWtCSDtJQUN0QixNQUFNSSxRQUFRO0lBQ2QsTUFBTUMsUUFBUUwsYUFBYU0sS0FBSyxDQUFDRjtJQUNqQyxJQUFJQyxVQUFVLE1BQU07UUFDbEJGLG1CQUFtQjtJQUNyQixPQUFPO1FBQ0wsTUFBTUksY0FBY0YsS0FBSyxDQUFDLEVBQUU7UUFDNUIsTUFBTUcsZ0JBQWdCSCxLQUFLLENBQUMsRUFBRTtRQUM5QixNQUFNSSxjQUFjQyxPQUFPRixpQkFBaUI7UUFDNUNMLGtCQUFrQixDQUFDLEVBQUVJLFlBQVksQ0FBQyxFQUFFRSxZQUFZLENBQUM7SUFDbkQ7SUFDQSxPQUFPLENBQUMsRUFBRU4sZ0JBQWdCLENBQUMsRUFBRU4sVUFBVSxDQUFDO0FBQzFDO0FBU0EsZUFBZWMsZ0JBQWdCLEVBQzdCQyxjQUFjLEVBQ2RDLGVBQWUsRUFDZkMsR0FBRyxFQUNIQyxVQUFVLEVBQ0w7SUFDTCxJQUFJQyxtQkFBbUJIO0lBRXZCLDRDQUE0QztJQUM1QyxNQUNFLEFBQUMsTUFBTXBCLHNCQUFzQjtRQUMzQm1CO1FBQ0FLLFVBQVVEO1FBQ1ZFLE1BQU1IO1FBQ05EO0lBQ0YsTUFDQyxNQUFNcEIsV0FBVyxDQUFDLEVBQUVxQixXQUFXLENBQUMsRUFBRUMsaUJBQWlCLENBQUMsRUFDckQ7UUFDQUEsbUJBQW1CckIsY0FBY3FCO0lBQ25DO0lBQ0EsT0FBT0E7QUFDVDtBQUVBLGVBQWVMLGdCQUFlIn0=
@@ -1,7 +1,7 @@
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.d.ts';
2
+ import type { SharpDependency } from '../config/types.d.ts';
3
+ import type { CustomPayloadRequest, PayloadRequest, UploadEdits } from '../types/index.d.ts';
4
+ import type { FileSizes, FileToSave, ProbedImageSize } from './types.d.ts';
5
5
  type ResizeArgs = {
6
6
  config: SanitizedCollectionConfig;
7
7
  dimensions: ProbedImageSize;
@@ -13,6 +13,7 @@ type ResizeArgs = {
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,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC5F,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAa,eAAe,EAAE,MAAM,cAAc,CAAA;AAK/F,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,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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE91dHB1dEluZm8gfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IGZpbGVUeXBlIGZyb20gJ2ZpbGUtdHlwZSdcbmNvbnN0IHsgZnJvbUJ1ZmZlciB9ID0gZmlsZVR5cGVcblxuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMuZC50cydcbmltcG9ydCB0eXBlIHsgU2hhcnBEZXBlbmRlbmN5IH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzLmQudHMnXG5pbXBvcnQgdHlwZSB7IEN1c3RvbVBheWxvYWRSZXF1ZXN0LCBQYXlsb2FkUmVxdWVzdCwgVXBsb2FkRWRpdHMgfSBmcm9tICcuLi90eXBlcy9pbmRleC5kLnRzJ1xuaW1wb3J0IHR5cGUgeyBGaWxlU2l6ZSwgRmlsZVNpemVzLCBGaWxlVG9TYXZlLCBJbWFnZVNpemUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMuZC50cydcblxuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXIuanMnXG5pbXBvcnQgZmlsZUV4aXN0cyBmcm9tICcuL2ZpbGVFeGlzdHMuanMnXG5cbnR5cGUgUmVzaXplQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnXG4gIGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZVxuICBmaWxlOiBDdXN0b21QYXlsb2FkUmVxdWVzdFsnZmlsZSddXG4gIG1pbWVUeXBlOiBzdHJpbmdcbiAgcmVxOiBQYXlsb2FkUmVxdWVzdCAmIHtcbiAgICBxdWVyeT86IHtcbiAgICAgIHVwbG9hZEVkaXRzPzogVXBsb2FkRWRpdHNcbiAgICB9XG4gIH1cbiAgc2F2ZWRGaWxlbmFtZTogc3RyaW5nXG4gIHNoYXJwOiBTaGFycERlcGVuZGVuY3lcbiAgc3RhdGljUGF0aDogc3RyaW5nXG59XG5cbi8qKiBSZXN1bHQgZnJvbSByZXNpemluZyBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZXMgKi9cbnR5cGUgSW1hZ2VTaXplc1Jlc3VsdCA9IHtcbiAgc2l6ZURhdGE6IEZpbGVTaXplc1xuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdXG59XG5cbnR5cGUgU2FuaXRpemVkSW1hZ2VEYXRhID0ge1xuICBleHQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgaW1hZ2UgbmFtZSBhbmQgZXh0cmFjdCB0aGUgZXh0ZW5zaW9uIGZyb20gdGhlIHNvdXJjZSBpbWFnZVxuICpcbiAqIEBwYXJhbSBzb3VyY2VJbWFnZSAtIHRoZSBzb3VyY2UgaW1hZ2VcbiAqIEByZXR1cm5zIHRoZSBzYW5pdGl6ZWQgbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKi9cbmNvbnN0IGdldFNhbml0aXplZEltYWdlRGF0YSA9IChzb3VyY2VJbWFnZTogc3RyaW5nKTogU2FuaXRpemVkSW1hZ2VEYXRhID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gc291cmNlSW1hZ2Uuc3BsaXQoJy4nKS5wb3AoKVxuICBjb25zdCBuYW1lID0gc2FuaXRpemUoc291cmNlSW1hZ2Uuc3Vic3RyaW5nKDAsIHNvdXJjZUltYWdlLmxhc3RJbmRleE9mKCcuJykpIHx8IHNvdXJjZUltYWdlKVxuICByZXR1cm4geyBuYW1lLCBleHQ6IGV4dGVuc2lvbiB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGltYWdlIG5hbWUgYmFzZWQgb24gdGhlIG91dHB1dCBpbWFnZSBuYW1lLCB0aGUgZGltZW5zaW9ucyBhbmRcbiAqIHRoZSBleHRlbnNpb24uXG4gKlxuICogSWdub3JlIHRoZSBmYWN0IHRoYXQgZHVwbGljYXRlIG5hbWVzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGhlcmUgaXMgb25lXG4gKiBzaXplIHdpdGggYHdpZHRoIEFORCBoZWlnaHRgIGFuZCBvbmUgd2l0aCBvbmx5IGBoZWlnaHQgT1Igd2lkdGhgLiBCZWNhdXNlXG4gKiBzcGFjZSBpcyBleHBlbnNpdmUsIHdlIHdpbGwgcmV1c2UgdGhlIHNhbWUgaW1hZ2UgZm9yIGJvdGggc2l6ZXMuXG4gKlxuICogQHBhcmFtIG91dHB1dEltYWdlTmFtZSAtIHRoZSBzYW5pdGl6ZWQgaW1hZ2UgbmFtZVxuICogQHBhcmFtIGJ1ZmZlckluZm8gLSB0aGUgYnVmZmVyIGluZm9cbiAqIEBwYXJhbSBleHRlbnNpb24gLSB0aGUgZXh0ZW5zaW9uIHRvIHVzZVxuICogQHJldHVybnMgdGhlIG5ldyBpbWFnZSBuYW1lIHRoYXQgaXMgbm90IHRha2VuXG4gKi9cbmNvbnN0IGNyZWF0ZUltYWdlTmFtZSA9IChcbiAgb3V0cHV0SW1hZ2VOYW1lOiBzdHJpbmcsXG4gIHsgaGVpZ2h0LCB3aWR0aCB9OiBPdXRwdXRJbmZvLFxuICBleHRlbnNpb246IHN0cmluZyxcbikgPT4gYCR7b3V0cHV0SW1hZ2VOYW1lfS0ke3dpZHRofXgke2hlaWdodH0uJHtleHRlbnNpb259YFxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVzdWx0IG9iamVjdCBmb3IgdGhlIGltYWdlIHJlc2l6ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXJhbWV0ZXJzLiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWQsIGFuIGVtcHR5IHJlc3VsdCBvYmplY3RcbiAqIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gd2lkdGggLSB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gdGhlIGhlaWdodCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlc2l6ZSAtIHRoZSBmaWxlc2l6ZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBtaW1lVHlwZSAtIHRoZSBtaW1lIHR5cGUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gc2l6ZXNUb1NhdmUgLSB0aGUgc2l6ZXMgdG8gc2F2ZVxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvYmplY3RcbiAqL1xuY29uc3QgY3JlYXRlUmVzdWx0ID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGZpbGVuYW1lOiBGaWxlU2l6ZVsnZmlsZW5hbWUnXSA9IG51bGwsXG4gIHdpZHRoOiBGaWxlU2l6ZVsnd2lkdGgnXSA9IG51bGwsXG4gIGhlaWdodDogRmlsZVNpemVbJ2hlaWdodCddID0gbnVsbCxcbiAgZmlsZXNpemU6IEZpbGVTaXplWydmaWxlc2l6ZSddID0gbnVsbCxcbiAgbWltZVR5cGU6IEZpbGVTaXplWydtaW1lVHlwZSddID0gbnVsbCxcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdLFxuKTogSW1hZ2VTaXplc1Jlc3VsdCA9PiAoe1xuICBzaXplRGF0YToge1xuICAgIFtuYW1lXToge1xuICAgICAgZmlsZW5hbWUsXG4gICAgICBmaWxlc2l6ZSxcbiAgICAgIGhlaWdodCxcbiAgICAgIG1pbWVUeXBlLFxuICAgICAgd2lkdGgsXG4gICAgfSxcbiAgfSxcbiAgc2l6ZXNUb1NhdmUsXG59KVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnNcbiAqIGFuZCB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gSWYgdGhlIHJlc2l6ZSBvcHRpb25zIHdpdGhvdXRFbmxhcmdlbWVudCBvciB3aXRob3V0UmVkdWN0aW9uIGFyZSBwcm92aWRlZCxcbiAqIHRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMsIGdpdmVuIHRoYXQgdGhlXG4gKiB3aWR0aCBvciBoZWlnaHQgdG8gYmUgcmVzaXplZCBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgcmVzaXppbmcgaXMgbm90IG5lZWRlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmNvbnN0IHByZXZlbnRSZXNpemUgPSAoXG4gIHsgaGVpZ2h0OiBkZXNpcmVkSGVpZ2h0LCB3aWR0aDogZGVzaXJlZFdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKTogYm9vbGVhbiA9PiB7XG4gIC8vIGRlZmF1bHQgaXMgdG8gYWxsb3cgcmVkdWN0aW9uXG4gIGlmICh3aXRob3V0UmVkdWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICAvLyBkZWZhdWx0IGlzIHRvIHByZXZlbnQgZW5sYXJnZW1lbnRcbiAgaWYgKHdpdGhvdXRFbmxhcmdlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCA9ICFkZXNpcmVkSGVpZ2h0IHx8ICFkZXNpcmVkV2lkdGhcbiAgaWYgKGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQpIHtcbiAgICAvLyBJZiB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBub3QgZGVmaW5lZCwgaXQgbWVhbnMgdGhlcmUgaXMgYSBmb3JtYXQgY29udmVyc2lvblxuICAgIC8vIGFuZCB0aGUgaW1hZ2UgbmVlZHMgdG8gYmUgXCJyZXNpemVkXCIgKHRyYW5zZm9ybWVkKS5cbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRXaWR0aCA9IGRlc2lyZWRXaWR0aCA+IG9yaWdpbmFsLndpZHRoXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudEhlaWdodCA9IGRlc2lyZWRIZWlnaHQgPiBvcmlnaW5hbC5oZWlnaHRcbiAgaWYgKGhhc0luc3VmZmljaWVudFdpZHRoICYmIGhhc0luc3VmZmljaWVudEhlaWdodCkge1xuICAgIC8vIGRvZXNuJ3QgbmVlZCByZXNpemUgLSBwcmV2ZW50IGVubGFyZ2VtZW50LiBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBib3RoIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGluc3VmZmljaWVudC5cbiAgICAvLyBpZiBvbmx5IG9uZSBkaW1lbnNpb24gaXMgaW5zdWZmaWNpZW50IGFuZCB0aGUgb3RoZXIgaXMgc3VmZmljaWVudCwgcmVzaXppbmcgbmVlZHMgdG8gaGFwcGVuLCBhcyB0aGUgaW1hZ2VcbiAgICAvLyBzaG91bGQgYmUgcmVzaXplZCB0byB0aGUgc3VmZmljaWVudCBkaW1lbnNpb24uXG4gICAgcmV0dXJuIHRydWUgLy8gZG8gbm90IGNyZWF0ZSBhIG5ldyBzaXplXG4gIH1cblxuICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGltYWdlIHNob3VsZCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gc2hhcnAgd2l0aG91dCBwYXlsb2FkIGFkanVzdGluZyBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMgYW5kIHJlc2l6ZSBvcHRpb25zXG4gKiBAcGFyYW0gb3JpZ2luYWwgLSB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgaW1hZ2Ugc2hvdWxkIHBhc3NlZCBkaXJlY3RseSB0byBzaGFycFxuICovXG5jb25zdCBhcHBseVBheWxvYWRBZGp1c3RtZW50cyA9IChcbiAgeyBmaXQsIGhlaWdodCwgd2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pID0+IHtcbiAgaWYgKGZpdCA9PT0gJ2NvbnRhaW4nIHx8IGZpdCA9PT0gJ2luc2lkZScpIHJldHVybiBmYWxzZVxuICBpZiAoIWlzTnVtYmVyKGhlaWdodCkgJiYgIWlzTnVtYmVyKHdpZHRoKSkgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3QgdGFyZ2V0QXNwZWN0UmF0aW8gPSB3aWR0aCAvIGhlaWdodFxuICBjb25zdCBvcmlnaW5hbEFzcGVjdFJhdGlvID0gb3JpZ2luYWwud2lkdGggLyBvcmlnaW5hbC5oZWlnaHRcbiAgaWYgKG9yaWdpbmFsQXNwZWN0UmF0aW8gPT09IHRhcmdldEFzcGVjdFJhdGlvKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBza2lwRW5sYXJnZW1lbnQgPSB3aXRob3V0RW5sYXJnZW1lbnQgJiYgKG9yaWdpbmFsLmhlaWdodCA8IGhlaWdodCB8fCBvcmlnaW5hbC53aWR0aCA8IHdpZHRoKVxuICBjb25zdCBza2lwUmVkdWN0aW9uID0gd2l0aG91dFJlZHVjdGlvbiAmJiAob3JpZ2luYWwuaGVpZ2h0ID4gaGVpZ2h0IHx8IG9yaWdpbmFsLndpZHRoID4gd2lkdGgpXG4gIGlmIChza2lwRW5sYXJnZW1lbnQgfHwgc2tpcFJlZHVjdGlvbikgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgcmVzaXplIGNvbmZpZy4gSWYgdGhlIHJlc2l6ZSBjb25maWcgaGFzIHRoZSBgd2l0aG91dFJlZHVjdGlvbmBcbiAqIHByb3BlcnR5IHNldCB0byB0cnVlLCB0aGUgYGZpdGAgYW5kIGBwb3NpdGlvbmAgcHJvcGVydGllcyB3aWxsIGJlIHNldCB0byBgY29udGFpbmBcbiAqIGFuZCBgdG9wIGxlZnRgIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gdGhlIHJlc2l6ZSBjb25maWdcbiAqIEByZXR1cm5zIGEgc2FuaXRpemVkIHJlc2l6ZSBjb25maWdcbiAqL1xuY29uc3Qgc2FuaXRpemVSZXNpemVDb25maWcgPSAocmVzaXplQ29uZmlnOiBJbWFnZVNpemUpOiBJbWFnZVNpemUgPT4ge1xuICBpZiAocmVzaXplQ29uZmlnLndpdGhvdXRSZWR1Y3Rpb24pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzaXplQ29uZmlnLFxuICAgICAgLy8gV2h5IGZpdCBgY29udGFpbmAgc2hvdWxkIGFsc28gYmUgc2V0IHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sb3ZlbGwvc2hhcnAvaXNzdWVzLzM1OTVcbiAgICAgIGZpdDogcmVzaXplQ29uZmlnPy5maXQgfHwgJ2NvbnRhaW4nLFxuICAgICAgcG9zaXRpb246IHJlc2l6ZUNvbmZpZz8ucG9zaXRpb24gfHwgJ2xlZnQgdG9wJyxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc2l6ZUNvbmZpZ1xufVxuXG4vKipcbiAqIEZvciB0aGUgcHJvdmlkZWQgaW1hZ2Ugc2l6ZXMsIGhhbmRsZSB0aGUgcmVzaXppbmcgYW5kIHRoZSB0cmFuc2Zvcm1zXG4gKiAoZm9ybWF0LCB0cmltLCBldGMuKSBvZiBlYWNoIHJlcXVlc3RlZCBpbWFnZSBzaXplIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBvYmplY3QuXG4gKiBUaGlzIG9ubHkgaGFuZGxlcyB0aGUgaW1hZ2Ugc2l6ZXMuIFRoZSB0cmFuc2Zvcm1zIG9mIHRoZSBvcmlnaW5hbCBpbWFnZVxuICogYXJlIGhhbmRsZWQgaW4ge0BsaW5rIC4vZ2VuZXJhdGVGaWxlRGF0YS50c30uXG4gKlxuICogVGhlIGltYWdlIHdpbGwgYmUgcmVzaXplZCBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkXG4gKiByZXNpemUgY29uZmlnLiBJZiBubyBpbWFnZSBzaXplcyBhcmUgcmVxdWVzdGVkLCB0aGUgcmVzb2x2ZWQgZGF0YSB3aWxsIGJlIGVtcHR5LlxuICogRm9yIGV2ZXJ5IGltYWdlIHRoYXQgZG9zIG5vdCBuZWVkIHRvIGJlIHJlc2l6ZWQsIGFuIHJlc3VsdCBvYmplY3Qgd2l0aCBgbnVsbGBcbiAqIHBhcmFtZXRlcnMgd2lsbCBiZSByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gdGhlIHJlc2l6ZSBjb25maWdcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHJlc2l6ZSBvcGVyYXRpb24ocylcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gIGNvbmZpZyxcbiAgZGltZW5zaW9ucyxcbiAgZmlsZSxcbiAgbWltZVR5cGUsXG4gIHJlcSxcbiAgc2F2ZWRGaWxlbmFtZSxcbiAgc2hhcnAsXG4gIHN0YXRpY1BhdGgsXG59OiBSZXNpemVBcmdzKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiB7XG4gIGNvbnN0IHsgaW1hZ2VTaXplcyB9ID0gY29uZmlnLnVwbG9hZFxuICAvLyBOb3RpbmcgdG8gcmVzaXplIGhlcmUgc28gcmV0dXJuIGFzIGVhcmx5IGFzIHBvc3NpYmxlXG4gIGlmICghaW1hZ2VTaXplcykgcmV0dXJuIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfVxuXG4gIGNvbnN0IHNoYXJwQmFzZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoIHx8IGZpbGUuZGF0YSkucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG5cbiAgY29uc3QgcmVzdWx0czogSW1hZ2VTaXplc1Jlc3VsdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgaW1hZ2VTaXplcy5tYXAoYXN5bmMgKGltYWdlUmVzaXplQ29uZmlnKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiA9PiB7XG4gICAgICBpbWFnZVJlc2l6ZUNvbmZpZyA9IHNhbml0aXplUmVzaXplQ29uZmlnKGltYWdlUmVzaXplQ29uZmlnKVxuXG4gICAgICAvLyBUaGlzIGNoZWNrcyBpZiBhIHJlc2l6ZSBzaG91bGQgaGFwcGVuLiBJZiBub3QsIHRoZSByZXNpemVkIGltYWdlIHdpbGwgYmVcbiAgICAgIC8vIHNraXBwZWQgQ09NUExFVEVMWSBhbmQgdGh1cyB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0aW5nIGltYWdlcy5cbiAgICAgIC8vIEFsbCBmdXJ0aGVyIGZvcm1hdC90cmltIG9wdGlvbnMgd2lsbCB0aHVzIGJlIHNraXBwZWQgYXMgd2VsbC5cbiAgICAgIGlmIChwcmV2ZW50UmVzaXplKGltYWdlUmVzaXplQ29uZmlnLCBkaW1lbnNpb25zKSkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KGltYWdlUmVzaXplQ29uZmlnLm5hbWUpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGltYWdlVG9SZXNpemUgPSBzaGFycEJhc2UuY2xvbmUoKVxuICAgICAgbGV0IHJlc2l6ZWQgPSBpbWFnZVRvUmVzaXplXG5cbiAgICAgIGlmIChcbiAgICAgICAgcmVxLnF1ZXJ5Py51cGxvYWRFZGl0cz8uZm9jYWxQb2ludCAmJlxuICAgICAgICBhcHBseVBheWxvYWRBZGp1c3RtZW50cyhpbWFnZVJlc2l6ZUNvbmZpZywgZGltZW5zaW9ucylcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IGhlaWdodDogcmVzaXplSGVpZ2h0LCB3aWR0aDogcmVzaXplV2lkdGggfSA9IGltYWdlUmVzaXplQ29uZmlnXG4gICAgICAgIGNvbnN0IHJlc2l6ZUFzcGVjdFJhdGlvID0gcmVzaXplV2lkdGggLyByZXNpemVIZWlnaHRcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxBc3BlY3RSYXRpbyA9IGRpbWVuc2lvbnMud2lkdGggLyBkaW1lbnNpb25zLmhlaWdodFxuICAgICAgICBjb25zdCBwcmlvcml0aXplSGVpZ2h0ID0gcmVzaXplQXNwZWN0UmF0aW8gPCBvcmlnaW5hbEFzcGVjdFJhdGlvXG5cbiAgICAgICAgLy8gU2NhbGUgdGhlIGltYWdlIHVwIG9yIGRvd24gdG8gZml0IHRoZSByZXNpemUgZGltZW5zaW9uc1xuICAgICAgICBjb25zdCBzY2FsZWRJbWFnZSA9IGltYWdlVG9SZXNpemUucmVzaXplKHtcbiAgICAgICAgICBoZWlnaHQ6IHByaW9yaXRpemVIZWlnaHQgPyByZXNpemVIZWlnaHQgOiBudWxsLFxuICAgICAgICAgIHdpZHRoOiBwcmlvcml0aXplSGVpZ2h0ID8gbnVsbCA6IHJlc2l6ZVdpZHRoLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCB7IGluZm86IHNjYWxlZEltYWdlSW5mbyB9ID0gYXdhaXQgc2NhbGVkSW1hZ2UudG9CdWZmZXIoeyByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSB9KVxuXG4gICAgICAgIC8vIEZvY2FsIHBvaW50IGFkanVzdG1lbnRzXG4gICAgICAgIGNvbnN0IGZvY2FsUG9pbnQgPSB7XG4gICAgICAgICAgeDogaXNOdW1iZXIocmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQ/LngpXG4gICAgICAgICAgICA/IHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50LnhcbiAgICAgICAgICAgIDogNTAsXG4gICAgICAgICAgeTogaXNOdW1iZXIocmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQ/LnkpXG4gICAgICAgICAgICA/IHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50LnlcbiAgICAgICAgICAgIDogNTAsXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzYWZlUmVzaXplV2lkdGggPSByZXNpemVXaWR0aCA/PyBzY2FsZWRJbWFnZUluZm8ud2lkdGhcbiAgICAgICAgY29uc3QgbWF4T2Zmc2V0WCA9IHNjYWxlZEltYWdlSW5mby53aWR0aCAtIHNhZmVSZXNpemVXaWR0aFxuICAgICAgICBjb25zdCBsZWZ0Rm9jYWxFZGdlID0gTWF0aC5yb3VuZChcbiAgICAgICAgICBzY2FsZWRJbWFnZUluZm8ud2lkdGggKiAoZm9jYWxQb2ludC54IC8gMTAwKSAtIHNhZmVSZXNpemVXaWR0aCAvIDIsXG4gICAgICAgIClcbiAgICAgICAgY29uc3Qgc2FmZU9mZnNldFggPSBNYXRoLm1pbihNYXRoLm1heCgwLCBsZWZ0Rm9jYWxFZGdlKSwgbWF4T2Zmc2V0WClcblxuICAgICAgICBjb25zdCBzYWZlUmVzaXplSGVpZ2h0ID0gcmVzaXplSGVpZ2h0ID8/IHNjYWxlZEltYWdlSW5mby5oZWlnaHRcbiAgICAgICAgY29uc3QgbWF4T2Zmc2V0WSA9IHNjYWxlZEltYWdlSW5mby5oZWlnaHQgLSBzYWZlUmVzaXplSGVpZ2h0XG4gICAgICAgIGNvbnN0IHRvcEZvY2FsRWRnZSA9IE1hdGgucm91bmQoXG4gICAgICAgICAgc2NhbGVkSW1hZ2VJbmZvLmhlaWdodCAqIChmb2NhbFBvaW50LnkgLyAxMDApIC0gc2FmZVJlc2l6ZUhlaWdodCAvIDIsXG4gICAgICAgIClcbiAgICAgICAgY29uc3Qgc2FmZU9mZnNldFkgPSBNYXRoLm1pbihNYXRoLm1heCgwLCB0b3BGb2NhbEVkZ2UpLCBtYXhPZmZzZXRZKVxuXG4gICAgICAgIC8vIGV4dHJhY3QgdGhlIGZvY2FsIGFyZWEgZnJvbSB0aGUgc2NhbGVkIGltYWdlXG4gICAgICAgIHJlc2l6ZWQgPSBzY2FsZWRJbWFnZS5leHRyYWN0KHtcbiAgICAgICAgICBoZWlnaHQ6IHNhZmVSZXNpemVIZWlnaHQsXG4gICAgICAgICAgbGVmdDogc2FmZU9mZnNldFgsXG4gICAgICAgICAgdG9wOiBzYWZlT2Zmc2V0WSxcbiAgICAgICAgICB3aWR0aDogc2FmZVJlc2l6ZVdpZHRoLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzaXplZCA9IGltYWdlVG9SZXNpemUucmVzaXplKGltYWdlUmVzaXplQ29uZmlnKVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50b0Zvcm1hdChcbiAgICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5mb3JtYXRPcHRpb25zLmZvcm1hdCxcbiAgICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5mb3JtYXRPcHRpb25zLm9wdGlvbnMsXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnRyaW0oaW1hZ2VSZXNpemVDb25maWcudHJpbU9wdGlvbnMpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgZGF0YTogYnVmZmVyRGF0YSwgaW5mbzogYnVmZmVySW5mbyB9ID0gYXdhaXQgcmVzaXplZC50b0J1ZmZlcih7XG4gICAgICAgIHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlLFxuICAgICAgfSlcblxuICAgICAgY29uc3Qgc2FuaXRpemVkSW1hZ2UgPSBnZXRTYW5pdGl6ZWRJbWFnZURhdGEoc2F2ZWRGaWxlbmFtZSlcblxuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplc1tpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lXSA9IGJ1ZmZlckRhdGFcblxuICAgICAgY29uc3QgbWltZUluZm8gPSBhd2FpdCBmcm9tQnVmZmVyKGJ1ZmZlckRhdGEpXG5cbiAgICAgIGNvbnN0IGltYWdlTmFtZVdpdGhEaW1lbnNpb25zID0gY3JlYXRlSW1hZ2VOYW1lKFxuICAgICAgICBzYW5pdGl6ZWRJbWFnZS5uYW1lLFxuICAgICAgICBidWZmZXJJbmZvLFxuICAgICAgICBtaW1lSW5mbz8uZXh0IHx8IHNhbml0aXplZEltYWdlLmV4dCxcbiAgICAgIClcblxuICAgICAgY29uc3QgaW1hZ2VQYXRoID0gYCR7c3RhdGljUGF0aH0vJHtpbWFnZU5hbWVXaXRoRGltZW5zaW9uc31gXG5cbiAgICAgIGlmIChhd2FpdCBmaWxlRXhpc3RzKGltYWdlUGF0aCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBmcy51bmxpbmtTeW5jKGltYWdlUGF0aClcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSWdub3JlIHVubGluayBlcnJvcnNcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGhlaWdodCwgc2l6ZSwgd2lkdGggfSA9IGJ1ZmZlckluZm9cbiAgICAgIHJldHVybiBjcmVhdGVSZXN1bHQoXG4gICAgICAgIGltYWdlUmVzaXplQ29uZmlnLm5hbWUsXG4gICAgICAgIGltYWdlTmFtZVdpdGhEaW1lbnNpb25zLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICBzaXplLFxuICAgICAgICBtaW1lSW5mbz8ubWltZSB8fCBtaW1lVHlwZSxcbiAgICAgICAgW3sgYnVmZmVyOiBidWZmZXJEYXRhLCBwYXRoOiBpbWFnZVBhdGggfV0sXG4gICAgICApXG4gICAgfSksXG4gIClcblxuICByZXR1cm4gcmVzdWx0cy5yZWR1Y2UoXG4gICAgKGFjYywgcmVzdWx0KSA9PiB7XG4gICAgICBPYmplY3QuYXNzaWduKGFjYy5zaXplRGF0YSwgcmVzdWx0LnNpemVEYXRhKVxuICAgICAgYWNjLnNpemVzVG9TYXZlLnB1c2goLi4ucmVzdWx0LnNpemVzVG9TYXZlKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sXG4gICAgeyBzaXplRGF0YToge30sIHNpemVzVG9TYXZlOiBbXSB9LFxuICApXG59XG4iXSwibmFtZXMiOlsiZmlsZVR5cGUiLCJmcm9tQnVmZmVyIiwiZnMiLCJzYW5pdGl6ZSIsImlzTnVtYmVyIiwiZmlsZUV4aXN0cyIsImdldFNhbml0aXplZEltYWdlRGF0YSIsInNvdXJjZUltYWdlIiwiZXh0ZW5zaW9uIiwic3BsaXQiLCJwb3AiLCJuYW1lIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJleHQiLCJjcmVhdGVJbWFnZU5hbWUiLCJvdXRwdXRJbWFnZU5hbWUiLCJoZWlnaHQiLCJ3aWR0aCIsImNyZWF0ZVJlc3VsdCIsImZpbGVuYW1lIiwiZmlsZXNpemUiLCJtaW1lVHlwZSIsInNpemVzVG9TYXZlIiwic2l6ZURhdGEiLCJwcmV2ZW50UmVzaXplIiwiZGVzaXJlZEhlaWdodCIsImRlc2lyZWRXaWR0aCIsIndpdGhvdXRFbmxhcmdlbWVudCIsIndpdGhvdXRSZWR1Y3Rpb24iLCJvcmlnaW5hbCIsInVuZGVmaW5lZCIsImlzV2lkdGhPckhlaWdodE5vdERlZmluZWQiLCJoYXNJbnN1ZmZpY2llbnRXaWR0aCIsImhhc0luc3VmZmljaWVudEhlaWdodCIsImFwcGx5UGF5bG9hZEFkanVzdG1lbnRzIiwiZml0IiwidGFyZ2V0QXNwZWN0UmF0aW8iLCJvcmlnaW5hbEFzcGVjdFJhdGlvIiwic2tpcEVubGFyZ2VtZW50Iiwic2tpcFJlZHVjdGlvbiIsInNhbml0aXplUmVzaXplQ29uZmlnIiwicmVzaXplQ29uZmlnIiwicG9zaXRpb24iLCJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwiY29uZmlnIiwiZGltZW5zaW9ucyIsImZpbGUiLCJyZXEiLCJzYXZlZEZpbGVuYW1lIiwic2hhcnAiLCJzdGF0aWNQYXRoIiwiaW1hZ2VTaXplcyIsInVwbG9hZCIsInNoYXJwQmFzZSIsInRlbXBGaWxlUGF0aCIsImRhdGEiLCJyb3RhdGUiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImltYWdlUmVzaXplQ29uZmlnIiwiaW1hZ2VUb1Jlc2l6ZSIsImNsb25lIiwicmVzaXplZCIsInF1ZXJ5IiwidXBsb2FkRWRpdHMiLCJmb2NhbFBvaW50IiwicmVzaXplSGVpZ2h0IiwicmVzaXplV2lkdGgiLCJyZXNpemVBc3BlY3RSYXRpbyIsInByaW9yaXRpemVIZWlnaHQiLCJzY2FsZWRJbWFnZSIsInJlc2l6ZSIsImluZm8iLCJzY2FsZWRJbWFnZUluZm8iLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwieCIsInkiLCJzYWZlUmVzaXplV2lkdGgiLCJtYXhPZmZzZXRYIiwibGVmdEZvY2FsRWRnZSIsIk1hdGgiLCJyb3VuZCIsInNhZmVPZmZzZXRYIiwibWluIiwibWF4Iiwic2FmZVJlc2l6ZUhlaWdodCIsIm1heE9mZnNldFkiLCJ0b3BGb2NhbEVkZ2UiLCJzYWZlT2Zmc2V0WSIsImV4dHJhY3QiLCJsZWZ0IiwidG9wIiwiZm9ybWF0T3B0aW9ucyIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW1PcHRpb25zIiwidHJpbSIsImJ1ZmZlckRhdGEiLCJidWZmZXJJbmZvIiwic2FuaXRpemVkSW1hZ2UiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJtaW1lSW5mbyIsImltYWdlTmFtZVdpdGhEaW1lbnNpb25zIiwiaW1hZ2VQYXRoIiwidW5saW5rU3luYyIsInNpemUiLCJtaW1lIiwiYnVmZmVyIiwicGF0aCIsInJlZHVjZSIsImFjYyIsInJlc3VsdCIsIk9iamVjdCIsImFzc2lnbiIsInB1c2giXSwibWFwcGluZ3MiOiJBQUVBLE9BQU9BLGNBQWMsWUFBVztBQUNoQyxNQUFNLEVBQUVDLFVBQVUsRUFBRSxHQUFHRDtBQUV2QixPQUFPRSxRQUFRLEtBQUk7QUFDbkIsT0FBT0MsY0FBYyxvQkFBbUI7QUFPeEMsU0FBU0MsUUFBUSxRQUFRLDJCQUEwQjtBQUNuRCxPQUFPQyxnQkFBZ0Isa0JBQWlCO0FBNEJ4Qzs7Ozs7Q0FLQyxHQUNELE1BQU1DLHdCQUF3QixDQUFDQztJQUM3QixNQUFNQyxZQUFZRCxZQUFZRSxLQUFLLENBQUMsS0FBS0MsR0FBRztJQUM1QyxNQUFNQyxPQUFPUixTQUFTSSxZQUFZSyxTQUFTLENBQUMsR0FBR0wsWUFBWU0sV0FBVyxDQUFDLFNBQVNOO0lBQ2hGLE9BQU87UUFBRUk7UUFBTUcsS0FBS047SUFBVTtBQUNoQztBQUVBOzs7Ozs7Ozs7Ozs7Q0FZQyxHQUNELE1BQU1PLGtCQUFrQixDQUN0QkMsaUJBQ0EsRUFBRUMsTUFBTSxFQUFFQyxLQUFLLEVBQWMsRUFDN0JWLFlBQ0csQ0FBQyxFQUFF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