codeforlife 2.8.3 → 2.9.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 (454) hide show
  1. package/dist/Countdown-DFI1RljW.js +28 -0
  2. package/dist/Countdown-DFI1RljW.js.map +1 -0
  3. package/dist/Countdown-zY3nMzmi.cjs +2 -0
  4. package/dist/Countdown-zY3nMzmi.cjs.map +1 -0
  5. package/dist/Image-D5jC9UoX.js +21 -0
  6. package/dist/Image-D5jC9UoX.js.map +1 -0
  7. package/dist/Image-mgT45r_B.cjs +2 -0
  8. package/dist/Image-mgT45r_B.cjs.map +1 -0
  9. package/dist/LinkButton-BYFkvL_O.cjs +2 -0
  10. package/dist/LinkButton-BYFkvL_O.cjs.map +1 -0
  11. package/dist/LinkButton-oK0RThqn.js +12 -0
  12. package/dist/LinkButton-oK0RThqn.js.map +1 -0
  13. package/dist/Navigate-Dq47aqC8.js +25 -0
  14. package/dist/Navigate-Dq47aqC8.js.map +1 -0
  15. package/dist/Navigate-dQocLhzN.cjs +2 -0
  16. package/dist/Navigate-dQocLhzN.cjs.map +1 -0
  17. package/dist/api/createApi.d.ts +7 -0
  18. package/dist/api/endpoints/authFactor.d.ts +11 -0
  19. package/dist/api/endpoints/index.cjs.js +2 -0
  20. package/dist/api/endpoints/index.cjs.js.map +1 -0
  21. package/dist/api/endpoints/index.d.ts +9 -0
  22. package/dist/api/endpoints/index.es.js +78 -0
  23. package/dist/api/endpoints/index.es.js.map +1 -0
  24. package/dist/api/endpoints/klass.d.ts +26 -0
  25. package/dist/api/endpoints/school.d.ts +11 -0
  26. package/dist/api/endpoints/session.d.ts +9 -0
  27. package/dist/api/endpoints/user.d.ts +19 -0
  28. package/dist/api/index.cjs.js +4 -0
  29. package/dist/api/index.cjs.js.map +1 -0
  30. package/dist/api/index.d.ts +5 -0
  31. package/dist/api/index.es.js +541 -0
  32. package/dist/api/index.es.js.map +1 -0
  33. package/dist/api/models.d.ts +92 -0
  34. package/dist/api/schemas.d.ts +20 -0
  35. package/dist/api/tagTypes.d.ts +3 -0
  36. package/dist/api/urls.d.ts +31 -0
  37. package/dist/api-Cbyt3rw0.js +92 -0
  38. package/dist/api-Cbyt3rw0.js.map +1 -0
  39. package/dist/api-CnMfjRk3.cjs +2 -0
  40. package/dist/api-CnMfjRk3.cjs.map +1 -0
  41. package/dist/api-Cs4Y-WeI.js +20 -0
  42. package/dist/api-Cs4Y-WeI.js.map +1 -0
  43. package/dist/api-DIgp_6Vr.cjs +2 -0
  44. package/dist/api-DIgp_6Vr.cjs.map +1 -0
  45. package/dist/auth-BPfUPjmM.js +237 -0
  46. package/dist/auth-BPfUPjmM.js.map +1 -0
  47. package/dist/auth-Vf1MgMci.cjs +2 -0
  48. package/dist/auth-Vf1MgMci.cjs.map +1 -0
  49. package/dist/components/App.d.ts +18 -0
  50. package/dist/components/ClickableTooltip.d.ts +6 -0
  51. package/dist/components/CopyIconButton.d.ts +7 -0
  52. package/dist/components/CopyIconButton.test.d.ts +1 -0
  53. package/dist/components/Countdown.d.ts +9 -0
  54. package/dist/components/DownloadFileButton.d.ts +13 -0
  55. package/dist/components/ElevatedAppBar.d.ts +8 -0
  56. package/dist/components/Image.d.ts +10 -0
  57. package/dist/components/InputFileButton.d.ts +7 -0
  58. package/dist/components/ItemizedList.d.ts +11 -0
  59. package/dist/components/OrderedGrid.d.ts +21 -0
  60. package/dist/components/ScrollIntoViewLink.d.ts +8 -0
  61. package/dist/components/SyncError.d.ts +5 -0
  62. package/dist/components/TablePagination.d.ts +20 -0
  63. package/dist/components/YouTubeVideo.d.ts +7 -0
  64. package/dist/components/form/ApiAutocompleteField.d.ts +14 -0
  65. package/dist/components/form/AutocompleteField.d.ts +11 -0
  66. package/dist/components/form/CheckboxField.d.ts +11 -0
  67. package/dist/components/form/CountryField.d.ts +10 -0
  68. package/dist/components/form/DatePickerField.d.ts +10 -0
  69. package/dist/components/form/EmailField.d.ts +5 -0
  70. package/dist/components/form/FirstNameField.d.ts +5 -0
  71. package/dist/components/form/Form.d.ts +36 -0
  72. package/dist/components/form/OtpField.d.ts +5 -0
  73. package/dist/components/form/PasswordField.d.ts +9 -0
  74. package/dist/components/form/RepeatField.d.ts +9 -0
  75. package/dist/components/form/SubmitButton.d.ts +6 -0
  76. package/dist/components/form/TextField.d.ts +14 -0
  77. package/dist/components/form/UkCountyField.d.ts +10 -0
  78. package/dist/components/form/index.cjs.js +2 -0
  79. package/dist/components/form/index.cjs.js.map +1 -0
  80. package/dist/components/form/index.d.ts +14 -0
  81. package/dist/components/form/index.es.js +18 -0
  82. package/dist/components/form/index.es.js.map +1 -0
  83. package/dist/components/index.cjs.js +11 -0
  84. package/dist/components/index.cjs.js.map +1 -0
  85. package/dist/components/index.d.ts +18 -0
  86. package/dist/components/index.es.js +383 -0
  87. package/dist/components/index.es.js.map +1 -0
  88. package/dist/components/page/Banner.d.ts +13 -0
  89. package/dist/components/page/Notification.d.ts +10 -0
  90. package/dist/components/page/Page.d.ts +19 -0
  91. package/dist/components/page/Section.d.ts +7 -0
  92. package/dist/components/page/TabBar.d.ts +13 -0
  93. package/dist/components/page/index.cjs.js +2 -0
  94. package/dist/components/page/index.cjs.js.map +1 -0
  95. package/dist/components/page/index.d.ts +5 -0
  96. package/dist/components/page/index.es.js +9 -0
  97. package/dist/components/page/index.es.js.map +1 -0
  98. package/dist/components/router/Link.d.ts +9 -0
  99. package/dist/components/router/LinkButton.d.ts +9 -0
  100. package/dist/components/router/LinkIconButton.d.ts +9 -0
  101. package/dist/components/router/LinkListItem.d.ts +9 -0
  102. package/dist/components/router/LinkTab.d.ts +9 -0
  103. package/dist/components/router/Navigate.d.ts +15 -0
  104. package/dist/components/router/index.cjs.js +2 -0
  105. package/dist/components/router/index.cjs.js.map +1 -0
  106. package/dist/components/router/index.d.ts +6 -0
  107. package/dist/components/router/index.es.js +11 -0
  108. package/dist/components/router/index.es.js.map +1 -0
  109. package/dist/components/table/CellStack.d.ts +7 -0
  110. package/dist/components/table/Table.d.ts +12 -0
  111. package/dist/components/table/index.cjs.js +2 -0
  112. package/dist/components/table/index.cjs.js.map +1 -0
  113. package/dist/components/table/index.d.ts +3 -0
  114. package/dist/components/table/index.es.js +9 -0
  115. package/dist/components/table/index.es.js.map +1 -0
  116. package/dist/en-gb-B_rK7Jx1.js +20 -0
  117. package/dist/en-gb-B_rK7Jx1.js.map +1 -0
  118. package/dist/en-gb-CpyEkKq3.cjs +2 -0
  119. package/dist/en-gb-CpyEkKq3.cjs.map +1 -0
  120. package/dist/features/InactiveDialog.d.ts +7 -0
  121. package/dist/features/ScreenTimeDialog.d.ts +7 -0
  122. package/dist/features/index.cjs.js +2 -0
  123. package/dist/features/index.cjs.js.map +1 -0
  124. package/dist/features/index.d.ts +4 -0
  125. package/dist/features/index.es.js +47 -0
  126. package/dist/features/index.es.js.map +1 -0
  127. package/dist/general-BPbbmkeX.cjs +2 -0
  128. package/dist/general-BPbbmkeX.cjs.map +1 -0
  129. package/dist/general-CtTJPCJn.js +58 -0
  130. package/dist/general-CtTJPCJn.js.map +1 -0
  131. package/dist/hooks/api.d.ts +15 -0
  132. package/dist/hooks/auth.d.ts +46 -0
  133. package/{src/hooks/form.tsx → dist/hooks/form.d.ts} +2 -5
  134. package/dist/hooks/general.d.ts +13 -0
  135. package/dist/hooks/index.cjs.js +2 -0
  136. package/dist/hooks/index.cjs.js.map +1 -0
  137. package/dist/hooks/index.d.ts +5 -0
  138. package/dist/hooks/index.es.js +25 -0
  139. package/dist/hooks/index.es.js.map +1 -0
  140. package/dist/hooks/router.d.ts +29 -0
  141. package/dist/index-2W--_sNE.js +30 -0
  142. package/dist/index-2W--_sNE.js.map +1 -0
  143. package/dist/index-BUMdUVBH.cjs +5 -0
  144. package/dist/index-BUMdUVBH.cjs.map +1 -0
  145. package/dist/index-B_Zy_zwA.cjs +2 -0
  146. package/dist/index-B_Zy_zwA.cjs.map +1 -0
  147. package/dist/index-BgsynEGX.cjs +2 -0
  148. package/dist/index-BgsynEGX.cjs.map +1 -0
  149. package/dist/index-CA-ugBSa.cjs +2 -0
  150. package/dist/index-CA-ugBSa.cjs.map +1 -0
  151. package/dist/index-CNtOlJ49.js +572 -0
  152. package/dist/index-CNtOlJ49.js.map +1 -0
  153. package/dist/index-DkM_cG3a.js +237 -0
  154. package/dist/index-DkM_cG3a.js.map +1 -0
  155. package/dist/index-Dqp7dpn3.js +1111 -0
  156. package/dist/index-Dqp7dpn3.js.map +1 -0
  157. package/dist/index.cjs.js +2 -0
  158. package/dist/index.cjs.js.map +1 -0
  159. package/dist/index.d.ts +2 -0
  160. package/dist/index.es.js +7 -0
  161. package/dist/index.es.js.map +1 -0
  162. package/dist/jsx-runtime-CeSfJrVB.cjs +31 -0
  163. package/dist/jsx-runtime-CeSfJrVB.cjs.map +1 -0
  164. package/dist/jsx-runtime-Dpn_P65e.js +634 -0
  165. package/dist/jsx-runtime-Dpn_P65e.js.map +1 -0
  166. package/dist/middlewares/index.cjs.js +2 -0
  167. package/dist/middlewares/index.cjs.js.map +1 -0
  168. package/dist/middlewares/index.d.ts +1 -0
  169. package/dist/middlewares/index.es.js +10 -0
  170. package/dist/middlewares/index.es.js.map +1 -0
  171. package/dist/middlewares/session.d.ts +2 -0
  172. package/dist/palette-CE2mKYse.cjs +2 -0
  173. package/dist/palette-CE2mKYse.cjs.map +1 -0
  174. package/dist/palette-C_L0akN_.js +43 -0
  175. package/dist/palette-C_L0akN_.js.map +1 -0
  176. package/dist/rtk-query.modern-CjetfYPg.js +3038 -0
  177. package/dist/rtk-query.modern-CjetfYPg.js.map +1 -0
  178. package/dist/rtk-query.modern-PBCErCqb.cjs +15 -0
  179. package/dist/rtk-query.modern-PBCErCqb.cjs.map +1 -0
  180. package/dist/schemas-BZbJpkD5.cjs +2 -0
  181. package/dist/schemas-BZbJpkD5.cjs.map +1 -0
  182. package/dist/schemas-DlOtf2vf.js +162 -0
  183. package/dist/schemas-DlOtf2vf.js.map +1 -0
  184. package/dist/scripts/index.d.ts +0 -0
  185. package/dist/server.cjs.js +6 -0
  186. package/dist/server.cjs.js.map +1 -0
  187. package/dist/server.d.ts +44 -0
  188. package/dist/server.es.js +127 -0
  189. package/dist/server.es.js.map +1 -0
  190. package/dist/session-CE2U7oL1.cjs +2 -0
  191. package/dist/session-CE2U7oL1.cjs.map +1 -0
  192. package/dist/session-CacrgFSv.cjs +2 -0
  193. package/dist/session-CacrgFSv.cjs.map +1 -0
  194. package/dist/session-D312kYKk.js +32 -0
  195. package/dist/session-D312kYKk.js.map +1 -0
  196. package/dist/session-oI-Ht2C8.js +30 -0
  197. package/dist/session-oI-Ht2C8.js.map +1 -0
  198. package/dist/settings/custom.d.ts +11 -0
  199. package/dist/settings/index.cjs.js +2 -0
  200. package/dist/settings/index.cjs.js.map +1 -0
  201. package/dist/settings/index.d.ts +4 -0
  202. package/dist/settings/index.es.js +17 -0
  203. package/dist/settings/index.es.js.map +1 -0
  204. package/dist/settings/vite.d.ts +10 -0
  205. package/dist/setupTests.d.ts +0 -0
  206. package/dist/slices/createSlice.d.ts +3 -0
  207. package/dist/slices/index.cjs.js +2 -0
  208. package/dist/slices/index.cjs.js.map +1 -0
  209. package/dist/slices/index.d.ts +2 -0
  210. package/dist/slices/index.es.js +6 -0
  211. package/dist/slices/index.es.js.map +1 -0
  212. package/dist/slices/session.d.ts +28 -0
  213. package/dist/style.css +1 -0
  214. package/dist/theme/ThemedBox.d.ts +10 -0
  215. package/dist/theme/colors.d.ts +18 -0
  216. package/dist/theme/components/MuiAccordion.d.ts +3 -0
  217. package/dist/theme/components/MuiAutocomplete.d.ts +3 -0
  218. package/dist/theme/components/MuiButton.d.ts +3 -0
  219. package/dist/theme/components/MuiCardActions.d.ts +3 -0
  220. package/dist/theme/components/MuiCheckbox.d.ts +3 -0
  221. package/dist/theme/components/MuiContainer.d.ts +3 -0
  222. package/dist/theme/components/MuiDialog.d.ts +3 -0
  223. package/dist/theme/components/MuiFormControlLabel.d.ts +3 -0
  224. package/dist/theme/components/MuiFormHelperText.d.ts +3 -0
  225. package/dist/theme/components/MuiGrid2.d.ts +3 -0
  226. package/dist/theme/components/MuiInputBase.d.ts +3 -0
  227. package/dist/theme/components/MuiLink.d.ts +3 -0
  228. package/dist/theme/components/MuiList.d.ts +3 -0
  229. package/dist/theme/components/MuiListItemText.d.ts +3 -0
  230. package/dist/theme/components/MuiMenu.d.ts +3 -0
  231. package/dist/theme/components/MuiMenuItem.d.ts +3 -0
  232. package/dist/theme/components/MuiSelect.d.ts +3 -0
  233. package/dist/theme/components/MuiTab.d.ts +3 -0
  234. package/dist/theme/components/MuiTable.d.ts +3 -0
  235. package/dist/theme/components/MuiTableBody.d.ts +3 -0
  236. package/dist/theme/components/MuiTableHead.d.ts +3 -0
  237. package/dist/theme/components/MuiTabs.d.ts +3 -0
  238. package/dist/theme/components/MuiTextField.d.ts +3 -0
  239. package/dist/theme/components/MuiToolbar.d.ts +3 -0
  240. package/dist/theme/components/MuiTypography.d.ts +3 -0
  241. package/dist/theme/components/_components.d.ts +11 -0
  242. package/dist/theme/components/index.cjs.js +2 -0
  243. package/dist/theme/components/index.cjs.js.map +1 -0
  244. package/dist/theme/components/index.d.ts +3 -0
  245. package/dist/theme/components/index.es.js +6 -0
  246. package/dist/theme/components/index.es.js.map +1 -0
  247. package/dist/theme/index.cjs.js +2 -0
  248. package/dist/theme/index.cjs.js.map +1 -0
  249. package/dist/theme/index.d.ts +7 -0
  250. package/dist/theme/index.es.js +222 -0
  251. package/dist/theme/index.es.js.map +1 -0
  252. package/dist/theme/palette.d.ts +79 -0
  253. package/dist/theme/spacing.d.ts +1 -0
  254. package/dist/theme/typography.d.ts +4 -0
  255. package/dist/urls-DtHr1d3H.js +14 -0
  256. package/dist/urls-DtHr1d3H.js.map +1 -0
  257. package/dist/urls-MaVXL_C2.cjs +2 -0
  258. package/dist/urls-MaVXL_C2.cjs.map +1 -0
  259. package/dist/utils/api.cjs.js +2 -0
  260. package/dist/utils/api.cjs.js.map +1 -0
  261. package/dist/utils/api.d.ts +72 -0
  262. package/dist/utils/api.es.js +16 -0
  263. package/dist/utils/api.es.js.map +1 -0
  264. package/dist/utils/api.test.d.ts +1 -0
  265. package/dist/utils/auth.cjs.js +2 -0
  266. package/dist/utils/auth.cjs.js.map +1 -0
  267. package/dist/utils/auth.d.ts +28 -0
  268. package/dist/utils/auth.es.js +117 -0
  269. package/dist/utils/auth.es.js.map +1 -0
  270. package/dist/utils/form.cjs.js +2 -0
  271. package/dist/utils/form.cjs.js.map +1 -0
  272. package/dist/utils/form.d.ts +25 -0
  273. package/dist/utils/form.es.js +76 -0
  274. package/dist/utils/form.es.js.map +1 -0
  275. package/dist/utils/form.test.d.ts +1 -0
  276. package/dist/utils/general.cjs.js +2 -0
  277. package/dist/utils/general.cjs.js.map +1 -0
  278. package/dist/utils/general.d.ts +30 -0
  279. package/{src/utils/general.ts → dist/utils/general.es.js} +87 -165
  280. package/dist/utils/general.es.js.map +1 -0
  281. package/dist/utils/general.test.d.ts +1 -0
  282. package/dist/utils/router.cjs.js +2 -0
  283. package/dist/utils/router.cjs.js.map +1 -0
  284. package/dist/utils/router.d.ts +19 -0
  285. package/dist/utils/router.es.js +33 -0
  286. package/dist/utils/router.es.js.map +1 -0
  287. package/dist/utils/router.test.d.ts +1 -0
  288. package/dist/utils/schema.cjs.js +2 -0
  289. package/dist/utils/schema.cjs.js.map +1 -0
  290. package/dist/utils/schema.d.ts +43 -0
  291. package/dist/utils/schema.es.js +123 -0
  292. package/dist/utils/schema.es.js.map +1 -0
  293. package/dist/utils/store.cjs.js +2 -0
  294. package/dist/utils/store.cjs.js.map +1 -0
  295. package/dist/utils/store.d.ts +10 -0
  296. package/dist/utils/store.es.js +20 -0
  297. package/dist/utils/store.es.js.map +1 -0
  298. package/dist/utils/test.cjs.js +2 -0
  299. package/dist/utils/test.cjs.js.map +1 -0
  300. package/dist/utils/test.d.ts +53 -0
  301. package/dist/utils/test.es.js +60 -0
  302. package/dist/utils/test.es.js.map +1 -0
  303. package/dist/utils/theme.cjs.js +2 -0
  304. package/dist/utils/theme.cjs.js.map +1 -0
  305. package/dist/utils/theme.d.ts +11 -0
  306. package/dist/utils/theme.es.js +12 -0
  307. package/dist/utils/theme.es.js.map +1 -0
  308. package/dist/utils/window.cjs.js +2 -0
  309. package/dist/utils/window.cjs.js.map +1 -0
  310. package/dist/utils/window.d.ts +2 -0
  311. package/dist/utils/window.es.js +11 -0
  312. package/dist/utils/window.es.js.map +1 -0
  313. package/package.json +142 -37
  314. package/.github/workflows/main.yml +0 -55
  315. package/.prettierignore +0 -1
  316. package/CHANGELOG.md +0 -2027
  317. package/CONTRIBUTING.md +0 -3
  318. package/eslint.config.js +0 -17
  319. package/src/api/createApi.ts +0 -91
  320. package/src/api/endpoints/authFactor.ts +0 -31
  321. package/src/api/endpoints/index.ts +0 -9
  322. package/src/api/endpoints/klass.ts +0 -87
  323. package/src/api/endpoints/school.ts +0 -34
  324. package/src/api/endpoints/session.ts +0 -47
  325. package/src/api/endpoints/user.ts +0 -70
  326. package/src/api/index.ts +0 -5
  327. package/src/api/models.ts +0 -145
  328. package/src/api/schemas.ts +0 -243
  329. package/src/api/tagTypes.ts +0 -12
  330. package/src/api/urls.ts +0 -13
  331. package/src/components/App.css +0 -38
  332. package/src/components/App.tsx +0 -152
  333. package/src/components/ClickableTooltip.tsx +0 -43
  334. package/src/components/CopyIconButton.test.tsx +0 -16
  335. package/src/components/CopyIconButton.tsx +0 -27
  336. package/src/components/Countdown.tsx +0 -42
  337. package/src/components/DownloadFileButton.tsx +0 -55
  338. package/src/components/ElevatedAppBar.tsx +0 -41
  339. package/src/components/Image.tsx +0 -41
  340. package/src/components/InputFileButton.tsx +0 -27
  341. package/src/components/ItemizedList.tsx +0 -63
  342. package/src/components/OrderedGrid.tsx +0 -92
  343. package/src/components/ScrollIntoViewLink.tsx +0 -22
  344. package/src/components/SyncError.tsx +0 -14
  345. package/src/components/TablePagination.tsx +0 -142
  346. package/src/components/YouTubeVideo.tsx +0 -26
  347. package/src/components/form/ApiAutocompleteField.tsx +0 -187
  348. package/src/components/form/AutocompleteField.tsx +0 -135
  349. package/src/components/form/CheckboxField.tsx +0 -86
  350. package/src/components/form/CountryField.tsx +0 -75
  351. package/src/components/form/DatePickerField.tsx +0 -126
  352. package/src/components/form/EmailField.tsx +0 -38
  353. package/src/components/form/FirstNameField.tsx +0 -40
  354. package/src/components/form/Form.tsx +0 -165
  355. package/src/components/form/OtpField.tsx +0 -28
  356. package/src/components/form/PasswordField.tsx +0 -71
  357. package/src/components/form/RepeatField.tsx +0 -123
  358. package/src/components/form/SubmitButton.tsx +0 -57
  359. package/src/components/form/TextField.tsx +0 -150
  360. package/src/components/form/UkCountyField.tsx +0 -68
  361. package/src/components/form/index.tsx +0 -35
  362. package/src/components/index.ts +0 -28
  363. package/src/components/page/Banner.tsx +0 -95
  364. package/src/components/page/Notification.tsx +0 -71
  365. package/src/components/page/Page.tsx +0 -73
  366. package/src/components/page/Section.tsx +0 -21
  367. package/src/components/page/TabBar.tsx +0 -131
  368. package/src/components/page/index.ts +0 -10
  369. package/src/components/router/Link.tsx +0 -23
  370. package/src/components/router/LinkButton.tsx +0 -22
  371. package/src/components/router/LinkIconButton.tsx +0 -22
  372. package/src/components/router/LinkListItem.tsx +0 -22
  373. package/src/components/router/LinkTab.tsx +0 -22
  374. package/src/components/router/Navigate.tsx +0 -33
  375. package/src/components/router/index.tsx +0 -9
  376. package/src/components/table/CellStack.tsx +0 -19
  377. package/src/components/table/Table.tsx +0 -55
  378. package/src/components/table/index.tsx +0 -8
  379. package/src/features/InactiveDialog.tsx +0 -40
  380. package/src/features/ScreenTimeDialog.tsx +0 -30
  381. package/src/features/index.ts +0 -4
  382. package/src/fonts/ttf/Inter-VariableFont_slnt,wght.ttf +0 -0
  383. package/src/fonts/ttf/SpaceGrotesk-VariableFont_wght.ttf +0 -0
  384. package/src/hooks/api.tsx +0 -39
  385. package/src/hooks/auth.tsx +0 -397
  386. package/src/hooks/general.tsx +0 -110
  387. package/src/hooks/index.ts +0 -5
  388. package/src/hooks/router.tsx +0 -168
  389. package/src/images/svg/brain.svg +0 -1
  390. package/src/index.ts +0 -2
  391. package/src/middlewares/index.ts +0 -1
  392. package/src/middlewares/session.ts +0 -21
  393. package/src/scripts/freshDesk.js +0 -473
  394. package/src/scripts/index.ts +0 -1
  395. package/src/server.js +0 -187
  396. package/src/settings/custom.ts +0 -22
  397. package/src/settings/index.ts +0 -7
  398. package/src/settings/vite.ts +0 -26
  399. package/src/setupTests.ts +0 -2
  400. package/src/slices/createSlice.ts +0 -8
  401. package/src/slices/index.ts +0 -2
  402. package/src/slices/session.ts +0 -32
  403. package/src/theme/ThemedBox.tsx +0 -265
  404. package/src/theme/colors.ts +0 -57
  405. package/src/theme/components/MuiAccordion.tsx +0 -13
  406. package/src/theme/components/MuiAutocomplete.tsx +0 -11
  407. package/src/theme/components/MuiButton.ts +0 -70
  408. package/src/theme/components/MuiCardActions.tsx +0 -12
  409. package/src/theme/components/MuiCheckbox.ts +0 -12
  410. package/src/theme/components/MuiContainer.ts +0 -19
  411. package/src/theme/components/MuiDialog.tsx +0 -16
  412. package/src/theme/components/MuiFormControlLabel.ts +0 -18
  413. package/src/theme/components/MuiFormHelperText.ts +0 -12
  414. package/src/theme/components/MuiGrid2.ts +0 -16
  415. package/src/theme/components/MuiInputBase.ts +0 -14
  416. package/src/theme/components/MuiLink.ts +0 -41
  417. package/src/theme/components/MuiList.ts +0 -12
  418. package/src/theme/components/MuiListItemText.ts +0 -18
  419. package/src/theme/components/MuiMenu.ts +0 -14
  420. package/src/theme/components/MuiMenuItem.ts +0 -15
  421. package/src/theme/components/MuiSelect.ts +0 -16
  422. package/src/theme/components/MuiTab.ts +0 -29
  423. package/src/theme/components/MuiTable.ts +0 -29
  424. package/src/theme/components/MuiTableBody.ts +0 -15
  425. package/src/theme/components/MuiTableHead.ts +0 -26
  426. package/src/theme/components/MuiTabs.ts +0 -26
  427. package/src/theme/components/MuiTextField.ts +0 -86
  428. package/src/theme/components/MuiToolbar.ts +0 -11
  429. package/src/theme/components/MuiTypography.ts +0 -12
  430. package/src/theme/components/_components.ts +0 -95
  431. package/src/theme/components/index.ts +0 -57
  432. package/src/theme/index.ts +0 -25
  433. package/src/theme/palette.ts +0 -98
  434. package/src/theme/spacing.ts +0 -8
  435. package/src/theme/typography.ts +0 -101
  436. package/src/utils/api.test.ts +0 -19
  437. package/src/utils/api.tsx +0 -339
  438. package/src/utils/auth.ts +0 -78
  439. package/src/utils/form.test.ts +0 -50
  440. package/src/utils/form.ts +0 -193
  441. package/src/utils/general.test.ts +0 -55
  442. package/src/utils/router.test.ts +0 -156
  443. package/src/utils/router.ts +0 -67
  444. package/src/utils/schema.ts +0 -290
  445. package/src/utils/store.ts +0 -31
  446. package/src/utils/test.tsx +0 -82
  447. package/src/utils/theme.tsx +0 -83
  448. package/src/utils/window.ts +0 -11
  449. package/src/vite-env.d.ts +0 -1
  450. package/tsconfig.app.json +0 -4
  451. package/tsconfig.json +0 -7
  452. package/tsconfig.node.json +0 -4
  453. package/types/fixes.d.ts +0 -18
  454. package/vite.config.ts +0 -23
@@ -0,0 +1,541 @@
1
+ import { b as ae, c as fe, a as de, d as U, Q as pe, e as le, f as be } from "../rtk-query.modern-CjetfYPg.js";
2
+ import { formatProdErrorMessage as oe } from "@reduxjs/toolkit";
3
+ import { useStore as ye, useSelector as he, useDispatch as ge, batch as me, shallowEqual as $ } from "react-redux";
4
+ import { useCallback as N, useDebugValue as x, useMemo as k, useState as re, useEffect as A, useRef as q, useLayoutEffect as Se } from "react";
5
+ import { SERVICE_API_URL as ve } from "../settings/index.es.js";
6
+ import { b as Ee } from "../session-D312kYKk.js";
7
+ import { getCsrfCookie as J } from "../utils/auth.es.js";
8
+ import { i as Qe } from "../api-Cbyt3rw0.js";
9
+ import { s as Be } from "../schemas-DlOtf2vf.js";
10
+ import { u as Ze } from "../urls-DtHr1d3H.js";
11
+ function F(e) {
12
+ return e.replace(e[0], e[0].toUpperCase());
13
+ }
14
+ function ke(e) {
15
+ let f = 0;
16
+ for (const y in e)
17
+ f++;
18
+ return f;
19
+ }
20
+ function Pe(e) {
21
+ return e.type === "query";
22
+ }
23
+ function Oe(e) {
24
+ return e.type === "mutation";
25
+ }
26
+ function se(e) {
27
+ return e.type === "infinitequery";
28
+ }
29
+ function C(e, ...f) {
30
+ return Object.assign(e, ...f);
31
+ }
32
+ var X = Symbol();
33
+ function ee(e) {
34
+ const f = q(e), y = k(() => le(f.current, e), [e]);
35
+ return A(() => {
36
+ f.current !== y && (f.current = y);
37
+ }, [y]), y;
38
+ }
39
+ function G(e) {
40
+ const f = q(e);
41
+ return A(() => {
42
+ $(f.current, e) || (f.current = e);
43
+ }, [e]), $(f.current, e) ? f.current : e;
44
+ }
45
+ var Ie = () => typeof window < "u" && typeof window.document < "u" && typeof window.document.createElement < "u", De = /* @__PURE__ */ Ie(), we = () => typeof navigator < "u" && navigator.product === "ReactNative", Le = /* @__PURE__ */ we(), Me = () => De || Le ? Se : A, Ue = /* @__PURE__ */ Me(), ie = (e) => e.isUninitialized ? {
46
+ ...e,
47
+ isUninitialized: !1,
48
+ isFetching: !0,
49
+ isLoading: e.data === void 0,
50
+ status: pe.pending
51
+ } : e;
52
+ function te(e, ...f) {
53
+ const y = {};
54
+ return f.forEach((m) => {
55
+ y[m] = e[m];
56
+ }), y;
57
+ }
58
+ var ne = ["data", "status", "isLoading", "isSuccess", "isError", "error"];
59
+ function qe({
60
+ api: e,
61
+ moduleOptions: {
62
+ batch: f,
63
+ hooks: {
64
+ useDispatch: y,
65
+ useSelector: m,
66
+ useStore: I
67
+ },
68
+ unstable__sideEffectsInRender: h,
69
+ createSelector: S
70
+ },
71
+ serializeQueryArgs: g,
72
+ context: D
73
+ }) {
74
+ const V = h ? (t) => t() : A;
75
+ return {
76
+ buildQueryHooks: R,
77
+ buildInfiniteQueryHooks: Y,
78
+ buildMutationHook: Z,
79
+ usePrefetch: B
80
+ };
81
+ function K(t, r, d) {
82
+ if (r?.endpointName && t.isUninitialized) {
83
+ const {
84
+ endpointName: s
85
+ } = r, c = D.endpointDefinitions[s];
86
+ d !== U && g({
87
+ queryArgs: r.originalArgs,
88
+ endpointDefinition: c,
89
+ endpointName: s
90
+ }) === g({
91
+ queryArgs: d,
92
+ endpointDefinition: c,
93
+ endpointName: s
94
+ }) && (r = void 0);
95
+ }
96
+ let u = t.isSuccess ? t.data : r?.data;
97
+ u === void 0 && (u = t.data);
98
+ const i = u !== void 0, n = t.isLoading, o = (!r || r.isLoading || r.isUninitialized) && !i && n, a = t.isSuccess || i && (n && !r?.isError || t.isUninitialized);
99
+ return {
100
+ ...t,
101
+ data: u,
102
+ currentData: t.data,
103
+ isFetching: n,
104
+ isLoading: o,
105
+ isSuccess: a
106
+ };
107
+ }
108
+ function W(t, r, d) {
109
+ if (r?.endpointName && t.isUninitialized) {
110
+ const {
111
+ endpointName: s
112
+ } = r, c = D.endpointDefinitions[s];
113
+ d !== U && g({
114
+ queryArgs: r.originalArgs,
115
+ endpointDefinition: c,
116
+ endpointName: s
117
+ }) === g({
118
+ queryArgs: d,
119
+ endpointDefinition: c,
120
+ endpointName: s
121
+ }) && (r = void 0);
122
+ }
123
+ let u = t.isSuccess ? t.data : r?.data;
124
+ u === void 0 && (u = t.data);
125
+ const i = u !== void 0, n = t.isLoading, o = (!r || r.isLoading || r.isUninitialized) && !i && n, a = t.isSuccess || n && i;
126
+ return {
127
+ ...t,
128
+ data: u,
129
+ currentData: t.data,
130
+ isFetching: n,
131
+ isLoading: o,
132
+ isSuccess: a
133
+ };
134
+ }
135
+ function B(t, r) {
136
+ const d = y(), u = G(r);
137
+ return N((i, n) => d(e.util.prefetch(t, i, {
138
+ ...u,
139
+ ...n
140
+ })), [t, d, u]);
141
+ }
142
+ function P(t, r, {
143
+ refetchOnReconnect: d,
144
+ refetchOnFocus: u,
145
+ refetchOnMountOrArgChange: i,
146
+ skip: n = !1,
147
+ pollingInterval: o = 0,
148
+ skipPollingIfUnfocused: a = !1,
149
+ ...s
150
+ } = {}) {
151
+ const {
152
+ initiate: c
153
+ } = e.endpoints[t], l = y(), O = q(void 0);
154
+ if (!O.current) {
155
+ const M = l(e.internalActions.internal_getRTKQSubscriptions());
156
+ if (process.env.NODE_ENV !== "production" && (typeof M != "object" || typeof M?.type == "string"))
157
+ throw new Error(process.env.NODE_ENV === "production" ? oe(37) : `Warning: Middleware for RTK-Query API at reducerPath "${e.reducerPath}" has not been added to the store.
158
+ You must add the middleware for RTK-Query to function correctly!`);
159
+ O.current = M;
160
+ }
161
+ const p = ee(n ? U : r), b = G({
162
+ refetchOnReconnect: d,
163
+ refetchOnFocus: u,
164
+ pollingInterval: o,
165
+ skipPollingIfUnfocused: a
166
+ }), v = s.initialPageParam, E = G(v), Q = q(void 0);
167
+ let {
168
+ queryCacheKey: L,
169
+ requestId: H
170
+ } = Q.current || {}, z = !1;
171
+ L && H && (z = O.current.isRequestSubscribed(L, H));
172
+ const j = !z && Q.current !== void 0;
173
+ return V(() => {
174
+ j && (Q.current = void 0);
175
+ }, [j]), V(() => {
176
+ const M = Q.current;
177
+ if (typeof process < "u" && process.env.NODE_ENV === "removeMeOnCompilation" && console.log(j), p === U) {
178
+ M?.unsubscribe(), Q.current = void 0;
179
+ return;
180
+ }
181
+ const ue = Q.current?.subscriptionOptions;
182
+ if (!M || M.arg !== p) {
183
+ M?.unsubscribe();
184
+ const ce = l(c(p, {
185
+ subscriptionOptions: b,
186
+ forceRefetch: i,
187
+ ...se(D.endpointDefinitions[t]) ? {
188
+ initialPageParam: E
189
+ } : {}
190
+ }));
191
+ Q.current = ce;
192
+ } else b !== ue && M.updateSubscriptionOptions(b);
193
+ }, [l, c, i, p, b, j, E, t]), [Q, l, c, b];
194
+ }
195
+ function T(t, r) {
196
+ return (u, {
197
+ skip: i = !1,
198
+ selectFromResult: n
199
+ } = {}) => {
200
+ const {
201
+ select: o
202
+ } = e.endpoints[t], a = ee(i ? U : u), s = q(void 0), c = k(() => (
203
+ // Normally ts-ignores are bad and should be avoided, but we're
204
+ // already casting this selector to be `Selector<any>` anyway,
205
+ // so the inconsistencies don't matter here
206
+ // @ts-ignore
207
+ S([
208
+ // @ts-ignore
209
+ o(a),
210
+ (v, E) => E,
211
+ (v) => a
212
+ ], r, {
213
+ memoizeOptions: {
214
+ resultEqualityCheck: $
215
+ }
216
+ })
217
+ ), [o, a]), l = k(() => n ? S([c], n, {
218
+ devModeChecks: {
219
+ identityFunctionCheck: "never"
220
+ }
221
+ }) : c, [c, n]), O = m((v) => l(v, s.current), $), p = I(), b = c(p.getState(), s.current);
222
+ return Ue(() => {
223
+ s.current = b;
224
+ }, [b]), O;
225
+ };
226
+ }
227
+ function w(t) {
228
+ A(() => () => {
229
+ t.current?.unsubscribe?.(), t.current = void 0;
230
+ }, [t]);
231
+ }
232
+ function _(t) {
233
+ if (!t.current) throw new Error(process.env.NODE_ENV === "production" ? oe(38) : "Cannot refetch a query that has not been started yet.");
234
+ return t.current.refetch();
235
+ }
236
+ function R(t) {
237
+ const r = (i, n = {}) => {
238
+ const [o] = P(t, i, n);
239
+ return w(o), k(() => ({
240
+ /**
241
+ * A method to manually refetch data for the query
242
+ */
243
+ refetch: () => _(o)
244
+ }), [o]);
245
+ }, d = ({
246
+ refetchOnReconnect: i,
247
+ refetchOnFocus: n,
248
+ pollingInterval: o = 0,
249
+ skipPollingIfUnfocused: a = !1
250
+ } = {}) => {
251
+ const {
252
+ initiate: s
253
+ } = e.endpoints[t], c = y(), [l, O] = re(X), p = q(void 0), b = G({
254
+ refetchOnReconnect: i,
255
+ refetchOnFocus: n,
256
+ pollingInterval: o,
257
+ skipPollingIfUnfocused: a
258
+ });
259
+ V(() => {
260
+ const L = p.current?.subscriptionOptions;
261
+ b !== L && p.current?.updateSubscriptionOptions(b);
262
+ }, [b]);
263
+ const v = q(b);
264
+ V(() => {
265
+ v.current = b;
266
+ }, [b]);
267
+ const E = N(function(L, H = !1) {
268
+ let z;
269
+ return f(() => {
270
+ p.current?.unsubscribe(), p.current = z = c(s(L, {
271
+ subscriptionOptions: v.current,
272
+ forceRefetch: !H
273
+ })), O(L);
274
+ }), z;
275
+ }, [c, s]), Q = N(() => {
276
+ p.current?.queryCacheKey && c(e.internalActions.removeQueryResult({
277
+ queryCacheKey: p.current?.queryCacheKey
278
+ }));
279
+ }, [c]);
280
+ return A(() => () => {
281
+ p?.current?.unsubscribe();
282
+ }, []), A(() => {
283
+ l !== X && !p.current && E(l, !0);
284
+ }, [l, E]), k(() => [E, l, {
285
+ reset: Q
286
+ }], [E, l, Q]);
287
+ }, u = T(t, K);
288
+ return {
289
+ useQueryState: u,
290
+ useQuerySubscription: r,
291
+ useLazyQuerySubscription: d,
292
+ useLazyQuery(i) {
293
+ const [n, o, {
294
+ reset: a
295
+ }] = d(i), s = u(o, {
296
+ ...i,
297
+ skip: o === X
298
+ }), c = k(() => ({
299
+ lastArg: o
300
+ }), [o]);
301
+ return k(() => [n, {
302
+ ...s,
303
+ reset: a
304
+ }, c], [n, s, a, c]);
305
+ },
306
+ useQuery(i, n) {
307
+ const o = r(i, n), a = u(i, {
308
+ selectFromResult: i === U || n?.skip ? void 0 : ie,
309
+ ...n
310
+ }), s = te(a, ...ne);
311
+ return x(s), k(() => ({
312
+ ...a,
313
+ ...o
314
+ }), [a, o]);
315
+ }
316
+ };
317
+ }
318
+ function Y(t) {
319
+ const r = (u, i = {}) => {
320
+ const [n, o, a, s] = P(t, u, i), c = q(s);
321
+ V(() => {
322
+ c.current = s;
323
+ }, [s]);
324
+ const l = N(function(b, v) {
325
+ let E;
326
+ return f(() => {
327
+ n.current?.unsubscribe(), n.current = E = o(a(b, {
328
+ subscriptionOptions: c.current,
329
+ direction: v
330
+ }));
331
+ }), E;
332
+ }, [n, o, a]);
333
+ w(n);
334
+ const O = ee(i.skip ? U : u), p = N(() => _(n), [n]);
335
+ return k(() => ({
336
+ trigger: l,
337
+ /**
338
+ * A method to manually refetch data for the query
339
+ */
340
+ refetch: p,
341
+ fetchNextPage: () => l(O, "forward"),
342
+ fetchPreviousPage: () => l(O, "backward")
343
+ }), [p, l, O]);
344
+ }, d = T(t, W);
345
+ return {
346
+ useInfiniteQueryState: d,
347
+ useInfiniteQuerySubscription: r,
348
+ useInfiniteQuery(u, i) {
349
+ const {
350
+ refetch: n,
351
+ fetchNextPage: o,
352
+ fetchPreviousPage: a
353
+ } = r(u, i), s = d(u, {
354
+ selectFromResult: u === U || i?.skip ? void 0 : ie,
355
+ ...i
356
+ }), c = te(s, ...ne, "hasNextPage", "hasPreviousPage");
357
+ return x(c), k(() => ({
358
+ ...s,
359
+ fetchNextPage: o,
360
+ fetchPreviousPage: a,
361
+ refetch: n
362
+ }), [s, o, a, n]);
363
+ }
364
+ };
365
+ }
366
+ function Z(t) {
367
+ return ({
368
+ selectFromResult: r,
369
+ fixedCacheKey: d
370
+ } = {}) => {
371
+ const {
372
+ select: u,
373
+ initiate: i
374
+ } = e.endpoints[t], n = y(), [o, a] = re();
375
+ A(() => () => {
376
+ o?.arg.fixedCacheKey || o?.reset();
377
+ }, [o]);
378
+ const s = N(function(L) {
379
+ const H = n(i(L, {
380
+ fixedCacheKey: d
381
+ }));
382
+ return a(H), H;
383
+ }, [n, i, d]), {
384
+ requestId: c
385
+ } = o || {}, l = k(() => u({
386
+ fixedCacheKey: d,
387
+ requestId: o?.requestId
388
+ }), [d, o, u]), O = k(() => r ? S([l], r) : l, [r, l]), p = m(O, $), b = d == null ? o?.arg.originalArgs : void 0, v = N(() => {
389
+ f(() => {
390
+ o && a(void 0), d && n(e.internalActions.removeMutationResult({
391
+ requestId: c,
392
+ fixedCacheKey: d
393
+ }));
394
+ });
395
+ }, [n, d, o, c]), E = te(p, ...ne, "endpointName");
396
+ x(E);
397
+ const Q = k(() => ({
398
+ ...p,
399
+ originalArgs: b,
400
+ reset: v
401
+ }), [p, b, v]);
402
+ return k(() => [s, Q], [s, Q]);
403
+ };
404
+ }
405
+ }
406
+ var Ae = /* @__PURE__ */ Symbol(), Ve = ({
407
+ batch: e = me,
408
+ hooks: f = {
409
+ useDispatch: ge,
410
+ useSelector: he,
411
+ useStore: ye
412
+ },
413
+ createSelector: y = de,
414
+ unstable__sideEffectsInRender: m = !1,
415
+ ...I
416
+ } = {}) => {
417
+ if (process.env.NODE_ENV !== "production") {
418
+ const h = ["useDispatch", "useSelector", "useStore"];
419
+ let S = !1;
420
+ for (const g of h)
421
+ if (ke(I) > 0 && (I[g] && (S || (console.warn("As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`"), S = !0)), f[g] = I[g]), typeof f[g] != "function")
422
+ throw new Error(process.env.NODE_ENV === "production" ? oe(36) : `When using custom hooks for context, all ${h.length} hooks need to be provided: ${h.join(", ")}.
423
+ Hook ${g} was either not provided or not a function.`);
424
+ }
425
+ return {
426
+ name: Ae,
427
+ init(h, {
428
+ serializeQueryArgs: S
429
+ }, g) {
430
+ const D = h, {
431
+ buildQueryHooks: V,
432
+ buildInfiniteQueryHooks: K,
433
+ buildMutationHook: W,
434
+ usePrefetch: B
435
+ } = qe({
436
+ api: h,
437
+ moduleOptions: {
438
+ batch: e,
439
+ hooks: f,
440
+ unstable__sideEffectsInRender: m,
441
+ createSelector: y
442
+ },
443
+ serializeQueryArgs: S,
444
+ context: g
445
+ });
446
+ return C(D, {
447
+ usePrefetch: B
448
+ }), C(g, {
449
+ batch: e
450
+ }), {
451
+ injectEndpoint(P, T) {
452
+ if (Pe(T)) {
453
+ const {
454
+ useQuery: w,
455
+ useLazyQuery: _,
456
+ useLazyQuerySubscription: R,
457
+ useQueryState: Y,
458
+ useQuerySubscription: Z
459
+ } = V(P);
460
+ C(D.endpoints[P], {
461
+ useQuery: w,
462
+ useLazyQuery: _,
463
+ useLazyQuerySubscription: R,
464
+ useQueryState: Y,
465
+ useQuerySubscription: Z
466
+ }), h[`use${F(P)}Query`] = w, h[`useLazy${F(P)}Query`] = _;
467
+ }
468
+ if (Oe(T)) {
469
+ const w = W(P);
470
+ C(D.endpoints[P], {
471
+ useMutation: w
472
+ }), h[`use${F(P)}Mutation`] = w;
473
+ } else if (se(T)) {
474
+ const {
475
+ useInfiniteQuery: w,
476
+ useInfiniteQuerySubscription: _,
477
+ useInfiniteQueryState: R
478
+ } = K(P);
479
+ C(D.endpoints[P], {
480
+ useInfiniteQuery: w,
481
+ useInfiniteQuerySubscription: _,
482
+ useInfiniteQueryState: R
483
+ }), h[`use${F(P)}InfiniteQuery`] = w;
484
+ }
485
+ }
486
+ };
487
+ }
488
+ };
489
+ }, _e = /* @__PURE__ */ ae(fe(), Ve());
490
+ const He = [
491
+ // These are the tags for the common models used throughout our system.
492
+ // https://github.com/ocadotechnology/codeforlife-package-python/tree/main/codeforlife/user/models
493
+ // NOTE: Don't use the "Teacher" and "Student" tags. Use "User" instead.
494
+ "User",
495
+ "School",
496
+ "Class",
497
+ "AuthFactor"
498
+ ];
499
+ function Ge({
500
+ tagTypes: e = []
501
+ } = {}) {
502
+ const f = be({
503
+ baseUrl: `${ve}/`,
504
+ credentials: "include",
505
+ prepareHeaders: (m, I) => {
506
+ const { type: h, arg: S } = I, g = typeof S == "string" ? "GET" : S.method || "GET";
507
+ if (h === "mutation" || !Qe(g)) {
508
+ const D = J();
509
+ D && m.set("x-csrftoken", D);
510
+ }
511
+ return m;
512
+ }
513
+ }), y = _e({
514
+ // https://redux-toolkit.js.org/rtk-query/usage/customizing-queries#implementing-a-custom-basequery
515
+ baseQuery: async (m, I, h) => {
516
+ if (I.type === "mutation" && J() === void 0) {
517
+ const { error: S } = await f(
518
+ { url: "/csrf/cookie/", method: "GET" },
519
+ I,
520
+ {}
521
+ );
522
+ S !== void 0 && console.error(S), J();
523
+ }
524
+ return await f(m, I, h);
525
+ },
526
+ tagTypes: [...He, ...e],
527
+ endpoints: () => ({})
528
+ });
529
+ return y.injectEndpoints({
530
+ endpoints: (m) => ({
531
+ logout: Ee(y, m)
532
+ })
533
+ });
534
+ }
535
+ export {
536
+ Ge as createApi,
537
+ Be as schemas,
538
+ He as tagTypes,
539
+ Ze as urls
540
+ };
541
+ //# sourceMappingURL=index.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../../node_modules/@reduxjs/toolkit/dist/query/react/rtk-query-react.modern.mjs","../../src/api/tagTypes.ts","../../src/api/createApi.ts"],"sourcesContent":["// src/query/react/index.ts\nimport { buildCreateApi, coreModule } from \"@reduxjs/toolkit/query\";\n\n// src/query/react/module.ts\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { batch as rrBatch, useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore } from \"react-redux\";\nimport { createSelector as _createSelector } from \"reselect\";\n\n// src/query/utils/capitalize.ts\nfunction capitalize(str) {\n return str.replace(str[0], str[0].toUpperCase());\n}\n\n// src/query/utils/countObjectKeys.ts\nfunction countObjectKeys(obj) {\n let count = 0;\n for (const _key in obj) {\n count++;\n }\n return count;\n}\n\n// src/query/endpointDefinitions.ts\nfunction isQueryDefinition(e) {\n return e.type === \"query\" /* query */;\n}\nfunction isMutationDefinition(e) {\n return e.type === \"mutation\" /* mutation */;\n}\nfunction isInfiniteQueryDefinition(e) {\n return e.type === \"infinitequery\" /* infinitequery */;\n}\n\n// src/query/tsHelpers.ts\nfunction safeAssign(target, ...args) {\n return Object.assign(target, ...args);\n}\n\n// src/query/react/buildHooks.ts\nimport { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { QueryStatus, skipToken } from \"@reduxjs/toolkit/query\";\nimport { useCallback, useDebugValue, useEffect as useEffect3, useLayoutEffect, useMemo as useMemo2, useRef as useRef3, useState } from \"react\";\nimport { shallowEqual as shallowEqual2 } from \"react-redux\";\n\n// src/query/react/constants.ts\nvar UNINITIALIZED_VALUE = Symbol();\n\n// src/query/react/useSerializedStableValue.ts\nimport { useEffect, useRef, useMemo } from \"react\";\nimport { copyWithStructuralSharing } from \"@reduxjs/toolkit/query\";\nfunction useStableQueryArgs(queryArgs) {\n const cache = useRef(queryArgs);\n const copy = useMemo(() => copyWithStructuralSharing(cache.current, queryArgs), [queryArgs]);\n useEffect(() => {\n if (cache.current !== copy) {\n cache.current = copy;\n }\n }, [copy]);\n return copy;\n}\n\n// src/query/react/useShallowStableValue.ts\nimport { useEffect as useEffect2, useRef as useRef2 } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nfunction useShallowStableValue(value) {\n const cache = useRef2(value);\n useEffect2(() => {\n if (!shallowEqual(cache.current, value)) {\n cache.current = value;\n }\n }, [value]);\n return shallowEqual(cache.current, value) ? cache.current : value;\n}\n\n// src/query/react/buildHooks.ts\nvar canUseDOM = () => !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nvar isDOM = /* @__PURE__ */ canUseDOM();\nvar isRunningInReactNative = () => typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\";\nvar isReactNative = /* @__PURE__ */ isRunningInReactNative();\nvar getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? useLayoutEffect : useEffect3;\nvar useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();\nvar noPendingQueryStateSelector = (selected) => {\n if (selected.isUninitialized) {\n return {\n ...selected,\n isUninitialized: false,\n isFetching: true,\n isLoading: selected.data !== void 0 ? false : true,\n status: QueryStatus.pending\n };\n }\n return selected;\n};\nfunction pick(obj, ...keys) {\n const ret = {};\n keys.forEach((key) => {\n ret[key] = obj[key];\n });\n return ret;\n}\nvar COMMON_HOOK_DEBUG_FIELDS = [\"data\", \"status\", \"isLoading\", \"isSuccess\", \"isError\", \"error\"];\nfunction buildHooks({\n api,\n moduleOptions: {\n batch,\n hooks: {\n useDispatch,\n useSelector,\n useStore\n },\n unstable__sideEffectsInRender,\n createSelector\n },\n serializeQueryArgs,\n context\n}) {\n const usePossiblyImmediateEffect = unstable__sideEffectsInRender ? (cb) => cb() : useEffect3;\n return {\n buildQueryHooks,\n buildInfiniteQueryHooks,\n buildMutationHook,\n usePrefetch\n };\n function queryStatePreSelector(currentState, lastResult, queryArgs) {\n if (lastResult?.endpointName && currentState.isUninitialized) {\n const {\n endpointName\n } = lastResult;\n const endpointDefinition = context.endpointDefinitions[endpointName];\n if (queryArgs !== skipToken && serializeQueryArgs({\n queryArgs: lastResult.originalArgs,\n endpointDefinition,\n endpointName\n }) === serializeQueryArgs({\n queryArgs,\n endpointDefinition,\n endpointName\n })) lastResult = void 0;\n }\n let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n if (data === void 0) data = currentState.data;\n const hasData = data !== void 0;\n const isFetching = currentState.isLoading;\n const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n const isSuccess = currentState.isSuccess || hasData && (isFetching && !lastResult?.isError || currentState.isUninitialized);\n return {\n ...currentState,\n data,\n currentData: currentState.data,\n isFetching,\n isLoading,\n isSuccess\n };\n }\n function infiniteQueryStatePreSelector(currentState, lastResult, queryArgs) {\n if (lastResult?.endpointName && currentState.isUninitialized) {\n const {\n endpointName\n } = lastResult;\n const endpointDefinition = context.endpointDefinitions[endpointName];\n if (queryArgs !== skipToken && serializeQueryArgs({\n queryArgs: lastResult.originalArgs,\n endpointDefinition,\n endpointName\n }) === serializeQueryArgs({\n queryArgs,\n endpointDefinition,\n endpointName\n })) lastResult = void 0;\n }\n let data = currentState.isSuccess ? currentState.data : lastResult?.data;\n if (data === void 0) data = currentState.data;\n const hasData = data !== void 0;\n const isFetching = currentState.isLoading;\n const isLoading = (!lastResult || lastResult.isLoading || lastResult.isUninitialized) && !hasData && isFetching;\n const isSuccess = currentState.isSuccess || isFetching && hasData;\n return {\n ...currentState,\n data,\n currentData: currentState.data,\n isFetching,\n isLoading,\n isSuccess\n };\n }\n function usePrefetch(endpointName, defaultOptions) {\n const dispatch = useDispatch();\n const stableDefaultOptions = useShallowStableValue(defaultOptions);\n return useCallback((arg, options) => dispatch(api.util.prefetch(endpointName, arg, {\n ...stableDefaultOptions,\n ...options\n })), [endpointName, dispatch, stableDefaultOptions]);\n }\n function useQuerySubscriptionCommonImpl(endpointName, arg, {\n refetchOnReconnect,\n refetchOnFocus,\n refetchOnMountOrArgChange,\n skip = false,\n pollingInterval = 0,\n skipPollingIfUnfocused = false,\n ...rest\n } = {}) {\n const {\n initiate\n } = api.endpoints[endpointName];\n const dispatch = useDispatch();\n const subscriptionSelectorsRef = useRef3(void 0);\n if (!subscriptionSelectorsRef.current) {\n const returnedValue = dispatch(api.internalActions.internal_getRTKQSubscriptions());\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof returnedValue !== \"object\" || typeof returnedValue?.type === \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(37) : `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\n You must add the middleware for RTK-Query to function correctly!`);\n }\n }\n subscriptionSelectorsRef.current = returnedValue;\n }\n const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n const stableSubscriptionOptions = useShallowStableValue({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval,\n skipPollingIfUnfocused\n });\n const initialPageParam = rest.initialPageParam;\n const stableInitialPageParam = useShallowStableValue(initialPageParam);\n const promiseRef = useRef3(void 0);\n let {\n queryCacheKey,\n requestId\n } = promiseRef.current || {};\n let currentRenderHasSubscription = false;\n if (queryCacheKey && requestId) {\n currentRenderHasSubscription = subscriptionSelectorsRef.current.isRequestSubscribed(queryCacheKey, requestId);\n }\n const subscriptionRemoved = !currentRenderHasSubscription && promiseRef.current !== void 0;\n usePossiblyImmediateEffect(() => {\n if (subscriptionRemoved) {\n promiseRef.current = void 0;\n }\n }, [subscriptionRemoved]);\n usePossiblyImmediateEffect(() => {\n const lastPromise = promiseRef.current;\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"removeMeOnCompilation\") {\n console.log(subscriptionRemoved);\n }\n if (stableArg === skipToken) {\n lastPromise?.unsubscribe();\n promiseRef.current = void 0;\n return;\n }\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n if (!lastPromise || lastPromise.arg !== stableArg) {\n lastPromise?.unsubscribe();\n const promise = dispatch(initiate(stableArg, {\n subscriptionOptions: stableSubscriptionOptions,\n forceRefetch: refetchOnMountOrArgChange,\n ...isInfiniteQueryDefinition(context.endpointDefinitions[endpointName]) ? {\n initialPageParam: stableInitialPageParam\n } : {}\n }));\n promiseRef.current = promise;\n } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);\n }\n }, [dispatch, initiate, refetchOnMountOrArgChange, stableArg, stableSubscriptionOptions, subscriptionRemoved, stableInitialPageParam, endpointName]);\n return [promiseRef, dispatch, initiate, stableSubscriptionOptions];\n }\n function buildUseQueryState(endpointName, preSelector) {\n const useQueryState = (arg, {\n skip = false,\n selectFromResult\n } = {}) => {\n const {\n select\n } = api.endpoints[endpointName];\n const stableArg = useStableQueryArgs(skip ? skipToken : arg);\n const lastValue = useRef3(void 0);\n const selectDefaultResult = useMemo2(() => (\n // Normally ts-ignores are bad and should be avoided, but we're\n // already casting this selector to be `Selector<any>` anyway,\n // so the inconsistencies don't matter here\n // @ts-ignore\n createSelector([\n // @ts-ignore\n select(stableArg),\n (_, lastResult) => lastResult,\n (_) => stableArg\n ], preSelector, {\n memoizeOptions: {\n resultEqualityCheck: shallowEqual2\n }\n })\n ), [select, stableArg]);\n const querySelector = useMemo2(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult, {\n devModeChecks: {\n identityFunctionCheck: \"never\"\n }\n }) : selectDefaultResult, [selectDefaultResult, selectFromResult]);\n const currentState = useSelector((state) => querySelector(state, lastValue.current), shallowEqual2);\n const store = useStore();\n const newLastValue = selectDefaultResult(store.getState(), lastValue.current);\n useIsomorphicLayoutEffect(() => {\n lastValue.current = newLastValue;\n }, [newLastValue]);\n return currentState;\n };\n return useQueryState;\n }\n function usePromiseRefUnsubscribeOnUnmount(promiseRef) {\n useEffect3(() => {\n return () => {\n promiseRef.current?.unsubscribe?.();\n promiseRef.current = void 0;\n };\n }, [promiseRef]);\n }\n function refetchOrErrorIfUnmounted(promiseRef) {\n if (!promiseRef.current) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(38) : \"Cannot refetch a query that has not been started yet.\");\n return promiseRef.current.refetch();\n }\n function buildQueryHooks(endpointName) {\n const useQuerySubscription = (arg, options = {}) => {\n const [promiseRef] = useQuerySubscriptionCommonImpl(endpointName, arg, options);\n usePromiseRefUnsubscribeOnUnmount(promiseRef);\n return useMemo2(() => ({\n /**\n * A method to manually refetch data for the query\n */\n refetch: () => refetchOrErrorIfUnmounted(promiseRef)\n }), [promiseRef]);\n };\n const useLazyQuerySubscription = ({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval = 0,\n skipPollingIfUnfocused = false\n } = {}) => {\n const {\n initiate\n } = api.endpoints[endpointName];\n const dispatch = useDispatch();\n const [arg, setArg] = useState(UNINITIALIZED_VALUE);\n const promiseRef = useRef3(void 0);\n const stableSubscriptionOptions = useShallowStableValue({\n refetchOnReconnect,\n refetchOnFocus,\n pollingInterval,\n skipPollingIfUnfocused\n });\n usePossiblyImmediateEffect(() => {\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions;\n if (stableSubscriptionOptions !== lastSubscriptionOptions) {\n promiseRef.current?.updateSubscriptionOptions(stableSubscriptionOptions);\n }\n }, [stableSubscriptionOptions]);\n const subscriptionOptionsRef = useRef3(stableSubscriptionOptions);\n usePossiblyImmediateEffect(() => {\n subscriptionOptionsRef.current = stableSubscriptionOptions;\n }, [stableSubscriptionOptions]);\n const trigger = useCallback(function(arg2, preferCacheValue = false) {\n let promise;\n batch(() => {\n promiseRef.current?.unsubscribe();\n promiseRef.current = promise = dispatch(initiate(arg2, {\n subscriptionOptions: subscriptionOptionsRef.current,\n forceRefetch: !preferCacheValue\n }));\n setArg(arg2);\n });\n return promise;\n }, [dispatch, initiate]);\n const reset = useCallback(() => {\n if (promiseRef.current?.queryCacheKey) {\n dispatch(api.internalActions.removeQueryResult({\n queryCacheKey: promiseRef.current?.queryCacheKey\n }));\n }\n }, [dispatch]);\n useEffect3(() => {\n return () => {\n promiseRef?.current?.unsubscribe();\n };\n }, []);\n useEffect3(() => {\n if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\n trigger(arg, true);\n }\n }, [arg, trigger]);\n return useMemo2(() => [trigger, arg, {\n reset\n }], [trigger, arg, reset]);\n };\n const useQueryState = buildUseQueryState(endpointName, queryStatePreSelector);\n return {\n useQueryState,\n useQuerySubscription,\n useLazyQuerySubscription,\n useLazyQuery(options) {\n const [trigger, arg, {\n reset\n }] = useLazyQuerySubscription(options);\n const queryStateResults = useQueryState(arg, {\n ...options,\n skip: arg === UNINITIALIZED_VALUE\n });\n const info = useMemo2(() => ({\n lastArg: arg\n }), [arg]);\n return useMemo2(() => [trigger, {\n ...queryStateResults,\n reset\n }, info], [trigger, queryStateResults, reset, info]);\n },\n useQuery(arg, options) {\n const querySubscriptionResults = useQuerySubscription(arg, options);\n const queryStateResults = useQueryState(arg, {\n selectFromResult: arg === skipToken || options?.skip ? void 0 : noPendingQueryStateSelector,\n ...options\n });\n const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS);\n useDebugValue(debugValue);\n return useMemo2(() => ({\n ...queryStateResults,\n ...querySubscriptionResults\n }), [queryStateResults, querySubscriptionResults]);\n }\n };\n }\n function buildInfiniteQueryHooks(endpointName) {\n const useInfiniteQuerySubscription = (arg, options = {}) => {\n const [promiseRef, dispatch, initiate, stableSubscriptionOptions] = useQuerySubscriptionCommonImpl(endpointName, arg, options);\n const subscriptionOptionsRef = useRef3(stableSubscriptionOptions);\n usePossiblyImmediateEffect(() => {\n subscriptionOptionsRef.current = stableSubscriptionOptions;\n }, [stableSubscriptionOptions]);\n const trigger = useCallback(function(arg2, direction) {\n let promise;\n batch(() => {\n promiseRef.current?.unsubscribe();\n promiseRef.current = promise = dispatch(initiate(arg2, {\n subscriptionOptions: subscriptionOptionsRef.current,\n direction\n }));\n });\n return promise;\n }, [promiseRef, dispatch, initiate]);\n usePromiseRefUnsubscribeOnUnmount(promiseRef);\n const stableArg = useStableQueryArgs(options.skip ? skipToken : arg);\n const refetch = useCallback(() => refetchOrErrorIfUnmounted(promiseRef), [promiseRef]);\n return useMemo2(() => {\n const fetchNextPage = () => {\n return trigger(stableArg, \"forward\");\n };\n const fetchPreviousPage = () => {\n return trigger(stableArg, \"backward\");\n };\n return {\n trigger,\n /**\n * A method to manually refetch data for the query\n */\n refetch,\n fetchNextPage,\n fetchPreviousPage\n };\n }, [refetch, trigger, stableArg]);\n };\n const useInfiniteQueryState = buildUseQueryState(endpointName, infiniteQueryStatePreSelector);\n return {\n useInfiniteQueryState,\n useInfiniteQuerySubscription,\n useInfiniteQuery(arg, options) {\n const {\n refetch,\n fetchNextPage,\n fetchPreviousPage\n } = useInfiniteQuerySubscription(arg, options);\n const queryStateResults = useInfiniteQueryState(arg, {\n selectFromResult: arg === skipToken || options?.skip ? void 0 : noPendingQueryStateSelector,\n ...options\n });\n const debugValue = pick(queryStateResults, ...COMMON_HOOK_DEBUG_FIELDS, \"hasNextPage\", \"hasPreviousPage\");\n useDebugValue(debugValue);\n return useMemo2(() => ({\n ...queryStateResults,\n fetchNextPage,\n fetchPreviousPage,\n refetch\n }), [queryStateResults, fetchNextPage, fetchPreviousPage, refetch]);\n }\n };\n }\n function buildMutationHook(name) {\n return ({\n selectFromResult,\n fixedCacheKey\n } = {}) => {\n const {\n select,\n initiate\n } = api.endpoints[name];\n const dispatch = useDispatch();\n const [promise, setPromise] = useState();\n useEffect3(() => () => {\n if (!promise?.arg.fixedCacheKey) {\n promise?.reset();\n }\n }, [promise]);\n const triggerMutation = useCallback(function(arg) {\n const promise2 = dispatch(initiate(arg, {\n fixedCacheKey\n }));\n setPromise(promise2);\n return promise2;\n }, [dispatch, initiate, fixedCacheKey]);\n const {\n requestId\n } = promise || {};\n const selectDefaultResult = useMemo2(() => select({\n fixedCacheKey,\n requestId: promise?.requestId\n }), [fixedCacheKey, promise, select]);\n const mutationSelector = useMemo2(() => selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult, [selectFromResult, selectDefaultResult]);\n const currentState = useSelector(mutationSelector, shallowEqual2);\n const originalArgs = fixedCacheKey == null ? promise?.arg.originalArgs : void 0;\n const reset = useCallback(() => {\n batch(() => {\n if (promise) {\n setPromise(void 0);\n }\n if (fixedCacheKey) {\n dispatch(api.internalActions.removeMutationResult({\n requestId,\n fixedCacheKey\n }));\n }\n });\n }, [dispatch, fixedCacheKey, promise, requestId]);\n const debugValue = pick(currentState, ...COMMON_HOOK_DEBUG_FIELDS, \"endpointName\");\n useDebugValue(debugValue);\n const finalState = useMemo2(() => ({\n ...currentState,\n originalArgs,\n reset\n }), [currentState, originalArgs, reset]);\n return useMemo2(() => [triggerMutation, finalState], [triggerMutation, finalState]);\n };\n }\n}\n\n// src/query/react/module.ts\nvar reactHooksModuleName = /* @__PURE__ */ Symbol();\nvar reactHooksModule = ({\n batch = rrBatch,\n hooks = {\n useDispatch: rrUseDispatch,\n useSelector: rrUseSelector,\n useStore: rrUseStore\n },\n createSelector = _createSelector,\n unstable__sideEffectsInRender = false,\n ...rest\n} = {}) => {\n if (process.env.NODE_ENV !== \"production\") {\n const hookNames = [\"useDispatch\", \"useSelector\", \"useStore\"];\n let warned = false;\n for (const hookName of hookNames) {\n if (countObjectKeys(rest) > 0) {\n if (rest[hookName]) {\n if (!warned) {\n console.warn(\"As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`\");\n warned = true;\n }\n }\n hooks[hookName] = rest[hookName];\n }\n if (typeof hooks[hookName] !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(36) : `When using custom hooks for context, all ${hookNames.length} hooks need to be provided: ${hookNames.join(\", \")}.\nHook ${hookName} was either not provided or not a function.`);\n }\n }\n }\n return {\n name: reactHooksModuleName,\n init(api, {\n serializeQueryArgs\n }, context) {\n const anyApi = api;\n const {\n buildQueryHooks,\n buildInfiniteQueryHooks,\n buildMutationHook,\n usePrefetch\n } = buildHooks({\n api,\n moduleOptions: {\n batch,\n hooks,\n unstable__sideEffectsInRender,\n createSelector\n },\n serializeQueryArgs,\n context\n });\n safeAssign(anyApi, {\n usePrefetch\n });\n safeAssign(context, {\n batch\n });\n return {\n injectEndpoint(endpointName, definition) {\n if (isQueryDefinition(definition)) {\n const {\n useQuery,\n useLazyQuery,\n useLazyQuerySubscription,\n useQueryState,\n useQuerySubscription\n } = buildQueryHooks(endpointName);\n safeAssign(anyApi.endpoints[endpointName], {\n useQuery,\n useLazyQuery,\n useLazyQuerySubscription,\n useQueryState,\n useQuerySubscription\n });\n api[`use${capitalize(endpointName)}Query`] = useQuery;\n api[`useLazy${capitalize(endpointName)}Query`] = useLazyQuery;\n }\n if (isMutationDefinition(definition)) {\n const useMutation = buildMutationHook(endpointName);\n safeAssign(anyApi.endpoints[endpointName], {\n useMutation\n });\n api[`use${capitalize(endpointName)}Mutation`] = useMutation;\n } else if (isInfiniteQueryDefinition(definition)) {\n const {\n useInfiniteQuery,\n useInfiniteQuerySubscription,\n useInfiniteQueryState\n } = buildInfiniteQueryHooks(endpointName);\n safeAssign(anyApi.endpoints[endpointName], {\n useInfiniteQuery,\n useInfiniteQuerySubscription,\n useInfiniteQueryState\n });\n api[`use${capitalize(endpointName)}InfiniteQuery`] = useInfiniteQuery;\n }\n }\n };\n }\n };\n};\n\n// src/query/react/index.ts\nexport * from \"@reduxjs/toolkit/query\";\n\n// src/query/react/ApiProvider.tsx\nimport { configureStore, formatProdErrorMessage as _formatProdErrorMessage4 } from \"@reduxjs/toolkit\";\nimport { useContext } from \"react\";\nimport { useEffect as useEffect4 } from \"react\";\nimport * as React from \"react\";\nimport { Provider, ReactReduxContext } from \"react-redux\";\nimport { setupListeners } from \"@reduxjs/toolkit/query\";\nfunction ApiProvider(props) {\n const context = props.context || ReactReduxContext;\n const existingContext = useContext(context);\n if (existingContext) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(35) : \"Existing Redux context detected. If you already have a store set up, please use the traditional Redux setup.\");\n }\n const [store] = React.useState(() => configureStore({\n reducer: {\n [props.api.reducerPath]: props.api.reducer\n },\n middleware: (gDM) => gDM().concat(props.api.middleware)\n }));\n useEffect4(() => props.setupListeners === false ? void 0 : setupListeners(store.dispatch, props.setupListeners), [props.setupListeners, store.dispatch]);\n return /* @__PURE__ */ React.createElement(Provider, { store, context }, props.children);\n}\n\n// src/query/react/index.ts\nvar createApi = /* @__PURE__ */ buildCreateApi(coreModule(), reactHooksModule());\nexport {\n ApiProvider,\n UNINITIALIZED_VALUE,\n createApi,\n reactHooksModule,\n reactHooksModuleName\n};\n//# sourceMappingURL=rtk-query-react.modern.mjs.map","const tagTypes = [\n // These are the tags for the common models used throughout our system.\n // https://github.com/ocadotechnology/codeforlife-package-python/tree/main/codeforlife/user/models\n // NOTE: Don't use the \"Teacher\" and \"Student\" tags. Use \"User\" instead.\n \"User\",\n \"School\",\n \"Class\",\n \"AuthFactor\",\n] as const\n\nexport default tagTypes\nexport type TagTypes = (typeof tagTypes)[number]\n","import {\n type Api,\n type BaseQueryApi,\n type FetchArgs,\n type FetchBaseQueryError,\n type FetchBaseQueryMeta,\n type MutationDefinition,\n type QueryReturnValue,\n createApi as _createApi,\n type coreModuleName,\n fetchBaseQuery,\n type reactHooksModuleName,\n} from \"@reduxjs/toolkit/query/react\"\n\nimport defaultTagTypes, { type TagTypes as DefaultTagTypes } from \"./tagTypes\"\nimport { SERVICE_API_URL } from \"../settings\"\nimport { buildLogoutEndpoint } from \"./endpoints/session\"\nimport { getCsrfCookie } from \"../utils/auth\"\nimport { isSafeHttpMethod } from \"../utils/api\"\n\n// TODO: decide if we want to keep any of this.\n// export function handleResponseError(error: FetchBaseQueryError): void {\n// if (\n// error.status === 400 &&\n// typeof error.data === \"object\" &&\n// error.data !== null\n// ) {\n// // Parse the error's data from snake_case to camelCase.\n// snakeCaseToCamelCase(error.data)\n// } else if (error.status === 401) {\n// // TODO: redirect to appropriate login page based on user type.\n// window.location.href = `${PORTAL_BASE_URL}/login/teacher`\n// } else {\n// // Catch-all error pages by status-code.\n// window.location.href = `${PORTAL_BASE_URL}/error/${\n// [403, 404].includes(error.status as number) ? error.status : 500\n// }`\n// }\n// }\n\nexport default function createApi<TagTypes extends string = never>({\n tagTypes = [],\n}: {\n tagTypes?: readonly TagTypes[]\n} = {}): Api<\n (\n args: string | FetchArgs,\n api: BaseQueryApi,\n extraOptions: {},\n ) => Promise<\n QueryReturnValue<unknown, FetchBaseQueryError, FetchBaseQueryMeta>\n >,\n { logout: MutationDefinition<null, any, any, null, any, any> },\n \"api\",\n TagTypes | DefaultTagTypes,\n typeof coreModuleName | typeof reactHooksModuleName\n> {\n const fetch = fetchBaseQuery({\n baseUrl: `${SERVICE_API_URL}/`,\n credentials: \"include\",\n prepareHeaders: (headers, endpoint) => {\n const { type, arg } = endpoint as typeof endpoint & {\n arg: string | FetchArgs\n }\n const method = typeof arg === \"string\" ? \"GET\" : arg.method || \"GET\"\n\n if (type === \"mutation\" || !isSafeHttpMethod(method)) {\n const csrfToken = getCsrfCookie()\n if (csrfToken) headers.set(\"x-csrftoken\", csrfToken)\n }\n\n return headers\n },\n })\n\n const api = _createApi({\n // https://redux-toolkit.js.org/rtk-query/usage/customizing-queries#implementing-a-custom-basequery\n baseQuery: async (args: string | FetchArgs, api, extraOptions) => {\n if (api.type === \"mutation\" && getCsrfCookie() === undefined) {\n // Get the CSRF token.\n const { error } = await fetch(\n { url: \"/csrf/cookie/\", method: \"GET\" },\n api,\n {},\n )\n\n // Validate we got the CSRF token.\n if (error !== undefined) {\n console.error(error)\n // TODO\n // window.location.href = `${PORTAL_BASE_URL}/error/500`\n }\n if (getCsrfCookie() === undefined) {\n // TODO\n // window.location.href = `${PORTAL_BASE_URL}/error/500`\n }\n }\n\n // Send the HTTP request and fetch the response.\n return await fetch(args, api, extraOptions)\n },\n tagTypes: [...defaultTagTypes, ...tagTypes],\n endpoints: () => ({}),\n })\n\n return api.injectEndpoints({\n endpoints: build => ({\n logout: buildLogoutEndpoint<null, null>(api, build),\n }),\n })\n}\n"],"names":["capitalize","str","countObjectKeys","obj","count","_key","isQueryDefinition","isMutationDefinition","isInfiniteQueryDefinition","safeAssign","target","args","UNINITIALIZED_VALUE","useStableQueryArgs","queryArgs","cache","useRef","copy","useMemo","copyWithStructuralSharing","useEffect","useShallowStableValue","value","useRef2","useEffect2","shallowEqual","canUseDOM","isDOM","isRunningInReactNative","isReactNative","getUseIsomorphicLayoutEffect","useLayoutEffect","useEffect3","useIsomorphicLayoutEffect","noPendingQueryStateSelector","selected","QueryStatus","pick","keys","ret","key","COMMON_HOOK_DEBUG_FIELDS","buildHooks","api","batch","useDispatch","useSelector","useStore","unstable__sideEffectsInRender","createSelector","serializeQueryArgs","context","usePossiblyImmediateEffect","cb","buildQueryHooks","buildInfiniteQueryHooks","buildMutationHook","usePrefetch","queryStatePreSelector","currentState","lastResult","endpointName","endpointDefinition","skipToken","data","hasData","isFetching","isLoading","isSuccess","infiniteQueryStatePreSelector","defaultOptions","dispatch","stableDefaultOptions","useCallback","arg","options","useQuerySubscriptionCommonImpl","refetchOnReconnect","refetchOnFocus","refetchOnMountOrArgChange","skip","pollingInterval","skipPollingIfUnfocused","rest","initiate","subscriptionSelectorsRef","useRef3","returnedValue","_formatProdErrorMessage","stableArg","stableSubscriptionOptions","initialPageParam","stableInitialPageParam","promiseRef","queryCacheKey","requestId","currentRenderHasSubscription","subscriptionRemoved","lastPromise","lastSubscriptionOptions","promise","buildUseQueryState","preSelector","selectFromResult","select","lastValue","selectDefaultResult","useMemo2","_","shallowEqual2","querySelector","state","store","newLastValue","usePromiseRefUnsubscribeOnUnmount","refetchOrErrorIfUnmounted","_formatProdErrorMessage2","useQuerySubscription","useLazyQuerySubscription","setArg","useState","subscriptionOptionsRef","trigger","arg2","preferCacheValue","reset","useQueryState","queryStateResults","info","querySubscriptionResults","debugValue","useDebugValue","useInfiniteQuerySubscription","direction","refetch","useInfiniteQueryState","fetchNextPage","fetchPreviousPage","name","fixedCacheKey","setPromise","triggerMutation","promise2","mutationSelector","originalArgs","finalState","reactHooksModuleName","reactHooksModule","rrBatch","hooks","rrUseDispatch","rrUseSelector","rrUseStore","_createSelector","hookNames","warned","hookName","_formatProdErrorMessage3","anyApi","definition","useQuery","useLazyQuery","useMutation","useInfiniteQuery","createApi","buildCreateApi","coreModule","tagTypes","fetch","fetchBaseQuery","SERVICE_API_URL","headers","endpoint","type","method","isSafeHttpMethod","csrfToken","getCsrfCookie","_createApi","extraOptions","error","defaultTagTypes","build","buildLogoutEndpoint"],"mappings":"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","x_google_ignoreList":[0]}