@strapi/admin 4.1.7 → 4.1.10-beta.0

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 (397) hide show
  1. package/admin/src/assets/images/icon_offline-cloud.svg +5 -0
  2. package/admin/src/components/ConfigurationsProvider/index.js +51 -0
  3. package/admin/src/components/ConfigurationsProvider/reducer.js +28 -0
  4. package/admin/src/components/LeftMenu/index.js +4 -2
  5. package/admin/src/components/Providers/index.js +8 -4
  6. package/admin/src/components/UnauthenticatedLogo/index.js +4 -2
  7. package/admin/src/content-manager/components/DynamicTable/CellContent/utils/hasContent.js +4 -0
  8. package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +5 -5
  9. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +12 -12
  10. package/admin/src/content-manager/components/FieldComponent/index.js +0 -1
  11. package/admin/src/content-manager/components/Inputs/index.js +4 -4
  12. package/admin/src/content-manager/components/RepeatableComponent/index.js +2 -14
  13. package/admin/src/content-manager/components/RepeatableComponent/utils/getComponentErrorKeys.js +10 -0
  14. package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -1
  15. package/admin/src/hooks/useNavigatorOnLine/index.js +31 -0
  16. package/admin/src/pages/App/index.js +7 -2
  17. package/admin/src/pages/MarketplacePage/components/MissingPluginBanner/index.js +40 -0
  18. package/admin/src/pages/MarketplacePage/components/PageHeader/index.js +46 -0
  19. package/admin/src/pages/MarketplacePage/index.js +48 -26
  20. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/index.js +85 -0
  21. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/init.js +13 -0
  22. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/reducer.js +43 -0
  23. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +116 -0
  24. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/reducer.js +28 -0
  25. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/stepper.js +25 -0
  26. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/AddLogoDialog.js +67 -0
  27. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +176 -0
  28. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +82 -0
  29. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/ImageCardAsset.js +51 -0
  30. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +97 -0
  31. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +85 -0
  32. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/reducer.js +28 -0
  33. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +149 -87
  34. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +16 -0
  35. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/constants.js +3 -0
  36. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/getFormData.js +17 -0
  37. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/parseFileMetadatas.js +76 -0
  38. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/prefixAllUrls.js +17 -0
  39. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/urlToFile.js +21 -0
  40. package/admin/src/translations/de.json +244 -23
  41. package/admin/src/translations/en.json +29 -0
  42. package/build/1856.521a99fd.chunk.js +172 -0
  43. package/build/2481.7ba28142.chunk.js +184 -0
  44. package/build/2758.927ecb6d.chunk.js +162 -0
  45. package/build/2912.79c2b3c8.chunk.js +253 -0
  46. package/build/372.3720845e.chunk.js +899 -0
  47. package/build/4715.77e04177.chunk.js +385 -0
  48. package/build/4800.d3ebc81d.chunk.js +1 -0
  49. package/build/497.fbd75558.chunk.js +284 -0
  50. package/build/4982.f53b78a4.chunk.js +308 -0
  51. package/build/5289.0341db2d.chunk.js +336 -0
  52. package/build/6404.80bf5858.chunk.js +506 -0
  53. package/build/6925.fafef528.chunk.js +761 -0
  54. package/build/7197.959bbe97.chunk.js +113 -0
  55. package/build/7589.f3b26345.chunk.js +194 -0
  56. package/build/7841.f0e7d629.chunk.js +253 -0
  57. package/build/8469.3af1823d.chunk.js +1 -0
  58. package/build/9115.318a6841.chunk.js +1 -0
  59. package/build/9298.f97fcef0.chunk.js +334 -0
  60. package/build/948.d64fb515.chunk.js +2 -0
  61. package/build/9853.d96fbc67.chunk.js +356 -0
  62. package/build/Admin-authenticatedApp.d8767873.chunk.js +80 -0
  63. package/build/Admin_homePage.50b6c129.chunk.js +71 -0
  64. package/build/Admin_marketplace.514ace37.chunk.js +11 -0
  65. package/build/Admin_pluginsPage.e895d79f.chunk.js +1 -0
  66. package/build/Admin_profilePage.33cfed9b.chunk.js +15 -0
  67. package/build/Admin_settingsPage.0d94a598.chunk.js +180 -0
  68. package/build/a6b842e0b6d2b61135d1.svg +5 -0
  69. package/build/admin-edit-roles-page.06f3d288.chunk.js +1 -0
  70. package/build/admin-edit-users.6a325cca.chunk.js +11 -0
  71. package/build/admin-users.b89adf82.chunk.js +12 -0
  72. package/build/api-tokens-create-page.635e20c8.chunk.js +1 -0
  73. package/build/api-tokens-edit-page.db07253e.chunk.js +1 -0
  74. package/build/api-tokens-list-page.346c2149.chunk.js +15 -0
  75. package/build/ar-json.d4cb26d9.chunk.js +1 -0
  76. package/build/codemirror-addon-closebrackets.c0f97916.chunk.js +2 -0
  77. package/build/codemirror-addon-lint-js.7c35dcb0.chunk.js +1 -0
  78. package/build/codemirror-addon-lint.505ff1d4.chunk.js +1 -0
  79. package/build/codemirror-addon-mark-selection.653e904d.chunk.js +1 -0
  80. package/build/codemirror-css.98490df3.chunk.js +346 -0
  81. package/build/codemirror-javacript.cafbda9c.chunk.js +1 -0
  82. package/build/codemirror-theme.b3c64617.chunk.js +34 -0
  83. package/build/content-manager.78e3f35c.chunk.js +1204 -0
  84. package/build/content-type-builder-translation-ar-json.142327af.chunk.js +1 -0
  85. package/build/content-type-builder-translation-cs-json.4aafb972.chunk.js +1 -0
  86. package/build/content-type-builder-translation-de-json.0d7696b9.chunk.js +1 -0
  87. package/build/{content-type-builder-translation-dk-json.52805572.chunk.js → content-type-builder-translation-dk-json.4729f055.chunk.js} +1 -1
  88. package/build/content-type-builder-translation-en-json.e5110288.chunk.js +1 -0
  89. package/build/{content-type-builder-translation-es-json.5a362abf.chunk.js → content-type-builder-translation-es-json.333cf47f.chunk.js} +1 -1
  90. package/build/content-type-builder-translation-fr-json.aa6eeea8.chunk.js +1 -0
  91. package/build/{content-type-builder-translation-id-json.4a21dfab.chunk.js → content-type-builder-translation-id-json.7c00a32a.chunk.js} +1 -1
  92. package/build/content-type-builder-translation-it-json.a906b389.chunk.js +1 -0
  93. package/build/content-type-builder-translation-ja-json.87f71930.chunk.js +1 -0
  94. package/build/content-type-builder-translation-ko-json.51201b12.chunk.js +1 -0
  95. package/build/{content-type-builder-translation-ms-json.3755f8c8.chunk.js → content-type-builder-translation-ms-json.963a1a01.chunk.js} +1 -1
  96. package/build/{content-type-builder-translation-nl-json.6f8d924b.chunk.js → content-type-builder-translation-nl-json.c46c8f30.chunk.js} +1 -1
  97. package/build/{content-type-builder-translation-pl-json.fc0b0c20.chunk.js → content-type-builder-translation-pl-json.a866acda.chunk.js} +1 -1
  98. package/build/content-type-builder-translation-pt-BR-json.5739a2aa.chunk.js +1 -0
  99. package/build/content-type-builder-translation-pt-json.766bd747.chunk.js +1 -0
  100. package/build/content-type-builder-translation-ru-json.cf8d7c5c.chunk.js +1 -0
  101. package/build/content-type-builder-translation-sk-json.3a6defe0.chunk.js +1 -0
  102. package/build/content-type-builder-translation-th-json.c96a2d3f.chunk.js +1 -0
  103. package/build/content-type-builder-translation-tr-json.2e52bc60.chunk.js +1 -0
  104. package/build/content-type-builder-translation-uk-json.d8c0b6dd.chunk.js +1 -0
  105. package/build/content-type-builder-translation-zh-Hans-json.92a27f59.chunk.js +1 -0
  106. package/build/content-type-builder-translation-zh-json.2cc55621.chunk.js +1 -0
  107. package/build/content-type-builder.0d8729ad.chunk.js +141 -0
  108. package/build/cropper-css.0055cd53.chunk.js +306 -0
  109. package/build/cs-json.c8f28ba8.chunk.js +1 -0
  110. package/build/de-json.0b92acd2.chunk.js +1 -0
  111. package/build/{dk-json.fb9ee45a.chunk.js → dk-json.9f1bc016.chunk.js} +1 -1
  112. package/build/email-settings-page.fcc7e65d.chunk.js +103 -0
  113. package/build/{email-translation-de-json.559a7d5f.chunk.js → email-translation-ar-json.c624512d.chunk.js} +1 -1
  114. package/build/{email-translation-ar-json.95d90eb4.chunk.js → email-translation-cs-json.cb18caab.chunk.js} +1 -1
  115. package/build/{email-translation-it-json.3de61cb6.chunk.js → email-translation-de-json.54743260.chunk.js} +1 -1
  116. package/build/{email-translation-dk-json.f8a595bf.chunk.js → email-translation-dk-json.f323fe4e.chunk.js} +1 -1
  117. package/build/{email-translation-en-json.fa0dc92b.chunk.js → email-translation-en-json.6da7e388.chunk.js} +1 -1
  118. package/build/{email-translation-es-json.eb303dea.chunk.js → email-translation-es-json.9021417d.chunk.js} +1 -1
  119. package/build/{email-translation-fr-json.49c3c888.chunk.js → email-translation-fr-json.9f125db0.chunk.js} +1 -1
  120. package/build/email-translation-id-json.3bcae5f5.chunk.js +1 -0
  121. package/build/{email-translation-cs-json.dfd1f3f2.chunk.js → email-translation-it-json.6ffd1774.chunk.js} +1 -1
  122. package/build/email-translation-ja-json.72b3f73c.chunk.js +1 -0
  123. package/build/email-translation-ko-json.e61d4e7a.chunk.js +1 -0
  124. package/build/email-translation-ms-json.b2b11e05.chunk.js +1 -0
  125. package/build/email-translation-nl-json.5349635f.chunk.js +1 -0
  126. package/build/email-translation-pl-json.6da50d0f.chunk.js +1 -0
  127. package/build/email-translation-pt-BR-json.2c98ab20.chunk.js +1 -0
  128. package/build/email-translation-pt-json.959ea070.chunk.js +1 -0
  129. package/build/email-translation-ru-json.d508cf3e.chunk.js +1 -0
  130. package/build/email-translation-sk-json.fa1fd4b3.chunk.js +1 -0
  131. package/build/email-translation-th-json.989cfecc.chunk.js +1 -0
  132. package/build/email-translation-tr-json.87f2feb3.chunk.js +1 -0
  133. package/build/email-translation-uk-json.0396a803.chunk.js +1 -0
  134. package/build/email-translation-vi-json.c0d8c414.chunk.js +1 -0
  135. package/build/email-translation-zh-Hans-json.b463cb25.chunk.js +1 -0
  136. package/build/email-translation-zh-json.3455468b.chunk.js +1 -0
  137. package/build/en-json.ca572384.chunk.js +1 -0
  138. package/build/{es-json.8f4d89e2.chunk.js → es-json.2a5a9fc1.chunk.js} +1 -1
  139. package/build/fontawesome-css-all.b88d464e.chunk.js +4618 -0
  140. package/build/fontawesome-css.59dc4459.chunk.js +6 -0
  141. package/build/fontawesome-js.252cc5f3.chunk.js +7 -0
  142. package/build/fr-json.84064a0b.chunk.js +1 -0
  143. package/build/he-json.d40da459.chunk.js +1 -0
  144. package/build/highlight.js.9d8ef460.chunk.js +86 -0
  145. package/build/hu-json.c81ce352.chunk.js +1 -0
  146. package/build/i18n-settings-page.477ffac7.chunk.js +101 -0
  147. package/build/{i18n-translation-de-json.96ae1f68.chunk.js → i18n-translation-de-json.92534555.chunk.js} +1 -1
  148. package/build/{i18n-translation-dk-json.ecf02d28.chunk.js → i18n-translation-dk-json.54f410ca.chunk.js} +1 -1
  149. package/build/{i18n-translation-en-json.4d823f62.chunk.js → i18n-translation-en-json.85bc892c.chunk.js} +1 -1
  150. package/build/i18n-translation-es-json.488206ae.chunk.js +1 -0
  151. package/build/i18n-translation-fr-json.0839d68d.chunk.js +1 -0
  152. package/build/i18n-translation-ko-json.d0bc1203.chunk.js +1 -0
  153. package/build/i18n-translation-zh-Hans-json.560a98e3.chunk.js +1 -0
  154. package/build/{id-json.fef679cb.chunk.js → id-json.fad45d17.chunk.js} +1 -1
  155. package/build/index.html +1 -1
  156. package/build/it-json.12df4cdf.chunk.js +1 -0
  157. package/build/ja-json.850237e9.chunk.js +1 -0
  158. package/build/ko-json.2f3d256e.chunk.js +1 -0
  159. package/build/main.06f66609.js +7909 -0
  160. package/build/{ms-json.f46167ef.chunk.js → ms-json.836ed013.chunk.js} +1 -1
  161. package/build/nl-json.465b173f.chunk.js +1 -0
  162. package/build/{no-json.17ecda5d.chunk.js → no-json.e8749dd4.chunk.js} +1 -1
  163. package/build/{pl-json.0db77f2c.chunk.js → pl-json.94f05d2c.chunk.js} +1 -1
  164. package/build/{pt-BR-json.4c90cb2d.chunk.js → pt-BR-json.6301d49b.chunk.js} +1 -1
  165. package/build/pt-json.c23020ab.chunk.js +1 -0
  166. package/build/ru-json.4560906c.chunk.js +1 -0
  167. package/build/runtime~main.dc1c7ef6.js +2 -0
  168. package/build/sk-json.5b33afc2.chunk.js +1 -0
  169. package/build/sso-settings-page.0b4d2106.chunk.js +1 -0
  170. package/build/sv-json.cdcac02d.chunk.js +1 -0
  171. package/build/th-json.3aadaec6.chunk.js +1 -0
  172. package/build/tr-json.276e59fe.chunk.js +1 -0
  173. package/build/uk-json.5b5b9c27.chunk.js +1 -0
  174. package/build/upload-settings.1456cd65.chunk.js +101 -0
  175. package/build/upload-translation-de-json.b642da08.chunk.js +1 -0
  176. package/build/{upload-translation-dk-json.b74134c8.chunk.js → upload-translation-dk-json.fc61df13.chunk.js} +1 -1
  177. package/build/{upload-translation-en-json.c4e56528.chunk.js → upload-translation-en-json.59269508.chunk.js} +1 -1
  178. package/build/{upload-translation-es-json.15a3015f.chunk.js → upload-translation-es-json.8ec935ef.chunk.js} +1 -1
  179. package/build/upload-translation-fr-json.eb9b4f84.chunk.js +1 -0
  180. package/build/upload-translation-he-json.c226f2dc.chunk.js +1 -0
  181. package/build/upload-translation-it-json.8e58456e.chunk.js +1 -0
  182. package/build/upload-translation-ja-json.1378a2e7.chunk.js +1 -0
  183. package/build/upload-translation-ko-json.5e06e112.chunk.js +1 -0
  184. package/build/{upload-translation-ms-json.30974c82.chunk.js → upload-translation-ms-json.dc3bf0d7.chunk.js} +1 -1
  185. package/build/{upload-translation-pl-json.3740abed.chunk.js → upload-translation-pl-json.6071e38c.chunk.js} +1 -1
  186. package/build/upload-translation-pt-BR-json.7e8d9550.chunk.js +1 -0
  187. package/build/upload-translation-ru-json.da2529f3.chunk.js +1 -0
  188. package/build/upload-translation-sk-json.bfdf4f09.chunk.js +1 -0
  189. package/build/upload-translation-th-json.6a48b826.chunk.js +1 -0
  190. package/build/upload-translation-uk-json.6fb09148.chunk.js +1 -0
  191. package/build/upload-translation-zh-Hans-json.c9622577.chunk.js +1 -0
  192. package/build/upload-translation-zh-json.711f804b.chunk.js +1 -0
  193. package/build/upload.d45af2c9.chunk.js +105 -0
  194. package/build/users-advanced-settings-page.5aa21b84.chunk.js +101 -0
  195. package/build/users-email-settings-page.8b561ea3.chunk.js +1 -0
  196. package/build/users-permissions-translation-ar-json.e8123ed2.chunk.js +1 -0
  197. package/build/users-permissions-translation-cs-json.e6649c5f.chunk.js +1 -0
  198. package/build/{users-permissions-translation-de-json.a5c8db9c.chunk.js → users-permissions-translation-de-json.c3628843.chunk.js} +1 -1
  199. package/build/{users-permissions-translation-dk-json.1fe5e07a.chunk.js → users-permissions-translation-dk-json.fe39c74b.chunk.js} +1 -1
  200. package/build/users-permissions-translation-en-json.3fe86528.chunk.js +1 -0
  201. package/build/{users-permissions-translation-es-json.05669296.chunk.js → users-permissions-translation-es-json.1bb9cde2.chunk.js} +1 -1
  202. package/build/users-permissions-translation-fr-json.172aa69f.chunk.js +1 -0
  203. package/build/{users-permissions-translation-id-json.186a3f65.chunk.js → users-permissions-translation-id-json.5aadd143.chunk.js} +1 -1
  204. package/build/users-permissions-translation-it-json.7d377480.chunk.js +1 -0
  205. package/build/users-permissions-translation-ja-json.4967badf.chunk.js +1 -0
  206. package/build/users-permissions-translation-ko-json.3be77775.chunk.js +1 -0
  207. package/build/{users-permissions-translation-ms-json.3a128ff4.chunk.js → users-permissions-translation-ms-json.ea8a2baf.chunk.js} +1 -1
  208. package/build/{users-permissions-translation-nl-json.4146aed1.chunk.js → users-permissions-translation-nl-json.d638c4ce.chunk.js} +1 -1
  209. package/build/{users-permissions-translation-pl-json.a61de7ed.chunk.js → users-permissions-translation-pl-json.3c4fe81c.chunk.js} +1 -1
  210. package/build/users-permissions-translation-pt-BR-json.f6791a86.chunk.js +1 -0
  211. package/build/users-permissions-translation-pt-json.38afed04.chunk.js +1 -0
  212. package/build/users-permissions-translation-ru-json.319d51ef.chunk.js +1 -0
  213. package/build/users-permissions-translation-sk-json.ba1cd385.chunk.js +1 -0
  214. package/build/users-permissions-translation-sv-json.83c60841.chunk.js +1 -0
  215. package/build/users-permissions-translation-th-json.68873214.chunk.js +1 -0
  216. package/build/users-permissions-translation-tr-json.cdc49a3c.chunk.js +1 -0
  217. package/build/users-permissions-translation-uk-json.63eaa01c.chunk.js +1 -0
  218. package/build/users-permissions-translation-vi-json.dccc02fc.chunk.js +1 -0
  219. package/build/users-permissions-translation-zh-Hans-json.c3fd301b.chunk.js +1 -0
  220. package/build/users-permissions-translation-zh-json.e03ae2a4.chunk.js +1 -0
  221. package/build/users-providers-settings-page.82141ace.chunk.js +1 -0
  222. package/build/users-roles-settings-page.97d7092d.chunk.js +30 -0
  223. package/build/vi-json.3d14e91e.chunk.js +1 -0
  224. package/build/webhook-edit-page.2e6727ab.chunk.js +23 -0
  225. package/build/webhook-list-page.927257b5.chunk.js +133 -0
  226. package/build/zh-Hans-json.c84ce330.chunk.js +1 -0
  227. package/build/zh-json.96bf6019.chunk.js +1 -0
  228. package/package.json +10 -14
  229. package/scripts/build.js +1 -1
  230. package/server/bootstrap.js +3 -1
  231. package/server/config/admin-actions.js +14 -0
  232. package/server/config/index.js +0 -1
  233. package/server/controllers/admin.js +40 -2
  234. package/server/routes/admin.js +28 -0
  235. package/server/services/api-token.js +15 -14
  236. package/server/services/index.js +1 -0
  237. package/server/services/project-settings.js +173 -0
  238. package/server/services/token.js +13 -0
  239. package/server/utils/index.d.ts +2 -0
  240. package/server/validation/project-settings.js +39 -0
  241. package/webpack.config.js +78 -59
  242. package/build/1094.e1db3a1a.chunk.js +0 -1
  243. package/build/1454.f065d92a.chunk.js +0 -2
  244. package/build/1454.f065d92a.chunk.js.LICENSE.txt +0 -7
  245. package/build/1856.a30bd09b.chunk.js +0 -1
  246. package/build/2481.4eae9408.chunk.js +0 -1
  247. package/build/2912.c5f76e65.chunk.js +0 -1
  248. package/build/4362.d8299f0c.chunk.js +0 -1
  249. package/build/4715.8a2db02a.chunk.js +0 -1
  250. package/build/4800.f4a1384a.chunk.js +0 -1
  251. package/build/497.3fcf6196.chunk.js +0 -1
  252. package/build/4982.601f6196.chunk.js +0 -1
  253. package/build/6404.3c2d0a81.chunk.js +0 -1
  254. package/build/6925.bd694b04.chunk.js +0 -2
  255. package/build/6925.bd694b04.chunk.js.LICENSE.txt +0 -5
  256. package/build/7841.490dbbf1.chunk.js +0 -1
  257. package/build/8042.1d66811a.chunk.js +0 -2
  258. package/build/8042.1d66811a.chunk.js.LICENSE.txt +0 -4
  259. package/build/8469.8d819a3c.chunk.js +0 -1
  260. package/build/849.82c29ba7.chunk.js +0 -1
  261. package/build/9235.ced8aebf.chunk.js +0 -1
  262. package/build/9260.4233fae2.chunk.js +0 -2
  263. package/build/9260.4233fae2.chunk.js.LICENSE.txt +0 -15
  264. package/build/9853.6ff595fa.chunk.js +0 -1
  265. package/build/9988.fe838ba6.chunk.js +0 -2
  266. package/build/9988.fe838ba6.chunk.js.LICENSE.txt +0 -9
  267. package/build/Admin-authenticatedApp.61248de6.chunk.js +0 -1
  268. package/build/Admin_homePage.4a3aa22e.chunk.js +0 -1
  269. package/build/Admin_marketplace.4748c8f6.chunk.js +0 -1
  270. package/build/Admin_pluginsPage.89a96d29.chunk.js +0 -1
  271. package/build/Admin_profilePage.7869a07a.chunk.js +0 -1
  272. package/build/Admin_settingsPage.2763454c.chunk.js +0 -1
  273. package/build/admin-edit-roles-page.fbcc195d.chunk.js +0 -1
  274. package/build/admin-edit-users.91e8f5e4.chunk.js +0 -1
  275. package/build/admin-users.0a6acd73.chunk.js +0 -1
  276. package/build/api-tokens-create-page.76e13a35.chunk.js +0 -1
  277. package/build/api-tokens-edit-page.b3d48a7f.chunk.js +0 -1
  278. package/build/api-tokens-list-page.4e822ac8.chunk.js +0 -1
  279. package/build/ar-json.cc19c13c.chunk.js +0 -1
  280. package/build/codemirror-addon-closebrackets.0cfe64d0.chunk.js +0 -1
  281. package/build/codemirror-addon-lint-js.a6eeef9c.chunk.js +0 -1
  282. package/build/codemirror-addon-lint.91580cda.chunk.js +0 -1
  283. package/build/codemirror-addon-mark-selection.4dca121f.chunk.js +0 -1
  284. package/build/codemirror-css.48b438c9.chunk.js +0 -1
  285. package/build/codemirror-javacript.8c7c015d.chunk.js +0 -1
  286. package/build/codemirror-theme.b5559efc.chunk.js +0 -1
  287. package/build/content-manager.abde723b.chunk.js +0 -1
  288. package/build/content-type-builder-translation-ar-json.ab0a0caa.chunk.js +0 -1
  289. package/build/content-type-builder-translation-cs-json.e3913c9f.chunk.js +0 -1
  290. package/build/content-type-builder-translation-de-json.5eb3135d.chunk.js +0 -1
  291. package/build/content-type-builder-translation-en-json.e51b2ec3.chunk.js +0 -1
  292. package/build/content-type-builder-translation-fr-json.afd4a12f.chunk.js +0 -1
  293. package/build/content-type-builder-translation-it-json.4fa203b1.chunk.js +0 -1
  294. package/build/content-type-builder-translation-ja-json.cbb3b88a.chunk.js +0 -1
  295. package/build/content-type-builder-translation-ko-json.7daf86c3.chunk.js +0 -1
  296. package/build/content-type-builder-translation-pt-BR-json.86b192fa.chunk.js +0 -1
  297. package/build/content-type-builder-translation-pt-json.b584f79f.chunk.js +0 -1
  298. package/build/content-type-builder-translation-ru-json.7648049a.chunk.js +0 -1
  299. package/build/content-type-builder-translation-sk-json.c12a8dec.chunk.js +0 -1
  300. package/build/content-type-builder-translation-th-json.668cd5f5.chunk.js +0 -1
  301. package/build/content-type-builder-translation-tr-json.0f52e1e8.chunk.js +0 -1
  302. package/build/content-type-builder-translation-uk-json.4bf80448.chunk.js +0 -1
  303. package/build/content-type-builder-translation-zh-Hans-json.76e58138.chunk.js +0 -1
  304. package/build/content-type-builder-translation-zh-json.0bec81f1.chunk.js +0 -1
  305. package/build/content-type-builder.19ae7eef.chunk.js +0 -1
  306. package/build/cropper-css.ace19575.chunk.js +0 -1
  307. package/build/cs-json.ce6f2e52.chunk.js +0 -1
  308. package/build/de-json.2087d61e.chunk.js +0 -1
  309. package/build/email-settings-page.40ee2bda.chunk.js +0 -1
  310. package/build/email-translation-id-json.e3c2101d.chunk.js +0 -1
  311. package/build/email-translation-ja-json.66337e44.chunk.js +0 -1
  312. package/build/email-translation-ko-json.52bbd7b4.chunk.js +0 -1
  313. package/build/email-translation-ms-json.e39256df.chunk.js +0 -1
  314. package/build/email-translation-nl-json.12d28adb.chunk.js +0 -1
  315. package/build/email-translation-pl-json.9585a84e.chunk.js +0 -1
  316. package/build/email-translation-pt-BR-json.6c04b3ef.chunk.js +0 -1
  317. package/build/email-translation-pt-json.0239be04.chunk.js +0 -1
  318. package/build/email-translation-ru-json.f3b4fecc.chunk.js +0 -1
  319. package/build/email-translation-sk-json.76dbaaa6.chunk.js +0 -1
  320. package/build/email-translation-th-json.25ad73e7.chunk.js +0 -1
  321. package/build/email-translation-tr-json.ae04a9f2.chunk.js +0 -1
  322. package/build/email-translation-uk-json.03b27b08.chunk.js +0 -1
  323. package/build/email-translation-vi-json.3e1dd5b3.chunk.js +0 -1
  324. package/build/email-translation-zh-Hans-json.0df4ca59.chunk.js +0 -1
  325. package/build/email-translation-zh-json.82978eb0.chunk.js +0 -1
  326. package/build/en-json.94e6ed8a.chunk.js +0 -1
  327. package/build/fontawesome-css-all.3b89f909.chunk.js +0 -1
  328. package/build/fontawesome-css.36cff9ae.chunk.js +0 -1
  329. package/build/fontawesome-js.2639263c.chunk.js +0 -2
  330. package/build/fontawesome-js.2639263c.chunk.js.LICENSE.txt +0 -4
  331. package/build/fr-json.2a0b93ed.chunk.js +0 -1
  332. package/build/he-json.917d416c.chunk.js +0 -1
  333. package/build/highlight.js.6321cb45.chunk.js +0 -1
  334. package/build/hu-json.bee23c51.chunk.js +0 -1
  335. package/build/i18n-settings-page.1f6be747.chunk.js +0 -1
  336. package/build/i18n-translation-es-json.7049afa2.chunk.js +0 -1
  337. package/build/i18n-translation-fr-json.c6367bc9.chunk.js +0 -1
  338. package/build/i18n-translation-ko-json.aecb7e01.chunk.js +0 -1
  339. package/build/i18n-translation-zh-Hans-json.258b2e1a.chunk.js +0 -1
  340. package/build/it-json.937b2108.chunk.js +0 -1
  341. package/build/ja-json.b4818378.chunk.js +0 -1
  342. package/build/ko-json.8294a7fc.chunk.js +0 -1
  343. package/build/main.cd1c939f.js +0 -2
  344. package/build/main.cd1c939f.js.LICENSE.txt +0 -91
  345. package/build/nl-json.86eae27d.chunk.js +0 -1
  346. package/build/pt-json.ef0efd89.chunk.js +0 -1
  347. package/build/ru-json.da33236d.chunk.js +0 -1
  348. package/build/runtime~main.c5ab8a8f.js +0 -1
  349. package/build/sk-json.797e898f.chunk.js +0 -1
  350. package/build/sso-settings-page.c5dda65d.chunk.js +0 -1
  351. package/build/sv-json.5bbe6a4f.chunk.js +0 -1
  352. package/build/th-json.c1393c06.chunk.js +0 -1
  353. package/build/tr-json.57cde8b0.chunk.js +0 -1
  354. package/build/uk-json.c6df66d2.chunk.js +0 -1
  355. package/build/upload-settings.9d3231f4.chunk.js +0 -1
  356. package/build/upload-translation-de-json.55a7e43a.chunk.js +0 -1
  357. package/build/upload-translation-fr-json.b12f7247.chunk.js +0 -1
  358. package/build/upload-translation-he-json.bee013d1.chunk.js +0 -1
  359. package/build/upload-translation-it-json.43ec0a8d.chunk.js +0 -1
  360. package/build/upload-translation-ja-json.03f1af04.chunk.js +0 -1
  361. package/build/upload-translation-ko-json.08ad9013.chunk.js +0 -1
  362. package/build/upload-translation-pt-BR-json.c7656183.chunk.js +0 -1
  363. package/build/upload-translation-ru-json.0dd4f526.chunk.js +0 -1
  364. package/build/upload-translation-sk-json.55cacd22.chunk.js +0 -1
  365. package/build/upload-translation-th-json.f7aa9392.chunk.js +0 -1
  366. package/build/upload-translation-uk-json.696a16f3.chunk.js +0 -1
  367. package/build/upload-translation-zh-Hans-json.de7bc63f.chunk.js +0 -1
  368. package/build/upload-translation-zh-json.bbc1ed41.chunk.js +0 -1
  369. package/build/upload.8edef1ea.chunk.js +0 -1
  370. package/build/users-advanced-settings-page.48c437f0.chunk.js +0 -1
  371. package/build/users-email-settings-page.f39866d6.chunk.js +0 -1
  372. package/build/users-permissions-translation-ar-json.667e7eee.chunk.js +0 -1
  373. package/build/users-permissions-translation-cs-json.995b5d76.chunk.js +0 -1
  374. package/build/users-permissions-translation-en-json.0e0bc290.chunk.js +0 -1
  375. package/build/users-permissions-translation-fr-json.3e3522c3.chunk.js +0 -1
  376. package/build/users-permissions-translation-it-json.ee5742c4.chunk.js +0 -1
  377. package/build/users-permissions-translation-ja-json.c9cafa6e.chunk.js +0 -1
  378. package/build/users-permissions-translation-ko-json.170f89c2.chunk.js +0 -1
  379. package/build/users-permissions-translation-pt-BR-json.51b1cc15.chunk.js +0 -1
  380. package/build/users-permissions-translation-pt-json.85f0e0e1.chunk.js +0 -1
  381. package/build/users-permissions-translation-ru-json.a19b2400.chunk.js +0 -1
  382. package/build/users-permissions-translation-sk-json.27af7260.chunk.js +0 -1
  383. package/build/users-permissions-translation-sv-json.739657b9.chunk.js +0 -1
  384. package/build/users-permissions-translation-th-json.f001fff3.chunk.js +0 -1
  385. package/build/users-permissions-translation-tr-json.3aae5dda.chunk.js +0 -1
  386. package/build/users-permissions-translation-uk-json.a66c7a8c.chunk.js +0 -1
  387. package/build/users-permissions-translation-vi-json.685c65cc.chunk.js +0 -1
  388. package/build/users-permissions-translation-zh-Hans-json.2202741e.chunk.js +0 -1
  389. package/build/users-permissions-translation-zh-json.429a3190.chunk.js +0 -1
  390. package/build/users-providers-settings-page.574ed765.chunk.js +0 -1
  391. package/build/users-roles-settings-page.b836dc30.chunk.js +0 -1
  392. package/build/vi-json.104a6f3a.chunk.js +0 -1
  393. package/build/webhook-edit-page.b791c6f9.chunk.js +0 -1
  394. package/build/webhook-list-page.502d1236.chunk.js +0 -1
  395. package/build/zh-Hans-json.9afc1adf.chunk.js +0 -1
  396. package/build/zh-json.f36abb77.chunk.js +0 -1
  397. package/server/config/api-token.js +0 -7
@@ -8,6 +8,11 @@ const { ValidationError } = require('@strapi/utils').errors;
8
8
  // eslint-disable-next-line node/no-extraneous-require
9
9
  const ee = require('@strapi/strapi/lib/utils/ee');
10
10
 
11
+ const {
12
+ validateUpdateProjectSettings,
13
+ validateUpdateProjectSettingsFiles,
14
+ validateUpdateProjectSettingsImagesDimensions,
15
+ } = require('../validation/project-settings');
11
16
  const { getService } = require('../utils');
12
17
 
13
18
  const PLUGIN_NAME_REGEX = /^[A-Za-z][A-Za-z0-9-_]+$/;
@@ -37,10 +42,43 @@ module.exports = {
37
42
  },
38
43
 
39
44
  async init() {
40
- const uuid = strapi.config.get('uuid', false);
45
+ let uuid = strapi.config.get('uuid', false);
41
46
  const hasAdmin = await getService('user').exists();
47
+ const { menuLogo } = await getService('project-settings').getProjectSettings();
48
+ // set to null if telemetryDisabled flag not avaialble in package.json
49
+ const telemetryDisabled = strapi.config.get('packageJsonStrapi.telemetryDisabled', null);
42
50
 
43
- return { data: { uuid, hasAdmin } };
51
+ if (telemetryDisabled !== null && telemetryDisabled === true) {
52
+ uuid = false;
53
+ }
54
+
55
+ return {
56
+ data: {
57
+ uuid,
58
+ hasAdmin,
59
+ menuLogo: menuLogo ? menuLogo.url : null,
60
+ },
61
+ };
62
+ },
63
+
64
+ async getProjectSettings() {
65
+ return getService('project-settings').getProjectSettings();
66
+ },
67
+
68
+ async updateProjectSettings(ctx) {
69
+ const projectSettingsService = getService('project-settings');
70
+
71
+ const {
72
+ request: { files, body },
73
+ } = ctx;
74
+
75
+ await validateUpdateProjectSettings(body);
76
+ await validateUpdateProjectSettingsFiles(files);
77
+
78
+ const formatedFiles = await projectSettingsService.parseFilesData(files);
79
+ await validateUpdateProjectSettingsImagesDimensions(formatedFiles);
80
+
81
+ return projectSettingsService.updateProjectSettings({ ...body, ...formatedFiles });
44
82
  },
45
83
 
46
84
  async information() {
@@ -7,6 +7,34 @@ module.exports = [
7
7
  handler: 'admin.init',
8
8
  config: { auth: false },
9
9
  },
10
+ {
11
+ method: 'GET',
12
+ path: '/project-settings',
13
+ handler: 'admin.getProjectSettings',
14
+ config: {
15
+ policies: [
16
+ 'admin::isAuthenticatedAdmin',
17
+ {
18
+ name: 'admin::hasPermissions',
19
+ config: { actions: ['admin::project-settings.read'] },
20
+ },
21
+ ],
22
+ },
23
+ },
24
+ {
25
+ method: 'POST',
26
+ path: '/project-settings',
27
+ handler: 'admin.updateProjectSettings',
28
+ config: {
29
+ policies: [
30
+ 'admin::isAuthenticatedAdmin',
31
+ {
32
+ name: 'admin::hasPermissions',
33
+ config: { actions: ['admin::project-settings.update'] },
34
+ },
35
+ ],
36
+ },
37
+ },
10
38
  {
11
39
  method: 'GET',
12
40
  path: '/project-type',
@@ -74,20 +74,21 @@ const create = async attributes => {
74
74
  /**
75
75
  * @returns {void}
76
76
  */
77
- const createSaltIfNotDefined = () => {
78
- if (strapi.config.get('admin.apiToken.salt')) {
79
- return;
77
+ const checkSaltIsDefined = () => {
78
+ if (!strapi.config.get('admin.apiToken.salt')) {
79
+ // TODO V5: stop reading API_TOKEN_SALT
80
+ if (process.env.API_TOKEN_SALT) {
81
+ process.emitWarning(`[deprecated] In future versions, Strapi will stop reading directly from the environment variable API_TOKEN_SALT. Please set apiToken.salt in config/admin.js instead.
82
+ For security reasons, keep storing the secret in an environment variable and use env() to read it in config/admin.js (ex: \`apiToken: { salt: env('API_TOKEN_SALT') }\`). See https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/optional/environment.html#configuration-using-environment-variables.`);
83
+
84
+ strapi.config.set('admin.apiToken.salt', process.env.API_TOKEN_SALT);
85
+ } else {
86
+ throw new Error(
87
+ `Missing apiToken.salt. Please set apiToken.salt in config/admin.js (ex: you can generate one using Node with \`crypto.randomBytes(16).toString('base64')\`).
88
+ For security reasons, prefer storing the secret in an environment variable and read it in config/admin.js. See https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/optional/environment.html#configuration-using-environment-variables.`
89
+ );
90
+ }
80
91
  }
81
-
82
- if (process.env.API_TOKEN_SALT) {
83
- throw new Error(
84
- `There's something wrong with the configuration of your api-token salt. If you have changed the env variable used in the configuration file, please verify that you have created and set the variable in your .env file.`
85
- );
86
- }
87
-
88
- const salt = crypto.randomBytes(16).toString('hex');
89
- strapi.fs.appendFile(process.env.ENV_PATH || '.env', `API_TOKEN_SALT=${salt}\n`);
90
- strapi.config.set('admin.apiToken.salt', salt);
91
92
  };
92
93
 
93
94
  /**
@@ -162,7 +163,7 @@ const getBy = async (whereParams = {}) => {
162
163
  module.exports = {
163
164
  create,
164
165
  exists,
165
- createSaltIfNotDefined,
166
+ checkSaltIsDefined,
166
167
  hash,
167
168
  list,
168
169
  revoke,
@@ -13,4 +13,5 @@ module.exports = {
13
13
  auth: require('./auth'),
14
14
  action: require('./action'),
15
15
  'api-token': require('./api-token'),
16
+ 'project-settings': require('./project-settings'),
16
17
  };
@@ -0,0 +1,173 @@
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const { pick } = require('lodash');
5
+
6
+ const PROJECT_SETTINGS_FILE_INPUTS = ['menuLogo'];
7
+ const DEFAULT_PROJECT_SETTINGS = {
8
+ menuLogo: null,
9
+ };
10
+
11
+ const parseFilesData = async files => {
12
+ const formatedFilesData = {};
13
+
14
+ await Promise.all(
15
+ PROJECT_SETTINGS_FILE_INPUTS.map(async inputName => {
16
+ const file = files[inputName];
17
+
18
+ // Skip empty file inputs
19
+ if (!file) {
20
+ return;
21
+ }
22
+
23
+ const getStream = () => fs.createReadStream(file.path);
24
+
25
+ // Add formated data for the upload provider
26
+ formatedFilesData[inputName] = strapi
27
+ .plugin('upload')
28
+ .service('upload')
29
+ .formatFileInfo({
30
+ filename: file.name,
31
+ type: file.type,
32
+ size: file.size,
33
+ });
34
+
35
+ // Add image dimensions
36
+ Object.assign(
37
+ formatedFilesData[inputName],
38
+ await strapi
39
+ .plugin('upload')
40
+ .service('image-manipulation')
41
+ .getDimensions({ getStream })
42
+ );
43
+
44
+ // Add file path, and stream
45
+ Object.assign(formatedFilesData[inputName], {
46
+ stream: getStream(),
47
+ tmpPath: file.path,
48
+ provider: strapi.config.get('plugin.upload').provider,
49
+ });
50
+ })
51
+ );
52
+
53
+ return formatedFilesData;
54
+ };
55
+
56
+ const getProjectSettings = async () => {
57
+ const store = strapi.store({ type: 'core', name: 'admin' });
58
+ const projectSettings = {
59
+ ...DEFAULT_PROJECT_SETTINGS,
60
+ ...(await store.get({ key: 'project-settings' })),
61
+ };
62
+
63
+ // Filter file input fields
64
+ PROJECT_SETTINGS_FILE_INPUTS.forEach(inputName => {
65
+ if (!projectSettings[inputName]) {
66
+ return;
67
+ }
68
+
69
+ projectSettings[inputName] = pick(projectSettings[inputName], [
70
+ 'name',
71
+ 'url',
72
+ 'width',
73
+ 'height',
74
+ 'ext',
75
+ 'size',
76
+ ]);
77
+ });
78
+
79
+ return projectSettings;
80
+ };
81
+
82
+ const uploadFiles = async (files = {}) => {
83
+ // Call the provider upload function for each file
84
+ return Promise.all(
85
+ Object.values(files)
86
+ .filter(file => file.stream instanceof fs.ReadStream)
87
+ .map(file => strapi.plugin('upload').provider.uploadStream(file))
88
+ );
89
+ };
90
+
91
+ const deleteOldFiles = async ({ previousSettings, newSettings }) => {
92
+ return Promise.all(
93
+ PROJECT_SETTINGS_FILE_INPUTS.map(async inputName => {
94
+ // Skip if the store doesn't contain project settings
95
+ if (!previousSettings) {
96
+ return;
97
+ }
98
+
99
+ // Skip if there was no previous file
100
+ if (!previousSettings[inputName]) {
101
+ return;
102
+ }
103
+
104
+ // Skip if the file was not changed
105
+ if (
106
+ newSettings[inputName] &&
107
+ previousSettings[inputName].hash === newSettings[inputName].hash
108
+ ) {
109
+ return;
110
+ }
111
+
112
+ // Skip if the file was not uploaded with the current provider
113
+ if (strapi.config.get('plugin.upload').provider !== previousSettings[inputName].provider) {
114
+ return;
115
+ }
116
+
117
+ // There was a previous file and an new file was uploaded
118
+ // Remove the previous file
119
+ strapi.plugin('upload').provider.delete(previousSettings[inputName]);
120
+ })
121
+ );
122
+ };
123
+
124
+ const updateProjectSettings = async newSettings => {
125
+ const store = strapi.store({ type: 'core', name: 'admin' });
126
+ const previousSettings = await store.get({ key: 'project-settings' });
127
+ const files = pick(newSettings, PROJECT_SETTINGS_FILE_INPUTS);
128
+
129
+ await uploadFiles(files);
130
+
131
+ PROJECT_SETTINGS_FILE_INPUTS.forEach(inputName => {
132
+ // If the user input exists but is not a formdata "file" remove it
133
+ if (newSettings[inputName] !== undefined && !(typeof newSettings[inputName] === 'object')) {
134
+ newSettings[inputName] = null;
135
+ return;
136
+ }
137
+
138
+ // If the user input is undefined reuse previous setting (do not update field)
139
+ if (!newSettings[inputName]) {
140
+ newSettings[inputName] = previousSettings[inputName];
141
+ return;
142
+ }
143
+
144
+ // Update the file
145
+ newSettings[inputName] = pick(newSettings[inputName], [
146
+ 'name',
147
+ 'hash',
148
+ 'url',
149
+ 'width',
150
+ 'height',
151
+ 'ext',
152
+ 'size',
153
+ 'provider',
154
+ ]);
155
+ });
156
+
157
+ // No await to proceed asynchronously
158
+ deleteOldFiles({ previousSettings, newSettings });
159
+
160
+ await store.set({
161
+ key: 'project-settings',
162
+ value: { ...previousSettings, ...newSettings },
163
+ });
164
+
165
+ return getProjectSettings();
166
+ };
167
+
168
+ module.exports = {
169
+ deleteOldFiles,
170
+ parseFilesData,
171
+ getProjectSettings,
172
+ updateProjectSettings,
173
+ };
@@ -49,9 +49,22 @@ const decodeJwtToken = token => {
49
49
  }
50
50
  };
51
51
 
52
+ /**
53
+ * @returns {void}
54
+ */
55
+ const checkSecretIsDefined = () => {
56
+ if (strapi.config.serveAdminPanel && !strapi.config.get('admin.auth.secret')) {
57
+ throw new Error(
58
+ `Missing auth.secret. Please set auth.secret in config/admin.js (ex: you can generate one using Node with \`crypto.randomBytes(16).toString('base64')\`).
59
+ For security reasons, prefer storing the secret in an environment variable and read it in config/admin.js. See https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/optional/environment.html#configuration-using-environment-variables.`
60
+ );
61
+ }
62
+ };
63
+
52
64
  module.exports = {
53
65
  createToken,
54
66
  createJwtToken,
55
67
  getTokenOptions,
56
68
  decodeJwtToken,
69
+ checkSecretIsDefined,
57
70
  };
@@ -6,6 +6,7 @@ import * as metrics from '../services/metrics';
6
6
  import * as token from '../services/token';
7
7
  import * as auth from '../services/auth';
8
8
  import * as apiToken from '../services/api-token';
9
+ import * as projectSettings from '../services/project-settings';
9
10
 
10
11
  type S = {
11
12
  role: typeof role;
@@ -16,6 +17,7 @@ type S = {
16
17
  auth: typeof auth;
17
18
  metrics: typeof metrics;
18
19
  'api-token': typeof apiToken;
20
+ 'project-settings': typeof projectSettings;
19
21
  };
20
22
 
21
23
  export function getService<T extends keyof S>(name: T): S[T];
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ const { yup, validateYupSchemaSync } = require('@strapi/utils');
4
+
5
+ const MAX_IMAGE_WIDTH = 750;
6
+ const MAX_IMAGE_HEIGHT = MAX_IMAGE_WIDTH;
7
+ const MAX_IMAGE_FILE_SIZE = 1024 * 1024; // 1Mo
8
+ const ALLOWED_IMAGE_FILE_TYPES = ['image/jpeg', 'image/png', 'image/svg+xml'];
9
+
10
+ const updateProjectSettings = yup
11
+ .object({
12
+ menuLogo: yup.string(),
13
+ })
14
+ .noUnknown();
15
+
16
+ const updateProjectSettingsFiles = yup
17
+ .object({
18
+ menuLogo: yup.object({
19
+ name: yup.string(),
20
+ type: yup.string().oneOf(ALLOWED_IMAGE_FILE_TYPES),
21
+ size: yup.number().max(MAX_IMAGE_FILE_SIZE),
22
+ }),
23
+ })
24
+ .noUnknown();
25
+
26
+ const updateProjectSettingsImagesDimensions = yup.object({
27
+ menuLogo: yup.object({
28
+ width: yup.number().max(MAX_IMAGE_WIDTH),
29
+ height: yup.number().max(MAX_IMAGE_HEIGHT),
30
+ }),
31
+ });
32
+
33
+ module.exports = {
34
+ validateUpdateProjectSettings: validateYupSchemaSync(updateProjectSettings),
35
+ validateUpdateProjectSettingsFiles: validateYupSchemaSync(updateProjectSettingsFiles),
36
+ validateUpdateProjectSettingsImagesDimensions: validateYupSchemaSync(
37
+ updateProjectSettingsImagesDimensions
38
+ ),
39
+ };
package/webpack.config.js CHANGED
@@ -1,16 +1,18 @@
1
1
  'use strict';
2
2
 
3
3
  const path = require('path');
4
+ const fse = require('fs-extra');
4
5
  const webpack = require('webpack');
5
6
  const MiniCssExtractPlugin = require('mini-css-extract-plugin');
6
7
  const HtmlWebpackPlugin = require('html-webpack-plugin');
7
- const TerserPlugin = require('terser-webpack-plugin');
8
+ const { ESBuildMinifyPlugin } = require('esbuild-loader');
8
9
  const WebpackBar = require('webpackbar');
9
10
  const NodePolyfillPlugin = require('node-polyfill-webpack-plugin');
10
- const isWsl = require('is-wsl');
11
11
  const alias = require('./webpack.alias');
12
12
  const getClientEnvironment = require('./env');
13
13
 
14
+ const EE_REGEX = /from.* ['"]ee_else_ce\//;
15
+
14
16
  module.exports = ({
15
17
  entry,
16
18
  cacheDir,
@@ -47,6 +49,8 @@ module.exports = ({
47
49
  ]
48
50
  : [];
49
51
 
52
+ const babelPolyfill = '@babel/polyfill/dist/polyfill.min.js';
53
+
50
54
  return {
51
55
  mode: isProduction ? 'production' : 'development',
52
56
  bail: isProduction ? true : false,
@@ -54,7 +58,7 @@ module.exports = ({
54
58
  experiments: {
55
59
  topLevelAwait: true,
56
60
  },
57
- entry,
61
+ entry: [babelPolyfill, entry],
58
62
  output: {
59
63
  path: dest,
60
64
  publicPath: options.adminPath,
@@ -66,28 +70,9 @@ module.exports = ({
66
70
  optimization: {
67
71
  minimize: optimize,
68
72
  minimizer: [
69
- // Copied from react-scripts
70
- new TerserPlugin({
71
- terserOptions: {
72
- parse: {
73
- ecma: 8,
74
- },
75
- compress: {
76
- ecma: 5,
77
- warnings: false,
78
- comparisons: false,
79
- inline: 2,
80
- },
81
- mangle: {
82
- safari10: true,
83
- },
84
- output: {
85
- ecma: 5,
86
- comments: false,
87
- ascii_only: true,
88
- },
89
- },
90
- parallel: !isWsl,
73
+ new ESBuildMinifyPlugin({
74
+ target: 'es2015',
75
+ css: true, // Apply minification to CSS assets
91
76
  }),
92
77
  ],
93
78
  runtimeChunk: true,
@@ -95,42 +80,76 @@ module.exports = ({
95
80
  module: {
96
81
  rules: [
97
82
  {
98
- test: /\.m?js$/,
99
- // TODO remove when plugins are built separately
100
- include: [cacheDir, ...pluginsPath],
83
+ test: /\.m?jsx?$/,
84
+ include: cacheDir,
85
+ oneOf: [
86
+ // Use babel-loader for files that distinct the ee and ce code
87
+ // These files have an import Something from 'ee_else_ce/
88
+ {
89
+ test(filePath) {
90
+ if (!filePath) {
91
+ return false;
92
+ }
93
+
94
+ try {
95
+ const fileContent = fse.readFileSync(filePath).toString();
96
+
97
+ return EE_REGEX.test(fileContent);
98
+ } catch (e) {
99
+ return false;
100
+ }
101
+ },
102
+ use: {
103
+ loader: require.resolve('babel-loader'),
104
+ options: {
105
+ cacheDirectory: true,
106
+ cacheCompression: isProduction,
107
+ compact: isProduction,
108
+ presets: [
109
+ require.resolve('@babel/preset-env'),
110
+ require.resolve('@babel/preset-react'),
111
+ ],
112
+ plugins: [
113
+ [
114
+ require.resolve('@strapi/babel-plugin-switch-ee-ce'),
115
+ {
116
+ // Imported this tells the custom plugin where to look for the ee folder
117
+ roots,
118
+ },
119
+ ],
120
+
121
+ [
122
+ require.resolve('@babel/plugin-transform-runtime'),
123
+ {
124
+ helpers: true,
125
+ regenerator: true,
126
+ },
127
+ ],
128
+ [require.resolve('babel-plugin-styled-components'), { pure: true }],
129
+ ],
130
+ },
131
+ },
132
+ },
133
+ // Use esbuild-loader for the other files
134
+ {
135
+ use: {
136
+ loader: require.resolve('esbuild-loader'),
137
+ options: {
138
+ loader: 'jsx',
139
+ target: 'es2015',
140
+ },
141
+ },
142
+ },
143
+ ],
144
+ },
145
+ {
146
+ test: /\.m?jsx?$/,
147
+ include: pluginsPath,
101
148
  use: {
102
- loader: require.resolve('babel-loader'),
149
+ loader: require.resolve('esbuild-loader'),
103
150
  options: {
104
- cacheDirectory: true,
105
- cacheCompression: isProduction,
106
- compact: isProduction,
107
- presets: [
108
- require.resolve('@babel/preset-env'),
109
- require.resolve('@babel/preset-react'),
110
- ],
111
- plugins: [
112
- [
113
- require.resolve('@strapi/babel-plugin-switch-ee-ce'),
114
- {
115
- // Imported this tells the custom plugin where to look for the ee folder
116
- roots,
117
- },
118
- ],
119
- require.resolve('@babel/plugin-proposal-class-properties'),
120
- require.resolve('@babel/plugin-syntax-dynamic-import'),
121
- require.resolve('@babel/plugin-transform-modules-commonjs'),
122
- require.resolve('@babel/plugin-proposal-async-generator-functions'),
123
-
124
- [
125
- require.resolve('@babel/plugin-transform-runtime'),
126
- {
127
- // absoluteRuntime: true,s
128
- helpers: true,
129
- regenerator: true,
130
- },
131
- ],
132
- [require.resolve('babel-plugin-styled-components'), { pure: true }],
133
- ],
151
+ loader: 'jsx',
152
+ target: 'es2015',
134
153
  },
135
154
  },
136
155
  },
@@ -1 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1094],{4988:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},19590:e=>{function t(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e},e.exports.__esModule=!0,e.exports.default=e.exports},4546:(e,t,r)=>{var n=r(40990);e.exports=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&n(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},9895:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=12)}({0:function(e,t){e.exports=n},12:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("rect",{x:.5,y:.5,width:31,height:23,rx:2.5,fill:"#EAFBE7",stroke:"#C6F0C2"}),n.createElement("path",{d:"M19.5 7h-7A4.505 4.505 0 008 11.5c0 2.481 2.019 4.5 4.5 4.5h7c2.481 0 4.5-2.019 4.5-4.5S21.981 7 19.5 7zm0 8a3.5 3.5 0 110-7 3.5 3.5 0 010 7z",fill:"#328048"}))}}}))},10822:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=38)}({0:function(e,t){e.exports=n},38:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("rect",{x:.5,y:.5,width:31,height:23,rx:2.5,fill:"#F6F6F9",stroke:"#DCDCE4"}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.535 8.768c0 .116-.011.229-.032.339l3.013 1.776 2.985-1.76a1.768 1.768 0 11.519.93l-2.982 1.757v2.477a1.768 1.768 0 11-1.048-.044v-2.435l-2.997-1.767a1.768 1.768 0 11.542-1.274z",fill:"#666687"}),n.createElement("path",{d:"M13.503 9.107l-.05-.01-.006.035.03.018.026-.043zm3.013 1.776l-.025.043.025.014.025-.014-.025-.043zm2.985-1.76l.025.044.031-.018-.007-.035-.05.01zm.518.93l.035-.036-.027-.026-.033.02.026.042zm-2.98 1.757l-.026-.043-.025.014v.029h.05zm0 2.477h-.05v.035l.032.012.017-.047zm-1.049-.044l.013.048.037-.01v-.038h-.05zm0-2.435h.05v-.029l-.024-.014-.026.043zm-2.997-1.767l.025-.043-.033-.019-.027.027.035.035zm.559-.925c.022-.113.033-.23.033-.348h-.1c0 .112-.01.223-.031.33l.098.018zm2.99 1.723l-3.014-1.775-.05.086 3.013 1.775.05-.086zm2.933-1.758l-2.984 1.758.05.086 2.985-1.758-.05-.086zm-.06-.313c0 .125.013.247.037.366l.098-.02a1.723 1.723 0 01-.035-.346h-.1zm1.818-1.818a1.818 1.818 0 00-1.818 1.818h.1c0-.949.769-1.718 1.718-1.718v-.1zm1.817 1.818a1.818 1.818 0 00-1.817-1.818v.1c.948 0 1.717.769 1.717 1.718h.1zm-1.817 1.817a1.818 1.818 0 001.817-1.817h-.1c0 .948-.769 1.717-1.717 1.717v.1zm-1.248-.495c.326.307.765.495 1.248.495v-.1c-.457 0-.872-.178-1.18-.468l-.068.073zm-2.921 1.763l2.98-1.757-.05-.086-2.981 1.757.05.086zm.024 2.434V11.81h-.1v2.477h.1zm-.067.047a1.718 1.718 0 011.14 1.618h.1c0-.79-.503-1.46-1.206-1.712l-.034.094zm1.14 1.618c0 .948-.77 1.717-1.718 1.717v.1a1.817 1.817 0 001.817-1.817h-.1zm-1.718 1.717a1.718 1.718 0 01-1.718-1.717h-.1c0 1.004.814 1.817 1.818 1.817v-.1zm-1.718-1.717c0-.797.543-1.467 1.278-1.66l-.026-.098a1.818 1.818 0 00-1.352 1.758h.1zm1.215-4.144v2.435h.1v-2.435h-.1zm-2.973-1.723l2.998 1.766.05-.086-2.997-1.767-.05.087zm-1.2.5c.49 0 .934-.193 1.26-.507l-.069-.072c-.309.296-.728.48-1.19.48v.1zM9.95 8.768c0 1.003.814 1.817 1.818 1.817v-.1a1.718 1.718 0 01-1.718-1.717h-.1zm1.818-1.818A1.818 1.818 0 009.95 8.768h.1c0-.949.769-1.718 1.717-1.718v-.1zm1.817 1.818a1.818 1.818 0 00-1.818-1.818v.1c.95 0 1.718.769 1.718 1.718h.1z",fill:"#666687"}))}}}))},61714:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=48)}({0:function(e,t){e.exports=n},48:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("path",{d:"M.5 3A2.5 2.5 0 013 .5h26A2.5 2.5 0 0131.5 3v18a2.5 2.5 0 01-2.5 2.5H3A2.5 2.5 0 01.5 21V3z",fill:"#FDF4DC",stroke:"#FAE7B9"}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.934 7.495V6h1.45v1.495h5.232V6h1.45v1.495h.314c1.385 0 1.602.249 1.62 1.463V16.5c0 1.062-.096 1.5-1.4 1.5h-9.19c-1.306 0-1.41-.318-1.41-1.607V9.105c.018-1.025.117-1.61 1.5-1.61h.434zm-.774 8.687c0 .406.123.433.388.433h8.953c.265 0 .34-.007.34-.413v-6.087c-.008-.314-.11-.369-.316-.369h-9.072c-.206 0-.296.045-.293.287v6.15z",fill:"#D9822F"}))}}}))},80466:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=57)}({0:function(e,t){e.exports=n},57:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("rect",{x:.5,y:.5,width:31,height:23,rx:2.5,fill:"#F6F6F9",stroke:"#DCDCE4"}),n.createElement("path",{d:"M20.573 8c-1.484 0-2.666.745-3.397 1.37l-.026.023-.416.452.919 1.51.68-.682c.711-.6 1.506-.93 2.24-.93 1.48 0 2.685 1.171 2.685 2.612 0 1.44-1.205 2.613-2.685 2.613-2.25 0-3.78-2.974-3.795-3.004C16.69 11.784 14.75 8 11.428 8 8.985 8 7 9.954 7 12.355c0 2.401 1.986 4.355 4.427 4.355 1.196 0 2.373-.476 3.404-1.376l.022-.02.413-.45-.919-1.51-.683.686c-.712.616-1.465.928-2.237.928-1.48 0-2.685-1.172-2.685-2.613 0-1.44 1.205-2.613 2.685-2.613 2.25 0 3.78 2.974 3.795 3.004.088.18 2.028 3.964 5.35 3.964 2.442 0 4.428-1.954 4.428-4.355C25 9.954 23.014 8 20.573 8z",fill:"#666687"}))}}}))},34103:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=60)}({0:function(e,t){e.exports=n},60:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("rect",{x:.5,y:.5,width:31,height:23,rx:2.5,fill:"#FCECEA",stroke:"#F5C0B8"}),n.createElement("path",{d:"M16.767 17.49c.724 0 1.428-.089 1.962-.253v-1.093c-.383.143-1.128.239-1.86.239-2.905 0-4.744-1.764-4.744-4.546v-.014c0-2.734 1.839-4.641 4.484-4.641 2.598 0 4.307 1.62 4.307 4.088v.013c0 1.402-.444 2.304-1.135 2.304-.417 0-.656-.287-.656-.772V9.157h-1.38v.82h-.124c-.273-.608-.868-.97-1.6-.97-1.367 0-2.296 1.135-2.296 2.789v.014c0 1.73.943 2.884 2.365 2.884.793 0 1.353-.362 1.64-1.052h.123l.007.04c.158.636.78 1.033 1.62 1.033 1.655 0 2.687-1.367 2.687-3.534v-.014c0-3.008-2.242-5.072-5.517-5.072-3.418 0-5.776 2.324-5.776 5.694v.014c0 3.431 2.331 5.687 5.893 5.687zm-.342-4.053c-.718 0-1.149-.602-1.149-1.586v-.014c0-.991.431-1.586 1.156-1.586.724 0 1.182.608 1.182 1.586v.014c0 .977-.458 1.585-1.19 1.585z",fill:"#D02B20"}))}}}))},57290:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=66)}({0:function(e,t){e.exports=n},66:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("rect",{x:.5,y:.5,width:31,height:23,rx:2.5,fill:"#F6ECFC",stroke:"#E0C1F4"}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.167 7a1.167 1.167 0 100 2.333 1.167 1.167 0 000-2.333zm0 4.03a1.167 1.167 0 100 2.334 1.167 1.167 0 000-2.334zM9 16.23a1.167 1.167 0 112.333 0 1.167 1.167 0 01-2.333 0zm4.005-9.02a.4.4 0 00-.4.4v1.11c0 .22.18.4.4.4H22.6a.4.4 0 00.4-.4V7.61a.4.4 0 00-.4-.4h-9.594zm-.399 4.432a.4.4 0 01.4-.4H22.6c.22 0 .4.18.4.4v1.11a.4.4 0 01-.4.4h-9.594a.4.4 0 01-.4-.4v-1.11zm.4 3.63a.4.4 0 00-.4.4v1.11c0 .22.18.4.4.4H22.6a.4.4 0 00.4-.4v-1.11a.4.4 0 00-.4-.4h-9.594z",fill:"#9736E8"}))}}}))},57955:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=99)}({0:function(e,t){e.exports=n},99:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("rect",{x:.5,y:.5,width:31,height:23,rx:2.5,fill:"#EAF5FF",stroke:"#B8E1FF"}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.243 11.907v.157c.835.093 1.287.516 1.287 1.223V14.5c0 .693.236.959.855.959h.216V16.5h-.364c-1.459 0-2.078-.56-2.078-1.857v-.973c0-.722-.314-.992-1.159-1.002v-1.366c.84-.005 1.16-.275 1.16-1.002v-.968c0-1.282.618-1.832 2.077-1.832h.364v1.041h-.216c-.624 0-.855.266-.855.958v1.184c0 .713-.452 1.135-1.287 1.224zm15.804.181v-.157c-.835-.088-1.287-.51-1.287-1.223V9.495c0-.693-.236-.954-.855-.954h-.216V7.5h.363c1.454 0 2.073.56 2.073 1.852v.973c0 .722.32.997 1.165 1.002v1.366c-.845.005-1.165.28-1.165 1.002v.973c0 1.282-.613 1.832-2.073 1.832h-.363v-1.046h.216c.619 0 .855-.26.855-.954v-1.188c0-.708.452-1.13 1.287-1.224zM13.15 13a1 1 0 100-2 1 1 0 000 2zm4-1a1 1 0 11-2 0 1 1 0 012 0zm2 1a1 1 0 100-2 1 1 0 000 2z",fill:"#0C75AF"}))}}}))},55788:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=115)}({0:function(e,t){e.exports=n},115:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("rect",{x:.5,y:.5,width:31,height:23,rx:2.5,fill:"#F6ECFC",stroke:"#E0C1F4"}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M22 8.759a2 2 0 00-2-2h-8c-1.105 0-2 .902-2 2.006v6.068a2 2 0 00.985 1.724l3.66-3.74 3.31 3.381 1.471-1.502 1.731 1.769c.51-.363.843-.958.843-1.632V8.76zM18.5 9c-.84 0-1.5.66-1.5 1.5s.66 1.5 1.5 1.5 1.5-.66 1.5-1.5S19.34 9 18.5 9z",fill:"#9736E8"}))}}}))},42122:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=127)}({0:function(e,t){e.exports=n},127:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("rect",{x:.5,y:.5,width:31,height:23,rx:2.5,fill:"#FCECEA",stroke:"#F5C0B8"}),n.createElement("path",{d:"M9.815 16h1.475V8.954H9.82L8 10.22v1.328l1.729-1.201h.087V16zm3.394 0h5.083v-1.187h-3.106v-.112l1.304-1.216c1.284-1.186 1.7-1.85 1.7-2.651v-.015c0-1.215-1.016-2.046-2.466-2.046-1.543 0-2.598.928-2.598 2.28l.005.02h1.362v-.024c0-.67.474-1.128 1.162-1.128.674 0 1.084.42 1.084 1.02v.015c0 .493-.268.85-1.26 1.812l-2.27 2.24V16zm9.067.156c1.646 0 2.744-.864 2.744-2.143v-.01c0-.957-.683-1.563-1.733-1.66v-.03c.825-.17 1.47-.742 1.47-1.62v-.01c0-1.123-.977-1.885-2.49-1.885-1.48 0-2.471.82-2.574 2.08l-.005.059h1.358l.005-.044c.058-.586.522-.962 1.216-.962.693 0 1.098.361 1.098.947v.01c0 .571-.478.962-1.22.962h-.787v1.05h.806c.855 0 1.357.37 1.357 1.044v.01c0 .596-.493 1.016-1.245 1.016-.761 0-1.264-.39-1.328-.938l-.005-.053h-1.41l.004.063c.098 1.26 1.148 2.114 2.74 2.114z",fill:"#D02B20"}))}}}))},81208:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=155)}({0:function(e,t){e.exports=n},155:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("path",{d:"M.5 3A2.5 2.5 0 013 .5h26A2.5 2.5 0 0131.5 3v18a2.5 2.5 0 01-2.5 2.5H3A2.5 2.5 0 01.5 21V3z",fill:"#F0F0FF",stroke:"#D9D8FF"}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M21.375 16.316c.417-.407.625-.904.625-1.492 0-.589-.206-1.089-.618-1.5l-1.53-1.53a2.042 2.042 0 00-1.5-.617 2.06 2.06 0 00-1.529.646l-.646-.646c.43-.422.646-.934.646-1.537a2.03 2.03 0 00-.61-1.493l-1.515-1.522a2.014 2.014 0 00-1.5-.625 2.03 2.03 0 00-1.492.61l-1.081 1.074A2.006 2.006 0 0010 9.176c0 .589.206 1.089.618 1.5l1.53 1.53c.41.412.91.617 1.5.617a2.06 2.06 0 001.529-.646l.646.646a2.069 2.069 0 00-.646 1.537c0 .588.203 1.086.61 1.493l1.514 1.522c.407.417.907.625 1.5.625a2.03 2.03 0 001.493-.61l1.081-1.074zm-5.956-6.678a.68.68 0 00-.205-.5l-1.515-1.522a.68.68 0 00-.5-.206.71.71 0 00-.5.199l-1.081 1.073a.672.672 0 00-.206.493.68.68 0 00.206.5l1.53 1.53a.678.678 0 00.5.198.71.71 0 00.529-.228l-.14-.136a4.46 4.46 0 01-.158-.158 1.756 1.756 0 01-.11-.14.593.593 0 01-.122-.39.68.68 0 01.206-.5.68.68 0 01.5-.206.59.59 0 01.39.121c.064.047.11.084.14.111.03.027.082.08.158.158l.136.14a.713.713 0 00.242-.537zm5.168 5.187a.68.68 0 00-.206-.5l-1.529-1.53a.68.68 0 00-.5-.205.7.7 0 00-.53.235l.14.136c.079.076.132.129.159.158.027.03.063.076.11.14a.591.591 0 01.121.39.681.681 0 01-.206.5.681.681 0 01-.5.206.591.591 0 01-.39-.121 1.746 1.746 0 01-.14-.111 4.395 4.395 0 01-.157-.158 20.642 20.642 0 00-.136-.14.714.714 0 00-.037 1.037l1.515 1.522a.678.678 0 00.5.198.708.708 0 00.5-.19l1.08-1.074a.672.672 0 00.206-.493z",fill:"#4945FF"}))}}}))},65232:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=178)}({0:function(e,t){e.exports=n},178:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("rect",{x:.5,y:.5,width:31,height:23,rx:2.5,fill:"#EAFBE7",stroke:"#C6F0C2"}),n.createElement("path",{d:"M8.62 16h1.857l.627-2.05h2.982l.627 2.05h1.863l-2.941-8.455h-2.08L8.619 16zm3.925-6.768h.105l1.032 3.393h-2.174l1.037-3.393zM21.65 16.1c1.612 0 2.62-1.26 2.62-3.323v-.011c0-2.075-.985-3.323-2.62-3.323-.884 0-1.605.434-1.933 1.137h-.106V7.082h-1.71V16h1.71v-1.002h.106c.334.697 1.02 1.102 1.933 1.102zm-.585-1.418c-.903 0-1.471-.715-1.471-1.899v-.011c0-1.184.574-1.91 1.47-1.91.903 0 1.465.726 1.465 1.904v.011c0 1.19-.556 1.905-1.465 1.905z",fill:"#328048"}))}}}))},80268:function(e,t,r){var n;e.exports=(n=r(32735),function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=185)}({0:function(e,t){e.exports=n},185:function(e,t,r){"use strict";r.r(t);var n=r(0);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}t.default=function(e){return n.createElement("svg",o({width:"1em",height:"1em",viewBox:"0 0 32 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),n.createElement("path",{d:"M.5 3A2.5 2.5 0 013 .5h26A2.5 2.5 0 0131.5 3v18a2.5 2.5 0 01-2.5 2.5H3A2.5 2.5 0 01.5 21V3z",fill:"#F0F0FF",stroke:"#D9D8FF"}),n.createElement("path",{d:"M14.907 9.438c0 .375 0 .738.118 1.078-1.243 1.46-4.526 5.317-4.832 5.611a.582.582 0 00-.193.433c0 .245.15.481.277.614.19.2 1.004.952 1.154.808.444-.433.533-.548.715-.727.274-.268-.029-.816.066-1.039.096-.222.197-.265.361-.3.165-.034.456.084.684.087.24.003.369-.098.548-.265.144-.133.248-.257.25-.45.007-.26-.368-.603-.089-.877.28-.274.684.178.981.144.297-.035.658-.447.695-.623.038-.176-.337-.629-.28-.886.02-.086.197-.288.33-.317.132-.029.72.199.853.17.162-.034.35-.205.502-.3.447.193.854.271 1.376.271C20.4 12.87 22 11.33 22 9.432 22 7.534 20.399 6 18.423 6s-3.516 1.54-3.516 3.438zm5.247-.669a.923.923 0 11-1.847 0 .923.923 0 011.847 0z",fill:"#4945FF"}))}}}))},23089:(e,t,r)=>{var n=r(61712)("length");e.exports=n},38788:(e,t,r)=>{var n=r(23089),o=r(34327),u=r(71286);e.exports=function(e){return o(e)?u(e):n(e)}},71286:e=>{var t="[\\ud800-\\udfff]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",o="[^\\ud800-\\udfff]",u="(?:\\ud83c[\\udde6-\\uddff]){2}",l="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+r+"|"+n+")"+"?",c="[\\ufe0e\\ufe0f]?",a=c+i+("(?:\\u200d(?:"+[o,u,l].join("|")+")"+c+i+")*"),f="(?:"+[o+r+"?",r,u,l,t].join("|")+")",p=RegExp(n+"(?="+n+")|"+f+a,"g");e.exports=function(e){for(var t=p.lastIndex=0;p.test(e);)++t;return t}},59578:(e,t,r)=>{var n=r(41119);e.exports=function(e){return n(e).toLowerCase()}},93148:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createCacheKeyComparator=o,t.defaultEqualityCheck=void 0,t.defaultMemoize=function(e,t){var u="object"===typeof t?t:{equalityCheck:t},l=u.equalityCheck,i=void 0===l?n:l,c=u.maxSize,a=void 0===c?1:c,f=u.resultEqualityCheck,p=o(i),s=1===a?function(e){var t;return{get:function(n){return t&&e(t.key,n)?t.value:r},put:function(e,r){t={key:e,value:r}},getEntries:function(){return t?[t]:[]},clear:function(){t=void 0}}}(p):function(e,t){var n=[];function o(e){var o=n.findIndex((function(r){return t(e,r.key)}));if(o>-1){var u=n[o];return o>0&&(n.splice(o,1),n.unshift(u)),u.value}return r}function u(t,u){o(t)===r&&(n.unshift({key:t,value:u}),n.length>e&&n.pop())}function l(){return n}function i(){n=[]}return{get:o,put:u,getEntries:l,clear:i}}(a,p);function d(){var t=s.get(arguments);if(t===r){if(t=e.apply(null,arguments),f){var n=s.getEntries(),o=n.find((function(e){return f(e.value,t)}));o&&(t=o.value)}s.put(arguments,t)}return t}return d.clearCache=function(){return s.clear()},d};var r="NOT_FOUND";var n=function(e,t){return e===t};function o(e){return function(t,r){if(null===t||null===r||t.length!==r.length)return!1;for(var n=t.length,o=0;o<n;o++)if(!e(t[o],r[o]))return!1;return!0}}t.defaultEqualityCheck=n},12463:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createSelector=void 0,t.createSelectorCreator=u,t.createStructuredSelector=void 0,Object.defineProperty(t,"defaultEqualityCheck",{enumerable:!0,get:function(){return n.defaultEqualityCheck}}),Object.defineProperty(t,"defaultMemoize",{enumerable:!0,get:function(){return n.defaultMemoize}});var n=r(93148);function o(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return"function"===typeof e}))){var r=t.map((function(e){return"function"===typeof e?"function "+(e.name||"unnamed")+"()":typeof e})).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+r+"]")}return t}function u(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var u=function(){for(var t=arguments.length,n=new Array(t),u=0;u<t;u++)n[u]=arguments[u];var l,i=0,c={memoizeOptions:void 0},a=n.pop();if("object"===typeof a&&(c=a,a=n.pop()),"function"!==typeof a)throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof a+"]");var f=c,p=f.memoizeOptions,s=void 0===p?r:p,d=Array.isArray(s)?s:[s],v=o(n),y=e.apply(void 0,[function(){return i++,a.apply(null,arguments)}].concat(d)),h=e((function(){for(var e=[],t=v.length,r=0;r<t;r++)e.push(v[r].apply(null,arguments));return l=y.apply(null,e)}));return Object.assign(h,{resultFunc:a,memoizedResultFunc:y,dependencies:v,lastResult:function(){return l},recomputations:function(){return i},resetRecomputations:function(){return i=0}}),h};return u}var l=u(n.defaultMemoize);t.createSelector=l;t.createStructuredSelector=function(e,t){if(void 0===t&&(t=l),"object"!==typeof e)throw new Error("createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof e);var r=Object.keys(e),n=t(r.map((function(t){return e[t]})),(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t,n){return e[r[n]]=t,e}),{})}));return n}}}]);