wcz-test 6.24.1 → 6.24.2

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 (284) hide show
  1. package/dist/ApprovalStatus-BtAVFn5p.js +8 -0
  2. package/dist/ApprovalStatus-BtAVFn5p.js.map +1 -0
  3. package/dist/{node_modules/react/cjs/react-jsx-runtime.development.js → DialogsContext-BKtkEAfL.js} +48 -4
  4. package/dist/DialogsContext-BKtkEAfL.js.map +1 -0
  5. package/dist/{hooks/DialogsHooks.js → DialogsHooks-BQVpqCq9.js} +4 -7
  6. package/dist/DialogsHooks-BQVpqCq9.js.map +1 -0
  7. package/dist/FileHooks-Cg9ver7z.js +3478 -0
  8. package/dist/FileHooks-Cg9ver7z.js.map +1 -0
  9. package/dist/{models/file/FileMeta.js → FileMeta-G1oT3mYK.js} +2 -2
  10. package/dist/FileMeta-G1oT3mYK.js.map +1 -0
  11. package/dist/{components/router/RouterListItemButton.js → RouterListItemButton-IUVgwnz3.js} +4 -4
  12. package/dist/RouterListItemButton-IUVgwnz3.js.map +1 -0
  13. package/dist/client.js +4 -4
  14. package/dist/compiler-runtime-BGHur82y.js +46 -0
  15. package/dist/compiler-runtime-BGHur82y.js.map +1 -0
  16. package/dist/components.js +1486 -15
  17. package/dist/components.js.map +1 -1
  18. package/dist/{env.js → env-gsqZ6zZD.js} +3 -3
  19. package/dist/env-gsqZ6zZD.js.map +1 -0
  20. package/dist/exports/client.d.ts +17 -4
  21. package/dist/exports/components.d.ts +44 -14
  22. package/dist/exports/hooks.d.ts +23 -4
  23. package/dist/exports/index.d.ts +17 -4
  24. package/dist/exports/models.d.ts +107 -25
  25. package/dist/exports/queries.d.ts +95 -4
  26. package/dist/exports/server.d.ts +14 -4
  27. package/dist/exports/utils.d.ts +11 -3
  28. package/dist/exports/vite.d.ts +5 -1
  29. package/dist/hooks.js +1000 -3
  30. package/dist/hooks.js.map +1 -1
  31. package/dist/index.js +1752 -4
  32. package/dist/index.js.map +1 -1
  33. package/dist/models.js +159 -10
  34. package/dist/models.js.map +1 -1
  35. package/dist/queries.js +935 -14
  36. package/dist/queries.js.map +1 -1
  37. package/dist/{lib/queryClient.js → queryClient-CNvC95mU.js} +2 -2
  38. package/dist/queryClient-CNvC95mU.js.map +1 -0
  39. package/dist/server.js +84 -1
  40. package/dist/server.js.map +1 -1
  41. package/dist/{lib/auth/session.js → session-vW7WZadj.js} +23 -8
  42. package/dist/session-vW7WZadj.js.map +1 -0
  43. package/dist/{lib/utils.js → utils-MD9YwOtu.js} +9 -9
  44. package/dist/utils-MD9YwOtu.js.map +1 -0
  45. package/dist/utils.js +2 -2
  46. package/dist/vite.js +61 -1
  47. package/dist/vite.js.map +1 -1
  48. package/package.json +1 -1
  49. package/dist/_virtual/compiler-runtime.js +0 -6
  50. package/dist/_virtual/compiler-runtime.js.map +0 -1
  51. package/dist/_virtual/compiler-runtime2.js +0 -5
  52. package/dist/_virtual/compiler-runtime2.js.map +0 -1
  53. package/dist/_virtual/jsx-runtime.js +0 -6
  54. package/dist/_virtual/jsx-runtime.js.map +0 -1
  55. package/dist/_virtual/jsx-runtime2.js +0 -5
  56. package/dist/_virtual/jsx-runtime2.js.map +0 -1
  57. package/dist/_virtual/react-compiler-runtime.development.js +0 -5
  58. package/dist/_virtual/react-compiler-runtime.development.js.map +0 -1
  59. package/dist/_virtual/react-compiler-runtime.production.js +0 -5
  60. package/dist/_virtual/react-compiler-runtime.production.js.map +0 -1
  61. package/dist/_virtual/react-jsx-runtime.development.js +0 -5
  62. package/dist/_virtual/react-jsx-runtime.development.js.map +0 -1
  63. package/dist/_virtual/react-jsx-runtime.production.js +0 -5
  64. package/dist/_virtual/react-jsx-runtime.production.js.map +0 -1
  65. package/dist/components/core/AppTitle.d.ts +0 -2
  66. package/dist/components/core/AppTitle.js +0 -23
  67. package/dist/components/core/AppTitle.js.map +0 -1
  68. package/dist/components/core/Fullscreen.d.ts +0 -3
  69. package/dist/components/core/Fullscreen.js +0 -104
  70. package/dist/components/core/Fullscreen.js.map +0 -1
  71. package/dist/components/core/Layout.d.ts +0 -8
  72. package/dist/components/core/Layout.js +0 -214
  73. package/dist/components/core/Layout.js.map +0 -1
  74. package/dist/components/core/ToolbarAccount.d.ts +0 -2
  75. package/dist/components/core/ToolbarAccount.js +0 -582
  76. package/dist/components/core/ToolbarAccount.js.map +0 -1
  77. package/dist/components/core/TypographyWithIcon.d.ts +0 -7
  78. package/dist/components/core/TypographyWithIcon.js +0 -117
  79. package/dist/components/core/TypographyWithIcon.js.map +0 -1
  80. package/dist/components/core/navigation/NavigationList.d.ts +0 -22
  81. package/dist/components/core/navigation/NavigationList.js +0 -166
  82. package/dist/components/core/navigation/NavigationList.js.map +0 -1
  83. package/dist/components/core/navigation/NavigationListItem.d.ts +0 -16
  84. package/dist/components/core/navigation/NavigationListItem.js +0 -467
  85. package/dist/components/core/navigation/NavigationListItem.js.map +0 -1
  86. package/dist/components/core/navigation/NavigationRail.d.ts +0 -12
  87. package/dist/components/core/navigation/NavigationRail.js +0 -141
  88. package/dist/components/core/navigation/NavigationRail.js.map +0 -1
  89. package/dist/components/data-grid/ChipInputCell.d.ts +0 -9
  90. package/dist/components/data-grid/ChipInputCell.js +0 -95
  91. package/dist/components/data-grid/ChipInputCell.js.map +0 -1
  92. package/dist/components/data-grid/EditableColumnHeader.d.ts +0 -2
  93. package/dist/components/data-grid/EditableColumnHeader.js +0 -30
  94. package/dist/components/data-grid/EditableColumnHeader.js.map +0 -1
  95. package/dist/components/file/Dropzone.d.ts +0 -8
  96. package/dist/components/file/Dropzone.js +0 -151
  97. package/dist/components/file/Dropzone.js.map +0 -1
  98. package/dist/components/file/FileViewer.d.ts +0 -20
  99. package/dist/components/file/FileViewer.js +0 -127
  100. package/dist/components/file/FileViewer.js.map +0 -1
  101. package/dist/components/file/fileViewer/FileViewerGrid.d.ts +0 -17
  102. package/dist/components/file/fileViewer/FileViewerGrid.js +0 -282
  103. package/dist/components/file/fileViewer/FileViewerGrid.js.map +0 -1
  104. package/dist/components/file/fileViewer/FileViewerList.d.ts +0 -12
  105. package/dist/components/file/fileViewer/FileViewerList.js +0 -191
  106. package/dist/components/file/fileViewer/FileViewerList.js.map +0 -1
  107. package/dist/components/file/fileViewer/ImageViewer.d.ts +0 -6
  108. package/dist/components/file/fileViewer/ImageViewer.js +0 -75
  109. package/dist/components/file/fileViewer/ImageViewer.js.map +0 -1
  110. package/dist/components/file/fileViewer/common/ActionsMenu.d.ts +0 -15
  111. package/dist/components/file/fileViewer/common/ActionsMenu.js +0 -159
  112. package/dist/components/file/fileViewer/common/ActionsMenu.js.map +0 -1
  113. package/dist/components/form/FormAutocomplete.d.ts +0 -7
  114. package/dist/components/form/FormAutocomplete.js +0 -80
  115. package/dist/components/form/FormAutocomplete.js.map +0 -1
  116. package/dist/components/form/FormCheckbox.d.ts +0 -7
  117. package/dist/components/form/FormCheckbox.js +0 -81
  118. package/dist/components/form/FormCheckbox.js.map +0 -1
  119. package/dist/components/form/FormDatePicker.d.ts +0 -8
  120. package/dist/components/form/FormDatePicker.js +0 -77
  121. package/dist/components/form/FormDatePicker.js.map +0 -1
  122. package/dist/components/form/FormDateRangePicker.d.ts +0 -8
  123. package/dist/components/form/FormDateRangePicker.js +0 -77
  124. package/dist/components/form/FormDateRangePicker.js.map +0 -1
  125. package/dist/components/form/FormDateTimePicker.d.ts +0 -8
  126. package/dist/components/form/FormDateTimePicker.js +0 -77
  127. package/dist/components/form/FormDateTimePicker.js.map +0 -1
  128. package/dist/components/form/FormDateTimeRangePicker.d.ts +0 -8
  129. package/dist/components/form/FormDateTimeRangePicker.js +0 -77
  130. package/dist/components/form/FormDateTimeRangePicker.js.map +0 -1
  131. package/dist/components/form/FormNumberField.d.ts +0 -9
  132. package/dist/components/form/FormNumberField.js +0 -73
  133. package/dist/components/form/FormNumberField.js.map +0 -1
  134. package/dist/components/form/FormRadioGroup.d.ts +0 -13
  135. package/dist/components/form/FormRadioGroup.js +0 -113
  136. package/dist/components/form/FormRadioGroup.js.map +0 -1
  137. package/dist/components/form/FormSlider.d.ts +0 -7
  138. package/dist/components/form/FormSlider.js +0 -94
  139. package/dist/components/form/FormSlider.js.map +0 -1
  140. package/dist/components/form/FormSubmitButton.d.ts +0 -4
  141. package/dist/components/form/FormSubmitButton.js +0 -50
  142. package/dist/components/form/FormSubmitButton.js.map +0 -1
  143. package/dist/components/form/FormSwitch.d.ts +0 -7
  144. package/dist/components/form/FormSwitch.js +0 -81
  145. package/dist/components/form/FormSwitch.js.map +0 -1
  146. package/dist/components/form/FormTextField.d.ts +0 -7
  147. package/dist/components/form/FormTextField.js +0 -52
  148. package/dist/components/form/FormTextField.js.map +0 -1
  149. package/dist/components/form/FormTimePicker.d.ts +0 -8
  150. package/dist/components/form/FormTimePicker.js +0 -77
  151. package/dist/components/form/FormTimePicker.js.map +0 -1
  152. package/dist/components/form/FormTimeRangePicker.d.ts +0 -8
  153. package/dist/components/form/FormTimeRangePicker.js +0 -77
  154. package/dist/components/form/FormTimeRangePicker.js.map +0 -1
  155. package/dist/components/router/RouterButton.d.ts +0 -6
  156. package/dist/components/router/RouterButton.js +0 -35
  157. package/dist/components/router/RouterButton.js.map +0 -1
  158. package/dist/components/router/RouterError.d.ts +0 -7
  159. package/dist/components/router/RouterError.js +0 -62
  160. package/dist/components/router/RouterError.js.map +0 -1
  161. package/dist/components/router/RouterGridActionsCellItem.d.ts +0 -6
  162. package/dist/components/router/RouterGridActionsCellItem.js +0 -35
  163. package/dist/components/router/RouterGridActionsCellItem.js.map +0 -1
  164. package/dist/components/router/RouterIconButton.d.ts +0 -6
  165. package/dist/components/router/RouterIconButton.js +0 -35
  166. package/dist/components/router/RouterIconButton.js.map +0 -1
  167. package/dist/components/router/RouterLink.d.ts +0 -6
  168. package/dist/components/router/RouterLink.js +0 -35
  169. package/dist/components/router/RouterLink.js.map +0 -1
  170. package/dist/components/router/RouterListItemButton.d.ts +0 -6
  171. package/dist/components/router/RouterListItemButton.js.map +0 -1
  172. package/dist/components/router/RouterNotFound.d.ts +0 -1
  173. package/dist/components/router/RouterNotFound.js +0 -53
  174. package/dist/components/router/RouterNotFound.js.map +0 -1
  175. package/dist/components/router/RouterTab.d.ts +0 -6
  176. package/dist/components/router/RouterTab.js +0 -35
  177. package/dist/components/router/RouterTab.js.map +0 -1
  178. package/dist/contexts/DialogsContext.d.ts +0 -6
  179. package/dist/contexts/DialogsContext.js +0 -6
  180. package/dist/contexts/DialogsContext.js.map +0 -1
  181. package/dist/contexts/FileContext.d.ts +0 -13
  182. package/dist/contexts/FileContext.js +0 -14
  183. package/dist/contexts/FileContext.js.map +0 -1
  184. package/dist/env.d.ts +0 -13
  185. package/dist/env.js.map +0 -1
  186. package/dist/hooks/DialogsHooks.d.ts +0 -42
  187. package/dist/hooks/DialogsHooks.js.map +0 -1
  188. package/dist/hooks/FormHooks.d.ts +0 -52
  189. package/dist/hooks/FormHooks.js +0 -55
  190. package/dist/hooks/FormHooks.js.map +0 -1
  191. package/dist/lib/auth/api.d.ts +0 -3
  192. package/dist/lib/auth/api.js +0 -91
  193. package/dist/lib/auth/api.js.map +0 -1
  194. package/dist/lib/auth/entra.d.ts +0 -2
  195. package/dist/lib/auth/entra.js +0 -7
  196. package/dist/lib/auth/entra.js.map +0 -1
  197. package/dist/lib/auth/graph.d.ts +0 -17
  198. package/dist/lib/auth/graph.js +0 -72
  199. package/dist/lib/auth/graph.js.map +0 -1
  200. package/dist/lib/auth/session.d.ts +0 -24
  201. package/dist/lib/auth/session.js.map +0 -1
  202. package/dist/lib/queryClient.d.ts +0 -2
  203. package/dist/lib/queryClient.js.map +0 -1
  204. package/dist/lib/utils.d.ts +0 -52
  205. package/dist/lib/utils.js.map +0 -1
  206. package/dist/lib/vite-plugin.d.ts +0 -2
  207. package/dist/lib/vite-plugin.js +0 -65
  208. package/dist/lib/vite-plugin.js.map +0 -1
  209. package/dist/middleware/auth.d.ts +0 -22
  210. package/dist/models/Navigation.d.ts +0 -18
  211. package/dist/models/User.d.ts +0 -16
  212. package/dist/models/User.js +0 -18
  213. package/dist/models/User.js.map +0 -1
  214. package/dist/models/approval/Approval.d.ts +0 -177
  215. package/dist/models/approval/Approval.js +0 -81
  216. package/dist/models/approval/Approval.js.map +0 -1
  217. package/dist/models/approval/ApprovalEmployee.d.ts +0 -7
  218. package/dist/models/approval/ApprovalEmployee.js +0 -10
  219. package/dist/models/approval/ApprovalEmployee.js.map +0 -1
  220. package/dist/models/approval/ApprovalFlow.d.ts +0 -49
  221. package/dist/models/approval/ApprovalFlow.js +0 -15
  222. package/dist/models/approval/ApprovalFlow.js.map +0 -1
  223. package/dist/models/approval/ApprovalFlowStep.d.ts +0 -29
  224. package/dist/models/approval/ApprovalFlowStep.js +0 -17
  225. package/dist/models/approval/ApprovalFlowStep.js.map +0 -1
  226. package/dist/models/approval/ApprovalRequestType.d.ts +0 -5
  227. package/dist/models/approval/ApprovalRequestType.js +0 -6
  228. package/dist/models/approval/ApprovalRequestType.js.map +0 -1
  229. package/dist/models/approval/ApprovalStatus.d.ts +0 -9
  230. package/dist/models/approval/ApprovalStatus.js +0 -6
  231. package/dist/models/approval/ApprovalStatus.js.map +0 -1
  232. package/dist/models/approval/ApprovalStepResult.d.ts +0 -11
  233. package/dist/models/approval/ApprovalStepResult.js +0 -6
  234. package/dist/models/approval/ApprovalStepResult.js.map +0 -1
  235. package/dist/models/approval/StepApprovalOrder.d.ts +0 -6
  236. package/dist/models/approval/StepApprovalOrder.js +0 -6
  237. package/dist/models/approval/StepApprovalOrder.js.map +0 -1
  238. package/dist/models/email/Email.d.ts +0 -13
  239. package/dist/models/email/Email.js +0 -14
  240. package/dist/models/email/Email.js.map +0 -1
  241. package/dist/models/email/EmailAttachment.d.ts +0 -6
  242. package/dist/models/email/EmailAttachment.js +0 -9
  243. package/dist/models/email/EmailAttachment.js.map +0 -1
  244. package/dist/models/file/FileActions.d.ts +0 -6
  245. package/dist/models/file/FileMeta.d.ts +0 -15
  246. package/dist/models/file/FileMeta.js.map +0 -1
  247. package/dist/models/peoplesoft/Department.d.ts +0 -58
  248. package/dist/models/peoplesoft/Department.js +0 -19
  249. package/dist/models/peoplesoft/Department.js.map +0 -1
  250. package/dist/models/peoplesoft/Employee.d.ts +0 -46
  251. package/dist/models/peoplesoft/Employee.js +0 -43
  252. package/dist/models/peoplesoft/Employee.js.map +0 -1
  253. package/dist/models/peoplesoft/EmployeeCategoryGroup.d.ts +0 -6
  254. package/dist/models/peoplesoft/EmployeeCategoryGroup.js +0 -6
  255. package/dist/models/peoplesoft/EmployeeCategoryGroup.js.map +0 -1
  256. package/dist/models/peoplesoft/EmployeeStatus.d.ts +0 -6
  257. package/dist/models/peoplesoft/EmployeeStatus.js +0 -6
  258. package/dist/models/peoplesoft/EmployeeStatus.js.map +0 -1
  259. package/dist/node_modules/react/cjs/react-compiler-runtime.development.js +0 -22
  260. package/dist/node_modules/react/cjs/react-compiler-runtime.development.js.map +0 -1
  261. package/dist/node_modules/react/cjs/react-compiler-runtime.production.js +0 -16
  262. package/dist/node_modules/react/cjs/react-compiler-runtime.production.js.map +0 -1
  263. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +0 -1
  264. package/dist/node_modules/react/cjs/react-jsx-runtime.production.js +0 -33
  265. package/dist/node_modules/react/cjs/react-jsx-runtime.production.js.map +0 -1
  266. package/dist/node_modules/react/compiler-runtime.js +0 -18
  267. package/dist/node_modules/react/compiler-runtime.js.map +0 -1
  268. package/dist/node_modules/react/jsx-runtime.js +0 -18
  269. package/dist/node_modules/react/jsx-runtime.js.map +0 -1
  270. package/dist/providers/DialogsProvider.d.ts +0 -5
  271. package/dist/providers/DialogsProvider.js +0 -79
  272. package/dist/providers/DialogsProvider.js.map +0 -1
  273. package/dist/providers/LayoutProvider.d.ts +0 -11
  274. package/dist/providers/LayoutProvider.js +0 -94
  275. package/dist/providers/LayoutProvider.js.map +0 -1
  276. package/dist/queries/ApprovalHooks.d.ts +0 -338
  277. package/dist/queries/ApprovalHooks.js +0 -326
  278. package/dist/queries/ApprovalHooks.js.map +0 -1
  279. package/dist/queries/FileHooks.d.ts +0 -151
  280. package/dist/queries/FileHooks.js +0 -493
  281. package/dist/queries/FileHooks.js.map +0 -1
  282. package/dist/queries/PeopleSoftHooks.d.ts +0 -537
  283. package/dist/queries/PeopleSoftHooks.js +0 -628
  284. package/dist/queries/PeopleSoftHooks.js.map +0 -1
@@ -1,13 +0,0 @@
1
- import { FileMeta } from '../models/file/FileMeta';
2
- import { FileActions } from '../models/file/FileActions';
3
- export interface FileContextValue {
4
- fileMetas: Array<FileMeta>;
5
- onDelete?: (params: {
6
- remainingFileMetas: Array<FileMeta>;
7
- deletedFileMeta: FileMeta;
8
- }) => void;
9
- actions?: FileActions;
10
- setImageId: (imageId: string) => void;
11
- }
12
- export declare const FileContext: import('react').Context<FileContextValue | null>;
13
- export declare const useFile: () => FileContextValue;
@@ -1,14 +0,0 @@
1
- import { createContext, useContext } from "react";
2
- const FileContext = createContext(null);
3
- const useFile = () => {
4
- const context = useContext(FileContext);
5
- if (!context) {
6
- throw new Error("FileViewer components must be used within FileViewer");
7
- }
8
- return context;
9
- };
10
- export {
11
- FileContext,
12
- useFile
13
- };
14
- //# sourceMappingURL=FileContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileContext.js","sources":["../../src/contexts/FileContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { FileMeta } from \"../models/file/FileMeta\";\nimport type { FileActions } from \"~/models/file/FileActions\";\n\nexport interface FileContextValue {\n fileMetas: Array<FileMeta>;\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\n actions?: FileActions;\n setImageId: (imageId: string) => void;\n};\n\nexport const FileContext = createContext<FileContextValue | null>(null);\n\nexport const useFile = () => {\n const context = useContext(FileContext);\n if (!context) {\n throw new Error(\"FileViewer components must be used within FileViewer\");\n }\n return context;\n};"],"names":["FileContext","createContext","useFile","context","useContext","Error"],"mappings":";AAWO,MAAMA,cAAcC,cAAuC,IAAI;AAE/D,MAAMC,UAAUA,MAAA;AACnB,QAAAC,UAAgBC,WAAWJ,WAAW;AACtC,MAAI,CAACG,SAAO;AACR,UAAM,IAAIE,MAAM,sDAAsD;AAAA,EAAE;AAC3E,SACMF;AAAO;"}
package/dist/env.d.ts DELETED
@@ -1,13 +0,0 @@
1
- export declare const clientEnv: Readonly<{
2
- VITE_APP_TITLE: string;
3
- VITE_MUI_LICENSE_KEY: string;
4
- VITE_API_URL: string;
5
- }>;
6
- export declare const serverEnv: Readonly<{
7
- NODE_ENV: "development" | "testing" | "staging" | "production";
8
- MICROSOFT_TENANT_ID: string;
9
- MICROSOFT_CLIENT_ID: string;
10
- MICROSOFT_CLIENT_SECRET: string;
11
- MICROSOFT_REDIRECT_URI: string;
12
- SESSION_SECRET: string;
13
- }>;
package/dist/env.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","sources":["../src/env.ts"],"sourcesContent":["import { createEnv } from \"@t3-oss/env-core\";\r\nimport { z } from \"zod\";\r\n\r\nexport const clientEnv = createEnv({\r\n clientPrefix: \"VITE_\",\r\n client: {\r\n VITE_APP_TITLE: z.string(),\r\n VITE_MUI_LICENSE_KEY: z.string(),\r\n VITE_API_URL: z.url(),\r\n },\r\n runtimeEnv: import.meta.env,\r\n emptyStringAsUndefined: true,\r\n});\r\n\r\nexport const serverEnv = createEnv({\r\n server: {\r\n NODE_ENV: z.enum([\"development\", \"testing\", \"staging\", \"production\"]),\r\n MICROSOFT_TENANT_ID: z.string(),\r\n MICROSOFT_CLIENT_ID: z.string(),\r\n MICROSOFT_CLIENT_SECRET: z.string(),\r\n MICROSOFT_REDIRECT_URI: z.url(),\r\n SESSION_SECRET: z.string(),\r\n },\r\n runtimeEnv: process.env,\r\n emptyStringAsUndefined: true,\r\n});\r\n"],"names":["clientEnv","createEnv","clientPrefix","client","VITE_APP_TITLE","z","string","VITE_MUI_LICENSE_KEY","VITE_API_URL","url","runtimeEnv","import","emptyStringAsUndefined","serverEnv","server","NODE_ENV","enum","MICROSOFT_TENANT_ID","MICROSOFT_CLIENT_ID","MICROSOFT_CLIENT_SECRET","MICROSOFT_REDIRECT_URI","SESSION_SECRET","process","env"],"mappings":";;;AAGO,MAAMA,YAAYC,UAAU;AAAA,EAC/BC,cAAc;AAAA,EACdC,QAAQ;AAAA,IACJC,gBAAgBC,EAAEC,OAAAA;AAAAA,IAClBC,sBAAsBF,EAAEC,OAAAA;AAAAA,IACxBE,cAAcH,EAAEI,IAAAA;AAAAA,EAAI;AAAA,EAExBC,YAAYC;AAAAA,EACZC,wBAAwB;AAC5B,CAAC;AAEM,MAAMC,YAAYZ,UAAU;AAAA,EAC/Ba,QAAQ;AAAA,IACJC,UAAUV,EAAEW,KAAK,CAAC,eAAe,WAAW,WAAW,YAAY,CAAC;AAAA,IACpEC,qBAAqBZ,EAAEC,OAAAA;AAAAA,IACvBY,qBAAqBb,EAAEC,OAAAA;AAAAA,IACvBa,yBAAyBd,EAAEC,OAAAA;AAAAA,IAC3Bc,wBAAwBf,EAAEI,IAAAA;AAAAA,IAC1BY,gBAAgBhB,EAAEC,OAAAA;AAAAA,EAAO;AAAA,EAE7BI,YAAYY,QAAQC;AAAAA,EACpBX,wBAAwB;AAC5B,CAAC;"}
@@ -1,42 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export interface OpenDialogOptions<TResult> {
3
- onClose?: (result: TResult) => Promise<void>;
4
- }
5
- export interface AlertOptions {
6
- title?: ReactNode;
7
- }
8
- export interface ConfirmOptions {
9
- title?: ReactNode;
10
- cancelText?: ReactNode;
11
- }
12
- export interface DialogProps<TPayload = undefined, TResult = void> {
13
- payload: TPayload;
14
- open: boolean;
15
- onClose: (result: TResult) => Promise<void>;
16
- }
17
- export type OpenAlertDialog = (message: ReactNode, options?: AlertOptions) => Promise<void>;
18
- export type OpenConfirmDialog = (message: ReactNode, options?: ConfirmOptions) => Promise<boolean>;
19
- export type DialogComponent<TPayload, TResult> = React.ComponentType<DialogProps<TPayload, TResult>>;
20
- export interface OpenDialog {
21
- <TPayload extends undefined, TResult>(Component: DialogComponent<TPayload, TResult>, payload?: TPayload, options?: OpenDialogOptions<TResult>): Promise<TResult>;
22
- <TPayload, TResult>(Component: DialogComponent<TPayload, TResult>, payload: TPayload, options?: OpenDialogOptions<TResult>): Promise<TResult>;
23
- }
24
- export type CloseDialog = <TResult>(dialog: Promise<TResult>, result: TResult) => Promise<TResult>;
25
- export interface AlertDialogPayload extends AlertOptions {
26
- message: ReactNode;
27
- }
28
- export type AlertDialogProps = DialogProps<AlertDialogPayload, void>;
29
- export declare function AlertDialog({ open, payload, onClose }: Readonly<AlertDialogProps>): import("react/jsx-runtime").JSX.Element;
30
- export interface ConfirmDialogPayload extends ConfirmOptions {
31
- message: ReactNode;
32
- }
33
- export type ConfirmDialogProps = DialogProps<ConfirmDialogPayload, boolean>;
34
- export declare function ConfirmDialog({ open, payload, onClose }: Readonly<ConfirmDialogProps>): import("react/jsx-runtime").JSX.Element;
35
- interface DialogHook {
36
- alert: OpenAlertDialog;
37
- confirm: OpenConfirmDialog;
38
- open: OpenDialog;
39
- close: CloseDialog;
40
- }
41
- export declare function useDialogs(): DialogHook;
42
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"DialogsHooks.js","sources":["../../src/hooks/DialogsHooks.tsx"],"sourcesContent":["import { Button, Dialog, DialogActions, DialogContent, DialogTitle, useEventCallback } from \"@mui/material\";\nimport { useContext } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { DialogsContext } from \"../contexts/DialogsContext\";\nimport type { ReactNode } from \"react\";\n\nexport interface OpenDialogOptions<TResult> {\n onClose?: (result: TResult) => Promise<void>;\n}\n\nexport interface AlertOptions {\n title?: ReactNode;\n}\n\nexport interface ConfirmOptions {\n title?: ReactNode;\n cancelText?: ReactNode;\n}\n\nexport interface DialogProps<TPayload = undefined, TResult = void> {\n payload: TPayload;\n open: boolean;\n onClose: (result: TResult) => Promise<void>;\n}\n\nexport type OpenAlertDialog = (message: ReactNode, options?: AlertOptions) => Promise<void>;\n\nexport type OpenConfirmDialog = (message: ReactNode, options?: ConfirmOptions) => Promise<boolean>;\n\nexport type DialogComponent<TPayload, TResult> = React.ComponentType<DialogProps<TPayload, TResult>>;\n\nexport interface OpenDialog {\n <TPayload extends undefined, TResult>(Component: DialogComponent<TPayload, TResult>, payload?: TPayload, options?: OpenDialogOptions<TResult>): Promise<TResult>;\n <TPayload, TResult>(Component: DialogComponent<TPayload, TResult>, payload: TPayload, options?: OpenDialogOptions<TResult>): Promise<TResult>;\n}\n\nexport type CloseDialog = <TResult>(dialog: Promise<TResult>, result: TResult) => Promise<TResult>;\n\nexport interface AlertDialogPayload extends AlertOptions {\n message: ReactNode;\n}\n\nexport type AlertDialogProps = DialogProps<AlertDialogPayload, void>\n\nexport function AlertDialog({ open, payload, onClose }: Readonly<AlertDialogProps>) {\n const { t } = useTranslation();\n\n return (\n <Dialog maxWidth=\"xs\" fullWidth open={open} onClose={() => onClose()} disableRestoreFocus>\n <DialogTitle>{payload.title ?? t(\"Layout.Dialog.Alert\")}</DialogTitle>\n <DialogContent>{payload.message}</DialogContent>\n <DialogActions>\n <Button onClick={() => onClose()} autoFocus>\n {t(\"Layout.Dialog.Confirm\")}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n\nexport interface ConfirmDialogPayload extends ConfirmOptions {\n message: ReactNode;\n}\n\nexport type ConfirmDialogProps = DialogProps<ConfirmDialogPayload, boolean>\n\nexport function ConfirmDialog({ open, payload, onClose }: Readonly<ConfirmDialogProps>) {\n const { t } = useTranslation();\n\n return (\n <Dialog maxWidth=\"xs\" fullWidth open={open} onClose={() => onClose(false)} disableRestoreFocus>\n <DialogTitle>{payload.title ?? t(\"Layout.Dialog.Confirm\")}</DialogTitle>\n <DialogContent>{payload.message}</DialogContent>\n <DialogActions>\n <Button onClick={() => onClose(false)}>\n {payload.cancelText ?? t(\"Layout.Dialog.Cancel\")}\n </Button>\n <Button onClick={() => onClose(true)} autoFocus>\n {t(\"Layout.Dialog.Confirm\")}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n\ninterface DialogHook {\n alert: OpenAlertDialog;\n confirm: OpenConfirmDialog;\n open: OpenDialog;\n close: CloseDialog;\n}\n\nexport function useDialogs(): DialogHook {\n const { open, close } = useContext(DialogsContext);\n\n const alert = useEventCallback<OpenAlertDialog>((message, { ...options } = {}) =>\n open(AlertDialog, { ...options, message }),\n );\n\n const confirm = useEventCallback<OpenConfirmDialog>((message, { ...options } = {}) =>\n open(ConfirmDialog, { ...options, message }),\n );\n\n return { alert, confirm, open, close };\n}\n"],"names":["AlertDialog","t0","$","_c","open","payload","onClose","t","useTranslation","t1","t2","title","t3","jsx","t4","message","t5","t6","t7","t8","ConfirmDialog","cancelText","t9","t10","t11","t12","useDialogs","close","useContext","DialogsContext","options","undefined","alert","useEventCallback","message_0","options_0","confirm"],"mappings":";;;;;;AA4CO,SAAAA,YAAAC,IAAA;AAAA,QAAAC,IAAAC,uBAAAA,EAAA,EAAA;AAAqB,QAAA;AAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAAL;AACxB,QAAA;AAAA,IAAAM;AAAAA,EAAAA,IAAcC,eAAAA;AAAiB,MAAAC;AAAA,MAAAP,SAAAI,SAAA;AAG0BG,SAAAA,MAAMH,QAAAA;AAASJ,WAAAI;AAAAJ,WAAAO;AAAAA,EAAA,OAAA;AAAAA,SAAAP,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAQ;AAAA,MAAAR,SAAAG,QAAAM,SAAAT,SAAAK,GAAA;AAClDG,SAAAL,QAAOM,SAAUJ,EAAE,qBAAqB;AAACL,MAAA,CAAA,IAAAG,QAAAM;AAAAT,WAAAK;AAAAL,WAAAQ;AAAAA,EAAA,OAAA;AAAAA,SAAAR,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAU;AAAA,MAAAV,SAAAQ,IAAA;AAAvDE,SAAAC,kCAAAA,IAAC,eAAaH,UAAAA,GAAAA,CAA0C;AAAcR,WAAAQ;AAAAR,WAAAU;AAAAA,EAAA,OAAA;AAAAA,SAAAV,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAY;AAAA,MAAAZ,EAAA,CAAA,MAAAG,QAAAU,SAAA;AACtED,SAAAD,kCAAAA,IAAC,eAAA,EAAeR,UAAAA,QAAOU,SAAS;AAAgBb,MAAA,CAAA,IAAAG,QAAAU;AAAAb,WAAAY;AAAAA,EAAA,OAAA;AAAAA,SAAAZ,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAc;AAAA,MAAAd,SAAAI,SAAA;AAE3BU,SAAAA,MAAMV,QAAAA;AAASJ,WAAAI;AAAAJ,YAAAc;AAAAA,EAAA,OAAA;AAAAA,SAAAd,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAe;AAAA,MAAAf,UAAAK,GAAA;AAC3BU,SAAAV,EAAE,uBAAuB;AAACL,YAAAK;AAAAL,YAAAe;AAAAA,EAAA,OAAA;AAAAA,SAAAf,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAgB;AAAA,MAAAhB,EAAA,EAAA,MAAAc,MAAAd,UAAAe,IAAA;AAFnCC,SAAAL,kCAAAA,IAAC,iBACG,UAAAA,kCAAAA,IAAC,QAAA,EAAgB,SAAAG,IAAiB,WAAA,MAC7BC,UAAAA,GAAAA,CACL,EAAA,CACJ;AAAgBf,YAAAc;AAAAd,YAAAe;AAAAf,YAAAgB;AAAAA,EAAA,OAAA;AAAAA,SAAAhB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiB;AAAA,MAAAjB,EAAA,EAAA,MAAAE,QAAAF,EAAA,EAAA,MAAAO,MAAAP,EAAA,EAAA,MAAAU,MAAAV,EAAA,EAAA,MAAAY,MAAAZ,UAAAgB,IAAA;AAPpBC,gDAAC,QAAA,EAAgB,UAAA,MAAK,WAAA,MAAgBf,MAAe,SAAAK,IAAiB,qBAAA,MAClEG,UAAAA;AAAAA,MAAAA;AAAAA,MACAE;AAAAA,MACAI;AAAAA,IAAAA,GAKJ;AAAShB,YAAAE;AAAAF,YAAAO;AAAAP,YAAAU;AAAAV,YAAAY;AAAAZ,YAAAgB;AAAAhB,YAAAiB;AAAAA,EAAA,OAAA;AAAAA,SAAAjB,EAAA,EAAA;AAAA,EAAA;AAAA,SARTiB;AAQS;AAUV,SAAAC,cAAAnB,IAAA;AAAA,QAAAC,IAAAC,uBAAAA,EAAA,EAAA;AAAuB,QAAA;AAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAAL;AAC1B,QAAA;AAAA,IAAAM;AAAAA,EAAAA,IAAcC,eAAAA;AAAiB,MAAAC;AAAA,MAAAP,SAAAI,SAAA;AAG0BG,SAAAA,MAAMH,QAAQ,KAAK;AAACJ,WAAAI;AAAAJ,WAAAO;AAAAA,EAAA,OAAA;AAAAA,SAAAP,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAQ;AAAA,MAAAR,SAAAG,QAAAM,SAAAT,SAAAK,GAAA;AACvDG,SAAAL,QAAOM,SAAUJ,EAAE,uBAAuB;AAACL,MAAA,CAAA,IAAAG,QAAAM;AAAAT,WAAAK;AAAAL,WAAAQ;AAAAA,EAAA,OAAA;AAAAA,SAAAR,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAU;AAAA,MAAAV,SAAAQ,IAAA;AAAzDE,SAAAC,kCAAAA,IAAC,eAAaH,UAAAA,GAAAA,CAA4C;AAAcR,WAAAQ;AAAAR,WAAAU;AAAAA,EAAA,OAAA;AAAAA,SAAAV,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAY;AAAA,MAAAZ,EAAA,CAAA,MAAAG,QAAAU,SAAA;AACxED,SAAAD,kCAAAA,IAAC,eAAA,EAAeR,UAAAA,QAAOU,SAAS;AAAgBb,MAAA,CAAA,IAAAG,QAAAU;AAAAb,WAAAY;AAAAA,EAAA,OAAA;AAAAA,SAAAZ,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAc;AAAA,MAAAd,SAAAI,SAAA;AAE3BU,SAAAA,MAAMV,QAAQ,KAAK;AAACJ,WAAAI;AAAAJ,YAAAc;AAAAA,EAAA,OAAA;AAAAA,SAAAd,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAe;AAAA,MAAAf,UAAAG,QAAAgB,cAAAnB,UAAAK,GAAA;AAChCU,SAAAZ,QAAOgB,cAAed,EAAE,sBAAsB;AAACL,MAAA,EAAA,IAAAG,QAAAgB;AAAAnB,YAAAK;AAAAL,YAAAe;AAAAA,EAAA,OAAA;AAAAA,SAAAf,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAgB;AAAA,MAAAhB,EAAA,EAAA,MAAAc,MAAAd,UAAAe,IAAA;AADpDC,SAAAL,kCAAAA,IAAC,QAAA,EAAgB,SAAAG,IACZC,UAAAA,IACL;AAASf,YAAAc;AAAAd,YAAAe;AAAAf,YAAAgB;AAAAA,EAAA,OAAA;AAAAA,SAAAhB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiB;AAAA,MAAAjB,UAAAI,SAAA;AACQa,SAAAA,MAAMb,QAAQ,IAAI;AAACJ,YAAAI;AAAAJ,YAAAiB;AAAAA,EAAA,OAAA;AAAAA,SAAAjB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAoB;AAAA,MAAApB,UAAAK,GAAA;AAC/Be,SAAAf,EAAE,uBAAuB;AAACL,YAAAK;AAAAL,YAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAqB;AAAA,MAAArB,EAAA,EAAA,MAAAiB,MAAAjB,UAAAoB,IAAA;AAD/BC,gDAAC,QAAA,EAAgB,SAAAJ,IAAqB,WAAA,MACjCG,UAAAA,IACL;AAASpB,YAAAiB;AAAAjB,YAAAoB;AAAApB,YAAAqB;AAAAA,EAAA,OAAA;AAAAA,UAAArB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAsB;AAAA,MAAAtB,EAAA,EAAA,MAAAqB,OAAArB,UAAAgB,IAAA;AANbM,iDAAC,eAAA,EACGN,UAAAA;AAAAA,MAAAA;AAAAA,MAGAK;AAAAA,IAAAA,GAGJ;AAAgBrB,YAAAqB;AAAArB,YAAAgB;AAAAhB,YAAAsB;AAAAA,EAAA,OAAA;AAAAA,UAAAtB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAuB;AAAA,MAAAvB,EAAA,EAAA,MAAAE,QAAAF,EAAA,EAAA,MAAAO,MAAAP,EAAA,EAAA,MAAAsB,OAAAtB,EAAA,EAAA,MAAAU,MAAAV,UAAAY,IAAA;AAVpBW,iDAAC,QAAA,EAAgB,UAAA,MAAK,WAAA,MAAgBrB,MAAe,SAAAK,IAAsB,qBAAA,MACvEG,UAAAA;AAAAA,MAAAA;AAAAA,MACAE;AAAAA,MACAU;AAAAA,IAAAA,GAQJ;AAAStB,YAAAE;AAAAF,YAAAO;AAAAP,YAAAsB;AAAAtB,YAAAU;AAAAV,YAAAY;AAAAZ,YAAAuB;AAAAA,EAAA,OAAA;AAAAA,UAAAvB,EAAA,EAAA;AAAA,EAAA;AAAA,SAXTuB;AAWS;AAWV,SAAAC,aAAA;AAAA,QAAAxB,IAAAC,uBAAAA,EAAA,CAAA;AACH,QAAA;AAAA,IAAAC;AAAAA,IAAAuB;AAAAA,EAAAA,IAAwBC,WAAWC,cAAc;AAAE,MAAA5B;AAAA,MAAAC,SAAAE,MAAA;AAEHH,SAAAA,CAAAc,SAAAN,QAAA;AAAU,YAAA;AAAA,QAAA,GAAAqB;AAAAA,MAAAA,IAAArB,QAAAsB,SAAA,CAAA,IAAAtB;AAAmB,aACzEL,KAAKJ,aAAa;AAAA,QAAA,GAAK8B;AAAAA,QAAOf;AAAAA,MAAAA,CAAW;AAAA,IAAC;AAAAb,WAAAE;AAAAF,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAD9C,QAAA8B,QAAcC,iBAAkChC,EAEhD;AAAE,MAAAQ;AAAA,MAAAP,SAAAE,MAAA;AAEkDK,SAAAA,CAAAyB,WAAAxB,QAAA;AAAU,YAAA;AAAA,QAAA,GAAAyB;AAAAA,MAAAA,IAAAzB,QAAAqB,SAAA,CAAA,IAAArB;AAAmB,aAC7EN,KAAKgB,eAAe;AAAA,QAAA,GAAKU;AAAAA,QAAOf,SAAEA;AAAAA,MAAAA,CAAS;AAAA,IAAC;AAAAb,WAAAE;AAAAF,WAAAO;AAAAA,EAAA,OAAA;AAAAA,SAAAP,EAAA,CAAA;AAAA,EAAA;AADhD,QAAAkC,UAAgBH,iBAAoCxB,EAEpD;AAAE,MAAAC;AAAA,MAAAR,EAAA,CAAA,MAAA8B,SAAA9B,EAAA,CAAA,MAAAyB,SAAAzB,EAAA,CAAA,MAAAkC,WAAAlC,SAAAE,MAAA;AAEKM,SAAA;AAAA,MAAAsB;AAAAA,MAAAI;AAAAA,MAAAhC;AAAAA,MAAAuB;AAAAA,IAAAA;AAA+BzB,WAAA8B;AAAA9B,WAAAyB;AAAAzB,WAAAkC;AAAAlC,WAAAE;AAAAF,WAAAQ;AAAAA,EAAA,OAAA;AAAAA,SAAAR,EAAA,CAAA;AAAA,EAAA;AAAA,SAA/BQ;AAA+B;"}
@@ -1,52 +0,0 @@
1
- export declare const fieldContext: import('react').Context<import('@tanstack/form-core').AnyFieldApi>, useFieldContext: <TData>() => import('@tanstack/form-core').FieldApi<any, string, TData, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any>, formContext: import('react').Context<import('@tanstack/form-core').AnyFormApi>, useFormContext: () => import('@tanstack/react-form').ReactFormExtendedApi<Record<string, never>, any, any, any, any, any, any, any, any, any, any, any>;
2
- export declare const useLayoutForm: <TFormData, TOnMount extends import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined, TOnChange extends import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends import('@tanstack/form-core').FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends import('@tanstack/form-core').FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends import('@tanstack/form-core').FormAsyncValidateOrFn<TFormData> | undefined, TOnDynamic extends import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined, TOnDynamicAsync extends import('@tanstack/form-core').FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends import('@tanstack/form-core').FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta>(props: import('@tanstack/form-core').FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>) => import('@tanstack/react-form').AppFieldExtendedReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, {
3
- readonly TextField: import('react').FC<import('../components/form/FormTextField').FormTextFieldProps>;
4
- readonly NumberField: import('react').FC<import('../components/form/FormNumberField').FormNumberFieldProps>;
5
- readonly Autocomplete: import('react').FC<import('../components/form/FormAutocomplete').FormAutocompleteProps>;
6
- readonly Checkbox: import('react').FC<import('../components/form/FormCheckbox').FormCheckboxProps>;
7
- readonly Switch: import('react').FC<import('../components/form/FormSwitch').FormSwitchProps>;
8
- readonly RadioGroup: import('react').FC<import('../components/form/FormRadioGroup').FormRadioGroupProps>;
9
- readonly Slider: import('react').FC<import('../components/form/FormSlider').FormSliderProps>;
10
- readonly DatePicker: import('react').FC<import('../components/form/FormDatePicker').FormDatePickerProps>;
11
- readonly DateRangePicker: import('react').FC<import('../components/form/FormDateRangePicker').FormDateRangePickerProps>;
12
- readonly TimePicker: import('react').FC<import('../components/form/FormTimePicker').FormTimePickerProps>;
13
- readonly TimeRangePicker: import('react').FC<import('../components/form/FormTimeRangePicker').FormTimeRangePickerProps>;
14
- readonly DateTimePicker: import('react').FC<import('../components/form/FormDateTimePicker').FormDateTimePickerProps>;
15
- readonly DateTimeRangePicker: import('react').FC<import('../components/form/FormDateTimeRangePicker').FormDateTimeRangePickerProps>;
16
- }, {
17
- readonly SubmitButton: import('react').FC<import('../components/form/FormSubmitButton').FormSubmitButtonProps>;
18
- }>, withLayoutForm: <TFormData, TOnMount extends import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined, TOnChange extends import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends import('@tanstack/form-core').FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends import('@tanstack/form-core').FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends import('@tanstack/form-core').FormAsyncValidateOrFn<TFormData> | undefined, TOnDynamic extends import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined, TOnDynamicAsync extends import('@tanstack/form-core').FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends import('@tanstack/form-core').FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta, TRenderProps extends object = {}>({ render, props, }: import('@tanstack/react-form').WithFormProps<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, {
19
- readonly TextField: import('react').FC<import('../components/form/FormTextField').FormTextFieldProps>;
20
- readonly NumberField: import('react').FC<import('../components/form/FormNumberField').FormNumberFieldProps>;
21
- readonly Autocomplete: import('react').FC<import('../components/form/FormAutocomplete').FormAutocompleteProps>;
22
- readonly Checkbox: import('react').FC<import('../components/form/FormCheckbox').FormCheckboxProps>;
23
- readonly Switch: import('react').FC<import('../components/form/FormSwitch').FormSwitchProps>;
24
- readonly RadioGroup: import('react').FC<import('../components/form/FormRadioGroup').FormRadioGroupProps>;
25
- readonly Slider: import('react').FC<import('../components/form/FormSlider').FormSliderProps>;
26
- readonly DatePicker: import('react').FC<import('../components/form/FormDatePicker').FormDatePickerProps>;
27
- readonly DateRangePicker: import('react').FC<import('../components/form/FormDateRangePicker').FormDateRangePickerProps>;
28
- readonly TimePicker: import('react').FC<import('../components/form/FormTimePicker').FormTimePickerProps>;
29
- readonly TimeRangePicker: import('react').FC<import('../components/form/FormTimeRangePicker').FormTimeRangePickerProps>;
30
- readonly DateTimePicker: import('react').FC<import('../components/form/FormDateTimePicker').FormDateTimePickerProps>;
31
- readonly DateTimeRangePicker: import('react').FC<import('../components/form/FormDateTimeRangePicker').FormDateTimeRangePickerProps>;
32
- }, {
33
- readonly SubmitButton: import('react').FC<import('../components/form/FormSubmitButton').FormSubmitButtonProps>;
34
- }, TRenderProps>) => import('react').FunctionComponent<import('react').PropsWithChildren<NoInfer<[unknown] extends [TRenderProps] ? any : TRenderProps> & {
35
- form: import('@tanstack/react-form').AppFieldExtendedReactFormApi<[unknown] extends [TFormData] ? any : TFormData, [import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined] extends [TOnMount] ? [TOnMount] extends [TOnMount & (import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined)] ? any : TOnMount : TOnMount, [import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined] extends [TOnChange] ? [TOnChange] extends [TOnChange & (import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined)] ? any : TOnChange : TOnChange, [import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined] extends [TOnChangeAsync] ? [TOnChangeAsync] extends [TOnChangeAsync & (import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined)] ? any : TOnChangeAsync : TOnChangeAsync, [import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined] extends [TOnBlur] ? [TOnBlur] extends [TOnBlur & (import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlur : TOnBlur, [import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined] extends [TOnBlurAsync] ? [TOnBlurAsync] extends [TOnBlurAsync & (import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlurAsync : TOnBlurAsync, [import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined] extends [TOnSubmit] ? [TOnSubmit] extends [TOnSubmit & (import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmit : TOnSubmit, [import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined] extends [TOnSubmitAsync] ? [TOnSubmitAsync] extends [TOnSubmitAsync & (import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmitAsync : TOnSubmitAsync, [import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined] extends [TOnDynamic] ? [TOnDynamic] extends [TOnDynamic & (import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined)] ? any : TOnDynamic : TOnDynamic, [import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined] extends [TOnDynamicAsync] ? [TOnDynamicAsync] extends [TOnDynamicAsync & (import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined)] ? any : TOnDynamicAsync : TOnDynamicAsync, [import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined] extends [TOnServer] ? [TOnServer] extends [TOnServer & (import('@tanstack/form-core').FormValidateOrFn<TFormData> | undefined)] ? any : TOnServer : TOnServer, [unknown] extends [TSubmitMeta] ? any : TSubmitMeta, {
36
- readonly TextField: import('react').FC<import('../components/form/FormTextField').FormTextFieldProps>;
37
- readonly NumberField: import('react').FC<import('../components/form/FormNumberField').FormNumberFieldProps>;
38
- readonly Autocomplete: import('react').FC<import('../components/form/FormAutocomplete').FormAutocompleteProps>;
39
- readonly Checkbox: import('react').FC<import('../components/form/FormCheckbox').FormCheckboxProps>;
40
- readonly Switch: import('react').FC<import('../components/form/FormSwitch').FormSwitchProps>;
41
- readonly RadioGroup: import('react').FC<import('../components/form/FormRadioGroup').FormRadioGroupProps>;
42
- readonly Slider: import('react').FC<import('../components/form/FormSlider').FormSliderProps>;
43
- readonly DatePicker: import('react').FC<import('../components/form/FormDatePicker').FormDatePickerProps>;
44
- readonly DateRangePicker: import('react').FC<import('../components/form/FormDateRangePicker').FormDateRangePickerProps>;
45
- readonly TimePicker: import('react').FC<import('../components/form/FormTimePicker').FormTimePickerProps>;
46
- readonly TimeRangePicker: import('react').FC<import('../components/form/FormTimeRangePicker').FormTimeRangePickerProps>;
47
- readonly DateTimePicker: import('react').FC<import('../components/form/FormDateTimePicker').FormDateTimePickerProps>;
48
- readonly DateTimeRangePicker: import('react').FC<import('../components/form/FormDateTimeRangePicker').FormDateTimeRangePickerProps>;
49
- }, {
50
- readonly SubmitButton: import('react').FC<import('../components/form/FormSubmitButton').FormSubmitButtonProps>;
51
- }>;
52
- }>>;
@@ -1,55 +0,0 @@
1
- import { createFormHookContexts, createFormHook } from "@tanstack/react-form";
2
- import { FormAutocomplete } from "../components/form/FormAutocomplete.js";
3
- import { FormCheckbox } from "../components/form/FormCheckbox.js";
4
- import { FormDatePicker } from "../components/form/FormDatePicker.js";
5
- import { FormDateRangePicker } from "../components/form/FormDateRangePicker.js";
6
- import { FormTimePicker } from "../components/form/FormTimePicker.js";
7
- import { FormTimeRangePicker } from "../components/form/FormTimeRangePicker.js";
8
- import { FormDateTimePicker } from "../components/form/FormDateTimePicker.js";
9
- import { FormDateTimeRangePicker } from "../components/form/FormDateTimeRangePicker.js";
10
- import { FormNumberField } from "../components/form/FormNumberField.js";
11
- import { FormRadioGroup } from "../components/form/FormRadioGroup.js";
12
- import { FormSlider } from "../components/form/FormSlider.js";
13
- import { FormSubmitButton } from "../components/form/FormSubmitButton.js";
14
- import { FormSwitch } from "../components/form/FormSwitch.js";
15
- import { FormTextField } from "../components/form/FormTextField.js";
16
- const {
17
- fieldContext,
18
- useFieldContext,
19
- formContext,
20
- useFormContext
21
- } = createFormHookContexts();
22
- const {
23
- useAppForm: useLayoutForm,
24
- withForm: withLayoutForm
25
- } = createFormHook({
26
- fieldComponents: {
27
- TextField: FormTextField,
28
- NumberField: FormNumberField,
29
- Autocomplete: FormAutocomplete,
30
- Checkbox: FormCheckbox,
31
- Switch: FormSwitch,
32
- RadioGroup: FormRadioGroup,
33
- Slider: FormSlider,
34
- DatePicker: FormDatePicker,
35
- DateRangePicker: FormDateRangePicker,
36
- TimePicker: FormTimePicker,
37
- TimeRangePicker: FormTimeRangePicker,
38
- DateTimePicker: FormDateTimePicker,
39
- DateTimeRangePicker: FormDateTimeRangePicker
40
- },
41
- formComponents: {
42
- SubmitButton: FormSubmitButton
43
- },
44
- fieldContext,
45
- formContext
46
- });
47
- export {
48
- fieldContext,
49
- formContext,
50
- useFieldContext,
51
- useFormContext,
52
- useLayoutForm,
53
- withLayoutForm
54
- };
55
- //# sourceMappingURL=FormHooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormHooks.js","sources":["../../src/hooks/FormHooks.ts"],"sourcesContent":["import { createFormHook, createFormHookContexts } from \"@tanstack/react-form\";\nimport { FormAutocomplete as Autocomplete } from \"~/components/form/FormAutocomplete\";\nimport { FormCheckbox as Checkbox } from \"~/components/form/FormCheckbox\";\nimport { FormDatePicker as DatePicker } from \"~/components/form/FormDatePicker\";\nimport { FormDateRangePicker as DateRangePicker } from \"~/components/form/FormDateRangePicker\";\nimport { FormTimePicker as TimePicker } from \"~/components/form/FormTimePicker\";\nimport { FormTimeRangePicker as TimeRangePicker } from \"~/components/form/FormTimeRangePicker\";\nimport { FormDateTimePicker as DateTimePicker } from \"~/components/form/FormDateTimePicker\";\nimport { FormDateTimeRangePicker as DateTimeRangePicker } from \"~/components/form/FormDateTimeRangePicker\";\nimport { FormNumberField as NumberField } from \"~/components/form/FormNumberField\";\nimport { FormRadioGroup as RadioGroup } from \"~/components/form/FormRadioGroup\";\nimport { FormSlider as Slider } from \"~/components/form/FormSlider\";\nimport { FormSubmitButton as SubmitButton } from \"~/components/form/FormSubmitButton\";\nimport { FormSwitch as Switch } from \"~/components/form/FormSwitch\";\nimport { FormTextField as TextField } from \"~/components/form/FormTextField\";\n\nexport const { fieldContext, useFieldContext, formContext, useFormContext } = createFormHookContexts();\n\nexport const { useAppForm: useLayoutForm, withForm: withLayoutForm } =\n createFormHook({\n fieldComponents: {\n TextField,\n NumberField,\n Autocomplete,\n Checkbox,\n Switch,\n RadioGroup,\n Slider,\n DatePicker,\n DateRangePicker,\n TimePicker,\n TimeRangePicker,\n DateTimePicker,\n DateTimeRangePicker,\n },\n formComponents: {\n SubmitButton,\n },\n fieldContext,\n formContext,\n });\n"],"names":["fieldContext","useFieldContext","formContext","useFormContext","createFormHookContexts","useAppForm","useLayoutForm","withForm","withLayoutForm","createFormHook","fieldComponents","TextField","NumberField","Autocomplete","Checkbox","Switch","RadioGroup","Slider","DatePicker","DateRangePicker","TimePicker","TimeRangePicker","DateTimePicker","DateTimeRangePicker","formComponents","SubmitButton"],"mappings":";;;;;;;;;;;;;;;AAgBO,MAAM;AAAA,EAAEA;AAAAA,EAAcC;AAAAA,EAAiBC;AAAAA,EAAaC;AAAe,IAAIC,uBAAAA;AAEvE,MAAM;AAAA,EAAEC,YAAYC;AAAAA,EAAeC,UAAUC;AAAe,IAC/DC,eAAe;AAAA,EACXC,iBAAiB;AAAA,IAAA,WACbC;AAAAA,IAAAA,aACAC;AAAAA,IAAAA,cACAC;AAAAA,IAAAA,UACAC;AAAAA,IAAAA,QACAC;AAAAA,IAAAA,YACAC;AAAAA,IAAAA,QACAC;AAAAA,IAAAA,YACAC;AAAAA,IAAAA,iBACAC;AAAAA,IAAAA,YACAC;AAAAA,IAAAA,iBACAC;AAAAA,IAAAA,gBACAC;AAAAA,IAAAA,qBACAC;AAAAA,EAAAA;AAAAA,EAEJC,gBAAgB;AAAA,IAAA,cACZC;AAAAA,EAAAA;AAAAA,EAEJzB;AAAAA,EACAE;AACJ,CAAC;"}
@@ -1,3 +0,0 @@
1
- export declare const login: (request: Request) => Promise<Response>;
2
- export declare const callback: (request: Request) => Promise<Response>;
3
- export declare const logout: (request: Request) => Promise<Response>;
@@ -1,91 +0,0 @@
1
- import { setCookie, getCookie, deleteCookie } from "@tanstack/react-start/server";
2
- import { generateState, generateCodeVerifier, decodeIdToken } from "arctic";
3
- import { serverEnv } from "../../env.js";
4
- import { entraId } from "./entra.js";
5
- import { setSessionCookie, setSessionAccessTokenCookie } from "./session.js";
6
- const login = async (request) => {
7
- const url = new URL(request.url);
8
- const redirectUri = url.searchParams.get("redirect_uri") || "/";
9
- const state = generateState();
10
- const codeVerifier = generateCodeVerifier();
11
- const scopes = ["openid", "profile", "offline_access", "User.Read"];
12
- const authorizationURL = entraId.createAuthorizationURL(state, codeVerifier, scopes);
13
- setCookie("entra_oauth_state", state, {
14
- secure: serverEnv.NODE_ENV === "production",
15
- path: "/",
16
- httpOnly: true,
17
- sameSite: "lax",
18
- maxAge: 60 * 10
19
- // 10 minutes
20
- });
21
- setCookie("entra_code_verifier", codeVerifier, {
22
- secure: serverEnv.NODE_ENV === "production",
23
- path: "/",
24
- httpOnly: true,
25
- sameSite: "lax",
26
- maxAge: 60 * 10
27
- // 10 minutes,
28
- });
29
- setCookie("entra_redirect_uri", redirectUri, {
30
- secure: serverEnv.NODE_ENV === "production",
31
- path: "/",
32
- httpOnly: true,
33
- sameSite: "lax",
34
- maxAge: 60 * 10
35
- // 10 minutes,
36
- });
37
- return Response.redirect(authorizationURL.href);
38
- };
39
- const callback = async (request) => {
40
- const url = new URL(request.url);
41
- const code = url.searchParams.get("code");
42
- if (!code) return new Response("Missing code", {
43
- status: 400
44
- });
45
- const state = url.searchParams.get("state");
46
- const storedState = getCookie("entra_oauth_state") ?? null;
47
- const codeVerifier = getCookie("entra_code_verifier") ?? null;
48
- const redirectUri = getCookie("entra_redirect_uri") ?? "/";
49
- if (!state || !storedState || !codeVerifier || !redirectUri) throw new Response("Missing entra oauth data in cookies", {
50
- status: 400
51
- });
52
- if (state !== storedState) return new Response("Invalid oauth state", {
53
- status: 400
54
- });
55
- deleteCookie("entra_oauth_state");
56
- deleteCookie("entra_code_verifier");
57
- deleteCookie("entra_redirect_uri");
58
- const tokens = await entraId.validateAuthorizationCode(code, codeVerifier);
59
- const idToken = tokens.idToken();
60
- const claims = decodeIdToken(idToken);
61
- await setSessionCookie({
62
- refreshToken: tokens.refreshToken(),
63
- user: {
64
- id: claims.oid,
65
- name: claims.name.split("/")[0],
66
- email: claims.preferred_username
67
- }
68
- });
69
- await setSessionAccessTokenCookie(tokens.accessToken());
70
- return new Response(null, {
71
- status: 302,
72
- headers: {
73
- Location: redirectUri
74
- }
75
- });
76
- };
77
- const logout = async (request) => {
78
- const url = new URL(request.url);
79
- return new Response(null, {
80
- status: 302,
81
- headers: {
82
- Location: url.href
83
- }
84
- });
85
- };
86
- export {
87
- callback,
88
- login,
89
- logout
90
- };
91
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sources":["../../../src/lib/auth/api.ts"],"sourcesContent":["import { deleteCookie, getCookie, setCookie } from \"@tanstack/react-start/server\";\r\nimport { decodeIdToken, generateCodeVerifier, generateState } from \"arctic\";\r\nimport type jwt from \"jsonwebtoken\";\r\nimport { serverEnv } from \"~/env\";\r\nimport { entraId } from \"~/lib/auth/entra\";\r\nimport { setSessionAccessTokenCookie, setSessionCookie } from \"~/lib/auth/session\";\r\n\r\nexport const login = async (request: Request): Promise<Response> => {\r\n const url = new URL(request.url);\r\n const redirectUri = url.searchParams.get(\"redirect_uri\") || \"/\";\r\n\r\n const state = generateState();\r\n const codeVerifier = generateCodeVerifier();\r\n const scopes = [\"openid\", \"profile\", \"offline_access\", \"User.Read\"];\r\n const authorizationURL = entraId.createAuthorizationURL(state, codeVerifier, scopes);\r\n\r\n setCookie(\"entra_oauth_state\", state, {\r\n secure: serverEnv.NODE_ENV === \"production\",\r\n path: \"/\",\r\n httpOnly: true,\r\n sameSite: \"lax\",\r\n maxAge: 60 * 10 // 10 minutes\r\n });\r\n\r\n setCookie(\"entra_code_verifier\", codeVerifier, {\r\n secure: serverEnv.NODE_ENV === \"production\",\r\n path: \"/\",\r\n httpOnly: true,\r\n sameSite: \"lax\",\r\n maxAge: 60 * 10 // 10 minutes,\r\n });\r\n\r\n setCookie(\"entra_redirect_uri\", redirectUri, {\r\n secure: serverEnv.NODE_ENV === \"production\",\r\n path: \"/\",\r\n httpOnly: true,\r\n sameSite: \"lax\",\r\n maxAge: 60 * 10 // 10 minutes,\r\n });\r\n\r\n return Response.redirect(authorizationURL.href);\r\n};\r\n\r\nexport const callback = async (request: Request): Promise<Response> => {\r\n const url = new URL(request.url);\r\n const code = url.searchParams.get(\"code\");\r\n if (!code) return new Response(\"Missing code\", { status: 400 });\r\n const state = url.searchParams.get(\"state\");\r\n const storedState = getCookie(\"entra_oauth_state\") ?? null;\r\n const codeVerifier = getCookie(\"entra_code_verifier\") ?? null;\r\n const redirectUri = getCookie(\"entra_redirect_uri\") ?? \"/\";\r\n\r\n if (!state || !storedState || !codeVerifier || !redirectUri) throw new Response(\"Missing entra oauth data in cookies\", { status: 400 });\r\n if (state !== storedState) return new Response(\"Invalid oauth state\", { status: 400 });\r\n\r\n deleteCookie(\"entra_oauth_state\");\r\n deleteCookie(\"entra_code_verifier\");\r\n deleteCookie(\"entra_redirect_uri\");\r\n\r\n const tokens = await entraId.validateAuthorizationCode(code, codeVerifier);\r\n\r\n const idToken = tokens.idToken();\r\n const claims = decodeIdToken(idToken) as jwt.JwtPayload;\r\n\r\n await setSessionCookie({\r\n refreshToken: tokens.refreshToken(),\r\n user: {\r\n id: claims.oid,\r\n name: claims.name.split(\"/\")[0],\r\n email: claims.preferred_username,\r\n }\r\n });\r\n\r\n await setSessionAccessTokenCookie(tokens.accessToken());\r\n\r\n return new Response(null, {\r\n status: 302,\r\n headers: { Location: redirectUri },\r\n });\r\n};\r\n\r\nexport const logout = async (request: Request): Promise<Response> => {\r\n const url = new URL(request.url);\r\n\r\n // const { session } = await validateRequest();\r\n // if (!session) {\r\n // return new Response(null, { status: 302, headers: { Location: \"/\" } });\r\n // }\r\n // setCookie(SESSION_COOKIE_NAME, \"\", {\r\n // httpOnly: true,\r\n // sameSite: \"lax\",\r\n // secure: serverEnv.NODE_ENV === \"production\",\r\n // maxAge: 0,\r\n // path: \"/\",\r\n // });\r\n\r\n return new Response(null, { status: 302, headers: { Location: url.href } });\r\n};\r\n"],"names":["login","request","url","URL","redirectUri","searchParams","get","state","generateState","codeVerifier","generateCodeVerifier","scopes","authorizationURL","entraId","createAuthorizationURL","setCookie","secure","serverEnv","NODE_ENV","path","httpOnly","sameSite","maxAge","Response","redirect","href","callback","code","status","storedState","getCookie","deleteCookie","tokens","validateAuthorizationCode","idToken","claims","decodeIdToken","setSessionCookie","refreshToken","user","id","oid","name","split","email","preferred_username","setSessionAccessTokenCookie","accessToken","headers","Location","logout"],"mappings":";;;;;AAOO,MAAMA,QAAQ,OAAOC,YAAwC;AAChE,QAAMC,MAAM,IAAIC,IAAIF,QAAQC,GAAG;AAC/B,QAAME,cAAcF,IAAIG,aAAaC,IAAI,cAAc,KAAK;AAE5D,QAAMC,QAAQC,cAAAA;AACd,QAAMC,eAAeC,qBAAAA;AACrB,QAAMC,SAAS,CAAC,UAAU,WAAW,kBAAkB,WAAW;AAClE,QAAMC,mBAAmBC,QAAQC,uBAAuBP,OAAOE,cAAcE,MAAM;AAEnFI,YAAU,qBAAqBR,OAAO;AAAA,IAClCS,QAAQC,UAAUC,aAAa;AAAA,IAC/BC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,QAAQ,KAAK;AAAA;AAAA,EAAA,CAChB;AAEDP,YAAU,uBAAuBN,cAAc;AAAA,IAC3CO,QAAQC,UAAUC,aAAa;AAAA,IAC/BC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,QAAQ,KAAK;AAAA;AAAA,EAAA,CAChB;AAEDP,YAAU,sBAAsBX,aAAa;AAAA,IACzCY,QAAQC,UAAUC,aAAa;AAAA,IAC/BC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,QAAQ,KAAK;AAAA;AAAA,EAAA,CAChB;AAED,SAAOC,SAASC,SAASZ,iBAAiBa,IAAI;AAClD;AAEO,MAAMC,WAAW,OAAOzB,YAAwC;AACnE,QAAMC,MAAM,IAAIC,IAAIF,QAAQC,GAAG;AAC/B,QAAMyB,OAAOzB,IAAIG,aAAaC,IAAI,MAAM;AACxC,MAAI,CAACqB,KAAM,QAAO,IAAIJ,SAAS,gBAAgB;AAAA,IAAEK,QAAQ;AAAA,EAAA,CAAK;AAC9D,QAAMrB,QAAQL,IAAIG,aAAaC,IAAI,OAAO;AAC1C,QAAMuB,cAAcC,UAAU,mBAAmB,KAAK;AACtD,QAAMrB,eAAeqB,UAAU,qBAAqB,KAAK;AACzD,QAAM1B,cAAc0B,UAAU,oBAAoB,KAAK;AAEvD,MAAI,CAACvB,SAAS,CAACsB,eAAe,CAACpB,gBAAgB,CAACL,YAAa,OAAM,IAAImB,SAAS,uCAAuC;AAAA,IAAEK,QAAQ;AAAA,EAAA,CAAK;AACtI,MAAIrB,UAAUsB,YAAa,QAAO,IAAIN,SAAS,uBAAuB;AAAA,IAAEK,QAAQ;AAAA,EAAA,CAAK;AAErFG,eAAa,mBAAmB;AAChCA,eAAa,qBAAqB;AAClCA,eAAa,oBAAoB;AAEjC,QAAMC,SAAS,MAAMnB,QAAQoB,0BAA0BN,MAAMlB,YAAY;AAEzE,QAAMyB,UAAUF,OAAOE,QAAAA;AACvB,QAAMC,SAASC,cAAcF,OAAO;AAEpC,QAAMG,iBAAiB;AAAA,IACnBC,cAAcN,OAAOM,aAAAA;AAAAA,IACrBC,MAAM;AAAA,MACFC,IAAIL,OAAOM;AAAAA,MACXC,MAAMP,OAAOO,KAAKC,MAAM,GAAG,EAAE,CAAC;AAAA,MAC9BC,OAAOT,OAAOU;AAAAA,IAAAA;AAAAA,EAClB,CACH;AAED,QAAMC,4BAA4Bd,OAAOe,aAAa;AAEtD,SAAO,IAAIxB,SAAS,MAAM;AAAA,IACtBK,QAAQ;AAAA,IACRoB,SAAS;AAAA,MAAEC,UAAU7C;AAAAA,IAAAA;AAAAA,EAAY,CACpC;AACL;AAEO,MAAM8C,SAAS,OAAOjD,YAAwC;AACjE,QAAMC,MAAM,IAAIC,IAAIF,QAAQC,GAAG;AAc/B,SAAO,IAAIqB,SAAS,MAAM;AAAA,IAAEK,QAAQ;AAAA,IAAKoB,SAAS;AAAA,MAAEC,UAAU/C,IAAIuB;AAAAA,IAAAA;AAAAA,EAAK,CAAG;AAC9E;"}
@@ -1,2 +0,0 @@
1
- import { MicrosoftEntraId } from 'arctic';
2
- export declare const entraId: MicrosoftEntraId;
@@ -1,7 +0,0 @@
1
- import { MicrosoftEntraId } from "arctic";
2
- import { serverEnv } from "../../env.js";
3
- const entraId = new MicrosoftEntraId(serverEnv.MICROSOFT_TENANT_ID, serverEnv.MICROSOFT_CLIENT_ID, serverEnv.MICROSOFT_CLIENT_SECRET, serverEnv.MICROSOFT_REDIRECT_URI);
4
- export {
5
- entraId
6
- };
7
- //# sourceMappingURL=entra.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entra.js","sources":["../../../src/lib/auth/entra.ts"],"sourcesContent":["import { MicrosoftEntraId } from \"arctic\";\r\nimport { serverEnv } from \"~/env\";\r\n\r\nexport const entraId = new MicrosoftEntraId(\r\n serverEnv.MICROSOFT_TENANT_ID,\r\n serverEnv.MICROSOFT_CLIENT_ID,\r\n serverEnv.MICROSOFT_CLIENT_SECRET,\r\n serverEnv.MICROSOFT_REDIRECT_URI,\r\n);\r\n"],"names":["entraId","MicrosoftEntraId","serverEnv","MICROSOFT_TENANT_ID","MICROSOFT_CLIENT_ID","MICROSOFT_CLIENT_SECRET","MICROSOFT_REDIRECT_URI"],"mappings":";;AAGO,MAAMA,UAAU,IAAIC,iBACvBC,UAAUC,qBACVD,UAAUE,qBACVF,UAAUG,yBACVH,UAAUI,sBACd;"}
@@ -1,17 +0,0 @@
1
- import { default as z } from 'zod';
2
- export declare const getSessionUser: import('@tanstack/start-client-core').RequiredFetcher<undefined, z.ZodObject<{
3
- redirectUri: z.ZodString;
4
- }, z.core.$strip>, Promise<{
5
- groups: string[];
6
- id: string;
7
- name: string;
8
- email: string;
9
- }>>;
10
- export declare const getSessionUserDetail: import('@tanstack/start-client-core').OptionalFetcher<undefined, undefined, Promise<{
11
- id: string;
12
- displayName: string;
13
- jobTitle: string;
14
- mail: string;
15
- mobilePhone: string;
16
- }>>;
17
- export declare const getSessionUserPhoto: import('@tanstack/start-client-core').OptionalFetcher<undefined, undefined, Promise<string>>;
@@ -1,72 +0,0 @@
1
- import { createServerFn } from "@tanstack/react-start";
2
- import axios from "axios";
3
- import z__default from "zod";
4
- import { queryClient } from "../queryClient.js";
5
- import { requireSession, getAccessToken } from "./session.js";
6
- const getSessionUser = createServerFn().inputValidator(z__default.object({
7
- redirectUri: z__default.string()
8
- })).handler(async ({
9
- data
10
- }) => {
11
- const session = await requireSession(data.redirectUri);
12
- const groups = await queryClient.fetchQuery({
13
- queryKey: ["graph", "me", "memberOf"],
14
- queryFn: async () => axios.request({
15
- method: "GET",
16
- url: "https://graph.microsoft.com/v1.0/me/memberOf?$select=displayName",
17
- headers: {
18
- Authorization: `Bearer ${await getAccessToken()}`
19
- }
20
- }).then((response) => response.data.value.map((group) => group.displayName)),
21
- staleTime: Infinity,
22
- gcTime: Infinity
23
- });
24
- return {
25
- ...session.user,
26
- groups
27
- };
28
- });
29
- const getSessionUserDetail = createServerFn({
30
- method: "GET"
31
- }).handler(async () => {
32
- return await queryClient.fetchQuery({
33
- queryKey: ["graph", "me"],
34
- queryFn: async () => await axios.request({
35
- method: "GET",
36
- url: "https://graph.microsoft.com/v1.0/me?$select=id,displayName,jobTitle,mail,mobilePhone",
37
- headers: {
38
- Authorization: `Bearer ${await getAccessToken()}`
39
- }
40
- }).then((response) => response.data),
41
- staleTime: Infinity,
42
- gcTime: Infinity
43
- });
44
- });
45
- const getSessionUserPhoto = createServerFn({
46
- method: "GET"
47
- }).handler(async () => {
48
- return await queryClient.fetchQuery({
49
- queryKey: ["graph", "me", "photo"],
50
- queryFn: async () => {
51
- const response = await axios.request({
52
- method: "GET",
53
- url: "https://graph.microsoft.com/v1.0/me/photo/$value",
54
- headers: {
55
- Authorization: `Bearer ${await getAccessToken()}`
56
- },
57
- responseType: "arraybuffer"
58
- });
59
- const contentType = response.headers["content-type"] ?? "image/jpeg";
60
- const base64 = Buffer.from(response.data).toString("base64");
61
- return `data:${contentType};base64,${base64}`;
62
- },
63
- staleTime: Infinity,
64
- gcTime: Infinity
65
- });
66
- });
67
- export {
68
- getSessionUser,
69
- getSessionUserDetail,
70
- getSessionUserPhoto
71
- };
72
- //# sourceMappingURL=graph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph.js","sources":["../../../src/lib/auth/graph.ts"],"sourcesContent":["import { createServerFn } from \"@tanstack/react-start\";\r\nimport axios from \"axios\";\r\nimport z from \"zod\";\r\nimport { queryClient } from \"../queryClient\";\r\nimport { getAccessToken, requireSession } from \"./session\";\r\nimport type { GraphUser, User } from \"~/models/User\";\r\n\r\nexport const getSessionUser = createServerFn()\r\n .inputValidator(z.object({ redirectUri: z.string() }))\r\n .handler(async ({ data }) => {\r\n const session = await requireSession(data.redirectUri);\r\n\r\n const groups = await queryClient.fetchQuery({\r\n queryKey: [\"graph\", \"me\", \"memberOf\"],\r\n queryFn: async () => axios.request<{ value: Array<{ displayName: string }> }>({\r\n method: \"GET\",\r\n url: \"https://graph.microsoft.com/v1.0/me/memberOf?$select=displayName\",\r\n headers: { Authorization: `Bearer ${await getAccessToken()}` },\r\n }).then(response => response.data.value.map((group) => group.displayName)),\r\n staleTime: Infinity,\r\n gcTime: Infinity,\r\n });\r\n\r\n return { ...session.user, groups } satisfies User;\r\n });\r\n\r\nexport const getSessionUserDetail = createServerFn({ method: \"GET\" })\r\n .handler(async () => {\r\n return await queryClient.fetchQuery({\r\n queryKey: [\"graph\", \"me\"],\r\n queryFn: async () => await axios.request<GraphUser>({\r\n method: \"GET\",\r\n url: \"https://graph.microsoft.com/v1.0/me?$select=id,displayName,jobTitle,mail,mobilePhone\",\r\n headers: { Authorization: `Bearer ${await getAccessToken()}` },\r\n }).then(response => response.data),\r\n staleTime: Infinity,\r\n gcTime: Infinity,\r\n });\r\n });\r\n\r\n\r\nexport const getSessionUserPhoto = createServerFn({ method: \"GET\" })\r\n .handler(async () => {\r\n return await queryClient.fetchQuery({\r\n queryKey: [\"graph\", \"me\", \"photo\"],\r\n queryFn: async () => {\r\n const response = await axios.request<ArrayBuffer>({\r\n method: \"GET\",\r\n url: \"https://graph.microsoft.com/v1.0/me/photo/$value\",\r\n headers: { Authorization: `Bearer ${await getAccessToken()}` },\r\n responseType: \"arraybuffer\",\r\n });\r\n const contentType = (response.headers[\"content-type\"] as string | undefined) ?? \"image/jpeg\";\r\n const base64 = Buffer.from(response.data).toString(\"base64\");\r\n return `data:${contentType};base64,${base64}`;\r\n },\r\n staleTime: Infinity,\r\n gcTime: Infinity,\r\n });\r\n });\r\n"],"names":["getSessionUser","createServerFn","inputValidator","z","object","redirectUri","string","handler","data","session","requireSession","groups","queryClient","fetchQuery","queryKey","queryFn","axios","request","method","url","headers","Authorization","getAccessToken","then","response","value","map","group","displayName","staleTime","Infinity","gcTime","user","getSessionUserDetail","getSessionUserPhoto","responseType","contentType","base64","Buffer","from","toString"],"mappings":";;;;;AAOO,MAAMA,iBAAiBC,eAAAA,EACzBC,eAAeC,WAAEC,OAAO;AAAA,EAAEC,aAAaF,WAAEG,OAAAA;AAAS,CAAC,CAAC,EACpDC,QAAQ,OAAO;AAAA,EAAEC;AAAK,MAAM;AACzB,QAAMC,UAAU,MAAMC,eAAeF,KAAKH,WAAW;AAErD,QAAMM,SAAS,MAAMC,YAAYC,WAAW;AAAA,IACxCC,UAAU,CAAC,SAAS,MAAM,UAAU;AAAA,IACpCC,SAAS,YAAYC,MAAMC,QAAmD;AAAA,MAC1EC,QAAQ;AAAA,MACRC,KAAK;AAAA,MACLC,SAAS;AAAA,QAAEC,eAAe,UAAU,MAAMC,gBAAgB;AAAA,MAAA;AAAA,IAAG,CAChE,EAAEC,KAAKC,CAAAA,aAAYA,SAAShB,KAAKiB,MAAMC,IAAKC,CAAAA,UAAUA,MAAMC,WAAW,CAAC;AAAA,IACzEC,WAAWC;AAAAA,IACXC,QAAQD;AAAAA,EAAAA,CACX;AAED,SAAO;AAAA,IAAE,GAAGrB,QAAQuB;AAAAA,IAAMrB;AAAAA,EAAAA;AAC9B,CAAC;AAEE,MAAMsB,uBAAuBhC,eAAe;AAAA,EAAEiB,QAAQ;AAAM,CAAC,EAC/DX,QAAQ,YAAY;AACjB,SAAO,MAAMK,YAAYC,WAAW;AAAA,IAChCC,UAAU,CAAC,SAAS,IAAI;AAAA,IACxBC,SAAS,YAAY,MAAMC,MAAMC,QAAmB;AAAA,MAChDC,QAAQ;AAAA,MACRC,KAAK;AAAA,MACLC,SAAS;AAAA,QAAEC,eAAe,UAAU,MAAMC,gBAAgB;AAAA,MAAA;AAAA,IAAG,CAChE,EAAEC,KAAKC,CAAAA,aAAYA,SAAShB,IAAI;AAAA,IACjCqB,WAAWC;AAAAA,IACXC,QAAQD;AAAAA,EAAAA,CACX;AACL,CAAC;AAGE,MAAMI,sBAAsBjC,eAAe;AAAA,EAAEiB,QAAQ;AAAM,CAAC,EAC9DX,QAAQ,YAAY;AACjB,SAAO,MAAMK,YAAYC,WAAW;AAAA,IAChCC,UAAU,CAAC,SAAS,MAAM,OAAO;AAAA,IACjCC,SAAS,YAAY;AACjB,YAAMS,WAAW,MAAMR,MAAMC,QAAqB;AAAA,QAC9CC,QAAQ;AAAA,QACRC,KAAK;AAAA,QACLC,SAAS;AAAA,UAAEC,eAAe,UAAU,MAAMC,gBAAgB;AAAA,QAAA;AAAA,QAC1Da,cAAc;AAAA,MAAA,CACjB;AACD,YAAMC,cAAeZ,SAASJ,QAAQ,cAAc,KAA4B;AAChF,YAAMiB,SAASC,OAAOC,KAAKf,SAAShB,IAAI,EAAEgC,SAAS,QAAQ;AAC3D,aAAO,QAAQJ,WAAW,WAAWC,MAAM;AAAA,IAC/C;AAAA,IACAR,WAAWC;AAAAA,IACXC,QAAQD;AAAAA,EAAAA,CACX;AACL,CAAC;"}
@@ -1,24 +0,0 @@
1
- import { default as jwt } from 'jsonwebtoken';
2
- import { default as z } from 'zod';
3
- declare const SessionSchema: z.ZodObject<{
4
- refreshToken: z.ZodString;
5
- user: z.ZodObject<{
6
- id: z.ZodString;
7
- name: z.ZodString;
8
- email: z.ZodEmail;
9
- }, z.core.$strip>;
10
- }, z.core.$strip>;
11
- type Session = z.infer<typeof SessionSchema>;
12
- export declare const requireSession: (redirectUri?: string) => Promise<{
13
- refreshToken: string;
14
- user: {
15
- id: string;
16
- name: string;
17
- email: string;
18
- };
19
- }>;
20
- export declare const getAccessToken: () => Promise<string>;
21
- export declare const validateAccessToken: (token: string) => Promise<jwt.JwtPayload>;
22
- export declare const setSessionCookie: (session: Session) => Promise<void>;
23
- export declare const setSessionAccessTokenCookie: (accessToken: string) => Promise<void>;
24
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sources":["../../../src/lib/auth/session.ts"],"sourcesContent":["import { redirect } from \"@tanstack/react-router\";\r\nimport { deleteCookie, getCookie, setCookie } from \"@tanstack/react-start/server\";\r\nimport jwt from \"jsonwebtoken\";\r\nimport z from \"zod\";\r\nimport jwksRsa from \"jwks-rsa\";\r\nimport { entraId } from \"./entra\";\r\nimport { serverEnv } from \"~/env\";\r\nimport { UserSchema } from \"~/models/User\";\r\n\r\nconst SESSION_COOKIE_NAME = \"session\";\r\nconst ACCESS_TOKEN_COOKIE_NAME = \"access_token\";\r\nconst AFTER_LOGIN_URL = \"/\";\r\n\r\nconst SessionSchema = z.object({\r\n refreshToken: z.string(),\r\n user: UserSchema.omit({ groups: true }),\r\n});\r\n\r\ntype Session = z.infer<typeof SessionSchema>;\r\n\r\nexport const requireSession = async (redirectUri?: string) => {\r\n const sessionCookie = getCookie(SESSION_COOKIE_NAME);\r\n if (!sessionCookie) {\r\n throw redirect({ href: `/api/auth/login?redirect_uri=${encodeURIComponent(redirectUri ?? AFTER_LOGIN_URL)}` });\r\n }\r\n\r\n const payloadRaw = jwt.verify(sessionCookie, serverEnv.SESSION_SECRET);\r\n const sessionResult = SessionSchema.safeParse(payloadRaw);\r\n if (!sessionResult.success) {\r\n deleteCookie(SESSION_COOKIE_NAME);\r\n throw redirect({ href: `/api/auth/login?redirect_uri=${encodeURIComponent(redirectUri ?? AFTER_LOGIN_URL)}` });\r\n }\r\n\r\n return sessionResult.data;\r\n};\r\n\r\nexport const getAccessToken = async () => {\r\n const accessTokenCookie = getCookie(ACCESS_TOKEN_COOKIE_NAME);\r\n if (accessTokenCookie) return accessTokenCookie;\r\n\r\n const session = await requireSession();\r\n\r\n const tokens = await entraId.refreshAccessToken(session.refreshToken, []);\r\n\r\n await setSessionCookie({\r\n ...session,\r\n refreshToken: tokens.refreshToken()\r\n });\r\n\r\n await setSessionAccessTokenCookie(tokens.accessToken());\r\n\r\n return tokens.accessToken();\r\n};\r\n\r\nexport const validateAccessToken = async (token: string): Promise<jwt.JwtPayload> => {\r\n const client = jwksRsa({\r\n cache: true,\r\n rateLimit: true,\r\n jwksRequestsPerMinute: 5,\r\n jwksUri: \"https://login.microsoftonline.com/common/discovery/v2.0/keys\",\r\n });\r\n\r\n const decodedHeader = jwt.decode(token, { complete: true });\r\n if (!decodedHeader?.header.kid) throw new Error(\"Invalid token: Missing kid\");\r\n\r\n const key = await client.getSigningKey(decodedHeader.header.kid);\r\n const signingKey = key.getPublicKey();\r\n\r\n const payload = jwt.verify(token, signingKey) as jwt.JwtPayload;\r\n\r\n if (typeof payload.iss !== \"string\" || !payload.iss.startsWith(\"https://login.microsoftonline.com/\"))\r\n throw new Error(\"Invalid issuer\");\r\n\r\n return payload;\r\n};\r\n\r\nexport const setSessionCookie = async (session: Session) => {\r\n const sessionJwt = jwt.sign(session, serverEnv.SESSION_SECRET, { expiresIn: \"7d\" });\r\n\r\n setCookie(SESSION_COOKIE_NAME, sessionJwt, {\r\n secure: serverEnv.NODE_ENV === \"production\",\r\n path: \"/\",\r\n httpOnly: true,\r\n sameSite: \"lax\",\r\n maxAge: 7 * 24 * 60 * 60, // 7 days\r\n });\r\n};\r\n\r\nexport const setSessionAccessTokenCookie = async (accessToken: string) => {\r\n setCookie(ACCESS_TOKEN_COOKIE_NAME, accessToken, {\r\n secure: serverEnv.NODE_ENV === \"production\",\r\n path: \"/\",\r\n httpOnly: true,\r\n sameSite: \"lax\",\r\n maxAge: 5 * 60, // 5 minutes\r\n });\r\n};\r\n"],"names":["SESSION_COOKIE_NAME","ACCESS_TOKEN_COOKIE_NAME","AFTER_LOGIN_URL","SessionSchema","z","object","refreshToken","string","user","UserSchema","omit","groups","requireSession","redirectUri","sessionCookie","getCookie","redirect","href","encodeURIComponent","payloadRaw","jwt","verify","serverEnv","SESSION_SECRET","sessionResult","safeParse","success","deleteCookie","data","getAccessToken","accessTokenCookie","session","tokens","entraId","refreshAccessToken","setSessionCookie","setSessionAccessTokenCookie","accessToken","sessionJwt","sign","expiresIn","setCookie","secure","NODE_ENV","path","httpOnly","sameSite","maxAge"],"mappings":";;;;;;;;AASA,MAAMA,sBAAsB;AAC5B,MAAMC,2BAA2B;AACjC,MAAMC,kBAAkB;AAExB,MAAMC,gBAAgBC,WAAEC,OAAO;AAAA,EAC3BC,cAAcF,WAAEG,OAAAA;AAAAA,EAChBC,MAAMC,WAAWC,KAAK;AAAA,IAAEC,QAAQ;AAAA,EAAA,CAAM;AAC1C,CAAC;AAIM,MAAMC,iBAAiB,OAAOC,gBAAyB;AAC1D,QAAMC,gBAAgBC,UAAUf,mBAAmB;AACnD,MAAI,CAACc,eAAe;AAChB,UAAME,SAAS;AAAA,MAAEC,MAAM,gCAAgCC,mBAAmBL,eAAeX,eAAe,CAAC;AAAA,IAAA,CAAI;AAAA,EACjH;AAEA,QAAMiB,aAAaC,IAAIC,OAAOP,eAAeQ,UAAUC,cAAc;AACrE,QAAMC,gBAAgBrB,cAAcsB,UAAUN,UAAU;AACxD,MAAI,CAACK,cAAcE,SAAS;AACxBC,iBAAa3B,mBAAmB;AAChC,UAAMgB,SAAS;AAAA,MAAEC,MAAM,gCAAgCC,mBAAmBL,eAAeX,eAAe,CAAC;AAAA,IAAA,CAAI;AAAA,EACjH;AAEA,SAAOsB,cAAcI;AACzB;AAEO,MAAMC,iBAAiB,YAAY;AACtC,QAAMC,oBAAoBf,UAAUd,wBAAwB;AAC5D,MAAI6B,kBAAmB,QAAOA;AAE9B,QAAMC,UAAU,MAAMnB,eAAAA;AAEtB,QAAMoB,SAAS,MAAMC,QAAQC,mBAAmBH,QAAQzB,cAAc,EAAE;AAExE,QAAM6B,iBAAiB;AAAA,IACnB,GAAGJ;AAAAA,IACHzB,cAAc0B,OAAO1B,aAAAA;AAAAA,EAAa,CACrC;AAED,QAAM8B,4BAA4BJ,OAAOK,aAAa;AAEtD,SAAOL,OAAOK,YAAAA;AAClB;AAwBO,MAAMF,mBAAmB,OAAOJ,YAAqB;AACxD,QAAMO,aAAalB,IAAImB,KAAKR,SAAST,UAAUC,gBAAgB;AAAA,IAAEiB,WAAW;AAAA,EAAA,CAAM;AAElFC,YAAUzC,qBAAqBsC,YAAY;AAAA,IACvCI,QAAQpB,UAAUqB,aAAa;AAAA,IAC/BC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,QAAQ,IAAI,KAAK,KAAK;AAAA;AAAA,EAAA,CACzB;AACL;AAEO,MAAMX,8BAA8B,OAAOC,gBAAwB;AACtEI,YAAUxC,0BAA0BoC,aAAa;AAAA,IAC7CK,QAAQpB,UAAUqB,aAAa;AAAA,IAC/BC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,QAAQ,IAAI;AAAA;AAAA,EAAA,CACf;AACL;"}
@@ -1,2 +0,0 @@
1
- import { QueryClient } from '@tanstack/react-query';
2
- export declare const queryClient: QueryClient;
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryClient.js","sources":["../../src/lib/queryClient.ts"],"sourcesContent":["import { QueryClient } from \"@tanstack/react-query\";\r\n\r\nexport const queryClient = new QueryClient();\r\n"],"names":["queryClient","QueryClient"],"mappings":";AAEO,MAAMA,cAAc,IAAIC,YAAAA;"}
@@ -1,52 +0,0 @@
1
- import { AnyFieldApi } from '@tanstack/react-form';
2
- export declare const WISTRON_PRIMARY_COLOR = "#00506E";
3
- export declare const WISTRON_SECONDARY_COLOR = "#64DC00";
4
- export declare class Platform {
5
- static get isAndroid(): boolean;
6
- static get isIOS(): boolean;
7
- static get isWindows(): boolean;
8
- static get isMacOS(): boolean;
9
- private static get userAgent();
10
- }
11
- export declare const rootRouteHead: () => {
12
- meta: ({
13
- charSet: string;
14
- name?: undefined;
15
- content?: undefined;
16
- title?: undefined;
17
- } | {
18
- name: string;
19
- content: string;
20
- charSet?: undefined;
21
- title?: undefined;
22
- } | {
23
- title: string;
24
- charSet?: undefined;
25
- name?: undefined;
26
- content?: undefined;
27
- })[];
28
- links: ({
29
- rel: string;
30
- sizes: string;
31
- href: string;
32
- type?: undefined;
33
- } | {
34
- rel: string;
35
- type: string;
36
- sizes: string;
37
- href: string;
38
- } | {
39
- rel: string;
40
- href: string;
41
- sizes?: undefined;
42
- type?: undefined;
43
- })[];
44
- };
45
- export declare const httpClient: import('axios').AxiosInstance;
46
- export type FormOmittedProps = "name" | "value" | "onChange" | "onBlur" | "error" | "helperText" | "renderInput" | "type" | "aria-label";
47
- export declare const getFieldStatus: (field: AnyFieldApi) => {
48
- isTouched: boolean;
49
- hasError: boolean;
50
- helperText: any;
51
- };
52
- export declare const toKebabCase: (str: string) => string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/lib/utils.ts"],"sourcesContent":["import axios from \"axios\";\r\nimport type { AnyFieldApi } from \"@tanstack/react-form\";\r\nimport { clientEnv } from \"~/env\";\r\n\r\nexport const WISTRON_PRIMARY_COLOR = \"#00506E\";\r\nexport const WISTRON_SECONDARY_COLOR = \"#64DC00\";\r\n\r\nexport class Platform {\r\n static get isAndroid() { return /android/i.test(this.userAgent); }\r\n static get isIOS() { return /iPad|iPhone|iPod/.test(this.userAgent); }\r\n static get isWindows() { return /windows/i.test(this.userAgent); }\r\n static get isMacOS() { return /Macintosh|MacIntel|MacPPC|Mac68K/.test(this.userAgent); }\r\n\r\n private static get userAgent() { return typeof navigator === \"undefined\" ? \"\" : navigator.userAgent; }\r\n}\r\n\r\nexport const rootRouteHead = () => ({\r\n meta: [\r\n { charSet: \"utf-8\" },\r\n { name: \"viewport\", content: \"width=device-width, initial-scale=1\" },\r\n { title: clientEnv.VITE_APP_TITLE },\r\n { name: \"og:type\", content: \"website\" },\r\n { name: \"og:title\", content: clientEnv.VITE_APP_TITLE },\r\n { name: \"og:image\", content: \"/favicon-32x32.png\" }\r\n ],\r\n links: [\r\n { rel: \"apple-touch-icon\", sizes: \"180x180\", href: \"/apple-touch-icon.png\", },\r\n { rel: \"icon\", type: \"image/png\", sizes: \"32x32\", href: \"/favicon-32x32.png\", },\r\n { rel: \"icon\", type: \"image/png\", sizes: \"16x16\", href: \"/favicon-16x16.png\", },\r\n { rel: \"manifest\", href: \"/manifest.webmanifest\" },\r\n { rel: \"icon\", href: \"/favicon.ico\" },\r\n ],\r\n});\r\n\r\nexport const httpClient = axios.create({\r\n baseURL: clientEnv.VITE_API_URL // TODO: Not working in children projects\r\n});\r\n\r\n/* Internal Utils */\r\nexport type FormOmittedProps =\r\n \"name\" |\r\n \"value\" |\r\n \"onChange\" |\r\n \"onBlur\" |\r\n \"error\" |\r\n \"helperText\" |\r\n \"renderInput\" |\r\n \"type\" |\r\n \"aria-label\";\r\n\r\nexport const getFieldStatus = (field: AnyFieldApi) => {\r\n const { meta } = field.state;\r\n\r\n const isTouched = meta.isTouched;\r\n const hasError = !!meta.errors.length;\r\n const helperText = meta.errors[0]?.message;\r\n\r\n return { isTouched, hasError, helperText };\r\n};\r\n\r\nexport const toKebabCase = (str: string): string => {\r\n return str\r\n .replaceAll(/([a-z])([A-Z])/g, \"$1-$2\")\r\n .replaceAll(/[\\s_]+/g, \"-\")\r\n .replaceAll(/[^a-zA-Z0-9-]/g, \"\")\r\n .toLowerCase()\r\n .replaceAll(/-+/g, \"-\")\r\n .replaceAll(/(^-|-$)/g, \"\");\r\n};\r\n"],"names":["WISTRON_PRIMARY_COLOR","WISTRON_SECONDARY_COLOR","Platform","isAndroid","test","userAgent","isIOS","isWindows","isMacOS","navigator","rootRouteHead","meta","charSet","name","content","title","clientEnv","VITE_APP_TITLE","links","rel","sizes","href","type","httpClient","axios","create","baseURL","VITE_API_URL","getFieldStatus","field","state","isTouched","hasError","errors","length","helperText","message","toKebabCase","str","replaceAll","toLowerCase"],"mappings":";;AAIO,MAAMA,wBAAwB;AAC9B,MAAMC,0BAA0B;AAEhC,MAAMC,SAAS;AAAA,EAClB,WAAWC,YAAY;AAAE,WAAO,WAAWC,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EACjE,WAAWC,QAAQ;AAAE,WAAO,mBAAmBF,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EACrE,WAAWE,YAAY;AAAE,WAAO,WAAWH,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EACjE,WAAWG,UAAU;AAAE,WAAO,mCAAmCJ,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EAEvF,WAAmBA,YAAY;AAAE,WAAO,OAAOI,cAAc,cAAc,KAAKA,UAAUJ;AAAAA,EAAW;AACzG;AAEO,MAAMK,gBAAgBA,OAAO;AAAA,EAChCC,MAAM,CACF;AAAA,IAAEC,SAAS;AAAA,EAAA,GACX;AAAA,IAAEC,MAAM;AAAA,IAAYC,SAAS;AAAA,EAAA,GAC7B;AAAA,IAAEC,OAAOC,UAAUC;AAAAA,EAAAA,GACnB;AAAA,IAAEJ,MAAM;AAAA,IAAWC,SAAS;AAAA,EAAA,GAC5B;AAAA,IAAED,MAAM;AAAA,IAAYC,SAASE,UAAUC;AAAAA,EAAAA,GACvC;AAAA,IAAEJ,MAAM;AAAA,IAAYC,SAAS;AAAA,EAAA,CAAsB;AAAA,EAEvDI,OAAO,CACH;AAAA,IAAEC,KAAK;AAAA,IAAoBC,OAAO;AAAA,IAAWC,MAAM;AAAA,EAAA,GACnD;AAAA,IAAEF,KAAK;AAAA,IAAQG,MAAM;AAAA,IAAaF,OAAO;AAAA,IAASC,MAAM;AAAA,EAAA,GACxD;AAAA,IAAEF,KAAK;AAAA,IAAQG,MAAM;AAAA,IAAaF,OAAO;AAAA,IAASC,MAAM;AAAA,EAAA,GACxD;AAAA,IAAEF,KAAK;AAAA,IAAYE,MAAM;AAAA,EAAA,GACzB;AAAA,IAAEF,KAAK;AAAA,IAAQE,MAAM;AAAA,EAAA,CAAgB;AAE7C;AAEO,MAAME,aAAaC,MAAMC,OAAO;AAAA,EACnCC,SAASV,UAAUW;AAAAA;AACvB,CAAC;AAcM,MAAMC,iBAAiBA,CAACC,UAAuB;AAClD,QAAM;AAAA,IAAElB;AAAAA,EAAAA,IAASkB,MAAMC;AAEvB,QAAMC,YAAYpB,KAAKoB;AACvB,QAAMC,WAAW,CAAC,CAACrB,KAAKsB,OAAOC;AAC/B,QAAMC,aAAaxB,KAAKsB,OAAO,CAAC,GAAGG;AAEnC,SAAO;AAAA,IAAEL;AAAAA,IAAWC;AAAAA,IAAUG;AAAAA,EAAAA;AAClC;AAEO,MAAME,cAAcA,CAACC,QAAwB;AAChD,SAAOA,IACFC,WAAW,mBAAmB,OAAO,EACrCA,WAAW,WAAW,GAAG,EACzBA,WAAW,kBAAkB,EAAE,EAC/BC,cACAD,WAAW,OAAO,GAAG,EACrBA,WAAW,YAAY,EAAE;AAClC;"}
@@ -1,2 +0,0 @@
1
- import { Plugin } from 'vite';
2
- export declare function viteWczLayout(): Plugin;