payload 2.0.0-beta.9 → 2.0.1

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 (351) hide show
  1. package/README.md +132 -0
  2. package/config.d.ts +1 -0
  3. package/config.js +5 -1
  4. package/database.d.ts +1 -2
  5. package/database.js +1 -8
  6. package/dist/admin/Root.d.ts +5 -1
  7. package/dist/admin/Root.d.ts.map +1 -1
  8. package/dist/admin/Root.js +3 -3
  9. package/dist/admin/components/elements/ArrayAction/index.js +2 -2
  10. package/dist/admin/components/elements/DocumentControls/index.d.ts +1 -1
  11. package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
  12. package/dist/admin/components/elements/DocumentControls/index.js +2 -3
  13. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  14. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +5 -2
  15. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  16. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.js +7 -3
  17. package/dist/admin/components/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  18. package/dist/admin/components/elements/DocumentHeader/Tabs/index.js +4 -2
  19. package/dist/admin/components/elements/DocumentHeader/Tabs/index.scss +6 -10
  20. package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.d.ts.map +1 -1
  21. package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.js +10 -2
  22. package/dist/admin/components/elements/DocumentHeader/Tabs/types.d.ts +4 -0
  23. package/dist/admin/components/elements/DocumentHeader/Tabs/types.d.ts.map +1 -1
  24. package/dist/admin/components/elements/Drawer/index.d.ts.map +1 -1
  25. package/dist/admin/components/elements/Drawer/index.js +4 -3
  26. package/dist/admin/components/elements/Drawer/types.d.ts +1 -0
  27. package/dist/admin/components/elements/Drawer/types.d.ts.map +1 -1
  28. package/dist/admin/components/elements/Dropzone/index.d.ts +10 -0
  29. package/dist/admin/components/elements/Dropzone/index.d.ts.map +1 -0
  30. package/dist/admin/components/elements/Dropzone/index.js +120 -0
  31. package/dist/admin/components/elements/Dropzone/index.scss +52 -0
  32. package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
  33. package/dist/admin/components/elements/DuplicateDocument/index.js +4 -3
  34. package/dist/admin/components/elements/EditUpload/index.d.ts +13 -0
  35. package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -0
  36. package/dist/admin/components/elements/EditUpload/index.js +378 -0
  37. package/dist/admin/components/elements/EditUpload/index.scss +218 -0
  38. package/dist/admin/components/elements/FileDetails/index.d.ts.map +1 -1
  39. package/dist/admin/components/elements/FileDetails/index.js +14 -99
  40. package/dist/admin/components/elements/FileDetails/index.scss +21 -0
  41. package/dist/admin/components/elements/FileDetails/types.d.ts +3 -0
  42. package/dist/admin/components/elements/FileDetails/types.d.ts.map +1 -1
  43. package/dist/admin/components/elements/Hamburger/index.d.ts.map +1 -1
  44. package/dist/admin/components/elements/Hamburger/index.js +12 -16
  45. package/dist/admin/components/elements/Hamburger/index.scss +41 -54
  46. package/dist/admin/components/elements/Header/index.d.ts.map +1 -1
  47. package/dist/admin/components/elements/Header/index.js +6 -6
  48. package/dist/admin/components/elements/Header/index.scss +6 -1
  49. package/dist/admin/components/elements/Localizer/index.d.ts.map +1 -1
  50. package/dist/admin/components/elements/Localizer/index.js +1 -3
  51. package/dist/admin/components/elements/Nav/NavToggler/index.d.ts.map +1 -1
  52. package/dist/admin/components/elements/Nav/NavToggler/index.js +2 -1
  53. package/dist/admin/components/elements/Nav/NavToggler/index.scss +4 -0
  54. package/dist/admin/components/elements/Nav/context.d.ts +1 -1
  55. package/dist/admin/components/elements/Nav/context.d.ts.map +1 -1
  56. package/dist/admin/components/elements/Nav/context.js +12 -7
  57. package/dist/admin/components/elements/Nav/index.d.ts.map +1 -1
  58. package/dist/admin/components/elements/Nav/index.js +19 -18
  59. package/dist/admin/components/elements/Nav/index.scss +3 -1
  60. package/dist/admin/components/elements/PreviewSizes/index.d.ts +14 -0
  61. package/dist/admin/components/elements/PreviewSizes/index.d.ts.map +1 -0
  62. package/dist/admin/components/elements/PreviewSizes/index.js +146 -0
  63. package/dist/admin/components/elements/PreviewSizes/index.scss +146 -0
  64. package/dist/admin/components/elements/Thumbnail/index.d.ts.map +1 -1
  65. package/dist/admin/components/elements/Thumbnail/index.js +61 -7
  66. package/dist/admin/components/elements/Thumbnail/types.d.ts +4 -2
  67. package/dist/admin/components/elements/Thumbnail/types.d.ts.map +1 -1
  68. package/dist/admin/components/elements/WhereBuilder/Condition/index.js +6 -6
  69. package/dist/admin/components/elements/WhereBuilder/field-types.js +2 -2
  70. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.d.ts +3 -1
  71. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  72. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.js +12 -6
  73. package/dist/admin/components/forms/Form/buildStateFromSchema/index.d.ts +4 -2
  74. package/dist/admin/components/forms/Form/buildStateFromSchema/index.d.ts.map +1 -1
  75. package/dist/admin/components/forms/Form/buildStateFromSchema/index.js +3 -2
  76. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.d.ts +3 -1
  77. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  78. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.js +3 -2
  79. package/dist/admin/components/forms/Form/fieldReducer.js +7 -7
  80. package/dist/admin/components/forms/Form/index.d.ts.map +1 -1
  81. package/dist/admin/components/forms/Form/index.js +23 -8
  82. package/dist/admin/components/forms/Form/types.d.ts +1 -0
  83. package/dist/admin/components/forms/Form/types.d.ts.map +1 -1
  84. package/dist/admin/components/forms/field-types/Array/index.d.ts.map +1 -1
  85. package/dist/admin/components/forms/field-types/Array/index.js +10 -10
  86. package/dist/admin/components/forms/field-types/Blocks/index.js +8 -8
  87. package/dist/admin/components/forms/field-types/Checkbox/index.scss +4 -0
  88. package/dist/admin/components/forms/field-types/RichText/index.d.ts.map +1 -1
  89. package/dist/admin/components/forms/field-types/RichText/index.js +2 -4
  90. package/dist/admin/components/forms/field-types/RichText/types.d.ts +4 -3
  91. package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
  92. package/dist/admin/components/forms/field-types/Select/Input.d.ts.map +1 -1
  93. package/dist/admin/components/forms/field-types/Select/Input.js +4 -4
  94. package/dist/admin/components/forms/field-types/Upload/index.scss +1 -5
  95. package/dist/admin/components/forms/useField/index.d.ts.map +1 -1
  96. package/dist/admin/components/forms/useField/index.js +4 -1
  97. package/dist/admin/components/icons/MinimizeMaximize/index.d.ts +8 -0
  98. package/dist/admin/components/icons/MinimizeMaximize/index.d.ts.map +1 -0
  99. package/dist/admin/components/icons/MinimizeMaximize/index.js +85 -0
  100. package/dist/admin/components/templates/Default/index.d.ts.map +1 -1
  101. package/dist/admin/components/templates/Default/index.js +10 -10
  102. package/dist/admin/components/templates/Default/index.scss +39 -6
  103. package/dist/admin/components/utilities/FormQueryParams/index.d.ts +17 -0
  104. package/dist/admin/components/utilities/FormQueryParams/index.d.ts.map +1 -0
  105. package/dist/admin/components/utilities/FormQueryParams/index.js +23 -0
  106. package/dist/admin/components/utilities/Locale/index.d.ts +2 -2
  107. package/dist/admin/components/utilities/Locale/index.d.ts.map +1 -1
  108. package/dist/admin/components/utilities/Locale/index.js +2 -2
  109. package/dist/admin/components/utilities/OperationProvider/index.d.ts +1 -1
  110. package/dist/admin/components/utilities/OperationProvider/index.d.ts.map +1 -1
  111. package/dist/admin/components/utilities/OperationProvider/index.js +2 -2
  112. package/dist/admin/components/utilities/RenderCustomComponent/types.d.ts +1 -1
  113. package/dist/admin/components/utilities/RenderCustomComponent/types.d.ts.map +1 -1
  114. package/dist/admin/components/views/API/index.d.ts +6 -0
  115. package/dist/admin/components/views/API/index.d.ts.map +1 -0
  116. package/dist/admin/components/views/API/index.js +283 -0
  117. package/dist/admin/components/views/API/index.scss +203 -0
  118. package/dist/admin/components/views/Account/Default.d.ts.map +1 -1
  119. package/dist/admin/components/views/Account/Default.js +4 -4
  120. package/dist/admin/components/views/Account/index.d.ts.map +1 -1
  121. package/dist/admin/components/views/Account/index.js +15 -10
  122. package/dist/admin/components/views/Dashboard/index.d.ts.map +1 -1
  123. package/dist/admin/components/views/Dashboard/index.js +3 -5
  124. package/dist/admin/components/views/Global/Default/index.scss +12 -0
  125. package/dist/admin/components/views/Global/Routes/CustomComponent.d.ts.map +1 -1
  126. package/dist/admin/components/views/Global/Routes/CustomComponent.js +3 -2
  127. package/dist/admin/components/views/Global/Routes/custom.d.ts +2 -2
  128. package/dist/admin/components/views/Global/Routes/custom.d.ts.map +1 -1
  129. package/dist/admin/components/views/Global/Routes/custom.js +27 -18
  130. package/dist/admin/components/views/Global/Routes/index.d.ts.map +1 -1
  131. package/dist/admin/components/views/Global/Routes/index.js +11 -3
  132. package/dist/admin/components/views/Global/index.d.ts.map +1 -1
  133. package/dist/admin/components/views/Global/index.js +11 -4
  134. package/dist/admin/components/views/LivePreview/Context/context.d.ts +4 -4
  135. package/dist/admin/components/views/LivePreview/Context/context.d.ts.map +1 -1
  136. package/dist/admin/components/views/LivePreview/Context/context.js +1 -1
  137. package/dist/admin/components/views/LivePreview/Context/index.d.ts +2 -2
  138. package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
  139. package/dist/admin/components/views/LivePreview/Context/index.js +1 -1
  140. package/dist/admin/components/views/LivePreview/Device/index.js +2 -2
  141. package/dist/admin/components/views/LivePreview/DeviceContainer/index.js +3 -3
  142. package/dist/admin/components/views/LivePreview/Preview/index.d.ts +2 -0
  143. package/dist/admin/components/views/LivePreview/Preview/index.d.ts.map +1 -1
  144. package/dist/admin/components/views/LivePreview/Preview/index.js +30 -20
  145. package/dist/admin/components/views/LivePreview/Preview/index.scss +20 -6
  146. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts +5 -0
  147. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -0
  148. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.js +71 -0
  149. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.scss +54 -0
  150. package/dist/admin/components/views/LivePreview/Toolbar/index.d.ts +4 -1
  151. package/dist/admin/components/views/LivePreview/Toolbar/index.d.ts.map +1 -1
  152. package/dist/admin/components/views/LivePreview/Toolbar/index.js +24 -51
  153. package/dist/admin/components/views/LivePreview/Toolbar/index.scss +19 -60
  154. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  155. package/dist/admin/components/views/LivePreview/index.js +26 -5
  156. package/dist/admin/components/views/LivePreview/index.scss +6 -2
  157. package/dist/admin/components/views/Login/index.js +3 -3
  158. package/dist/admin/components/views/Routes/collections.d.ts.map +1 -1
  159. package/dist/admin/components/views/Routes/collections.js +1 -1
  160. package/dist/admin/components/views/Routes/custom.d.ts +5 -4
  161. package/dist/admin/components/views/Routes/custom.d.ts.map +1 -1
  162. package/dist/admin/components/views/Routes/custom.js +23 -7
  163. package/dist/admin/components/views/Routes/globals.d.ts.map +1 -1
  164. package/dist/admin/components/views/Routes/globals.js +1 -1
  165. package/dist/admin/components/views/Routes/index.d.ts.map +1 -1
  166. package/dist/admin/components/views/Routes/index.js +12 -8
  167. package/dist/admin/components/views/Verify/index.js +1 -1
  168. package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
  169. package/dist/admin/components/views/collections/Edit/Default/index.js +6 -6
  170. package/dist/admin/components/views/collections/Edit/Default/index.scss +12 -0
  171. package/dist/admin/components/views/collections/Edit/Routes/CustomComponent.js +3 -3
  172. package/dist/admin/components/views/collections/Edit/Routes/custom.d.ts.map +1 -1
  173. package/dist/admin/components/views/collections/Edit/Routes/custom.js +27 -18
  174. package/dist/admin/components/views/collections/Edit/Routes/index.d.ts.map +1 -1
  175. package/dist/admin/components/views/collections/Edit/Routes/index.js +4 -3
  176. package/dist/admin/components/views/collections/Edit/SetStepNav.js +3 -3
  177. package/dist/admin/components/views/collections/Edit/Upload/index.d.ts +7 -2
  178. package/dist/admin/components/views/collections/Edit/Upload/index.d.ts.map +1 -1
  179. package/dist/admin/components/views/collections/Edit/Upload/index.js +116 -121
  180. package/dist/admin/components/views/collections/Edit/Upload/index.scss +68 -68
  181. package/dist/admin/components/views/collections/Edit/Upload/types.d.ts +2 -3
  182. package/dist/admin/components/views/collections/Edit/Upload/types.d.ts.map +1 -1
  183. package/dist/admin/components/views/collections/Edit/formatFields.d.ts +1 -1
  184. package/dist/admin/components/views/collections/Edit/formatFields.d.ts.map +1 -1
  185. package/dist/admin/components/views/collections/Edit/formatFields.js +1 -1
  186. package/dist/admin/components/views/collections/Edit/index.d.ts.map +1 -1
  187. package/dist/admin/components/views/collections/Edit/index.js +36 -7
  188. package/dist/admin/components/views/collections/Edit/types.d.ts +12 -0
  189. package/dist/admin/components/views/collections/Edit/types.d.ts.map +1 -1
  190. package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.d.ts +4 -1
  191. package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.d.ts.map +1 -1
  192. package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.js +7 -3
  193. package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.scss +7 -2
  194. package/dist/admin/components/views/collections/List/Cell/field-types/Richtext/index.d.ts.map +1 -1
  195. package/dist/admin/components/views/collections/List/Cell/field-types/Richtext/index.js +2 -4
  196. package/dist/admin/components/views/collections/List/Cell/field-types/index.d.ts +1 -1
  197. package/dist/admin/components/views/collections/List/Cell/index.d.ts.map +1 -1
  198. package/dist/admin/components/views/collections/List/Cell/index.js +11 -1
  199. package/dist/admin/components/views/types.d.ts +8 -8
  200. package/dist/admin/components/views/types.d.ts.map +1 -1
  201. package/dist/auth/operations/me.d.ts.map +1 -1
  202. package/dist/auth/operations/me.js +13 -5
  203. package/dist/auth/strategies/jwt.js +3 -3
  204. package/dist/bin/build.d.ts.map +1 -1
  205. package/dist/bin/build.js +9 -5
  206. package/dist/bin/generateGraphQLSchema.js +2 -2
  207. package/dist/bin/index.js +3 -3
  208. package/dist/bin/migrate.d.ts +2 -1
  209. package/dist/bin/migrate.d.ts.map +1 -1
  210. package/dist/bin/migrate.js +16 -4
  211. package/dist/collections/config/sanitize.js +4 -4
  212. package/dist/collections/config/schema.d.ts.map +1 -1
  213. package/dist/collections/config/schema.js +7 -10
  214. package/dist/collections/config/types.d.ts +5 -41
  215. package/dist/collections/config/types.d.ts.map +1 -1
  216. package/dist/collections/config/types.js +1 -1
  217. package/dist/collections/dataloader.js +2 -2
  218. package/dist/config/defaults.js +2 -2
  219. package/dist/config/schema.d.ts.map +1 -1
  220. package/dist/config/schema.js +14 -8
  221. package/dist/config/shared/adminViewSchema.d.ts +3 -0
  222. package/dist/config/shared/adminViewSchema.d.ts.map +1 -0
  223. package/dist/config/shared/adminViewSchema.js +26 -0
  224. package/dist/config/shared/componentSchema.d.ts +4 -0
  225. package/dist/config/shared/componentSchema.d.ts.map +1 -1
  226. package/dist/config/shared/componentSchema.js +13 -1
  227. package/dist/config/types.d.ts +55 -37
  228. package/dist/config/types.d.ts.map +1 -1
  229. package/dist/config/types.js +1 -1
  230. package/dist/database/createDatabaseAdapter.d.ts +1 -1
  231. package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
  232. package/dist/database/createDatabaseAdapter.js +1 -10
  233. package/dist/database/migrations/createMigration.js +2 -2
  234. package/dist/database/migrations/getMigrations.d.ts +3 -0
  235. package/dist/database/migrations/getMigrations.d.ts.map +1 -1
  236. package/dist/database/migrations/getMigrations.js +7 -2
  237. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  238. package/dist/database/migrations/migrateDown.js +5 -6
  239. package/dist/database/migrations/migrateRefresh.d.ts +1 -1
  240. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  241. package/dist/database/migrations/migrateRefresh.js +63 -8
  242. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  243. package/dist/database/migrations/migrateReset.js +17 -1
  244. package/dist/database/migrations/migrationTemplate.d.ts +1 -1
  245. package/dist/database/migrations/migrationTemplate.d.ts.map +1 -1
  246. package/dist/database/migrations/migrationTemplate.js +2 -2
  247. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  248. package/dist/database/migrations/migrationsCollection.js +1 -5
  249. package/dist/database/types.d.ts +5 -15
  250. package/dist/database/types.d.ts.map +1 -1
  251. package/dist/exports/config.d.ts +1 -0
  252. package/dist/exports/config.d.ts.map +1 -1
  253. package/dist/exports/config.js +5 -1
  254. package/dist/exports/database.d.ts +1 -2
  255. package/dist/exports/database.d.ts.map +1 -1
  256. package/dist/exports/database.js +1 -8
  257. package/dist/exports/utilities.d.ts +2 -0
  258. package/dist/exports/utilities.d.ts.map +1 -1
  259. package/dist/exports/utilities.js +9 -1
  260. package/dist/fields/config/sanitize.d.ts +7 -3
  261. package/dist/fields/config/sanitize.d.ts.map +1 -1
  262. package/dist/fields/config/sanitize.js +17 -12
  263. package/dist/fields/config/sanitize.spec.js +19 -24
  264. package/dist/fields/config/schema.d.ts.map +1 -1
  265. package/dist/fields/config/schema.js +3 -2
  266. package/dist/fields/config/types.d.ts +3 -1
  267. package/dist/fields/config/types.d.ts.map +1 -1
  268. package/dist/fields/config/types.js +1 -1
  269. package/dist/fields/hooks/afterRead/promise.js +2 -2
  270. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  271. package/dist/fields/hooks/beforeChange/promise.js +3 -9
  272. package/dist/fields/validations.d.ts +3 -1
  273. package/dist/fields/validations.d.ts.map +1 -1
  274. package/dist/fields/validations.js +41 -32
  275. package/dist/globals/config/sanitize.js +4 -4
  276. package/dist/globals/config/schema.d.ts.map +1 -1
  277. package/dist/globals/config/schema.js +5 -10
  278. package/dist/globals/config/types.d.ts +6 -3
  279. package/dist/globals/config/types.d.ts.map +1 -1
  280. package/dist/graphql/schema/buildObjectType.js +2 -2
  281. package/dist/payload.d.ts.map +1 -1
  282. package/dist/payload.js +2 -2
  283. package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
  284. package/dist/preferences/deleteUserPreferences.js +13 -7
  285. package/dist/preferences/preferencesCollection.d.ts.map +1 -1
  286. package/dist/preferences/preferencesCollection.js +1 -13
  287. package/dist/translations/ar.json +14 -2
  288. package/dist/translations/az.json +14 -2
  289. package/dist/translations/bg.json +14 -2
  290. package/dist/translations/cs.json +14 -2
  291. package/dist/translations/de.json +14 -2
  292. package/dist/translations/en.json +12 -0
  293. package/dist/translations/es.json +14 -2
  294. package/dist/translations/fa.json +14 -2
  295. package/dist/translations/fr.json +14 -2
  296. package/dist/translations/hr.json +14 -2
  297. package/dist/translations/hu.json +14 -2
  298. package/dist/translations/index.d.ts +340 -26
  299. package/dist/translations/index.d.ts.map +1 -1
  300. package/dist/translations/it.json +16 -3
  301. package/dist/translations/ja.json +14 -2
  302. package/dist/translations/my.json +14 -2
  303. package/dist/translations/nb.json +14 -2
  304. package/dist/translations/nl.json +14 -2
  305. package/dist/translations/pl.json +15 -2
  306. package/dist/translations/pt.json +14 -2
  307. package/dist/translations/ro.json +14 -2
  308. package/dist/translations/ru.json +14 -2
  309. package/dist/translations/sv.json +14 -2
  310. package/dist/translations/th.json +14 -2
  311. package/dist/translations/tr.json +14 -2
  312. package/dist/translations/translation-schema.json +36 -0
  313. package/dist/translations/ua.json +14 -2
  314. package/dist/translations/vi.json +14 -2
  315. package/dist/translations/zh.json +14 -2
  316. package/dist/uploads/cropImage.d.ts +12 -0
  317. package/dist/uploads/cropImage.d.ts.map +1 -0
  318. package/dist/uploads/cropImage.js +47 -0
  319. package/dist/uploads/generateFileData.d.ts.map +1 -1
  320. package/dist/uploads/generateFileData.js +49 -14
  321. package/dist/uploads/imageResizer.d.ts +6 -1
  322. package/dist/uploads/imageResizer.d.ts.map +1 -1
  323. package/dist/uploads/imageResizer.js +48 -3
  324. package/dist/uploads/types.d.ts +5 -1
  325. package/dist/uploads/types.d.ts.map +1 -1
  326. package/dist/uploads/types.js +1 -1
  327. package/dist/utilities/fieldSchemaToJSON.d.ts +3 -0
  328. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -0
  329. package/dist/utilities/fieldSchemaToJSON.js +77 -0
  330. package/dist/utilities/getIDType.d.ts +2 -1
  331. package/dist/utilities/getIDType.d.ts.map +1 -1
  332. package/dist/utilities/getIDType.js +3 -3
  333. package/dist/utilities/isValidID.js +2 -2
  334. package/package.json +2 -5
  335. package/utilities.d.ts +2 -0
  336. package/utilities.js +9 -1
  337. package/components/rich-text.d.ts +0 -4
  338. package/components/rich-text.js +0 -31
  339. package/dist/admin/components/views/LivePreview/useLivePreview.d.ts +0 -8
  340. package/dist/admin/components/views/LivePreview/useLivePreview.d.ts.map +0 -1
  341. package/dist/admin/components/views/LivePreview/useLivePreview.js +0 -43
  342. package/dist/admin/components/views/RestAPI/index.d.ts +0 -4
  343. package/dist/admin/components/views/RestAPI/index.d.ts.map +0 -1
  344. package/dist/admin/components/views/RestAPI/index.js +0 -113
  345. package/dist/admin/components/views/RestAPI/index.scss +0 -107
  346. package/dist/config/shared/routeSchema.d.ts +0 -3
  347. package/dist/config/shared/routeSchema.d.ts.map +0 -1
  348. package/dist/config/shared/routeSchema.js +0 -26
  349. package/dist/database/transaction.d.ts +0 -3
  350. package/dist/database/transaction.d.ts.map +0 -1
  351. package/dist/database/transaction.js +0 -21
@@ -15,6 +15,8 @@ const _sanitizefilename = /*#__PURE__*/ _interop_require_default(require("saniti
15
15
  const _sharp = /*#__PURE__*/ _interop_require_default(require("sharp"));
16
16
  const _errors = require("../errors");
17
17
  const _canResizeImage = /*#__PURE__*/ _interop_require_default(require("./canResizeImage"));
18
+ const _cropImage = /*#__PURE__*/ _interop_require_default(require("./cropImage"));
19
+ const _getFileByPath = /*#__PURE__*/ _interop_require_default(require("./getFileByPath"));
18
20
  const _getImageSize = /*#__PURE__*/ _interop_require_default(require("./getImageSize"));
19
21
  const _getSafeFilename = /*#__PURE__*/ _interop_require_default(require("./getSafeFilename"));
20
22
  const _imageResizer = /*#__PURE__*/ _interop_require_default(require("./imageResizer"));
@@ -31,7 +33,20 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
31
33
  files: []
32
34
  };
33
35
  }
34
- const { file } = req.files || {};
36
+ let file = req.files?.file || undefined;
37
+ const { uploadEdits } = req.query || {};
38
+ const { disableLocalStorage, formatOptions, imageSizes, resizeOptions, staticDir, trimOptions } = collectionConfig.upload;
39
+ let staticPath = staticDir;
40
+ if (staticDir.indexOf('/') !== 0) {
41
+ staticPath = _path.default.resolve(config.paths.configDir, staticDir);
42
+ }
43
+ if (!file && uploadEdits && data) {
44
+ const { filename } = data;
45
+ const filePath = `${staticPath}/${filename}`;
46
+ const response = await (0, _getFileByPath.default)(filePath);
47
+ overwriteExistingFiles = true;
48
+ file = response;
49
+ }
35
50
  if (!file) {
36
51
  if (throwOnMissingFile) throw new _errors.MissingFile(req.t);
37
52
  return {
@@ -39,11 +54,6 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
39
54
  files: []
40
55
  };
41
56
  }
42
- const { disableLocalStorage, formatOptions, imageSizes, resizeOptions, staticDir, trimOptions } = collectionConfig.upload;
43
- let staticPath = staticDir;
44
- if (staticDir.indexOf('/') !== 0) {
45
- staticPath = _path.default.resolve(config.paths.configDir, staticDir);
46
- }
47
57
  if (!disableLocalStorage) {
48
58
  _mkdirp.default.sync(staticPath);
49
59
  }
@@ -51,6 +61,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
51
61
  const filesToSave = [];
52
62
  const fileData = {};
53
63
  const fileIsAnimated = file.mimetype === 'image/gif' || file.mimetype === 'image/webp';
64
+ const cropData = typeof uploadEdits === 'object' && 'crop' in uploadEdits ? uploadEdits.crop : undefined;
54
65
  try {
55
66
  const fileSupportsResize = (0, _canResizeImage.default)(file.mimetype);
56
67
  let fsSafeName;
@@ -122,17 +133,41 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
122
133
  });
123
134
  }
124
135
  fileData.filename = fsSafeName;
125
- // Original file
126
- filesToSave.push({
127
- buffer: fileBuffer?.data || file.data,
128
- path: `${staticPath}/${fsSafeName}`
129
- });
136
+ let fileForResize = file;
137
+ if (cropData) {
138
+ const { data: croppedImage, info } = await (0, _cropImage.default)({
139
+ cropData,
140
+ dimensions,
141
+ file
142
+ });
143
+ filesToSave.push({
144
+ buffer: croppedImage,
145
+ path: `${staticPath}/${fsSafeName}`
146
+ });
147
+ fileForResize = {
148
+ ...file,
149
+ data: croppedImage,
150
+ size: info.size
151
+ };
152
+ fileData.width = info.width;
153
+ fileData.height = info.height;
154
+ fileData.filesize = info.size;
155
+ } else {
156
+ filesToSave.push({
157
+ buffer: fileBuffer?.data || file.data,
158
+ path: `${staticPath}/${fsSafeName}`
159
+ });
160
+ }
130
161
  if (Array.isArray(imageSizes) && fileSupportsResize) {
131
162
  req.payloadUploadSizes = {};
132
163
  const { sizeData, sizesToSave } = await (0, _imageResizer.default)({
133
164
  config: collectionConfig,
134
- dimensions,
135
- file,
165
+ dimensions: !cropData ? dimensions : {
166
+ ...dimensions,
167
+ height: fileData.height,
168
+ width: fileData.width
169
+ },
170
+ file: fileForResize,
136
171
  mimeType: fileData.mimeType,
137
172
  req,
138
173
  savedFilename: fsSafeName || file.name,
@@ -155,4 +190,4 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
155
190
  };
156
191
  };
157
192
 
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTaGFycCB9IGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgeyBmcm9tQnVmZmVyIH0gZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IG1rZGlycCBmcm9tICdta2RpcnAnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuaW1wb3J0IHNoYXJwIGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWxlRGF0YSwgRmlsZVRvU2F2ZSwgUHJvYmVkSW1hZ2VTaXplIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgRmlsZVVwbG9hZEVycm9yLCBNaXNzaW5nRmlsZSB9IGZyb20gJy4uL2Vycm9ycydcbmltcG9ydCBjYW5SZXNpemVJbWFnZSBmcm9tICcuL2NhblJlc2l6ZUltYWdlJ1xuaW1wb3J0IGdldEltYWdlU2l6ZSBmcm9tICcuL2dldEltYWdlU2l6ZSdcbmltcG9ydCBnZXRTYWZlRmlsZU5hbWUgZnJvbSAnLi9nZXRTYWZlRmlsZW5hbWUnXG5pbXBvcnQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyBmcm9tICcuL2ltYWdlUmVzaXplcidcbmltcG9ydCBpc0ltYWdlIGZyb20gJy4vaXNJbWFnZSdcblxudHlwZSBBcmdzPFQ+ID0ge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIGRhdGE6IFRcbiAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcz86IGJvb2xlYW5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICB0aHJvd09uTWlzc2luZ0ZpbGU/OiBib29sZWFuXG59XG5cbnR5cGUgUmVzdWx0PFQ+ID0gUHJvbWlzZTx7XG4gIGRhdGE6IFRcbiAgZmlsZXM6IEZpbGVUb1NhdmVbXVxufT5cblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlRmlsZURhdGEgPSBhc3luYyA8VD4oe1xuICBjb2xsZWN0aW9uOiB7IGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyB9LFxuICBjb25maWcsXG4gIGRhdGEsXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMsXG4gIHJlcSxcbiAgdGhyb3dPbk1pc3NpbmdGaWxlLFxufTogQXJnczxUPik6IFJlc3VsdDxUPiA9PiB7XG4gIGlmICghY29sbGVjdGlvbkNvbmZpZy51cGxvYWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBjb25zdCB7IGZpbGUgfSA9IHJlcS5maWxlcyB8fCB7fVxuICBpZiAoIWZpbGUpIHtcbiAgICBpZiAodGhyb3dPbk1pc3NpbmdGaWxlKSB0aHJvdyBuZXcgTWlzc2luZ0ZpbGUocmVxLnQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBjb25zdCB7IGRpc2FibGVMb2NhbFN0b3JhZ2UsIGZvcm1hdE9wdGlvbnMsIGltYWdlU2l6ZXMsIHJlc2l6ZU9wdGlvbnMsIHN0YXRpY0RpciwgdHJpbU9wdGlvbnMgfSA9XG4gICAgY29sbGVjdGlvbkNvbmZpZy51cGxvYWRcblxuICBsZXQgc3RhdGljUGF0aCA9IHN0YXRpY0RpclxuICBpZiAoc3RhdGljRGlyLmluZGV4T2YoJy8nKSAhPT0gMCkge1xuICAgIHN0YXRpY1BhdGggPSBwYXRoLnJlc29sdmUoY29uZmlnLnBhdGhzLmNvbmZpZ0Rpciwgc3RhdGljRGlyKVxuICB9XG5cbiAgaWYgKCFkaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgbWtkaXJwLnN5bmMoc3RhdGljUGF0aClcbiAgfVxuXG4gIGxldCBuZXdEYXRhID0gZGF0YVxuICBjb25zdCBmaWxlc1RvU2F2ZTogRmlsZVRvU2F2ZVtdID0gW11cbiAgY29uc3QgZmlsZURhdGE6IFBhcnRpYWw8RmlsZURhdGE+ID0ge31cbiAgY29uc3QgZmlsZUlzQW5pbWF0ZWQgPSBmaWxlLm1pbWV0eXBlID09PSAnaW1hZ2UvZ2lmJyB8fCBmaWxlLm1pbWV0eXBlID09PSAnaW1hZ2Uvd2VicCdcblxuICB0cnkge1xuICAgIGNvbnN0IGZpbGVTdXBwb3J0c1Jlc2l6ZSA9IGNhblJlc2l6ZUltYWdlKGZpbGUubWltZXR5cGUpXG4gICAgbGV0IGZzU2FmZU5hbWU6IHN0cmluZ1xuICAgIGxldCBzaGFycEZpbGU6IFNoYXJwIHwgdW5kZWZpbmVkXG4gICAgbGV0IGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZSB8IHVuZGVmaW5lZFxuICAgIGxldCBmaWxlQnVmZmVyXG4gICAgbGV0IGV4dFxuICAgIGxldCBtaW1lOiBzdHJpbmdcblxuICAgIGNvbnN0IHNoYXJwT3B0aW9uczogc2hhcnAuU2hhcnBPcHRpb25zID0ge31cblxuICAgIGlmIChmaWxlSXNBbmltYXRlZCkgc2hhcnBPcHRpb25zLmFuaW1hdGVkID0gdHJ1ZVxuXG4gICAgaWYgKGZpbGVTdXBwb3J0c1Jlc2l6ZSAmJiAocmVzaXplT3B0aW9ucyB8fCBmb3JtYXRPcHRpb25zIHx8IHRyaW1PcHRpb25zKSkge1xuICAgICAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnAoZmlsZS5kYXRhLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzaXplT3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUucmVzaXplKHJlc2l6ZU9wdGlvbnMpXG4gICAgICB9XG4gICAgICBpZiAoZm9ybWF0T3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUudG9Gb3JtYXQoZm9ybWF0T3B0aW9ucy5mb3JtYXQsIGZvcm1hdE9wdGlvbnMub3B0aW9ucylcbiAgICAgIH1cbiAgICAgIGlmICh0cmltT3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUudHJpbSh0cmltT3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNJbWFnZShmaWxlLm1pbWV0eXBlKSkge1xuICAgICAgZGltZW5zaW9ucyA9IGF3YWl0IGdldEltYWdlU2l6ZShmaWxlKVxuICAgICAgZmlsZURhdGEud2lkdGggPSBkaW1lbnNpb25zLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBkaW1lbnNpb25zLmhlaWdodFxuICAgIH1cblxuICAgIGlmIChzaGFycEZpbGUpIHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnBGaWxlLm1ldGFkYXRhKClcbiAgICAgIGZpbGVCdWZmZXIgPSBhd2FpdCBzaGFycEZpbGUudG9CdWZmZXIoeyByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSB9KVxuICAgICAgOyh7IGV4dCwgbWltZSB9ID0gYXdhaXQgZnJvbUJ1ZmZlcihmaWxlQnVmZmVyLmRhdGEpKSAvLyBUaGlzIGlzIGdldHRpbmcgYW4gaW5jb3JyZWN0IGdpZiBoZWlnaHQgYmFjay5cbiAgICAgIGZpbGVEYXRhLndpZHRoID0gZmlsZUJ1ZmZlci5pbmZvLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBmaWxlQnVmZmVyLmluZm8uaGVpZ2h0XG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGVCdWZmZXIuaW5mby5zaXplXG5cbiAgICAgIC8vIEFuaW1hdGVkIEdJRnMgKyBXZWJQIGFnZ3JlZ2F0ZSB0aGUgaGVpZ2h0IGZyb20gZXZlcnkgZnJhbWUsIHNvIHdlIG5lZWQgdG8gdXNlIGRpdmlkZSBieSBudW1iZXIgb2YgcGFnZXNcbiAgICAgIGlmIChtZXRhZGF0YS5wYWdlcykge1xuICAgICAgICBmaWxlRGF0YS5oZWlnaHQgPSBmaWxlQnVmZmVyLmluZm8uaGVpZ2h0IC8gbWV0YWRhdGEucGFnZXNcbiAgICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlQnVmZmVyLmRhdGEubGVuZ3RoXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1pbWUgPSBmaWxlLm1pbWV0eXBlXG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGUuc2l6ZVxuXG4gICAgICBpZiAoZmlsZS5uYW1lLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgICAgZXh0ID0gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4dCA9ICcnXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWR1c3QgU1ZHIG1pbWUgdHlwZS4gZnJvbUJ1ZmZlciBtb2RpZmllcyBpdC5cbiAgICBpZiAobWltZSA9PT0gJ2FwcGxpY2F0aW9uL3htbCcgJiYgZXh0ID09PSAnc3ZnJykgbWltZSA9ICdpbWFnZS9zdmcreG1sJ1xuICAgIGZpbGVEYXRhLm1pbWVUeXBlID0gbWltZVxuXG4gICAgY29uc3QgYmFzZUZpbGVuYW1lID0gc2FuaXRpemUoZmlsZS5uYW1lLnN1YnN0cmluZygwLCBmaWxlLm5hbWUubGFzdEluZGV4T2YoJy4nKSkgfHwgZmlsZS5uYW1lKVxuICAgIGZzU2FmZU5hbWUgPSBgJHtiYXNlRmlsZW5hbWV9JHtleHQgPyBgLiR7ZXh0fWAgOiAnJ31gXG5cbiAgICBpZiAoIW92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMpIHtcbiAgICAgIGZzU2FmZU5hbWUgPSBhd2FpdCBnZXRTYWZlRmlsZU5hbWUoe1xuICAgICAgICBjb2xsZWN0aW9uU2x1ZzogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICBkZXNpcmVkRmlsZW5hbWU6IGZzU2FmZU5hbWUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc3RhdGljUGF0aCxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgZmlsZURhdGEuZmlsZW5hbWUgPSBmc1NhZmVOYW1lXG5cbiAgICAvLyBPcmlnaW5hbCBmaWxlXG4gICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICBidWZmZXI6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgcGF0aDogYCR7c3RhdGljUGF0aH0vJHtmc1NhZmVOYW1lfWAsXG4gICAgfSlcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGltYWdlU2l6ZXMpICYmIGZpbGVTdXBwb3J0c1Jlc2l6ZSkge1xuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplcyA9IHt9XG5cbiAgICAgIGNvbnN0IHsgc2l6ZURhdGEsIHNpemVzVG9TYXZlIH0gPSBhd2FpdCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzKHtcbiAgICAgICAgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICBkaW1lbnNpb25zLFxuICAgICAgICBmaWxlLFxuICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2F2ZWRGaWxlbmFtZTogZnNTYWZlTmFtZSB8fCBmaWxlLm5hbWUsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRGF0YS5zaXplcyA9IHNpemVEYXRhXG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKC4uLnNpemVzVG9TYXZlKVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgdGhyb3cgbmV3IEZpbGVVcGxvYWRFcnJvcihyZXEudClcbiAgfVxuXG4gIG5ld0RhdGEgPSB7XG4gICAgLi4ubmV3RGF0YSxcbiAgICAuLi5maWxlRGF0YSxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogbmV3RGF0YSxcbiAgICBmaWxlczogZmlsZXNUb1NhdmUsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJnZW5lcmF0ZUZpbGVEYXRhIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImNvbGxlY3Rpb25Db25maWciLCJkYXRhIiwib3ZlcndyaXRlRXhpc3RpbmdGaWxlcyIsInJlcSIsInRocm93T25NaXNzaW5nRmlsZSIsInVwbG9hZCIsImZpbGVzIiwiZmlsZSIsIk1pc3NpbmdGaWxlIiwidCIsImRpc2FibGVMb2NhbFN0b3JhZ2UiLCJmb3JtYXRPcHRpb25zIiwiaW1hZ2VTaXplcyIsInJlc2l6ZU9wdGlvbnMiLCJzdGF0aWNEaXIiLCJ0cmltT3B0aW9ucyIsInN0YXRpY1BhdGgiLCJpbmRleE9mIiwicGF0aCIsInJlc29sdmUiLCJwYXRocyIsImNvbmZpZ0RpciIsIm1rZGlycCIsInN5bmMiLCJuZXdEYXRhIiwiZmlsZXNUb1NhdmUiLCJmaWxlRGF0YSIsImZpbGVJc0FuaW1hdGVkIiwibWltZXR5cGUiLCJmaWxlU3VwcG9ydHNSZXNpemUiLCJjYW5SZXNpemVJbWFnZSIsImZzU2FmZU5hbWUiLCJzaGFycEZpbGUiLCJkaW1lbnNpb25zIiwiZmlsZUJ1ZmZlciIsImV4dCIsIm1pbWUiLCJzaGFycE9wdGlvbnMiLCJhbmltYXRlZCIsInRlbXBGaWxlUGF0aCIsInNoYXJwIiwicm90YXRlIiwicmVzaXplIiwidG9Gb3JtYXQiLCJmb3JtYXQiLCJvcHRpb25zIiwidHJpbSIsImlzSW1hZ2UiLCJnZXRJbWFnZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsIm1ldGFkYXRhIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsImZyb21CdWZmZXIiLCJpbmZvIiwiZmlsZXNpemUiLCJzaXplIiwicGFnZXMiLCJsZW5ndGgiLCJuYW1lIiwiaW5jbHVkZXMiLCJzcGxpdCIsInBvcCIsIm1pbWVUeXBlIiwiYmFzZUZpbGVuYW1lIiwic2FuaXRpemUiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImdldFNhZmVGaWxlTmFtZSIsImNvbGxlY3Rpb25TbHVnIiwic2x1ZyIsImRlc2lyZWRGaWxlbmFtZSIsImZpbGVuYW1lIiwicHVzaCIsImJ1ZmZlciIsIkFycmF5IiwiaXNBcnJheSIsInBheWxvYWRVcGxvYWRTaXplcyIsInNpemVEYXRhIiwic2l6ZXNUb1NhdmUiLCJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwic2F2ZWRGaWxlbmFtZSIsInNpemVzIiwiZXJyIiwiY29uc29sZSIsImVycm9yIiwiRmlsZVVwbG9hZEVycm9yIl0sIm1hcHBpbmdzIjoiOzs7OytCQWtDYUE7OztlQUFBQTs7OzBCQWhDYzsrREFDUjs2REFDRjt5RUFDSTs4REFDSDt3QkFPMkI7dUVBQ2xCO3FFQUNGO3dFQUNHO3FFQUNhO2dFQUNyQjs7Ozs7O0FBZ0JiLE1BQU1BLG1CQUFtQixPQUFVLEVBQ3hDQyxZQUFZLEVBQUVDLFFBQVFDLGdCQUFnQixFQUFFLEVBQ3hDRCxNQUFNLEVBQ05FLElBQUksRUFDSkMsc0JBQXNCLEVBQ3RCQyxHQUFHLEVBQ0hDLGtCQUFrQixFQUNWO0lBQ1IsSUFBSSxDQUFDSixpQkFBaUJLLE1BQU0sRUFBRTtRQUM1QixPQUFPO1lBQ0xKO1lBQ0FLLE9BQU8sRUFBRTtRQUNYO0lBQ0Y7SUFFQSxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHSixJQUFJRyxLQUFLLElBQUksQ0FBQztJQUMvQixJQUFJLENBQUNDLE1BQU07UUFDVCxJQUFJSCxvQkFBb0IsTUFBTSxJQUFJSSxtQkFBVyxDQUFDTCxJQUFJTSxDQUFDO1FBRW5ELE9BQU87WUFDTFI7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
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IFNoYXJwIH0gZnJvbSAnc2hhcnAnXG5cbmltcG9ydCB7IGZyb21CdWZmZXIgfSBmcm9tICdmaWxlLXR5cGUnXG5pbXBvcnQgbWtkaXJwIGZyb20gJ21rZGlycCdcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgc2FuaXRpemUgZnJvbSAnc2FuaXRpemUtZmlsZW5hbWUnXG5pbXBvcnQgc2hhcnAgZnJvbSAnc2hhcnAnXG5cbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpbGVEYXRhLCBGaWxlVG9TYXZlLCBQcm9iZWRJbWFnZVNpemUgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgY3JvcEltYWdlIGZyb20gJy4vY3JvcEltYWdlJ1xuaW1wb3J0IGdldEZpbGVCeVBhdGggZnJvbSAnLi9nZXRGaWxlQnlQYXRoJ1xuaW1wb3J0IGdldEltYWdlU2l6ZSBmcm9tICcuL2dldEltYWdlU2l6ZSdcbmltcG9ydCBnZXRTYWZlRmlsZU5hbWUgZnJvbSAnLi9nZXRTYWZlRmlsZW5hbWUnXG5pbXBvcnQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyBmcm9tICcuL2ltYWdlUmVzaXplcidcbmltcG9ydCBpc0ltYWdlIGZyb20gJy4vaXNJbWFnZSdcblxudHlwZSBBcmdzPFQ+ID0ge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIGRhdGE6IFRcbiAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcz86IGJvb2xlYW5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICB0aHJvd09uTWlzc2luZ0ZpbGU/OiBib29sZWFuXG59XG5cbnR5cGUgUmVzdWx0PFQ+ID0gUHJvbWlzZTx7XG4gIGRhdGE6IFRcbiAgZmlsZXM6IEZpbGVUb1NhdmVbXVxufT5cblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlRmlsZURhdGEgPSBhc3luYyA8VD4oe1xuICBjb2xsZWN0aW9uOiB7IGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyB9LFxuICBjb25maWcsXG4gIGRhdGEsXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMsXG4gIHJlcSxcbiAgdGhyb3dPbk1pc3NpbmdGaWxlLFxufTogQXJnczxUPik6IFJlc3VsdDxUPiA9PiB7XG4gIGlmICghY29sbGVjdGlvbkNvbmZpZy51cGxvYWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBsZXQgZmlsZSA9IHJlcS5maWxlcz8uZmlsZSB8fCB1bmRlZmluZWRcbiAgY29uc3QgeyB1cGxvYWRFZGl0cyB9ID0gcmVxLnF1ZXJ5IHx8IHt9XG5cbiAgY29uc3QgeyBkaXNhYmxlTG9jYWxTdG9yYWdlLCBmb3JtYXRPcHRpb25zLCBpbWFnZVNpemVzLCByZXNpemVPcHRpb25zLCBzdGF0aWNEaXIsIHRyaW1PcHRpb25zIH0gPVxuICAgIGNvbGxlY3Rpb25Db25maWcudXBsb2FkXG5cbiAgbGV0IHN0YXRpY1BhdGggPSBzdGF0aWNEaXJcbiAgaWYgKHN0YXRpY0Rpci5pbmRleE9mKCcvJykgIT09IDApIHtcbiAgICBzdGF0aWNQYXRoID0gcGF0aC5yZXNvbHZlKGNvbmZpZy5wYXRocy5jb25maWdEaXIsIHN0YXRpY0RpcilcbiAgfVxuXG4gIGlmICghZmlsZSAmJiB1cGxvYWRFZGl0cyAmJiBkYXRhKSB7XG4gICAgY29uc3QgeyBmaWxlbmFtZSB9ID0gZGF0YSBhcyBGaWxlRGF0YVxuICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQnlQYXRoKGZpbGVQYXRoKVxuXG4gICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICBmaWxlID0gcmVzcG9uc2UgYXMgVXBsb2FkZWRGaWxlXG4gIH1cblxuICBpZiAoIWZpbGUpIHtcbiAgICBpZiAodGhyb3dPbk1pc3NpbmdGaWxlKSB0aHJvdyBuZXcgTWlzc2luZ0ZpbGUocmVxLnQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBpZiAoIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICBta2RpcnAuc3luYyhzdGF0aWNQYXRoKVxuICB9XG5cbiAgbGV0IG5ld0RhdGEgPSBkYXRhXG4gIGNvbnN0IGZpbGVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXVxuICBjb25zdCBmaWxlRGF0YTogUGFydGlhbDxGaWxlRGF0YT4gPSB7fVxuICBjb25zdCBmaWxlSXNBbmltYXRlZCA9IGZpbGUubWltZXR5cGUgPT09ICdpbWFnZS9naWYnIHx8IGZpbGUubWltZXR5cGUgPT09ICdpbWFnZS93ZWJwJ1xuICBjb25zdCBjcm9wRGF0YSA9XG4gICAgdHlwZW9mIHVwbG9hZEVkaXRzID09PSAnb2JqZWN0JyAmJiAnY3JvcCcgaW4gdXBsb2FkRWRpdHMgPyB1cGxvYWRFZGl0cy5jcm9wIDogdW5kZWZpbmVkXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBmaWxlU3VwcG9ydHNSZXNpemUgPSBjYW5SZXNpemVJbWFnZShmaWxlLm1pbWV0eXBlKVxuICAgIGxldCBmc1NhZmVOYW1lOiBzdHJpbmdcbiAgICBsZXQgc2hhcnBGaWxlOiBTaGFycCB8IHVuZGVmaW5lZFxuICAgIGxldCBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemUgfCB1bmRlZmluZWRcbiAgICBsZXQgZmlsZUJ1ZmZlclxuICAgIGxldCBleHRcbiAgICBsZXQgbWltZTogc3RyaW5nXG5cbiAgICBjb25zdCBzaGFycE9wdGlvbnM6IHNoYXJwLlNoYXJwT3B0aW9ucyA9IHt9XG5cbiAgICBpZiAoZmlsZUlzQW5pbWF0ZWQpIHNoYXJwT3B0aW9ucy5hbmltYXRlZCA9IHRydWVcblxuICAgIGlmIChmaWxlU3VwcG9ydHNSZXNpemUgJiYgKHJlc2l6ZU9wdGlvbnMgfHwgZm9ybWF0T3B0aW9ucyB8fCB0cmltT3B0aW9ucykpIHtcbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUuZGF0YSwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc2l6ZU9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnJlc2l6ZShyZXNpemVPcHRpb25zKVxuICAgICAgfVxuICAgICAgaWYgKGZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnRvRm9ybWF0KGZvcm1hdE9wdGlvbnMuZm9ybWF0LCBmb3JtYXRPcHRpb25zLm9wdGlvbnMpXG4gICAgICB9XG4gICAgICBpZiAodHJpbU9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnRyaW0odHJpbU9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzSW1hZ2UoZmlsZS5taW1ldHlwZSkpIHtcbiAgICAgIGRpbWVuc2lvbnMgPSBhd2FpdCBnZXRJbWFnZVNpemUoZmlsZSlcbiAgICAgIGZpbGVEYXRhLndpZHRoID0gZGltZW5zaW9ucy53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZGltZW5zaW9ucy5oZWlnaHRcbiAgICB9XG5cbiAgICBpZiAoc2hhcnBGaWxlKSB7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IHNoYXJwRmlsZS5tZXRhZGF0YSgpXG4gICAgICBmaWxlQnVmZmVyID0gYXdhaXQgc2hhcnBGaWxlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcbiAgICAgIDsoeyBleHQsIG1pbWUgfSA9IGF3YWl0IGZyb21CdWZmZXIoZmlsZUJ1ZmZlci5kYXRhKSkgLy8gVGhpcyBpcyBnZXR0aW5nIGFuIGluY29ycmVjdCBnaWYgaGVpZ2h0IGJhY2suXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGZpbGVCdWZmZXIuaW5mby53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlQnVmZmVyLmluZm8uc2l6ZVxuXG4gICAgICAvLyBBbmltYXRlZCBHSUZzICsgV2ViUCBhZ2dyZWdhdGUgdGhlIGhlaWdodCBmcm9tIGV2ZXJ5IGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHVzZSBkaXZpZGUgYnkgbnVtYmVyIG9mIHBhZ2VzXG4gICAgICBpZiAobWV0YWRhdGEucGFnZXMpIHtcbiAgICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodCAvIG1ldGFkYXRhLnBhZ2VzXG4gICAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5kYXRhLmxlbmd0aFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtaW1lID0gZmlsZS5taW1ldHlwZVxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlLnNpemVcblxuICAgICAgaWYgKGZpbGUubmFtZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICAgIGV4dCA9IGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHQgPSAnJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkdXN0IFNWRyBtaW1lIHR5cGUuIGZyb21CdWZmZXIgbW9kaWZpZXMgaXQuXG4gICAgaWYgKG1pbWUgPT09ICdhcHBsaWNhdGlvbi94bWwnICYmIGV4dCA9PT0gJ3N2ZycpIG1pbWUgPSAnaW1hZ2Uvc3ZnK3htbCdcbiAgICBmaWxlRGF0YS5taW1lVHlwZSA9IG1pbWVcblxuICAgIGNvbnN0IGJhc2VGaWxlbmFtZSA9IHNhbml0aXplKGZpbGUubmFtZS5zdWJzdHJpbmcoMCwgZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJykpIHx8IGZpbGUubmFtZSlcbiAgICBmc1NhZmVOYW1lID0gYCR7YmFzZUZpbGVuYW1lfSR7ZXh0ID8gYC4ke2V4dH1gIDogJyd9YFxuXG4gICAgaWYgKCFvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzKSB7XG4gICAgICBmc1NhZmVOYW1lID0gYXdhaXQgZ2V0U2FmZUZpbGVOYW1lKHtcbiAgICAgICAgY29sbGVjdGlvblNsdWc6IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgZGVzaXJlZEZpbGVuYW1lOiBmc1NhZmVOYW1lLFxuICAgICAgICByZXEsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGZpbGVEYXRhLmZpbGVuYW1lID0gZnNTYWZlTmFtZVxuICAgIGxldCBmaWxlRm9yUmVzaXplID0gZmlsZVxuXG4gICAgaWYgKGNyb3BEYXRhKSB7XG4gICAgICBjb25zdCB7IGRhdGE6IGNyb3BwZWRJbWFnZSwgaW5mbyB9ID0gYXdhaXQgY3JvcEltYWdlKHsgY3JvcERhdGEsIGRpbWVuc2lvbnMsIGZpbGUgfSlcblxuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogY3JvcHBlZEltYWdlLFxuICAgICAgICBwYXRoOiBgJHtzdGF0aWNQYXRofS8ke2ZzU2FmZU5hbWV9YCxcbiAgICAgIH0pXG5cbiAgICAgIGZpbGVGb3JSZXNpemUgPSB7XG4gICAgICAgIC4uLmZpbGUsXG4gICAgICAgIGRhdGE6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgc2l6ZTogaW5mby5zaXplLFxuICAgICAgfVxuICAgICAgZmlsZURhdGEud2lkdGggPSBpbmZvLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBpbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBpbmZvLnNpemVcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbWFnZVNpemVzKSAmJiBmaWxlU3VwcG9ydHNSZXNpemUpIHtcbiAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXMgPSB7fVxuICAgICAgY29uc3QgeyBzaXplRGF0YSwgc2l6ZXNUb1NhdmUgfSA9IGF3YWl0IHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICAgICAgICBjb25maWc6IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgIGRpbWVuc2lvbnM6ICFjcm9wRGF0YVxuICAgICAgICAgID8gZGltZW5zaW9uc1xuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAuLi5kaW1lbnNpb25zLFxuICAgICAgICAgICAgICBoZWlnaHQ6IGZpbGVEYXRhLmhlaWdodCxcbiAgICAgICAgICAgICAgd2lkdGg6IGZpbGVEYXRhLndpZHRoLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgZmlsZTogZmlsZUZvclJlc2l6ZSxcbiAgICAgICAgbWltZVR5cGU6IGZpbGVEYXRhLm1pbWVUeXBlLFxuICAgICAgICByZXEsXG4gICAgICAgIHNhdmVkRmlsZW5hbWU6IGZzU2FmZU5hbWUgfHwgZmlsZS5uYW1lLFxuICAgICAgICBzdGF0aWNQYXRoLFxuICAgICAgfSlcblxuICAgICAgZmlsZURhdGEuc2l6ZXMgPSBzaXplRGF0YVxuICAgICAgZmlsZXNUb1NhdmUucHVzaCguLi5zaXplc1RvU2F2ZSlcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxuICAgIHRocm93IG5ldyBGaWxlVXBsb2FkRXJyb3IocmVxLnQpXG4gIH1cblxuICBuZXdEYXRhID0ge1xuICAgIC4uLm5ld0RhdGEsXG4gICAgLi4uZmlsZURhdGEsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRhdGE6IG5ld0RhdGEsXG4gICAgZmlsZXM6IGZpbGVzVG9TYXZlLFxuICB9XG59XG4iXSwibmFtZXMiOlsiZ2VuZXJhdGVGaWxlRGF0YSIsImNvbGxlY3Rpb24iLCJjb25maWciLCJjb2xsZWN0aW9uQ29uZmlnIiwiZGF0YSIsIm92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMiLCJyZXEiLCJ0aHJvd09uTWlzc2luZ0ZpbGUiLCJ1cGxvYWQiLCJmaWxlcyIsImZpbGUiLCJ1bmRlZmluZWQiLCJ1cGxvYWRFZGl0cyIsInF1ZXJ5IiwiZGlzYWJsZUxvY2FsU3RvcmFnZSIsImZvcm1hdE9wdGlvbnMiLCJpbWFnZVNpemVzIiwicmVzaXplT3B0aW9ucyIsInN0YXRpY0RpciIsInRyaW1PcHRpb25zIiwic3RhdGljUGF0aCIsImluZGV4T2YiLCJwYXRoIiwicmVzb2x2ZSIsInBhdGhzIiwiY29uZmlnRGlyIiwiZmlsZW5hbWUiLCJmaWxlUGF0aCIsInJlc3BvbnNlIiwiZ2V0RmlsZUJ5UGF0aCIsIk1pc3NpbmdGaWxlIiwidCIsIm1rZGlycCIsInN5bmMiLCJuZXdEYXRhIiwiZmlsZXNUb1NhdmUiLCJmaWxlRGF0YSIsImZpbGVJc0FuaW1hdGVkIiwibWltZXR5cGUiLCJjcm9wRGF0YSIsImNyb3AiLCJmaWxlU3VwcG9ydHNSZXNpemUiLCJjYW5SZXNpemVJbWFnZSIsImZzU2FmZU5hbWUiLCJzaGFycEZpbGUiLCJkaW1lbnNpb25zIiwiZmlsZUJ1ZmZlciIsImV4dCIsIm1pbWUiLCJzaGFycE9wdGlvbnMiLCJhbmltYXRlZCIsInRlbXBGaWxlUGF0aCIsInNoYXJwIiwicm90YXRlIiwicmVzaXplIiwidG9Gb3JtYXQiLCJmb3JtYXQiLCJvcHRpb25zIiwidHJpbSIsImlzSW1hZ2UiLCJnZXRJbWFnZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsIm1ldGFkYXRhIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsImZyb21CdWZmZXIiLCJpbmZvIiwiZmlsZXNpemUiLCJzaXplIiwicGFnZXMiLCJsZW5ndGgiLCJuYW1lIiwiaW5jbHVkZXMiLCJzcGxpdCIsInBvcCIsIm1pbWVUeXBlIiwiYmFzZUZpbGVuYW1lIiwic2FuaXRpemUiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImdldFNhZmVGaWxlTmFtZSIsImNvbGxlY3Rpb25TbHVnIiwic2x1ZyIsImRlc2lyZWRGaWxlbmFtZSIsImZpbGVGb3JSZXNpemUiLCJjcm9wcGVkSW1hZ2UiLCJjcm9wSW1hZ2UiLCJwdXNoIiwiYnVmZmVyIiwiQXJyYXkiLCJpc0FycmF5IiwicGF5bG9hZFVwbG9hZFNpemVzIiwic2l6ZURhdGEiLCJzaXplc1RvU2F2ZSIsInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJzYXZlZEZpbGVuYW1lIiwic2l6ZXMiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJGaWxl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
@@ -1,4 +1,5 @@
1
1
  import type { UploadedFile } from 'express-fileupload';
2
+ import type { UploadEdits } from '../admin/components/views/collections/Edit/types';
2
3
  import type { SanitizedCollectionConfig } from '../collections/config/types';
3
4
  import type { PayloadRequest } from '../express/types';
4
5
  import type { FileSizes, FileToSave, ProbedImageSize } from './types';
@@ -7,7 +8,11 @@ type ResizeArgs = {
7
8
  dimensions: ProbedImageSize;
8
9
  file: UploadedFile;
9
10
  mimeType: string;
10
- req: PayloadRequest;
11
+ req: PayloadRequest & {
12
+ query?: {
13
+ uploadEdits?: UploadEdits;
14
+ };
15
+ };
11
16
  savedFilename: string;
12
17
  staticPath: string;
13
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAOtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAa,eAAe,EAAE,MAAM,SAAS,CAAA;AAI1F,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,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;AAiHD;;;;;;;;;;;;;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,CA2ExC"}
1
+ {"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAOtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AACnF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,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,YAAY,CAAA;IAClB,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;AAiHD;;;;;;;;;;;;;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,CAgIxC"}
@@ -25,6 +25,7 @@ const _filetype = require("file-type");
25
25
  const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
26
26
  const _sanitizefilename = /*#__PURE__*/ _interop_require_default(require("sanitize-filename"));
27
27
  const _sharp = /*#__PURE__*/ _interop_require_default(require("sharp"));
28
+ const _isNumber = require("../utilities/isNumber");
28
29
  const _fileExists = /*#__PURE__*/ _interop_require_default(require("./fileExists"));
29
30
  function _interop_require_default(obj) {
30
31
  return obj && obj.__esModule ? obj : {
@@ -132,7 +133,47 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
132
133
  if (!needsResize(imageResizeConfig, dimensions)) {
133
134
  return createResult(imageResizeConfig.name);
134
135
  }
135
- let resized = sharpBase.clone().resize(imageResizeConfig);
136
+ let resized = sharpBase.clone();
137
+ if (req.query && imageResizeConfig.width && imageResizeConfig.height) {
138
+ const { height, width } = imageResizeConfig;
139
+ const focalPoint = {
140
+ x: 0.5,
141
+ y: 0.5
142
+ };
143
+ if (req.query?.uploadEdits?.focalPoint) {
144
+ if ((0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.x)) {
145
+ focalPoint.x = req.query.uploadEdits.focalPoint.x;
146
+ }
147
+ if ((0, _isNumber.isNumber)(req.query.uploadEdits.focalPoint?.y)) {
148
+ focalPoint.y = req.query.uploadEdits.focalPoint.y;
149
+ }
150
+ }
151
+ const originalAspectRatio = dimensions.width / dimensions.height;
152
+ const targetAspectRatio = imageResizeConfig.width / imageResizeConfig.height;
153
+ if (originalAspectRatio !== targetAspectRatio) {
154
+ const prioritizeHeight = originalAspectRatio > targetAspectRatio;
155
+ const { info } = await resized.resize({
156
+ height: prioritizeHeight ? height : null,
157
+ width: prioritizeHeight ? null : width
158
+ }).toBuffer({
159
+ resolveWithObject: true
160
+ });
161
+ const maxOffsetX = Math.max(info.width - width, 0);
162
+ const maxOffsetY = Math.max(info.height - height, 0);
163
+ const focalPointX = Math.floor(info.width * focalPoint.x - width / 2);
164
+ const focalPointY = Math.floor(info.height * focalPoint.y - height / 2);
165
+ const offsetX = Math.min(Math.max(focalPointX, 0), maxOffsetX);
166
+ const offsetY = Math.min(Math.max(focalPointY, 0), maxOffsetY);
167
+ resized = resized.extract({
168
+ height,
169
+ left: offsetX,
170
+ top: offsetY,
171
+ width
172
+ });
173
+ }
174
+ } else {
175
+ resized = resized.resize(imageResizeConfig);
176
+ }
136
177
  if (imageResizeConfig.formatOptions) {
137
178
  resized = resized.toFormat(imageResizeConfig.formatOptions.format, imageResizeConfig.formatOptions.options);
138
179
  }
@@ -150,7 +191,11 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
150
191
  const imageNameWithDimensions = createImageName(sanitizedImage.name, bufferInfo, mimeInfo?.ext || sanitizedImage.ext);
151
192
  const imagePath = `${staticPath}/${imageNameWithDimensions}`;
152
193
  if (await (0, _fileExists.default)(imagePath)) {
153
- _fs.default.unlinkSync(imagePath);
194
+ try {
195
+ _fs.default.unlinkSync(imagePath);
196
+ } catch {
197
+ // Ignore unlink errors
198
+ }
154
199
  }
155
200
  const { height, size, width } = bufferInfo;
156
201
  return createResult(imageResizeConfig.name, imageNameWithDimensions, width, height, size, mimeInfo?.mime || mimeType, [
@@ -170,4 +215,4 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
170
215
  });
171
216
  }
172
217
 
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpbGVTaXplLCBGaWxlU2l6ZXMsIEZpbGVUb1NhdmUsIEltYWdlU2l6ZSwgUHJvYmVkSW1hZ2VTaXplIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IGZpbGVFeGlzdHMgZnJvbSAnLi9maWxlRXhpc3RzJ1xuXG50eXBlIFJlc2l6ZUFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemVcbiAgZmlsZTogVXBsb2FkZWRGaWxlXG4gIG1pbWVUeXBlOiBzdHJpbmdcbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzYXZlZEZpbGVuYW1lOiBzdHJpbmdcbiAgc3RhdGljUGF0aDogc3RyaW5nXG59XG5cbi8qKiBSZXN1bHQgZnJvbSByZXNpemluZyBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZXMgKi9cbnR5cGUgSW1hZ2VTaXplc1Jlc3VsdCA9IHtcbiAgc2l6ZURhdGE6IEZpbGVTaXplc1xuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdXG59XG5cbnR5cGUgU2FuaXRpemVkSW1hZ2VEYXRhID0ge1xuICBleHQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgaW1hZ2UgbmFtZSBhbmQgZXh0cmFjdCB0aGUgZXh0ZW5zaW9uIGZyb20gdGhlIHNvdXJjZSBpbWFnZVxuICpcbiAqIEBwYXJhbSBzb3VyY2VJbWFnZSAtIHRoZSBzb3VyY2UgaW1hZ2VcbiAqIEByZXR1cm5zIHRoZSBzYW5pdGl6ZWQgbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKi9cbmNvbnN0IGdldFNhbml0aXplZEltYWdlRGF0YSA9IChzb3VyY2VJbWFnZTogc3RyaW5nKTogU2FuaXRpemVkSW1hZ2VEYXRhID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gc291cmNlSW1hZ2Uuc3BsaXQoJy4nKS5wb3AoKVxuICBjb25zdCBuYW1lID0gc2FuaXRpemUoc291cmNlSW1hZ2Uuc3Vic3RyaW5nKDAsIHNvdXJjZUltYWdlLmxhc3RJbmRleE9mKCcuJykpIHx8IHNvdXJjZUltYWdlKVxuICByZXR1cm4geyBuYW1lLCBleHQ6IGV4dGVuc2lvbiB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGltYWdlIG5hbWUgYmFzZWQgb24gdGhlIG91dHB1dCBpbWFnZSBuYW1lLCB0aGUgZGltZW5zaW9ucyBhbmRcbiAqIHRoZSBleHRlbnNpb24uXG4gKlxuICogSWdub3JlIHRoZSBmYWN0IHRoYXQgZHVwbGljYXRlIG5hbWVzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGhlcmUgaXMgb25lXG4gKiBzaXplIHdpdGggYHdpZHRoIEFORCBoZWlnaHRgIGFuZCBvbmUgd2l0aCBvbmx5IGBoZWlnaHQgT1Igd2lkdGhgLiBCZWNhdXNlXG4gKiBzcGFjZSBpcyBleHBlbnNpdmUsIHdlIHdpbGwgcmV1c2UgdGhlIHNhbWUgaW1hZ2UgZm9yIGJvdGggc2l6ZXMuXG4gKlxuICogQHBhcmFtIG91dHB1dEltYWdlTmFtZSAtIHRoZSBzYW5pdGl6ZWQgaW1hZ2UgbmFtZVxuICogQHBhcmFtIGJ1ZmZlckluZm8gLSB0aGUgYnVmZmVyIGluZm9cbiAqIEBwYXJhbSBleHRlbnNpb24gLSB0aGUgZXh0ZW5zaW9uIHRvIHVzZVxuICogQHJldHVybnMgdGhlIG5ldyBpbWFnZSBuYW1lIHRoYXQgaXMgbm90IHRha2VuXG4gKi9cbmNvbnN0IGNyZWF0ZUltYWdlTmFtZSA9IChcbiAgb3V0cHV0SW1hZ2VOYW1lOiBzdHJpbmcsXG4gIHsgaGVpZ2h0LCB3aWR0aCB9OiBzaGFycC5PdXRwdXRJbmZvLFxuICBleHRlbnNpb246IHN0cmluZyxcbikgPT4gYCR7b3V0cHV0SW1hZ2VOYW1lfS0ke3dpZHRofXgke2hlaWdodH0uJHtleHRlbnNpb259YFxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVzdWx0IG9iamVjdCBmb3IgdGhlIGltYWdlIHJlc2l6ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXJhbWV0ZXJzLiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWQsIGFuIGVtcHR5IHJlc3VsdCBvYmplY3RcbiAqIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gd2lkdGggLSB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gdGhlIGhlaWdodCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlc2l6ZSAtIHRoZSBmaWxlc2l6ZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBtaW1lVHlwZSAtIHRoZSBtaW1lIHR5cGUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gc2l6ZXNUb1NhdmUgLSB0aGUgc2l6ZXMgdG8gc2F2ZVxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvYmplY3RcbiAqL1xuY29uc3QgY3JlYXRlUmVzdWx0ID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGZpbGVuYW1lOiBGaWxlU2l6ZVsnZmlsZW5hbWUnXSA9IG51bGwsXG4gIHdpZHRoOiBGaWxlU2l6ZVsnd2lkdGgnXSA9IG51bGwsXG4gIGhlaWdodDogRmlsZVNpemVbJ2hlaWdodCddID0gbnVsbCxcbiAgZmlsZXNpemU6IEZpbGVTaXplWydmaWxlc2l6ZSddID0gbnVsbCxcbiAgbWltZVR5cGU6IEZpbGVTaXplWydtaW1lVHlwZSddID0gbnVsbCxcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdLFxuKTogSW1hZ2VTaXplc1Jlc3VsdCA9PiAoe1xuICBzaXplRGF0YToge1xuICAgIFtuYW1lXToge1xuICAgICAgZmlsZW5hbWUsXG4gICAgICBmaWxlc2l6ZSxcbiAgICAgIGhlaWdodCxcbiAgICAgIG1pbWVUeXBlLFxuICAgICAgd2lkdGgsXG4gICAgfSxcbiAgfSxcbiAgc2l6ZXNUb1NhdmUsXG59KVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnNcbiAqIGFuZCB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gSWYgdGhlIHJlc2l6ZSBvcHRpb25zIHdpdGhvdXRFbmxhcmdlbWVudCBvciB3aXRob3V0UmVkdWN0aW9uIGFyZSBwcm92aWRlZCxcbiAqIHRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMsIGdpdmVuIHRoYXQgdGhlXG4gKiB3aWR0aCBvciBoZWlnaHQgdG8gYmUgcmVzaXplZCBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGltYWdlIG5lZWRzIHRvIGJlIHJlc2l6ZWQsIGZhbHNlIG90aGVyd2lzZVxuICovXG5jb25zdCBuZWVkc1Jlc2l6ZSA9IChcbiAgeyBoZWlnaHQ6IGRlc2lyZWRIZWlnaHQsIHdpZHRoOiBkZXNpcmVkV2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pOiBib29sZWFuID0+IHtcbiAgLy8gYWxsb3cgZW5sYXJnZW1lbnQgb3IgcHJldmVudCByZWR1Y3Rpb24gKG91ciBkZWZhdWx0IGlzIHRvIHByZXZlbnRcbiAgLy8gZW5sYXJnZW1lbnQgYW5kIGFsbG93IHJlZHVjdGlvbilcbiAgaWYgKHdpdGhvdXRFbmxhcmdlbWVudCAhPT0gdW5kZWZpbmVkIHx8IHdpdGhvdXRSZWR1Y3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0cnVlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCA9ICFkZXNpcmVkSGVpZ2h0IHx8ICFkZXNpcmVkV2lkdGhcblxuICBpZiAoaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCkge1xuICAgIC8vIElmIHdpdGggYW5kIGhlaWdodCBhcmUgbm90IGRlZmluZWQsIGl0IG1lYW5zIHRoZXJlIGlzIGEgZm9ybWF0IGNvbnZlcnNpb25cbiAgICAvLyBhbmQgdGhlIGltYWdlIG5lZWRzIHRvIGJlIFwicmVzaXplZFwiICh0cmFuc2Zvcm1lZCkuXG4gICAgcmV0dXJuIHRydWUgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRXaWR0aCA9IG9yaWdpbmFsLndpZHRoIDwgZGVzaXJlZFdpZHRoXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudEhlaWdodCA9IG9yaWdpbmFsLmhlaWdodCA8IGRlc2lyZWRIZWlnaHRcbiAgaWYgKGhhc0luc3VmZmljaWVudFdpZHRoICYmIGhhc0luc3VmZmljaWVudEhlaWdodCkge1xuICAgIC8vIGRvZXNuJ3QgbmVlZCByZXNpemUgLSBwcmV2ZW50IGVubGFyZ2VtZW50LiBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBib3RoIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGluc3VmZmljaWVudC5cbiAgICAvLyBpZiBvbmx5IG9uZSBkaW1lbnNpb24gaXMgaW5zdWZmaWNpZW50IGFuZCB0aGUgb3RoZXIgaXMgc3VmZmljaWVudCwgcmVzaXppbmcgbmVlZHMgdG8gaGFwcGVuLCBhcyB0aGUgaW1hZ2VcbiAgICAvLyBzaG91bGQgYmUgcmVzaXplZCB0byB0aGUgc3VmZmljaWVudCBkaW1lbnNpb24uXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZSAvLyBuZWVkcyByZXNpemVcbn1cblxuLyoqXG4gKiBGb3IgdGhlIHByb3ZpZGVkIGltYWdlIHNpemVzLCBoYW5kbGUgdGhlIHJlc2l6aW5nIGFuZCB0aGUgdHJhbnNmb3Jtc1xuICogKGZvcm1hdCwgdHJpbSwgZXRjLikgb2YgZWFjaCByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZSBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2JqZWN0LlxuICogVGhpcyBvbmx5IGhhbmRsZXMgdGhlIGltYWdlIHNpemVzLiBUaGUgdHJhbnNmb3JtcyBvZiB0aGUgb3JpZ2luYWwgaW1hZ2VcbiAqIGFyZSBoYW5kbGVkIGluIHtAbGluayAuL2dlbmVyYXRlRmlsZURhdGEudHN9LlxuICpcbiAqIFRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZFxuICogcmVzaXplIGNvbmZpZy4gSWYgbm8gaW1hZ2Ugc2l6ZXMgYXJlIHJlcXVlc3RlZCwgdGhlIHJlc29sdmVkIGRhdGEgd2lsbCBiZSBlbXB0eS5cbiAqIEZvciBldmVyeSBpbWFnZSB0aGF0IGRvcyBub3QgbmVlZCB0byBiZSByZXNpemVkLCBhbiByZXN1bHQgb2JqZWN0IHdpdGggYG51bGxgXG4gKiBwYXJhbWV0ZXJzIHdpbGwgYmUgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIHRoZSByZXNpemUgY29uZmlnXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSByZXNpemUgb3BlcmF0aW9uKHMpXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICBjb25maWcsXG4gIGRpbWVuc2lvbnMsXG4gIGZpbGUsXG4gIG1pbWVUeXBlLFxuICByZXEsXG4gIHNhdmVkRmlsZW5hbWUsXG4gIHN0YXRpY1BhdGgsXG59OiBSZXNpemVBcmdzKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiB7XG4gIGNvbnN0IHsgaW1hZ2VTaXplcyB9ID0gY29uZmlnLnVwbG9hZFxuXG4gIC8vIE5vdGluZyB0byByZXNpemUgaGVyZSBzbyByZXR1cm4gYXMgZWFybHkgYXMgcG9zc2libGVcbiAgaWYgKCFpbWFnZVNpemVzKSByZXR1cm4geyBzaXplRGF0YToge30sIHNpemVzVG9TYXZlOiBbXSB9XG5cbiAgY29uc3Qgc2hhcnBCYXNlID0gc2hhcnAoZmlsZS50ZW1wRmlsZVBhdGggfHwgZmlsZS5kYXRhKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcblxuICBjb25zdCByZXN1bHRzOiBJbWFnZVNpemVzUmVzdWx0W10gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBpbWFnZVNpemVzLm1hcChhc3luYyAoaW1hZ2VSZXNpemVDb25maWcpOiBQcm9taXNlPEltYWdlU2l6ZXNSZXN1bHQ+ID0+IHtcbiAgICAgIC8vIFRoaXMgY2hlY2tzIGlmIGEgcmVzaXplIHNob3VsZCBoYXBwZW4uIElmIG5vdCwgdGhlIHJlc2l6ZWQgaW1hZ2Ugd2lsbCBiZVxuICAgICAgLy8gc2tpcHBlZCBDT01QTEVURUxZIGFuZCB0aHVzIHdpbGwgbm90IGJlIGluY2x1ZGVkIGluIHRoZSByZXN1bHRpbmcgaW1hZ2VzLlxuICAgICAgLy8gQWxsIGZ1cnRoZXIgZm9ybWF0L3RyaW0gb3B0aW9ucyB3aWxsIHRodXMgYmUgc2tpcHBlZCBhcyB3ZWxsLlxuICAgICAgaWYgKCFuZWVkc1Jlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZywgZGltZW5zaW9ucykpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdChpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lKVxuICAgICAgfVxuXG4gICAgICBsZXQgcmVzaXplZCA9IHNoYXJwQmFzZS5jbG9uZSgpLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudG9Gb3JtYXQoXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5vcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50cmltKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGRhdGE6IGJ1ZmZlckRhdGEsIGluZm86IGJ1ZmZlckluZm8gfSA9IGF3YWl0IHJlc2l6ZWQudG9CdWZmZXIoe1xuICAgICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNhbml0aXplZEltYWdlID0gZ2V0U2FuaXRpemVkSW1hZ2VEYXRhKHNhdmVkRmlsZW5hbWUpXG5cbiAgICAgIGlmIChyZXEucGF5bG9hZFVwbG9hZFNpemVzKSB7XG4gICAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXNbaW1hZ2VSZXNpemVDb25maWcubmFtZV0gPSBidWZmZXJEYXRhXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1pbWVJbmZvID0gYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXJEYXRhKVxuXG4gICAgICBjb25zdCBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyA9IGNyZWF0ZUltYWdlTmFtZShcbiAgICAgICAgc2FuaXRpemVkSW1hZ2UubmFtZSxcbiAgICAgICAgYnVmZmVySW5mbyxcbiAgICAgICAgbWltZUluZm8/LmV4dCB8fCBzYW5pdGl6ZWRJbWFnZS5leHQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7aW1hZ2VOYW1lV2l0aERpbWVuc2lvbnN9YFxuXG4gICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhpbWFnZVBhdGgpKSB7XG4gICAgICAgIGZzLnVubGlua1N5bmMoaW1hZ2VQYXRoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGhlaWdodCwgc2l6ZSwgd2lkdGggfSA9IGJ1ZmZlckluZm9cbiAgICAgIHJldHVybiBjcmVhdGVSZXN1bHQoXG4gICAgICAgIGltYWdlUmVzaXplQ29uZmlnLm5hbWUsXG4gICAgICAgIGltYWdlTmFtZVdpdGhEaW1lbnNpb25zLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICBzaXplLFxuICAgICAgICBtaW1lSW5mbz8ubWltZSB8fCBtaW1lVHlwZSxcbiAgICAgICAgW3sgYnVmZmVyOiBidWZmZXJEYXRhLCBwYXRoOiBpbWFnZVBhdGggfV0sXG4gICAgICApXG4gICAgfSksXG4gIClcblxuICByZXR1cm4gcmVzdWx0cy5yZWR1Y2UoXG4gICAgKGFjYywgcmVzdWx0KSA9PiB7XG4gICAgICBPYmplY3QuYXNzaWduKGFjYy5zaXplRGF0YSwgcmVzdWx0LnNpemVEYXRhKVxuICAgICAgYWNjLnNpemVzVG9TYXZlLnB1c2goLi4ucmVzdWx0LnNpemVzVG9TYXZlKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sXG4gICAgeyBzaXplRGF0YToge30sIHNpemVzVG9TYXZlOiBbXSB9LFxuICApXG59XG4iXSwibmFtZXMiOlsicmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyIsImdldFNhbml0aXplZEltYWdlRGF0YSIsInNvdXJjZUltYWdlIiwiZXh0ZW5zaW9uIiwic3BsaXQiLCJwb3AiLCJuYW1lIiwic2FuaXRpemUiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImV4dCIsImNyZWF0ZUltYWdlTmFtZSIsIm91dHB1dEltYWdlTmFtZSIsImhlaWdodCIsIndpZHRoIiwiY3JlYXRlUmVzdWx0IiwiZmlsZW5hbWUiLCJmaWxlc2l6ZSIsIm1pbWVUeXBlIiwic2l6ZXNUb1NhdmUiLCJzaXplRGF0YSIsIm5lZWRzUmVzaXplIiwiZGVzaXJlZEhlaWdodCIsImRlc2lyZWRXaWR0aCIsIndpdGhvdXRFbmxhcmdlbWVudCIsIndpdGhvdXRSZWR1Y3Rpb24iLCJvcmlnaW5hbCIsInVuZGVmaW5lZCIsImlzV2lkdGhPckhlaWdodE5vdERlZmluZWQiLCJoYXNJbnN1ZmZpY2llbnRXaWR0aCIsImhhc0luc3VmZmljaWVudEhlaWdodCIsImNvbmZpZyIsImRpbWVuc2lvbnMiLCJmaWxlIiwicmVxIiwic2F2ZWRGaWxlbmFtZSIsInN0YXRpY1BhdGgiLCJpbWFnZVNpemVzIiwidXBsb2FkIiwic2hhcnBCYXNlIiwic2hhcnAiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwicm90YXRlIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJpbWFnZVJlc2l6ZUNvbmZpZyIsInJlc2l6ZWQiLCJjbG9uZSIsInJlc2l6ZSIsImZvcm1hdE9wdGlvbnMiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltT3B0aW9ucyIsInRyaW0iLCJidWZmZXJEYXRhIiwiaW5mbyIsImJ1ZmZlckluZm8iLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0Iiwic2FuaXRpemVkSW1hZ2UiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJtaW1lSW5mbyIsImZyb21CdWZmZXIiLCJpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyIsImltYWdlUGF0aCIsImZpbGVFeGlzdHMiLCJmcyIsInVubGlua1N5bmMiLCJzaXplIiwibWltZSIsImJ1ZmZlciIsInBhdGgiLCJyZWR1Y2UiLCJhY2MiLCJyZXN1bHQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7OytCQTRJQTs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ0Q7OztlQUE4QkE7OzswQkF4Skg7MkRBQ1o7eUVBQ007OERBQ0g7bUVBTUs7Ozs7OztBQXVCdkI7Ozs7O0NBS0MsR0FDRCxNQUFNQyx3QkFBd0IsQ0FBQ0M7SUFDN0IsTUFBTUMsWUFBWUQsWUFBWUUsS0FBSyxDQUFDLEtBQUtDLEdBQUc7SUFDNUMsTUFBTUMsT0FBT0MsSUFBQUEseUJBQVEsRUFBQ0wsWUFBWU0sU0FBUyxDQUFDLEdBQUdOLFlBQVlPLFdBQVcsQ0FBQyxTQUFTUDtJQUNoRixPQUFPO1FBQUVJO1FBQU1JLEtBQUtQO0lBQVU7QUFDaEM7QUFFQTs7Ozs7Ozs7Ozs7O0NBWUMsR0FDRCxNQUFNUSxrQkFBa0IsQ0FDdEJDLGlCQUNBLEVBQUVDLE1BQU0sRUFBRUMsS0FBSyxFQUFvQixFQUNuQ1gsWUFDRyxDQUFDLEVBQUVTLGdCQUFnQixDQUFDLEVBQUVFLE1BQU0sQ0FBQyxFQUFFRCxPQUFPLENBQUMsRUFBRVYsVUFBVSxDQUFDO0FBRXpEOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDRCxNQUFNWSxlQUFlLENBQ25CVCxNQUNBVSxXQUFpQyxJQUFJLEVBQ3JDRixRQUEyQixJQUFJLEVBQy9CRCxTQUE2QixJQUFJLEVBQ2pDSSxXQUFpQyxJQUFJLEVBQ3JDQyxXQUFpQyxJQUFJLEVBQ3JDQyxjQUE0QixFQUFFLEdBQ1IsQ0FBQTtRQUN0QkMsVUFBVTtZQUNSLENBQUNkLEtBQUssRUFBRTtnQkFDTlU7Z0JBQ0FDO2dCQUNBSjtnQkFDQUs7Z0JBQ0FKO1lBQ0Y7UUFDRjtRQUNBSztJQUNGLENBQUE7QUFFQTs7Ozs7Ozs7O0NBU0MsR0FDRCxNQUFNRSxjQUFjLENBQ2xCLEVBQUVSLFFBQVFTLGFBQWEsRUFBRVIsT0FBT1MsWUFBWSxFQUFFQyxrQkFBa0IsRUFBRUMsZ0JBQWdCLEVBQWEsRUFDL0ZDO0lBRUEsb0VBQW9FO0lBQ3BFLG1DQUFtQztJQUNuQyxJQUFJRix1QkFBdUJHLGFBQWFGLHFCQUFxQkUsV0FBVztRQUN0RSxPQUFPLEtBQUssZUFBZTs7SUFDN0I7SUFFQSxNQUFNQyw0QkFBNEIsQ0FBQ04saUJBQWlCLENBQUNDO0lBRXJELElBQUlLLDJCQUEyQjtRQUM3Qiw0RUFBNEU7UUFDNUUscURBQXFEO1FBQ3JELE9BQU8sS0FBSyxlQUFlOztJQUM3QjtJQUVBLE1BQU1DLHVCQUF1QkgsU0FBU1osS0FBSyxHQUFHUztJQUM5QyxNQUFNTyx3QkFBd0JKLFNBQVNiLE1BQU0sR0FBR1M7SUFDaEQsSUFBSU8sd0JBQXdCQyx1QkFBdUI7UUFDakQsZ0hBQWdIO1FBQ2hILDRHQUE0RztRQUM1RyxpREFBaUQ7UUFDakQsT0FBTztJQUNUO0lBRUEsT0FBTyxLQUFLLGVBQWU7O0FBQzdCO0FBZ0JlLGVBQWU5Qiw2QkFBNkIsRUFDekQrQixNQUFNLEVBQ05DLFVBQVUsRUFDVkMsSUFBSSxFQUNKZixRQUFRLEVBQ1JnQixHQUFHLEVBQ0hDLGFBQWEsRUFDYkMsVUFBVSxFQUNDO0lBQ1gsTUFBTSxFQUFFQyxVQUFVLEVBQUUsR0FBR04sT0FBT08sTUFBTTtJQUVwQyx1REFBdUQ7SUFDdkQsSUFBSSxDQUFDRCxZQUFZLE9BQU87UUFBRWpCLFVBQVUsQ0FBQztRQUFHRCxhQUFhLEVBQUU7SUFBQztJQUV4RCxNQUFNb0IsWUFBWUMsSUFBQUEsY0FBSyxFQUFDUCxLQUFLUSxZQUFZLElBQUlSLEtBQUtTLElBQUksRUFBRUMsTUFBTSxHQUFHLG1HQUFtRzs7SUFFcEssTUFBTUMsVUFBOEIsTUFBTUMsUUFBUUMsR0FBRyxDQUNuRFQsV0FBV1UsR0FBRyxDQUFDLE9BQU9DO1FBQ3BCLDJFQUEyRTtRQUMzRSw0RUFBNEU7UUFDNUUsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQzNCLFlBQVkyQixtQkFBbUJoQixhQUFhO1lBQy9DLE9BQU9qQixhQUFhaUMsa0JBQWtCMUMsSUFBSTtRQUM1QztRQUVBLElBQUkyQyxVQUFVVixVQUFVVyxLQUFLLEdBQUdDLE1BQU0sQ0FBQ0g7UUFFdkMsSUFBSUEsa0JBQWtCSSxhQUFhLEVBQUU7WUFDbkNILFVBQVVBLFFBQVFJLFFBQVEsQ0FDeEJMLGtCQUFrQkksYUFBYSxDQUFDRSxNQUFNLEVBQ3RDTixrQkFBa0JJLGFBQWEsQ0FBQ0csT0FBTztRQUUzQztRQUVBLElBQUlQLGtCQUFrQlEsV0FBVyxFQUFFO1lBQ2pDUCxVQUFVQSxRQUFRUSxJQUFJLENBQUNULGtCQUFrQlEsV0FBVztRQUN0RDtRQUVBLE1BQU0sRUFBRWQsTUFBTWdCLFVBQVUsRUFBRUMsTUFBTUMsVUFBVSxFQUFFLEdBQUcsTUFBTVgsUUFBUVksUUFBUSxDQUFDO1lBQ3BFQyxtQkFBbUI7UUFDckI7UUFFQSxNQUFNQyxpQkFBaUI5RCxzQkFBc0JrQztRQUU3QyxJQUFJRCxJQUFJOEIsa0JBQWtCLEVBQUU7WUFDMUI5QixJQUFJOEIsa0JBQWtCLENBQUNoQixrQkFBa0IxQyxJQUFJLENBQUMsR0FBR29EO1FBQ25EO1FBRUEsTUFBTU8sV0FBVyxNQUFNQyxJQUFBQSxvQkFBVSxFQUFDUjtRQUVsQyxNQUFNUywwQkFBMEJ4RCxnQkFDOUJvRCxlQUFlekQsSUFBSSxFQUNuQnNELFlBQ0FLLFVBQVV2RCxPQUFPcUQsZUFBZXJELEdBQUc7UUFHckMsTUFBTTBELFlBQVksQ0FBQyxFQUFFaEMsV0FBVyxDQUFDLEVBQUUrQix3QkFBd0IsQ0FBQztRQUU1RCxJQUFJLE1BQU1FLElBQUFBLG1CQUFVLEVBQUNELFlBQVk7WUFDL0JFLFdBQUUsQ0FBQ0MsVUFBVSxDQUFDSDtRQUNoQjtRQUVBLE1BQU0sRUFBRXZELE1BQU0sRUFBRTJELElBQUksRUFBRTFELEtBQUssRUFBRSxHQUFHOEM7UUFDaEMsT0FBTzdDLGFBQ0xpQyxrQkFBa0IxQyxJQUFJLEVBQ3RCNkQseUJBQ0FyRCxPQUNBRCxRQUNBMkQsTUFDQVAsVUFBVVEsUUFBUXZELFVBQ2xCO1lBQUM7Z0JBQUV3RCxRQUFRaEI7Z0JBQVlpQixNQUFNUDtZQUFVO1NBQUU7SUFFN0M7SUFHRixPQUFPeEIsUUFBUWdDLE1BQU0sQ0FDbkIsQ0FBQ0MsS0FBS0M7UUFDSkMsT0FBT0MsTUFBTSxDQUFDSCxJQUFJekQsUUFBUSxFQUFFMEQsT0FBTzFELFFBQVE7UUFDM0N5RCxJQUFJMUQsV0FBVyxDQUFDOEQsSUFBSSxJQUFJSCxPQUFPM0QsV0FBVztRQUMxQyxPQUFPMEQ7SUFDVCxHQUNBO1FBQUV6RCxVQUFVLENBQUM7UUFBR0QsYUFBYSxFQUFFO0lBQUM7QUFFcEMifQ==
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBVcGxvYWRFZGl0cyB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvdmlld3MvY29sbGVjdGlvbnMvRWRpdC90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWxlU2l6ZSwgRmlsZVNpemVzLCBGaWxlVG9TYXZlLCBJbWFnZVNpemUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2lzTnVtYmVyJ1xuaW1wb3J0IGZpbGVFeGlzdHMgZnJvbSAnLi9maWxlRXhpc3RzJ1xuXG50eXBlIFJlc2l6ZUFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemVcbiAgZmlsZTogVXBsb2FkZWRGaWxlXG4gIG1pbWVUeXBlOiBzdHJpbmdcbiAgcmVxOiBQYXlsb2FkUmVxdWVzdCAmIHtcbiAgICBxdWVyeT86IHtcbiAgICAgIHVwbG9hZEVkaXRzPzogVXBsb2FkRWRpdHNcbiAgICB9XG4gIH1cbiAgc2F2ZWRGaWxlbmFtZTogc3RyaW5nXG4gIHN0YXRpY1BhdGg6IHN0cmluZ1xufVxuXG4vKiogUmVzdWx0IGZyb20gcmVzaXppbmcgYW5kIHRyYW5zZm9ybWluZyB0aGUgcmVxdWVzdGVkIGltYWdlIHNpemVzICovXG50eXBlIEltYWdlU2l6ZXNSZXN1bHQgPSB7XG4gIHNpemVEYXRhOiBGaWxlU2l6ZXNcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXVxufVxuXG50eXBlIFNhbml0aXplZEltYWdlRGF0YSA9IHtcbiAgZXh0OiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG59XG5cbi8qKlxuICogU2FuaXRpemUgdGhlIGltYWdlIG5hbWUgYW5kIGV4dHJhY3QgdGhlIGV4dGVuc2lvbiBmcm9tIHRoZSBzb3VyY2UgaW1hZ2VcbiAqXG4gKiBAcGFyYW0gc291cmNlSW1hZ2UgLSB0aGUgc291cmNlIGltYWdlXG4gKiBAcmV0dXJucyB0aGUgc2FuaXRpemVkIG5hbWUgYW5kIGV4dGVuc2lvblxuICovXG5jb25zdCBnZXRTYW5pdGl6ZWRJbWFnZURhdGEgPSAoc291cmNlSW1hZ2U6IHN0cmluZyk6IFNhbml0aXplZEltYWdlRGF0YSA9PiB7XG4gIGNvbnN0IGV4dGVuc2lvbiA9IHNvdXJjZUltYWdlLnNwbGl0KCcuJykucG9wKClcbiAgY29uc3QgbmFtZSA9IHNhbml0aXplKHNvdXJjZUltYWdlLnN1YnN0cmluZygwLCBzb3VyY2VJbWFnZS5sYXN0SW5kZXhPZignLicpKSB8fCBzb3VyY2VJbWFnZSlcbiAgcmV0dXJuIHsgbmFtZSwgZXh0OiBleHRlbnNpb24gfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbWFnZSBuYW1lIGJhc2VkIG9uIHRoZSBvdXRwdXQgaW1hZ2UgbmFtZSwgdGhlIGRpbWVuc2lvbnMgYW5kXG4gKiB0aGUgZXh0ZW5zaW9uLlxuICpcbiAqIElnbm9yZSB0aGUgZmFjdCB0aGF0IGR1cGxpY2F0ZSBuYW1lcyBjb3VsZCBoYXBwZW4gaWYgdGhlIHRoZXJlIGlzIG9uZVxuICogc2l6ZSB3aXRoIGB3aWR0aCBBTkQgaGVpZ2h0YCBhbmQgb25lIHdpdGggb25seSBgaGVpZ2h0IE9SIHdpZHRoYC4gQmVjYXVzZVxuICogc3BhY2UgaXMgZXhwZW5zaXZlLCB3ZSB3aWxsIHJldXNlIHRoZSBzYW1lIGltYWdlIGZvciBib3RoIHNpemVzLlxuICpcbiAqIEBwYXJhbSBvdXRwdXRJbWFnZU5hbWUgLSB0aGUgc2FuaXRpemVkIGltYWdlIG5hbWVcbiAqIEBwYXJhbSBidWZmZXJJbmZvIC0gdGhlIGJ1ZmZlciBpbmZvXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIC0gdGhlIGV4dGVuc2lvbiB0byB1c2VcbiAqIEByZXR1cm5zIHRoZSBuZXcgaW1hZ2UgbmFtZSB0aGF0IGlzIG5vdCB0YWtlblxuICovXG5jb25zdCBjcmVhdGVJbWFnZU5hbWUgPSAoXG4gIG91dHB1dEltYWdlTmFtZTogc3RyaW5nLFxuICB7IGhlaWdodCwgd2lkdGggfTogc2hhcnAuT3V0cHV0SW5mbyxcbiAgZXh0ZW5zaW9uOiBzdHJpbmcsXG4pID0+IGAke291dHB1dEltYWdlTmFtZX0tJHt3aWR0aH14JHtoZWlnaHR9LiR7ZXh0ZW5zaW9ufWBcblxuLyoqXG4gKiBDcmVhdGUgdGhlIHJlc3VsdCBvYmplY3QgZm9yIHRoZSBpbWFnZSByZXNpemUgb3BlcmF0aW9uIGJhc2VkIG9uIHRoZVxuICogcHJvdmlkZWQgcGFyYW1ldGVycy4gSWYgdGhlIG5hbWUgaXMgbm90IHByb3ZpZGVkLCBhbiBlbXB0eSByZXN1bHQgb2JqZWN0XG4gKiBpcyByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGZpbGVuYW1lIC0gdGhlIGZpbGVuYW1lIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIHdpZHRoIC0gdGhlIHdpZHRoIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGhlaWdodCAtIHRoZSBoZWlnaHQgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZXNpemUgLSB0aGUgZmlsZXNpemUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gbWltZVR5cGUgLSB0aGUgbWltZSB0eXBlIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIHNpemVzVG9TYXZlIC0gdGhlIHNpemVzIHRvIHNhdmVcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0XG4gKi9cbmNvbnN0IGNyZWF0ZVJlc3VsdCA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBmaWxlbmFtZTogRmlsZVNpemVbJ2ZpbGVuYW1lJ10gPSBudWxsLFxuICB3aWR0aDogRmlsZVNpemVbJ3dpZHRoJ10gPSBudWxsLFxuICBoZWlnaHQ6IEZpbGVTaXplWydoZWlnaHQnXSA9IG51bGwsXG4gIGZpbGVzaXplOiBGaWxlU2l6ZVsnZmlsZXNpemUnXSA9IG51bGwsXG4gIG1pbWVUeXBlOiBGaWxlU2l6ZVsnbWltZVR5cGUnXSA9IG51bGwsXG4gIHNpemVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXSxcbik6IEltYWdlU2l6ZXNSZXN1bHQgPT4gKHtcbiAgc2l6ZURhdGE6IHtcbiAgICBbbmFtZV06IHtcbiAgICAgIGZpbGVuYW1lLFxuICAgICAgZmlsZXNpemUsXG4gICAgICBoZWlnaHQsXG4gICAgICBtaW1lVHlwZSxcbiAgICAgIHdpZHRoLFxuICAgIH0sXG4gIH0sXG4gIHNpemVzVG9TYXZlLFxufSlcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgaW1hZ2UgbmVlZHMgdG8gYmUgcmVzaXplZCBhY2NvcmRpbmcgdG8gdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zXG4gKiBhbmQgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuIElmIHRoZSByZXNpemUgb3B0aW9ucyB3aXRob3V0RW5sYXJnZW1lbnQgb3Igd2l0aG91dFJlZHVjdGlvbiBhcmUgcHJvdmlkZWQsXG4gKiB0aGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zLCBnaXZlbiB0aGF0IHRoZVxuICogd2lkdGggb3IgaGVpZ2h0IHRvIGJlIHJlc2l6ZWQgaXMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucyBhbmQgcmVzaXplIG9wdGlvbnNcbiAqIEBwYXJhbSBvcmlnaW5hbCAtIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuY29uc3QgbmVlZHNSZXNpemUgPSAoXG4gIHsgaGVpZ2h0OiBkZXNpcmVkSGVpZ2h0LCB3aWR0aDogZGVzaXJlZFdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKTogYm9vbGVhbiA9PiB7XG4gIC8vIGFsbG93IGVubGFyZ2VtZW50IG9yIHByZXZlbnQgcmVkdWN0aW9uIChvdXIgZGVmYXVsdCBpcyB0byBwcmV2ZW50XG4gIC8vIGVubGFyZ2VtZW50IGFuZCBhbGxvdyByZWR1Y3Rpb24pXG4gIGlmICh3aXRob3V0RW5sYXJnZW1lbnQgIT09IHVuZGVmaW5lZCB8fCB3aXRob3V0UmVkdWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdHJ1ZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIGNvbnN0IGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQgPSAhZGVzaXJlZEhlaWdodCB8fCAhZGVzaXJlZFdpZHRoXG5cbiAgaWYgKGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQpIHtcbiAgICAvLyBJZiB3aXRoIGFuZCBoZWlnaHQgYXJlIG5vdCBkZWZpbmVkLCBpdCBtZWFucyB0aGVyZSBpcyBhIGZvcm1hdCBjb252ZXJzaW9uXG4gICAgLy8gYW5kIHRoZSBpbWFnZSBuZWVkcyB0byBiZSBcInJlc2l6ZWRcIiAodHJhbnNmb3JtZWQpLlxuICAgIHJldHVybiB0cnVlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaGFzSW5zdWZmaWNpZW50V2lkdGggPSBvcmlnaW5hbC53aWR0aCA8IGRlc2lyZWRXaWR0aFxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRIZWlnaHQgPSBvcmlnaW5hbC5oZWlnaHQgPCBkZXNpcmVkSGVpZ2h0XG4gIGlmIChoYXNJbnN1ZmZpY2llbnRXaWR0aCAmJiBoYXNJbnN1ZmZpY2llbnRIZWlnaHQpIHtcbiAgICAvLyBkb2Vzbid0IG5lZWQgcmVzaXplIC0gcHJldmVudCBlbmxhcmdlbWVudC4gVGhpcyBzaG91bGQgb25seSBoYXBwZW4gaWYgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBpbnN1ZmZpY2llbnQuXG4gICAgLy8gaWYgb25seSBvbmUgZGltZW5zaW9uIGlzIGluc3VmZmljaWVudCBhbmQgdGhlIG90aGVyIGlzIHN1ZmZpY2llbnQsIHJlc2l6aW5nIG5lZWRzIHRvIGhhcHBlbiwgYXMgdGhlIGltYWdlXG4gICAgLy8gc2hvdWxkIGJlIHJlc2l6ZWQgdG8gdGhlIHN1ZmZpY2llbnQgZGltZW5zaW9uLlxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWUgLy8gbmVlZHMgcmVzaXplXG59XG5cbi8qKlxuICogRm9yIHRoZSBwcm92aWRlZCBpbWFnZSBzaXplcywgaGFuZGxlIHRoZSByZXNpemluZyBhbmQgdGhlIHRyYW5zZm9ybXNcbiAqIChmb3JtYXQsIHRyaW0sIGV0Yy4pIG9mIGVhY2ggcmVxdWVzdGVkIGltYWdlIHNpemUgYW5kIHJldHVybiB0aGUgcmVzdWx0IG9iamVjdC5cbiAqIFRoaXMgb25seSBoYW5kbGVzIHRoZSBpbWFnZSBzaXplcy4gVGhlIHRyYW5zZm9ybXMgb2YgdGhlIG9yaWdpbmFsIGltYWdlXG4gKiBhcmUgaGFuZGxlZCBpbiB7QGxpbmsgLi9nZW5lcmF0ZUZpbGVEYXRhLnRzfS5cbiAqXG4gKiBUaGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWRcbiAqIHJlc2l6ZSBjb25maWcuIElmIG5vIGltYWdlIHNpemVzIGFyZSByZXF1ZXN0ZWQsIHRoZSByZXNvbHZlZCBkYXRhIHdpbGwgYmUgZW1wdHkuXG4gKiBGb3IgZXZlcnkgaW1hZ2UgdGhhdCBkb3Mgbm90IG5lZWQgdG8gYmUgcmVzaXplZCwgYW4gcmVzdWx0IG9iamVjdCB3aXRoIGBudWxsYFxuICogcGFyYW1ldGVycyB3aWxsIGJlIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSB0aGUgcmVzaXplIGNvbmZpZ1xuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgcmVzaXplIG9wZXJhdGlvbihzKVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzKHtcbiAgY29uZmlnLFxuICBkaW1lbnNpb25zLFxuICBmaWxlLFxuICBtaW1lVHlwZSxcbiAgcmVxLFxuICBzYXZlZEZpbGVuYW1lLFxuICBzdGF0aWNQYXRoLFxufTogUmVzaXplQXJncyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4ge1xuICBjb25zdCB7IGltYWdlU2l6ZXMgfSA9IGNvbmZpZy51cGxvYWRcbiAgLy8gTm90aW5nIHRvIHJlc2l6ZSBoZXJlIHNvIHJldHVybiBhcyBlYXJseSBhcyBwb3NzaWJsZVxuICBpZiAoIWltYWdlU2l6ZXMpIHJldHVybiB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH1cblxuICBjb25zdCBzaGFycEJhc2UgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuXG4gIGNvbnN0IHJlc3VsdHM6IEltYWdlU2l6ZXNSZXN1bHRbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGltYWdlU2l6ZXMubWFwKGFzeW5jIChpbWFnZVJlc2l6ZUNvbmZpZyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4gPT4ge1xuICAgICAgLy8gVGhpcyBjaGVja3MgaWYgYSByZXNpemUgc2hvdWxkIGhhcHBlbi4gSWYgbm90LCB0aGUgcmVzaXplZCBpbWFnZSB3aWxsIGJlXG4gICAgICAvLyBza2lwcGVkIENPTVBMRVRFTFkgYW5kIHRodXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBpbWFnZXMuXG4gICAgICAvLyBBbGwgZnVydGhlciBmb3JtYXQvdHJpbSBvcHRpb25zIHdpbGwgdGh1cyBiZSBza2lwcGVkIGFzIHdlbGwuXG4gICAgICBpZiAoIW5lZWRzUmVzaXplKGltYWdlUmVzaXplQ29uZmlnLCBkaW1lbnNpb25zKSkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KGltYWdlUmVzaXplQ29uZmlnLm5hbWUpXG4gICAgICB9XG5cbiAgICAgIGxldCByZXNpemVkID0gc2hhcnBCYXNlLmNsb25lKClcblxuICAgICAgaWYgKHJlcS5xdWVyeSAmJiBpbWFnZVJlc2l6ZUNvbmZpZy53aWR0aCAmJiBpbWFnZVJlc2l6ZUNvbmZpZy5oZWlnaHQpIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQsIHdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuXG4gICAgICAgIGNvbnN0IGZvY2FsUG9pbnQgPSB7XG4gICAgICAgICAgeDogMC41LFxuICAgICAgICAgIHk6IDAuNSxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXEucXVlcnk/LnVwbG9hZEVkaXRzPy5mb2NhbFBvaW50KSB7XG4gICAgICAgICAgaWYgKGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py54KSkge1xuICAgICAgICAgICAgZm9jYWxQb2ludC54ID0gcmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQueFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNOdW1iZXIocmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQ/LnkpKSB7XG4gICAgICAgICAgICBmb2NhbFBvaW50LnkgPSByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC55XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxBc3BlY3RSYXRpbyA9IGRpbWVuc2lvbnMud2lkdGggLyBkaW1lbnNpb25zLmhlaWdodFxuICAgICAgICBjb25zdCB0YXJnZXRBc3BlY3RSYXRpbyA9IGltYWdlUmVzaXplQ29uZmlnLndpZHRoIC8gaW1hZ2VSZXNpemVDb25maWcuaGVpZ2h0XG5cbiAgICAgICAgaWYgKG9yaWdpbmFsQXNwZWN0UmF0aW8gIT09IHRhcmdldEFzcGVjdFJhdGlvKSB7XG4gICAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IG9yaWdpbmFsQXNwZWN0UmF0aW8gPiB0YXJnZXRBc3BlY3RSYXRpb1xuXG4gICAgICAgICAgY29uc3QgeyBpbmZvIH0gPSBhd2FpdCByZXNpemVkXG4gICAgICAgICAgICAucmVzaXplKHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gaGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICAgICAgd2lkdGg6IHByaW9yaXRpemVIZWlnaHQgPyBudWxsIDogd2lkdGgsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBNYXRoLm1heChpbmZvLndpZHRoIC0gd2lkdGgsIDApXG4gICAgICAgICAgY29uc3QgbWF4T2Zmc2V0WSA9IE1hdGgubWF4KGluZm8uaGVpZ2h0IC0gaGVpZ2h0LCAwKVxuXG4gICAgICAgICAgY29uc3QgZm9jYWxQb2ludFggPSBNYXRoLmZsb29yKGluZm8ud2lkdGggKiBmb2NhbFBvaW50LnggLSB3aWR0aCAvIDIpXG4gICAgICAgICAgY29uc3QgZm9jYWxQb2ludFkgPSBNYXRoLmZsb29yKGluZm8uaGVpZ2h0ICogZm9jYWxQb2ludC55IC0gaGVpZ2h0IC8gMilcblxuICAgICAgICAgIGNvbnN0IG9mZnNldFggPSBNYXRoLm1pbihNYXRoLm1heChmb2NhbFBvaW50WCwgMCksIG1heE9mZnNldFgpXG4gICAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IE1hdGgubWluKE1hdGgubWF4KGZvY2FsUG9pbnRZLCAwKSwgbWF4T2Zmc2V0WSlcblxuICAgICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLmV4dHJhY3Qoe1xuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgbGVmdDogb2Zmc2V0WCxcbiAgICAgICAgICAgIHRvcDogb2Zmc2V0WSxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudG9Gb3JtYXQoXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5vcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50cmltKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGRhdGE6IGJ1ZmZlckRhdGEsIGluZm86IGJ1ZmZlckluZm8gfSA9IGF3YWl0IHJlc2l6ZWQudG9CdWZmZXIoe1xuICAgICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNhbml0aXplZEltYWdlID0gZ2V0U2FuaXRpemVkSW1hZ2VEYXRhKHNhdmVkRmlsZW5hbWUpXG5cbiAgICAgIGlmIChyZXEucGF5bG9hZFVwbG9hZFNpemVzKSB7XG4gICAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXNbaW1hZ2VSZXNpemVDb25maWcubmFtZV0gPSBidWZmZXJEYXRhXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1pbWVJbmZvID0gYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXJEYXRhKVxuXG4gICAgICBjb25zdCBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyA9IGNyZWF0ZUltYWdlTmFtZShcbiAgICAgICAgc2FuaXRpemVkSW1hZ2UubmFtZSxcbiAgICAgICAgYnVmZmVySW5mbyxcbiAgICAgICAgbWltZUluZm8/LmV4dCB8fCBzYW5pdGl6ZWRJbWFnZS5leHQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7aW1hZ2VOYW1lV2l0aERpbWVuc2lvbnN9YFxuXG4gICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhpbWFnZVBhdGgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZnMudW5saW5rU3luYyhpbWFnZVBhdGgpXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSB1bmxpbmsgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBoZWlnaHQsIHNpemUsIHdpZHRoIH0gPSBidWZmZXJJbmZvXG4gICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KFxuICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lLFxuICAgICAgICBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbWltZUluZm8/Lm1pbWUgfHwgbWltZVR5cGUsXG4gICAgICAgIFt7IGJ1ZmZlcjogYnVmZmVyRGF0YSwgcGF0aDogaW1hZ2VQYXRoIH1dLFxuICAgICAgKVxuICAgIH0pLFxuICApXG5cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxuICAgIChhY2MsIHJlc3VsdCkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihhY2Muc2l6ZURhdGEsIHJlc3VsdC5zaXplRGF0YSlcbiAgICAgIGFjYy5zaXplc1RvU2F2ZS5wdXNoKC4uLnJlc3VsdC5zaXplc1RvU2F2ZSlcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LFxuICAgIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJnZXRTYW5pdGl6ZWRJbWFnZURhdGEiLCJzb3VyY2VJbWFnZSIsImV4dGVuc2lvbiIsInNwbGl0IiwicG9wIiwibmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJleHQiLCJjcmVhdGVJbWFnZU5hbWUiLCJvdXRwdXRJbWFnZU5hbWUiLCJoZWlnaHQiLCJ3aWR0aCIsImNyZWF0ZVJlc3VsdCIsImZpbGVuYW1lIiwiZmlsZXNpemUiLCJtaW1lVHlwZSIsInNpemVzVG9TYXZlIiwic2l6ZURhdGEiLCJuZWVkc1Jlc2l6ZSIsImRlc2lyZWRIZWlnaHQiLCJkZXNpcmVkV2lkdGgiLCJ3aXRob3V0RW5sYXJnZW1lbnQiLCJ3aXRob3V0UmVkdWN0aW9uIiwib3JpZ2luYWwiLCJ1bmRlZmluZWQiLCJpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkIiwiaGFzSW5zdWZmaWNpZW50V2lkdGgiLCJoYXNJbnN1ZmZpY2llbnRIZWlnaHQiLCJjb25maWciLCJkaW1lbnNpb25zIiwiZmlsZSIsInJlcSIsInNhdmVkRmlsZW5hbWUiLCJzdGF0aWNQYXRoIiwiaW1hZ2VTaXplcyIsInVwbG9hZCIsInNoYXJwQmFzZSIsInNoYXJwIiwidGVtcEZpbGVQYXRoIiwiZGF0YSIsInJvdGF0ZSIsInJlc3VsdHMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiaW1hZ2VSZXNpemVDb25maWciLCJyZXNpemVkIiwiY2xvbmUiLCJxdWVyeSIsImZvY2FsUG9pbnQiLCJ4IiwieSIsInVwbG9hZEVkaXRzIiwiaXNOdW1iZXIiLCJvcmlnaW5hbEFzcGVjdFJhdGlvIiwidGFyZ2V0QXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0IiwiaW5mbyIsInJlc2l6ZSIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJtYXhPZmZzZXRYIiwiTWF0aCIsIm1heCIsIm1heE9mZnNldFkiLCJmb2NhbFBvaW50WCIsImZsb29yIiwiZm9jYWxQb2ludFkiLCJvZmZzZXRYIiwibWluIiwib2Zmc2V0WSIsImV4dHJhY3QiLCJsZWZ0IiwidG9wIiwiZm9ybWF0T3B0aW9ucyIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW1PcHRpb25zIiwidHJpbSIsImJ1ZmZlckRhdGEiLCJidWZmZXJJbmZvIiwic2FuaXRpemVkSW1hZ2UiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJtaW1lSW5mbyIsImZyb21CdWZmZXIiLCJpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyIsImltYWdlUGF0aCIsImZpbGVFeGlzdHMiLCJmcyIsInVubGlua1N5bmMiLCJzaXplIiwibWltZSIsImJ1ZmZlciIsInBhdGgiLCJyZWR1Y2UiLCJhY2MiLCJyZXN1bHQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7OytCQWtKQTs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ0Q7OztlQUE4QkE7OzswQkE5Skg7MkRBQ1o7eUVBQ007OERBQ0g7MEJBT087bUVBQ0Y7Ozs7OztBQTJCdkI7Ozs7O0NBS0MsR0FDRCxNQUFNQyx3QkFBd0IsQ0FBQ0M7SUFDN0IsTUFBTUMsWUFBWUQsWUFBWUUsS0FBSyxDQUFDLEtBQUtDLEdBQUc7SUFDNUMsTUFBTUMsT0FBT0MsSUFBQUEseUJBQVEsRUFBQ0wsWUFBWU0sU0FBUyxDQUFDLEdBQUdOLFlBQVlPLFdBQVcsQ0FBQyxTQUFT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
@@ -54,7 +54,9 @@ export type GetAdminThumbnail = (args: {
54
54
  }) => false | null | string;
55
55
  export type IncomingUploadType = {
56
56
  adminThumbnail?: GetAdminThumbnail | string;
57
+ crop?: boolean;
57
58
  disableLocalStorage?: boolean;
59
+ focalPoint?: boolean;
58
60
  /** Options for original upload file only. For sizes, set each formatOptions individually. */
59
61
  formatOptions?: ImageUploadFormatOptions;
60
62
  handlers?: any[];
@@ -68,7 +70,9 @@ export type IncomingUploadType = {
68
70
  };
69
71
  export type Upload = {
70
72
  adminThumbnail?: GetAdminThumbnail | string;
71
- disableLocalStorage: boolean;
73
+ crop?: boolean;
74
+ disableLocalStorage?: boolean;
75
+ focalPoint?: boolean;
72
76
  formatOptions?: ImageUploadFormatOptions;
73
77
  handlers?: any[];
74
78
  imageSizes?: ImageSize[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/uploads/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/uploads/types.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
 
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IHR5cGUgZXhwcmVzcyBmcm9tICdleHByZXNzJ1xuaW1wb3J0IHR5cGUgc2VydmVTdGF0aWMgZnJvbSAnc2VydmUtc3RhdGljJ1xuaW1wb3J0IHR5cGUgeyBSZXNpemVPcHRpb25zLCBTaGFycCB9IGZyb20gJ3NoYXJwJ1xuXG5leHBvcnQgdHlwZSBGaWxlU2l6ZSA9IHtcbiAgZmlsZW5hbWU6IG51bGwgfCBzdHJpbmdcbiAgZmlsZXNpemU6IG51bGwgfCBudW1iZXJcbiAgaGVpZ2h0OiBudWxsIHwgbnVtYmVyXG4gIG1pbWVUeXBlOiBudWxsIHwgc3RyaW5nXG4gIHdpZHRoOiBudWxsIHwgbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVTaXplcyA9IHtcbiAgW3NpemU6IHN0cmluZ106IEZpbGVTaXplXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVEYXRhID0ge1xuICBmaWxlbmFtZTogc3RyaW5nXG4gIGZpbGVzaXplOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcbiAgbWltZVR5cGU6IHN0cmluZ1xuICBzaXplczogRmlsZVNpemVzXG4gIHRlbXBGaWxlUGF0aD86IHN0cmluZ1xuICB3aWR0aDogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIFByb2JlZEltYWdlU2l6ZSA9IHtcbiAgaGVpZ2h0OiBudW1iZXJcbiAgbWltZTogc3RyaW5nXG4gIHR5cGU6IHN0cmluZ1xuICB3aWR0aDogbnVtYmVyXG59XG5cbi8qKlxuICogUGFyYW1zIHNlbnQgdG8gdGhlIHNoYXJwIHRvRm9ybWF0KCkgZnVuY3Rpb25cbiAqIEBsaW5rIGh0dHBzOi8vc2hhcnAucGl4ZWxwbHVtYmluZy5jb20vYXBpLW91dHB1dCN0b2Zvcm1hdFxuICovXG5leHBvcnQgdHlwZSBJbWFnZVVwbG9hZEZvcm1hdE9wdGlvbnMgPSB7XG4gIGZvcm1hdDogUGFyYW1ldGVyczxTaGFycFsndG9Gb3JtYXQnXT5bMF1cbiAgb3B0aW9ucz86IFBhcmFtZXRlcnM8U2hhcnBbJ3RvRm9ybWF0J10+WzFdXG59XG5cbi8qKlxuICogUGFyYW1zIHNlbnQgdG8gdGhlIHNoYXJwIHRyaW0oKSBmdW5jdGlvblxuICogQGxpbmsgaHR0cHM6Ly9zaGFycC5waXhlbHBsdW1iaW5nLmNvbS9hcGktcmVzaXplI3RyaW1cbiAqL1xuZXhwb3J0IHR5cGUgSW1hZ2VVcGxvYWRUcmltT3B0aW9ucyA9IFBhcmFtZXRlcnM8U2hhcnBbJ3RyaW0nXT5bMF1cblxuZXhwb3J0IHR5cGUgSW1hZ2VTaXplID0gUmVzaXplT3B0aW9ucyAmIHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHByZWZlciBwb3NpdGlvblxuICAgKi9cbiAgY3JvcD86IHN0cmluZyAvLyBjb21lcyBmcm9tIHNoYXJwIHBhY2thZ2VcbiAgZm9ybWF0T3B0aW9ucz86IEltYWdlVXBsb2FkRm9ybWF0T3B0aW9uc1xuICBuYW1lOiBzdHJpbmdcbiAgdHJpbU9wdGlvbnM/OiBJbWFnZVVwbG9hZFRyaW1PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEdldEFkbWluVGh1bWJuYWlsID0gKGFyZ3M6IHsgZG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9KSA9PiBmYWxzZSB8IG51bGwgfCBzdHJpbmdcblxuZXhwb3J0IHR5cGUgSW5jb21pbmdVcGxvYWRUeXBlID0ge1xuICBhZG1pblRodW1ibmFpbD86IEdldEFkbWluVGh1bWJuYWlsIHwgc3RyaW5nXG4gIGRpc2FibGVMb2NhbFN0b3JhZ2U/OiBib29sZWFuXG4gIC8qKiBPcHRpb25zIGZvciBvcmlnaW5hbCB1cGxvYWQgZmlsZSBvbmx5LiBGb3Igc2l6ZXMsIHNldCBlYWNoIGZvcm1hdE9wdGlvbnMgaW5kaXZpZHVhbGx5LiAqL1xuICBmb3JtYXRPcHRpb25zPzogSW1hZ2VVcGxvYWRGb3JtYXRPcHRpb25zXG4gIGhhbmRsZXJzPzogYW55W11cbiAgaW1hZ2VTaXplcz86IEltYWdlU2l6ZVtdXG4gIG1pbWVUeXBlcz86IHN0cmluZ1tdXG4gIHJlc2l6ZU9wdGlvbnM/OiBSZXNpemVPcHRpb25zXG4gIHN0YXRpY0Rpcj86IHN0cmluZ1xuICBzdGF0aWNPcHRpb25zPzogc2VydmVTdGF0aWMuU2VydmVTdGF0aWNPcHRpb25zPGV4cHJlc3MuUmVzcG9uc2U8YW55LCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pj5cbiAgc3RhdGljVVJMPzogc3RyaW5nXG4gIHRyaW1PcHRpb25zPzogSW1hZ2VVcGxvYWRUcmltT3B0aW9uc1xufVxuXG5leHBvcnQgdHlwZSBVcGxvYWQgPSB7XG4gIGFkbWluVGh1bWJuYWlsPzogR2V0QWRtaW5UaHVtYm5haWwgfCBzdHJpbmdcbiAgZGlzYWJsZUxvY2FsU3RvcmFnZTogYm9vbGVhblxuICBmb3JtYXRPcHRpb25zPzogSW1hZ2VVcGxvYWRGb3JtYXRPcHRpb25zXG4gIGhhbmRsZXJzPzogYW55W11cbiAgaW1hZ2VTaXplcz86IEltYWdlU2l6ZVtdXG4gIG1pbWVUeXBlcz86IHN0cmluZ1tdXG4gIHJlc2l6ZU9wdGlvbnM/OiBSZXNpemVPcHRpb25zXG4gIHN0YXRpY0Rpcjogc3RyaW5nXG4gIHN0YXRpY09wdGlvbnM/OiBzZXJ2ZVN0YXRpYy5TZXJ2ZVN0YXRpY09wdGlvbnM8ZXhwcmVzcy5SZXNwb25zZTxhbnksIFJlY29yZDxzdHJpbmcsIGFueT4+PlxuICBzdGF0aWNVUkw6IHN0cmluZ1xuICB0cmltT3B0aW9ucz86IEltYWdlVXBsb2FkVHJpbU9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgRmlsZSA9IHtcbiAgZGF0YTogQnVmZmVyXG4gIG1pbWV0eXBlOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBGaWxlVG9TYXZlID0ge1xuICBidWZmZXI6IEJ1ZmZlclxuICBwYXRoOiBzdHJpbmdcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0QifQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IHR5cGUgZXhwcmVzcyBmcm9tICdleHByZXNzJ1xuaW1wb3J0IHR5cGUgc2VydmVTdGF0aWMgZnJvbSAnc2VydmUtc3RhdGljJ1xuaW1wb3J0IHR5cGUgeyBSZXNpemVPcHRpb25zLCBTaGFycCB9IGZyb20gJ3NoYXJwJ1xuXG5leHBvcnQgdHlwZSBGaWxlU2l6ZSA9IHtcbiAgZmlsZW5hbWU6IG51bGwgfCBzdHJpbmdcbiAgZmlsZXNpemU6IG51bGwgfCBudW1iZXJcbiAgaGVpZ2h0OiBudWxsIHwgbnVtYmVyXG4gIG1pbWVUeXBlOiBudWxsIHwgc3RyaW5nXG4gIHdpZHRoOiBudWxsIHwgbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVTaXplcyA9IHtcbiAgW3NpemU6IHN0cmluZ106IEZpbGVTaXplXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVEYXRhID0ge1xuICBmaWxlbmFtZTogc3RyaW5nXG4gIGZpbGVzaXplOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcbiAgbWltZVR5cGU6IHN0cmluZ1xuICBzaXplczogRmlsZVNpemVzXG4gIHRlbXBGaWxlUGF0aD86IHN0cmluZ1xuICB3aWR0aDogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIFByb2JlZEltYWdlU2l6ZSA9IHtcbiAgaGVpZ2h0OiBudW1iZXJcbiAgbWltZTogc3RyaW5nXG4gIHR5cGU6IHN0cmluZ1xuICB3aWR0aDogbnVtYmVyXG59XG5cbi8qKlxuICogUGFyYW1zIHNlbnQgdG8gdGhlIHNoYXJwIHRvRm9ybWF0KCkgZnVuY3Rpb25cbiAqIEBsaW5rIGh0dHBzOi8vc2hhcnAucGl4ZWxwbHVtYmluZy5jb20vYXBpLW91dHB1dCN0b2Zvcm1hdFxuICovXG5leHBvcnQgdHlwZSBJbWFnZVVwbG9hZEZvcm1hdE9wdGlvbnMgPSB7XG4gIGZvcm1hdDogUGFyYW1ldGVyczxTaGFycFsndG9Gb3JtYXQnXT5bMF1cbiAgb3B0aW9ucz86IFBhcmFtZXRlcnM8U2hhcnBbJ3RvRm9ybWF0J10+WzFdXG59XG5cbi8qKlxuICogUGFyYW1zIHNlbnQgdG8gdGhlIHNoYXJwIHRyaW0oKSBmdW5jdGlvblxuICogQGxpbmsgaHR0cHM6Ly9zaGFycC5waXhlbHBsdW1iaW5nLmNvbS9hcGktcmVzaXplI3RyaW1cbiAqL1xuZXhwb3J0IHR5cGUgSW1hZ2VVcGxvYWRUcmltT3B0aW9ucyA9IFBhcmFtZXRlcnM8U2hhcnBbJ3RyaW0nXT5bMF1cblxuZXhwb3J0IHR5cGUgSW1hZ2VTaXplID0gUmVzaXplT3B0aW9ucyAmIHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHByZWZlciBwb3NpdGlvblxuICAgKi9cbiAgY3JvcD86IHN0cmluZyAvLyBjb21lcyBmcm9tIHNoYXJwIHBhY2thZ2VcbiAgZm9ybWF0T3B0aW9ucz86IEltYWdlVXBsb2FkRm9ybWF0T3B0aW9uc1xuICBuYW1lOiBzdHJpbmdcbiAgdHJpbU9wdGlvbnM/OiBJbWFnZVVwbG9hZFRyaW1PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEdldEFkbWluVGh1bWJuYWlsID0gKGFyZ3M6IHsgZG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9KSA9PiBmYWxzZSB8IG51bGwgfCBzdHJpbmdcblxuZXhwb3J0IHR5cGUgSW5jb21pbmdVcGxvYWRUeXBlID0ge1xuICBhZG1pblRodW1ibmFpbD86IEdldEFkbWluVGh1bWJuYWlsIHwgc3RyaW5nXG4gIGNyb3A/OiBib29sZWFuXG4gIGRpc2FibGVMb2NhbFN0b3JhZ2U/OiBib29sZWFuXG4gIGZvY2FsUG9pbnQ/OiBib29sZWFuXG4gIC8qKiBPcHRpb25zIGZvciBvcmlnaW5hbCB1cGxvYWQgZmlsZSBvbmx5LiBGb3Igc2l6ZXMsIHNldCBlYWNoIGZvcm1hdE9wdGlvbnMgaW5kaXZpZHVhbGx5LiAqL1xuICBmb3JtYXRPcHRpb25zPzogSW1hZ2VVcGxvYWRGb3JtYXRPcHRpb25zXG4gIGhhbmRsZXJzPzogYW55W11cbiAgaW1hZ2VTaXplcz86IEltYWdlU2l6ZVtdXG4gIG1pbWVUeXBlcz86IHN0cmluZ1tdXG4gIHJlc2l6ZU9wdGlvbnM/OiBSZXNpemVPcHRpb25zXG4gIHN0YXRpY0Rpcj86IHN0cmluZ1xuICBzdGF0aWNPcHRpb25zPzogc2VydmVTdGF0aWMuU2VydmVTdGF0aWNPcHRpb25zPGV4cHJlc3MuUmVzcG9uc2U8YW55LCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pj5cbiAgc3RhdGljVVJMPzogc3RyaW5nXG4gIHRyaW1PcHRpb25zPzogSW1hZ2VVcGxvYWRUcmltT3B0aW9uc1xufVxuXG5leHBvcnQgdHlwZSBVcGxvYWQgPSB7XG4gIGFkbWluVGh1bWJuYWlsPzogR2V0QWRtaW5UaHVtYm5haWwgfCBzdHJpbmdcbiAgY3JvcD86IGJvb2xlYW5cbiAgZGlzYWJsZUxvY2FsU3RvcmFnZT86IGJvb2xlYW5cbiAgZm9jYWxQb2ludD86IGJvb2xlYW5cbiAgZm9ybWF0T3B0aW9ucz86IEltYWdlVXBsb2FkRm9ybWF0T3B0aW9uc1xuICBoYW5kbGVycz86IGFueVtdXG4gIGltYWdlU2l6ZXM/OiBJbWFnZVNpemVbXVxuICBtaW1lVHlwZXM/OiBzdHJpbmdbXVxuICByZXNpemVPcHRpb25zPzogUmVzaXplT3B0aW9uc1xuICBzdGF0aWNEaXI6IHN0cmluZ1xuICBzdGF0aWNPcHRpb25zPzogc2VydmVTdGF0aWMuU2VydmVTdGF0aWNPcHRpb25zPGV4cHJlc3MuUmVzcG9uc2U8YW55LCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pj5cbiAgc3RhdGljVVJMOiBzdHJpbmdcbiAgdHJpbU9wdGlvbnM/OiBJbWFnZVVwbG9hZFRyaW1PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEZpbGUgPSB7XG4gIGRhdGE6IEJ1ZmZlclxuICBtaW1ldHlwZTogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBzaXplOiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgRmlsZVRvU2F2ZSA9IHtcbiAgYnVmZmVyOiBCdWZmZXJcbiAgcGF0aDogc3RyaW5nXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EIn0=
@@ -0,0 +1,3 @@
1
+ import type { Field } from '../fields/config/types';
2
+ export declare const fieldSchemaToJSON: (fields: Field[]) => Record<string, unknown>[];
3
+ //# sourceMappingURL=fieldSchemaToJSON.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldSchemaToJSON.d.ts","sourceRoot":"","sources":["../../src/utilities/fieldSchemaToJSON.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,eAAO,MAAM,iBAAiB,WAAY,KAAK,EAAE,KAAG,OAAO,MAAM,EAAE,OAAO,CAAC,EA6E1E,CAAA"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "fieldSchemaToJSON", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return fieldSchemaToJSON;
9
+ }
10
+ });
11
+ const fieldSchemaToJSON = (fields)=>{
12
+ return fields.reduce((acc, field)=>{
13
+ let result = acc;
14
+ switch(field.type){
15
+ case 'group':
16
+ case 'array':
17
+ acc.push({
18
+ name: field.name,
19
+ fields: fieldSchemaToJSON(field.fields),
20
+ type: field.type
21
+ });
22
+ break;
23
+ case 'blocks':
24
+ acc.push({
25
+ name: field.name,
26
+ blocks: field.blocks.reduce((acc, block)=>{
27
+ acc[block.slug] = {
28
+ fields: fieldSchemaToJSON(block.fields)
29
+ };
30
+ return acc;
31
+ }, {}),
32
+ type: field.type
33
+ });
34
+ break;
35
+ case 'row':
36
+ case 'collapsible':
37
+ result = result.concat(fieldSchemaToJSON(field.fields));
38
+ break;
39
+ case 'tabs':
40
+ {
41
+ let tabFields = [];
42
+ field.tabs.forEach((tab)=>{
43
+ if ('name' in tab) {
44
+ tabFields.push({
45
+ name: tab.name,
46
+ fields: fieldSchemaToJSON(tab.fields),
47
+ type: 'tab'
48
+ });
49
+ return;
50
+ }
51
+ tabFields = tabFields.concat(fieldSchemaToJSON(tab.fields));
52
+ });
53
+ result = result.concat(tabFields);
54
+ break;
55
+ }
56
+ case 'relationship':
57
+ case 'upload':
58
+ acc.push({
59
+ name: field.name,
60
+ hasMany: 'hasMany' in field ? Boolean(field.hasMany) : false,
61
+ relationTo: field.relationTo,
62
+ type: field.type
63
+ });
64
+ break;
65
+ default:
66
+ if ('name' in field) {
67
+ acc.push({
68
+ name: field.name,
69
+ type: field.type
70
+ });
71
+ }
72
+ }
73
+ return result;
74
+ }, []);
75
+ };
76
+
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmllbGRTY2hlbWFUb0pTT04udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBmaWVsZFNjaGVtYVRvSlNPTiA9IChmaWVsZHM6IEZpZWxkW10pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdID0+IHtcbiAgcmV0dXJuIGZpZWxkcy5yZWR1Y2UoKGFjYywgZmllbGQpID0+IHtcbiAgICBsZXQgcmVzdWx0ID0gYWNjXG5cbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2dyb3VwJzpcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgYWNjLnB1c2goe1xuICAgICAgICAgIG5hbWU6IGZpZWxkLm5hbWUsXG4gICAgICAgICAgZmllbGRzOiBmaWVsZFNjaGVtYVRvSlNPTihmaWVsZC5maWVsZHMpLFxuICAgICAgICAgIHR5cGU6IGZpZWxkLnR5cGUsXG4gICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ2Jsb2Nrcyc6XG4gICAgICAgIGFjYy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICAgIGJsb2NrczogZmllbGQuYmxvY2tzLnJlZHVjZSgoYWNjLCBibG9jaykgPT4ge1xuICAgICAgICAgICAgYWNjW2Jsb2NrLnNsdWddID0ge1xuICAgICAgICAgICAgICBmaWVsZHM6IGZpZWxkU2NoZW1hVG9KU09OKGJsb2NrLmZpZWxkcyksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgICB9LCB7fSksXG4gICAgICAgICAgdHlwZTogZmllbGQudHlwZSxcbiAgICAgICAgfSlcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAncm93JzpcbiAgICAgIGNhc2UgJ2NvbGxhcHNpYmxlJzpcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChmaWVsZFNjaGVtYVRvSlNPTihmaWVsZC5maWVsZHMpKVxuXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICAgIGxldCB0YWJGaWVsZHMgPSBbXVxuXG4gICAgICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgICAgaWYgKCduYW1lJyBpbiB0YWIpIHtcbiAgICAgICAgICAgIHRhYkZpZWxkcy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogdGFiLm5hbWUsXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGRTY2hlbWFUb0pTT04odGFiLmZpZWxkcyksXG4gICAgICAgICAgICAgIHR5cGU6ICd0YWInLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRhYkZpZWxkcyA9IHRhYkZpZWxkcy5jb25jYXQoZmllbGRTY2hlbWFUb0pTT04odGFiLmZpZWxkcykpXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdCh0YWJGaWVsZHMpXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgIGNhc2UgJ3VwbG9hZCc6XG4gICAgICAgIGFjYy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICAgIGhhc01hbnk6ICdoYXNNYW55JyBpbiBmaWVsZCA/IEJvb2xlYW4oZmllbGQuaGFzTWFueSkgOiBmYWxzZSwgLy8gVE9ETzogdHlwZSB0aGlzXG4gICAgICAgICAgcmVsYXRpb25UbzogZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICB0eXBlOiBmaWVsZC50eXBlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmICgnbmFtZScgaW4gZmllbGQpIHtcbiAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICAgICAgdHlwZTogZmllbGQudHlwZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9LCBbXSlcbn1cbiJdLCJuYW1lcyI6WyJmaWVsZFNjaGVtYVRvSlNPTiIsImZpZWxkcyIsInJlZHVjZSIsImFjYyIsImZpZWxkIiwicmVzdWx0IiwidHlwZSIsInB1c2giLCJuYW1lIiwiYmxvY2tzIiwiYmxvY2siLCJzbHVnIiwiY29uY2F0IiwidGFiRmllbGRzIiwidGFicyIsImZvckVhY2giLCJ0YWIiLCJoYXNNYW55IiwiQm9vbGVhbiIsInJlbGF0aW9uVG8iXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLG9CQUFvQixDQUFDQztJQUNoQyxPQUFPQSxPQUFPQyxNQUFNLENBQUMsQ0FBQ0MsS0FBS0M7UUFDekIsSUFBSUMsU0FBU0Y7UUFFYixPQUFRQyxNQUFNRSxJQUFJO1lBQ2hCLEtBQUs7WUFDTCxLQUFLO2dCQUNISCxJQUFJSSxJQUFJLENBQUM7b0JBQ1BDLE1BQU1KLE1BQU1JLElBQUk7b0JBQ2hCUCxRQUFRRCxrQkFBa0JJLE1BQU1ILE1BQU07b0JBQ3RDSyxNQUFNRixNQUFNRSxJQUFJO2dCQUNsQjtnQkFDQTtZQUVGLEtBQUs7Z0JBQ0hILElBQUlJLElBQUksQ0FBQztvQkFDUEMsTUFBTUosTUFBTUksSUFBSTtvQkFDaEJDLFFBQVFMLE1BQU1LLE1BQU0sQ0FBQ1AsTUFBTSxDQUFDLENBQUNDLEtBQUtPO3dCQUNoQ1AsR0FBRyxDQUFDTyxNQUFNQyxJQUFJLENBQUMsR0FBRzs0QkFDaEJWLFFBQVFELGtCQUFrQlUsTUFBTVQsTUFBTTt3QkFDeEM7d0JBRUEsT0FBT0U7b0JBQ1QsR0FBRyxDQUFDO29CQUNKRyxNQUFNRixNQUFNRSxJQUFJO2dCQUNsQjtnQkFDQTtZQUVGLEtBQUs7WUFDTCxLQUFLO2dCQUNIRCxTQUFTQSxPQUFPTyxNQUFNLENBQUNaLGtCQUFrQkksTUFBTUgsTUFBTTtnQkFFckQ7WUFFRixLQUFLO2dCQUFRO29CQUNYLElBQUlZLFlBQVksRUFBRTtvQkFFbEJULE1BQU1VLElBQUksQ0FBQ0MsT0FBTyxDQUFDLENBQUNDO3dCQUNsQixJQUFJLFVBQVVBLEtBQUs7NEJBQ2pCSCxVQUFVTixJQUFJLENBQUM7Z0NBQ2JDLE1BQU1RLElBQUlSLElBQUk7Z0NBQ2RQLFFBQVFELGtCQUFrQmdCLElBQUlmLE1BQU07Z0NBQ3BDSyxNQUFNOzRCQUNSOzRCQUNBO3dCQUNGO3dCQUVBTyxZQUFZQSxVQUFVRCxNQUFNLENBQUNaLGtCQUFrQmdCLElBQUlmLE1BQU07b0JBQzNEO29CQUVBSSxTQUFTQSxPQUFPTyxNQUFNLENBQUNDO29CQUV2QjtnQkFDRjtZQUVBLEtBQUs7WUFDTCxLQUFLO2dCQUNIVixJQUFJSSxJQUFJLENBQUM7b0JBQ1BDLE1BQU1KLE1BQU1JLElBQUk7b0JBQ2hCUyxTQUFTLGFBQWFiLFFBQVFjLFFBQVFkLE1BQU1hLE9BQU8sSUFBSTtvQkFDdkRFLFlBQVlmLE1BQU1lLFVBQVU7b0JBQzVCYixNQUFNRixNQUFNRSxJQUFJO2dCQUNsQjtnQkFFQTtZQUVGO2dCQUNFLElBQUksVUFBVUYsT0FBTztvQkFDbkJELElBQUlJLElBQUksQ0FBQzt3QkFDUEMsTUFBTUosTUFBTUksSUFBSTt3QkFDaEJGLE1BQU1GLE1BQU1FLElBQUk7b0JBQ2xCO2dCQUNGO1FBQ0o7UUFFQSxPQUFPRDtJQUNULEdBQUcsRUFBRTtBQUNQIn0=
@@ -1,3 +1,4 @@
1
+ import type { BaseDatabaseAdapter } from '../database/types';
1
2
  import type { Field } from '../fields/config/types';
2
- export declare const getIDType: (idField: Field | null) => 'ObjectID' | 'number' | 'text';
3
+ export declare const getIDType: (idField: Field | null, defaultIDType: BaseDatabaseAdapter['defaultIDType'] | null) => 'ObjectID' | 'number' | 'text';
3
4
  //# sourceMappingURL=getIDType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getIDType.d.ts","sourceRoot":"","sources":["../../src/utilities/getIDType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,eAAO,MAAM,SAAS,YAAa,KAAK,GAAG,IAAI,KAAG,UAAU,GAAG,QAAQ,GAAG,MAKzE,CAAA"}
1
+ {"version":3,"file":"getIDType.d.ts","sourceRoot":"","sources":["../../src/utilities/getIDType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,eAAO,MAAM,SAAS,YACX,KAAK,GAAG,IAAI,iBACN,mBAAmB,CAAC,eAAe,CAAC,GAAG,IAAI,KACzD,UAAU,GAAG,QAAQ,GAAG,MAK1B,CAAA"}
@@ -8,11 +8,11 @@ Object.defineProperty(exports, "getIDType", {
8
8
  return getIDType;
9
9
  }
10
10
  });
11
- const getIDType = (idField)=>{
11
+ const getIDType = (idField, defaultIDType)=>{
12
12
  if (idField) {
13
13
  return idField.type === 'number' ? 'number' : 'text';
14
14
  }
15
- return 'ObjectID';
15
+ return defaultIDType || 'ObjectID';
16
16
  };
17
17
 
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZ2V0SURUeXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgZ2V0SURUeXBlID0gKGlkRmllbGQ6IEZpZWxkIHwgbnVsbCk6ICdPYmplY3RJRCcgfCAnbnVtYmVyJyB8ICd0ZXh0JyA9PiB7XG4gIGlmIChpZEZpZWxkKSB7XG4gICAgcmV0dXJuIGlkRmllbGQudHlwZSA9PT0gJ251bWJlcicgPyAnbnVtYmVyJyA6ICd0ZXh0J1xuICB9XG4gIHJldHVybiAnT2JqZWN0SUQnXG59XG4iXSwibmFtZXMiOlsiZ2V0SURUeXBlIiwiaWRGaWVsZCIsInR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLFlBQVksQ0FBQ0M7SUFDeEIsSUFBSUEsU0FBUztRQUNYLE9BQU9BLFFBQVFDLElBQUksS0FBSyxXQUFXLFdBQVc7SUFDaEQ7SUFDQSxPQUFPO0FBQ1QifQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZ2V0SURUeXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFzZURhdGFiYXNlQWRhcHRlciB9IGZyb20gJy4uL2RhdGFiYXNlL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBnZXRJRFR5cGUgPSAoXG4gIGlkRmllbGQ6IEZpZWxkIHwgbnVsbCxcbiAgZGVmYXVsdElEVHlwZTogQmFzZURhdGFiYXNlQWRhcHRlclsnZGVmYXVsdElEVHlwZSddIHwgbnVsbCxcbik6ICdPYmplY3RJRCcgfCAnbnVtYmVyJyB8ICd0ZXh0JyA9PiB7XG4gIGlmIChpZEZpZWxkKSB7XG4gICAgcmV0dXJuIGlkRmllbGQudHlwZSA9PT0gJ251bWJlcicgPyAnbnVtYmVyJyA6ICd0ZXh0J1xuICB9XG4gIHJldHVybiBkZWZhdWx0SURUeXBlIHx8ICdPYmplY3RJRCdcbn1cbiJdLCJuYW1lcyI6WyJnZXRJRFR5cGUiLCJpZEZpZWxkIiwiZGVmYXVsdElEVHlwZSIsInR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBR2FBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLFlBQVksQ0FDdkJDLFNBQ0FDO0lBRUEsSUFBSUQsU0FBUztRQUNYLE9BQU9BLFFBQVFFLElBQUksS0FBSyxXQUFXLFdBQVc7SUFDaEQ7SUFDQSxPQUFPRCxpQkFBaUI7QUFDMUIifQ==
@@ -15,11 +15,11 @@ function _interop_require_default(obj) {
15
15
  };
16
16
  }
17
17
  const isValidID = (value, type)=>{
18
- if (type === 'text') return typeof value === 'string';
18
+ if (type === 'text') return value && typeof value === 'string';
19
19
  if (typeof value === 'number' && !Number.isNaN(value)) return true;
20
20
  if (type === 'ObjectID') {
21
21
  return _bsonobjectid.default.isValid(String(value));
22
22
  }
23
23
  };
24
24
 
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaXNWYWxpZElELnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPYmplY3RJRCBmcm9tICdic29uLW9iamVjdGlkJ1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZElEID0gKFxuICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLFxuICB0eXBlOiAnT2JqZWN0SUQnIHwgJ251bWJlcicgfCAndGV4dCcsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKHR5cGUgPT09ICd0ZXh0JykgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIU51bWJlci5pc05hTih2YWx1ZSkpIHJldHVybiB0cnVlXG5cbiAgaWYgKHR5cGUgPT09ICdPYmplY3RJRCcpIHtcbiAgICByZXR1cm4gT2JqZWN0SUQuaXNWYWxpZChTdHJpbmcodmFsdWUpKVxuICB9XG59XG4iXSwibmFtZXMiOlsiaXNWYWxpZElEIiwidmFsdWUiLCJ0eXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJPYmplY3RJRCIsImlzVmFsaWQiLCJTdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7OztxRUFGUTs7Ozs7O0FBRWQsTUFBTUEsWUFBWSxDQUN2QkMsT0FDQUM7SUFFQSxJQUFJQSxTQUFTLFFBQVEsT0FBTyxPQUFPRCxVQUFVO0lBQzdDLElBQUksT0FBT0EsVUFBVSxZQUFZLENBQUNFLE9BQU9DLEtBQUssQ0FBQ0gsUUFBUSxPQUFPO0lBRTlELElBQUlDLFNBQVMsWUFBWTtRQUN2QixPQUFPRyxxQkFBUSxDQUFDQyxPQUFPLENBQUNDLE9BQU9OO0lBQ2pDO0FBQ0YifQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaXNWYWxpZElELnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPYmplY3RJRCBmcm9tICdic29uLW9iamVjdGlkJ1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZElEID0gKFxuICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLFxuICB0eXBlOiAnT2JqZWN0SUQnIHwgJ251bWJlcicgfCAndGV4dCcsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKHR5cGUgPT09ICd0ZXh0JykgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIU51bWJlci5pc05hTih2YWx1ZSkpIHJldHVybiB0cnVlXG5cbiAgaWYgKHR5cGUgPT09ICdPYmplY3RJRCcpIHtcbiAgICByZXR1cm4gT2JqZWN0SUQuaXNWYWxpZChTdHJpbmcodmFsdWUpKVxuICB9XG59XG4iXSwibmFtZXMiOlsiaXNWYWxpZElEIiwidmFsdWUiLCJ0eXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJPYmplY3RJRCIsImlzVmFsaWQiLCJTdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7OztxRUFGUTs7Ozs7O0FBRWQsTUFBTUEsWUFBWSxDQUN2QkMsT0FDQUM7SUFFQSxJQUFJQSxTQUFTLFFBQVEsT0FBT0QsU0FBUyxPQUFPQSxVQUFVO0lBQ3RELElBQUksT0FBT0EsVUFBVSxZQUFZLENBQUNFLE9BQU9DLEtBQUssQ0FBQ0gsUUFBUSxPQUFPO0lBRTlELElBQUlDLFNBQVMsWUFBWTtRQUN2QixPQUFPRyxxQkFBUSxDQUFDQyxPQUFPLENBQUNDLE9BQU9OO0lBQ2pDO0FBQ0YifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "2.0.0-beta.9",
3
+ "version": "2.0.1",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -84,6 +84,7 @@
84
84
  "react-dom": "18.2.0",
85
85
  "react-helmet": "6.1.0",
86
86
  "react-i18next": "11.18.6",
87
+ "react-image-crop": "10.1.8",
87
88
  "react-router-dom": "5.3.4",
88
89
  "react-router-navigation-prompt": "1.9.6",
89
90
  "react-select": "5.7.4",
@@ -138,7 +139,6 @@
138
139
  "@types/react-helmet": "6.1.6",
139
140
  "@types/react-router-dom": "5.3.3",
140
141
  "@types/sharp": "0.31.1",
141
- "@types/shelljs": "0.8.12",
142
142
  "@types/uuid": "8.3.4",
143
143
  "confusing-browser-globals": "1.0.11",
144
144
  "copyfiles": "2.4.1",
@@ -148,7 +148,6 @@
148
148
  "file-loader": "6.2.0",
149
149
  "form-data": "3.0.1",
150
150
  "get-port": "5.1.1",
151
- "glob": "8.1.0",
152
151
  "graphql-request": "3.7.0",
153
152
  "mini-css-extract-plugin": "1.6.2",
154
153
  "node-fetch": "2.6.12",
@@ -162,8 +161,6 @@
162
161
  "rimraf": "3.0.2",
163
162
  "sass-loader": "12.6.0",
164
163
  "serve-static": "1.15.0",
165
- "shelljs": "0.8.5",
166
- "slash": "3.0.0",
167
164
  "swc-loader": "^0.2.3",
168
165
  "terser": "5.19.2",
169
166
  "terser-webpack-plugin": "^5.3.6",
package/utilities.d.ts CHANGED
@@ -7,5 +7,7 @@ export { deepCopyObject } from './dist/utilities/deepCopyObject';
7
7
  export { deepMerge } from './dist/utilities/deepMerge';
8
8
  export { default as flattenTopLevelFields } from './dist/utilities/flattenTopLevelFields';
9
9
  export { formatLabels, formatNames, toWords } from './dist/utilities/formatLabels';
10
+ export { getIDType } from './dist/utilities/getIDType';
10
11
  export { getTranslation } from './dist/utilities/getTranslation';
12
+ export { isValidID } from './dist/utilities/isValidID';
11
13
  //# sourceMappingURL=utilities.d.ts.map