wcz-layout 6.7.2 → 9.4.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.
- package/dist/Approval-Co6D1BNq.mjs +194 -0
- package/dist/Approval-Co6D1BNq.mjs.map +1 -0
- package/dist/DialogsContext-DLqA8RJ_.mjs +7 -0
- package/dist/DialogsContext-DLqA8RJ_.mjs.map +1 -0
- package/dist/Email-BzQQkbe9.mjs +20 -0
- package/dist/Email-BzQQkbe9.mjs.map +1 -0
- package/dist/FileMeta-DDqUju1Y.mjs +19 -0
- package/dist/FileMeta-DDqUju1Y.mjs.map +1 -0
- package/dist/FileMeta-ILLTOjaM.d.mts +20 -0
- package/dist/NotificationContext-CgwUOeW0.mjs +7 -0
- package/dist/NotificationContext-CgwUOeW0.mjs.map +1 -0
- package/dist/QueryClientParam-CzaM3akD.d.mts +11 -0
- package/dist/RouterListItemButton-owZVvuC_.mjs +78 -0
- package/dist/RouterListItemButton-owZVvuC_.mjs.map +1 -0
- package/dist/User-1gKoYJvW.d.mts +12 -0
- package/dist/auth.d.mts +25 -0
- package/dist/auth.mjs +88 -0
- package/dist/auth.mjs.map +1 -0
- package/dist/authMiddleware--HdlhhZO.mjs +78 -0
- package/dist/authMiddleware--HdlhhZO.mjs.map +1 -0
- package/dist/components.d.mts +107 -0
- package/dist/components.mjs +1500 -0
- package/dist/components.mjs.map +1 -0
- package/dist/data/client.d.mts +3217 -0
- package/dist/data/client.mjs +187 -0
- package/dist/data/client.mjs.map +1 -0
- package/dist/data/server.d.mts +19 -0
- package/dist/data/server.mjs +16 -0
- package/dist/data/server.mjs.map +1 -0
- package/dist/entra-s4ZjHq5o.mjs +101 -0
- package/dist/entra-s4ZjHq5o.mjs.map +1 -0
- package/dist/env-CoveIivr.mjs +30 -0
- package/dist/env-CoveIivr.mjs.map +1 -0
- package/dist/file-C5-a_6W6.mjs +148 -0
- package/dist/file-C5-a_6W6.mjs.map +1 -0
- package/dist/file-DM1x40eJ.mjs +179 -0
- package/dist/file-DM1x40eJ.mjs.map +1 -0
- package/dist/hooks.d.mts +226 -0
- package/dist/hooks.mjs +1087 -0
- package/dist/hooks.mjs.map +1 -0
- package/dist/index.d.mts +48 -0
- package/dist/index.mjs +1944 -0
- package/dist/index.mjs.map +1 -0
- package/dist/middleware.d.mts +46 -0
- package/dist/middleware.mjs +27 -0
- package/dist/middleware.mjs.map +1 -0
- package/dist/models.d.mts +598 -0
- package/dist/models.mjs +74 -0
- package/dist/models.mjs.map +1 -0
- package/dist/msalServer-CkNOOjjH.mjs +44 -0
- package/dist/msalServer-CkNOOjjH.mjs.map +1 -0
- package/dist/peoplesoft-DIe8H1Nu.mjs +240 -0
- package/dist/peoplesoft-DIe8H1Nu.mjs.map +1 -0
- package/dist/peoplesoft-gKd-Jh5L.d.mts +1219 -0
- package/dist/useDialogs-BUzVrTSP.mjs +248 -0
- package/dist/useDialogs-BUzVrTSP.mjs.map +1 -0
- package/dist/user-Cen43mlr.d.mts +19 -0
- package/dist/utils-2XiozDlV.mjs +156 -0
- package/dist/utils-2XiozDlV.mjs.map +1 -0
- package/dist/utils-BuWEQOuy.d.mts +65 -0
- package/dist/utils.d.mts +5 -0
- package/dist/utils.mjs +5 -0
- package/dist/vite.d.mts +7 -0
- package/dist/vite.mjs +182 -0
- package/dist/vite.mjs.map +1 -0
- package/package.json +129 -62
- package/skills/client-db/SKILL.md +93 -0
- package/skills/data-grid/SKILL.md +142 -0
- package/skills/db-schema/SKILL.md +71 -0
- package/skills/dialogs/SKILL.md +79 -0
- package/skills/forms/SKILL.md +82 -0
- package/skills/general/SKILL.md +17 -0
- package/skills/notifications/SKILL.md +43 -0
- package/skills/routing/SKILL.md +128 -0
- package/skills/server-functions/SKILL.md +113 -0
- package/skills/services/SKILL.md +30 -0
- package/skills/services/docs/approval.md +257 -0
- package/skills/services/docs/email.md +32 -0
- package/skills/services/docs/file.md +81 -0
- package/skills/services/docs/peoplesoft.md +110 -0
- package/skills/start/SKILL.md +46 -0
- package/skills/start/steps/01-git-setup.md +11 -0
- package/skills/start/steps/02-project-name-setup.md +14 -0
- package/skills/start/steps/03-apm-setup.md +208 -0
- package/skills/start/steps/04-database-setup.md +39 -0
- package/skills/start/steps/05-entra-setup.md +59 -0
- package/skills/start/steps/06-vault-setup.md +70 -0
- package/skills/start/steps/07-generate-favicon.md +10 -0
- package/skills/start/steps/08-commit.md +15 -0
- package/dist/src/components/Layout.d.ts +0 -16
- package/dist/src/components/Layout.js +0 -122
- package/dist/src/components/Layout.js.map +0 -1
- package/dist/src/components/dataGrid/ChipInputCell.d.ts +0 -9
- package/dist/src/components/dataGrid/ChipInputCell.js +0 -17
- package/dist/src/components/dataGrid/ChipInputCell.js.map +0 -1
- package/dist/src/components/dataGrid/EditableColumnHeader.d.ts +0 -2
- package/dist/src/components/dataGrid/EditableColumnHeader.js +0 -7
- package/dist/src/components/dataGrid/EditableColumnHeader.js.map +0 -1
- package/dist/src/components/dataGrid/GridToolbar.d.ts +0 -8
- package/dist/src/components/dataGrid/GridToolbar.js +0 -40
- package/dist/src/components/dataGrid/GridToolbar.js.map +0 -1
- package/dist/src/components/dataGrid/TableContainer.d.ts +0 -3
- package/dist/src/components/dataGrid/TableContainer.js +0 -32
- package/dist/src/components/dataGrid/TableContainer.js.map +0 -1
- package/dist/src/components/form/FormAutocomplete.d.ts +0 -7
- package/dist/src/components/form/FormAutocomplete.js +0 -10
- package/dist/src/components/form/FormAutocomplete.js.map +0 -1
- package/dist/src/components/form/FormCheckbox.d.ts +0 -7
- package/dist/src/components/form/FormCheckbox.js +0 -11
- package/dist/src/components/form/FormCheckbox.js.map +0 -1
- package/dist/src/components/form/FormDatePicker.d.ts +0 -9
- package/dist/src/components/form/FormDatePicker.js +0 -19
- package/dist/src/components/form/FormDatePicker.js.map +0 -1
- package/dist/src/components/form/FormDateTimePicker.d.ts +0 -9
- package/dist/src/components/form/FormDateTimePicker.js +0 -19
- package/dist/src/components/form/FormDateTimePicker.js.map +0 -1
- package/dist/src/components/form/FormNumberField.d.ts +0 -12
- package/dist/src/components/form/FormNumberField.js +0 -12
- package/dist/src/components/form/FormNumberField.js.map +0 -1
- package/dist/src/components/form/FormRadioGroup.d.ts +0 -13
- package/dist/src/components/form/FormRadioGroup.js +0 -11
- package/dist/src/components/form/FormRadioGroup.js.map +0 -1
- package/dist/src/components/form/FormSlider.d.ts +0 -7
- package/dist/src/components/form/FormSlider.js +0 -11
- package/dist/src/components/form/FormSlider.js.map +0 -1
- package/dist/src/components/form/FormSubmitButton.d.ts +0 -5
- package/dist/src/components/form/FormSubmitButton.js +0 -13
- package/dist/src/components/form/FormSubmitButton.js.map +0 -1
- package/dist/src/components/form/FormSwitch.d.ts +0 -7
- package/dist/src/components/form/FormSwitch.js +0 -11
- package/dist/src/components/form/FormSwitch.js.map +0 -1
- package/dist/src/components/form/FormTextField.d.ts +0 -7
- package/dist/src/components/form/FormTextField.js +0 -11
- package/dist/src/components/form/FormTextField.js.map +0 -1
- package/dist/src/components/layout/AccountMenu.d.ts +0 -9
- package/dist/src/components/layout/AccountMenu.js +0 -44
- package/dist/src/components/layout/AccountMenu.js.map +0 -1
- package/dist/src/components/layout/DevelopmentBanner.d.ts +0 -7
- package/dist/src/components/layout/DevelopmentBanner.js +0 -29
- package/dist/src/components/layout/DevelopmentBanner.js.map +0 -1
- package/dist/src/components/layout/ErrorPage.d.ts +0 -2
- package/dist/src/components/layout/ErrorPage.js +0 -25
- package/dist/src/components/layout/ErrorPage.js.map +0 -1
- package/dist/src/components/layout/LayoutDialog.d.ts +0 -12
- package/dist/src/components/layout/LayoutDialog.js +0 -12
- package/dist/src/components/layout/LayoutDialog.js.map +0 -1
- package/dist/src/components/layout/LayoutSnackbar.d.ts +0 -8
- package/dist/src/components/layout/LayoutSnackbar.js +0 -25
- package/dist/src/components/layout/LayoutSnackbar.js.map +0 -1
- package/dist/src/components/layout/NavigationDrawer.d.ts +0 -11
- package/dist/src/components/layout/NavigationDrawer.js +0 -70
- package/dist/src/components/layout/NavigationDrawer.js.map +0 -1
- package/dist/src/components/layout/NotificationMenu.d.ts +0 -8
- package/dist/src/components/layout/NotificationMenu.js +0 -26
- package/dist/src/components/layout/NotificationMenu.js.map +0 -1
- package/dist/src/components/layout/TypographyWithIcon.d.ts +0 -7
- package/dist/src/components/layout/TypographyWithIcon.js +0 -22
- package/dist/src/components/layout/TypographyWithIcon.js.map +0 -1
- package/dist/src/components/layout/Unauthorized.d.ts +0 -2
- package/dist/src/components/layout/Unauthorized.js +0 -26
- package/dist/src/components/layout/Unauthorized.js.map +0 -1
- package/dist/src/contexts/LayoutContext.d.ts +0 -40
- package/dist/src/contexts/LayoutContext.js +0 -60
- package/dist/src/contexts/LayoutContext.js.map +0 -1
- package/dist/src/contexts/UserContext.d.ts +0 -24
- package/dist/src/contexts/UserContext.js +0 -55
- package/dist/src/contexts/UserContext.js.map +0 -1
- package/dist/src/hooks/FormHooks.d.ts +0 -46
- package/dist/src/hooks/FormHooks.js +0 -31
- package/dist/src/hooks/FormHooks.js.map +0 -1
- package/dist/src/hooks/UseSnackbar.d.ts +0 -10
- package/dist/src/hooks/UseSnackbar.js +0 -23
- package/dist/src/hooks/UseSnackbar.js.map +0 -1
- package/dist/src/hooks/UseUser.d.ts +0 -10
- package/dist/src/hooks/UseUser.js +0 -25
- package/dist/src/hooks/UseUser.js.map +0 -1
- package/dist/src/index.d.ts +0 -20
- package/dist/src/index.js +0 -15
- package/dist/src/index.js.map +0 -1
- package/dist/src/models/Error.d.ts +0 -6
- package/dist/src/models/Error.js +0 -2
- package/dist/src/models/Error.js.map +0 -1
- package/dist/src/models/KeycloakSettings.d.ts +0 -8
- package/dist/src/models/KeycloakSettings.js +0 -2
- package/dist/src/models/KeycloakSettings.js.map +0 -1
- package/dist/src/models/LayoutPaletteColorOptions.d.ts +0 -6
- package/dist/src/models/LayoutPaletteColorOptions.js +0 -2
- package/dist/src/models/LayoutPaletteColorOptions.js.map +0 -1
- package/dist/src/models/LayoutRoute.d.ts +0 -14
- package/dist/src/models/LayoutRoute.js +0 -2
- package/dist/src/models/LayoutRoute.js.map +0 -1
- package/dist/src/models/Notification.d.ts +0 -9
- package/dist/src/models/Notification.js +0 -2
- package/dist/src/models/Notification.js.map +0 -1
- package/dist/src/models/PeoplesoftDepartment.d.ts +0 -14
- package/dist/src/models/PeoplesoftDepartment.js +0 -2
- package/dist/src/models/PeoplesoftDepartment.js.map +0 -1
- package/dist/src/models/PeoplesoftEmployee.d.ts +0 -34
- package/dist/src/models/PeoplesoftEmployee.js +0 -2
- package/dist/src/models/PeoplesoftEmployee.js.map +0 -1
- package/dist/src/models/Snackbar.d.ts +0 -15
- package/dist/src/models/Snackbar.js +0 -2
- package/dist/src/models/Snackbar.js.map +0 -1
- package/dist/src/models/User.d.ts +0 -27
- package/dist/src/models/User.js +0 -11
- package/dist/src/models/User.js.map +0 -1
- package/dist/src/models/types/EmployeeCategoryGroup.d.ts +0 -1
- package/dist/src/models/types/EmployeeCategoryGroup.js +0 -2
- package/dist/src/models/types/EmployeeCategoryGroup.js.map +0 -1
- package/dist/src/models/types/EmployeeStatus.d.ts +0 -1
- package/dist/src/models/types/EmployeeStatus.js +0 -2
- package/dist/src/models/types/EmployeeStatus.js.map +0 -1
- package/dist/src/utils/Auth.d.ts +0 -12
- package/dist/src/utils/Auth.js +0 -49
- package/dist/src/utils/Auth.js.map +0 -1
- package/dist/src/utils/Fetches.d.ts +0 -5
- package/dist/src/utils/Fetches.js +0 -66
- package/dist/src/utils/Fetches.js.map +0 -1
- package/dist/src/utils/FormUtils.d.ts +0 -7
- package/dist/src/utils/FormUtils.js +0 -9
- package/dist/src/utils/FormUtils.js.map +0 -1
- package/dist/src/utils/Helpers.d.ts +0 -11
- package/dist/src/utils/Helpers.js +0 -26
- package/dist/src/utils/Helpers.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/components/Layout.tsx +0 -183
- package/src/components/dataGrid/ChipInputCell.tsx +0 -31
- package/src/components/dataGrid/EditableColumnHeader.tsx +0 -7
- package/src/components/dataGrid/GridToolbar.tsx +0 -63
- package/src/components/dataGrid/TableContainer.tsx +0 -39
- package/src/components/form/FormAutocomplete.tsx +0 -34
- package/src/components/form/FormCheckbox.tsx +0 -32
- package/src/components/form/FormDatePicker.tsx +0 -34
- package/src/components/form/FormDateTimePicker.tsx +0 -34
- package/src/components/form/FormNumberField.tsx +0 -33
- package/src/components/form/FormRadioGroup.tsx +0 -43
- package/src/components/form/FormSlider.tsx +0 -28
- package/src/components/form/FormSubmitButton.tsx +0 -29
- package/src/components/form/FormSwitch.tsx +0 -32
- package/src/components/form/FormTextField.tsx +0 -26
- package/src/components/layout/AccountMenu.tsx +0 -160
- package/src/components/layout/DevelopmentBanner.tsx +0 -54
- package/src/components/layout/ErrorPage.tsx +0 -34
- package/src/components/layout/LayoutDialog.tsx +0 -50
- package/src/components/layout/LayoutSnackbar.tsx +0 -44
- package/src/components/layout/NavigationDrawer.tsx +0 -131
- package/src/components/layout/NotificationMenu.tsx +0 -76
- package/src/components/layout/TypographyWithIcon.tsx +0 -35
- package/src/components/layout/Unauthorized.tsx +0 -37
- package/src/contexts/LayoutContext.tsx +0 -127
- package/src/contexts/UserContext.tsx +0 -88
- package/src/hooks/FormHooks.ts +0 -33
- package/src/hooks/UseSnackbar.tsx +0 -28
- package/src/hooks/UseUser.tsx +0 -29
- package/src/index.ts +0 -27
- package/src/models/Error.tsx +0 -6
- package/src/models/KeycloakSettings.ts +0 -8
- package/src/models/LayoutPaletteColorOptions.tsx +0 -7
- package/src/models/LayoutRoute.ts +0 -15
- package/src/models/Notification.ts +0 -10
- package/src/models/PeoplesoftDepartment.ts +0 -15
- package/src/models/PeoplesoftEmployee.ts +0 -35
- package/src/models/Snackbar.ts +0 -16
- package/src/models/User.ts +0 -13
- package/src/models/types/EmployeeCategoryGroup.ts +0 -1
- package/src/models/types/EmployeeStatus.ts +0 -1
- package/src/utils/Auth.ts +0 -58
- package/src/utils/Fetches.ts +0 -83
- package/src/utils/FormUtils.ts +0 -22
- package/src/utils/Helpers.ts +0 -27
- package/tsconfig.json +0 -29
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import z, { z as z$1 } from "zod";
|
|
2
|
+
//#region src/models/approval/ApprovalCoRequestor.ts
|
|
3
|
+
const ApprovalCoRequestorGroupSchema = z$1.object({
|
|
4
|
+
role: z$1.string().trim().min(1),
|
|
5
|
+
email: z$1.email()
|
|
6
|
+
});
|
|
7
|
+
const ApprovalCoRequestorEmployeeSchema = z$1.object({
|
|
8
|
+
employeeId: z$1.string().trim().min(1),
|
|
9
|
+
name: z$1.string().trim().min(1),
|
|
10
|
+
email: z$1.email()
|
|
11
|
+
});
|
|
12
|
+
const ApprovalCoRequestorPrincipalSchema = z$1.union([ApprovalCoRequestorGroupSchema, ApprovalCoRequestorEmployeeSchema]);
|
|
13
|
+
const ApprovalCoRequestorPermissionsSchema = z$1.object({
|
|
14
|
+
withdraw: z$1.boolean().default(false).optional(),
|
|
15
|
+
cancel: z$1.boolean().default(false).optional()
|
|
16
|
+
});
|
|
17
|
+
const ApprovalCoRequestorSchema = z$1.object({
|
|
18
|
+
id: z$1.uuid(),
|
|
19
|
+
principal: ApprovalCoRequestorPrincipalSchema,
|
|
20
|
+
permissions: ApprovalCoRequestorPermissionsSchema
|
|
21
|
+
});
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/models/approval/StepApprovalOrder.ts
|
|
24
|
+
const StepApprovalOrder = z.enum([
|
|
25
|
+
"Serial",
|
|
26
|
+
"Parallel",
|
|
27
|
+
"OneOfThem"
|
|
28
|
+
]);
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/models/approval/ApprovalFlow.ts
|
|
31
|
+
const ApprovalFlowSchema = z$1.object({
|
|
32
|
+
id: z$1.uuid(),
|
|
33
|
+
approvalStage: z$1.number(),
|
|
34
|
+
batchSequence: z$1.number().optional(),
|
|
35
|
+
approvalSequence: z$1.number(),
|
|
36
|
+
stepApprovalOrder: StepApprovalOrder,
|
|
37
|
+
steps: z$1.array(z$1.custom()),
|
|
38
|
+
isActive: z$1.boolean().default(false).optional()
|
|
39
|
+
});
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/models/approval/ApprovalEmployee.ts
|
|
42
|
+
const ApprovalEmployeeSchema = z$1.object({
|
|
43
|
+
employeeId: z$1.string().trim().min(1).max(20),
|
|
44
|
+
name: z$1.string().trim().min(1).max(50),
|
|
45
|
+
email: z$1.email().min(1).max(100)
|
|
46
|
+
});
|
|
47
|
+
//#endregion
|
|
48
|
+
//#region src/models/approval/ApprovalStepResult.ts
|
|
49
|
+
const ApprovalStepResult = z.enum([
|
|
50
|
+
"NotAvailable",
|
|
51
|
+
"FutureApproval",
|
|
52
|
+
"WaitingForApproval",
|
|
53
|
+
"Approved",
|
|
54
|
+
"Rejected",
|
|
55
|
+
"Skipped",
|
|
56
|
+
"Withdrawn",
|
|
57
|
+
"Cancelled"
|
|
58
|
+
]);
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region src/models/approval/ApprovalFlowStep.ts
|
|
61
|
+
const ApprovalFlowStepSchema = z$1.object({
|
|
62
|
+
id: z$1.uuid(),
|
|
63
|
+
order: z$1.number(),
|
|
64
|
+
approverRole: z$1.string().trim().min(1).max(100).default("Approver").optional(),
|
|
65
|
+
approver: ApprovalEmployeeSchema,
|
|
66
|
+
actualApprover: ApprovalEmployeeSchema.optional(),
|
|
67
|
+
result: ApprovalStepResult.default("NotAvailable").optional(),
|
|
68
|
+
resultDate: z$1.date().optional(),
|
|
69
|
+
resultComment: z$1.string().trim().max(2e3).optional()
|
|
70
|
+
});
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region src/models/approval/ApprovalRequestType.ts
|
|
73
|
+
const ApprovalRequestType = z.enum(["Single", "Batch"]);
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/models/approval/ApprovalStatus.ts
|
|
76
|
+
const ApprovalStatus = z.enum([
|
|
77
|
+
"WaitingForApproval",
|
|
78
|
+
"Approved",
|
|
79
|
+
"PartiallyApproved",
|
|
80
|
+
"Rejected",
|
|
81
|
+
"Withdrawn",
|
|
82
|
+
"Cancelled"
|
|
83
|
+
]);
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/models/approval/HqApprovalRequest.ts
|
|
86
|
+
const HqApprovalColSchema = z$1.object({
|
|
87
|
+
title: z$1.string().optional(),
|
|
88
|
+
text: z$1.string().optional(),
|
|
89
|
+
textColor: z$1.string().optional(),
|
|
90
|
+
textSize: z$1.string().optional()
|
|
91
|
+
});
|
|
92
|
+
const HqApprovalRowSchema = z$1.object({ col: z$1.array(HqApprovalColSchema) });
|
|
93
|
+
const HqApprovalSectionSchema = z$1.object({
|
|
94
|
+
row: z$1.array(HqApprovalRowSchema),
|
|
95
|
+
title: z$1.string().optional(),
|
|
96
|
+
type: z$1.string().optional(),
|
|
97
|
+
text: z$1.string().optional()
|
|
98
|
+
});
|
|
99
|
+
const HqApprovalPageSchema = z$1.object({ section: z$1.array(HqApprovalSectionSchema) });
|
|
100
|
+
const HqApprovalSummarySchema = z$1.object({ page: z$1.array(HqApprovalPageSchema) });
|
|
101
|
+
const HqApprovalFormDataSchema = z$1.object({
|
|
102
|
+
systemId: z$1.string().optional(),
|
|
103
|
+
formType: z$1.string().optional(),
|
|
104
|
+
formId: z$1.string().optional(),
|
|
105
|
+
stepName: z$1.string().optional(),
|
|
106
|
+
userId: z$1.string().optional(),
|
|
107
|
+
title: z$1.string().optional(),
|
|
108
|
+
subject: z$1.string().optional(),
|
|
109
|
+
summary: HqApprovalSummarySchema.optional(),
|
|
110
|
+
messageId: z$1.string().optional(),
|
|
111
|
+
attachList: z$1.string().optional(),
|
|
112
|
+
chkResult: z$1.string().optional(),
|
|
113
|
+
apprSummary: z$1.string().optional(),
|
|
114
|
+
approvalComment: z$1.string().optional()
|
|
115
|
+
});
|
|
116
|
+
const HqApprovalHeaderSchema = z$1.object({
|
|
117
|
+
serviceId: z$1.string().optional(),
|
|
118
|
+
authorizationCode: z$1.string().optional(),
|
|
119
|
+
dataCreatedTime: z$1.string().optional(),
|
|
120
|
+
characterEnable: z$1.boolean().default(false).optional()
|
|
121
|
+
});
|
|
122
|
+
const HqApprovalRequestSchema = z$1.object({
|
|
123
|
+
header: HqApprovalHeaderSchema.optional(),
|
|
124
|
+
formData: HqApprovalFormDataSchema.optional()
|
|
125
|
+
});
|
|
126
|
+
//#endregion
|
|
127
|
+
//#region src/models/approval/Approval.ts
|
|
128
|
+
const ApprovalSchema = z.object({
|
|
129
|
+
id: z.uuid(),
|
|
130
|
+
number: z.string().trim().max(30).optional(),
|
|
131
|
+
applicationName: z.string().trim().min(1).max(50),
|
|
132
|
+
type: ApprovalRequestType.default("Single").optional(),
|
|
133
|
+
status: ApprovalStatus,
|
|
134
|
+
created: z.date(),
|
|
135
|
+
createdBy: z.custom(),
|
|
136
|
+
updated: z.date().optional(),
|
|
137
|
+
updatedBy: z.custom().optional(),
|
|
138
|
+
approvalFlows: z.array(z.custom()).min(1),
|
|
139
|
+
currentApprovers: z.array(z.custom()),
|
|
140
|
+
coRequestors: z.array(ApprovalCoRequestorSchema).optional()
|
|
141
|
+
});
|
|
142
|
+
const CreateApprovalSchema = ApprovalSchema.pick({
|
|
143
|
+
id: true,
|
|
144
|
+
number: true,
|
|
145
|
+
applicationName: true,
|
|
146
|
+
type: true,
|
|
147
|
+
status: true,
|
|
148
|
+
approvalFlows: true
|
|
149
|
+
}).extend({
|
|
150
|
+
emailBody: z.string().trim().min(1),
|
|
151
|
+
hqApprovalRequest: HqApprovalRequestSchema.optional(),
|
|
152
|
+
approvalFlows: z.array(ApprovalFlowSchema.pick({
|
|
153
|
+
approvalStage: true,
|
|
154
|
+
batchSequence: true,
|
|
155
|
+
stepApprovalOrder: true,
|
|
156
|
+
steps: true
|
|
157
|
+
}).extend({ steps: z.array(ApprovalFlowStepSchema.pick({
|
|
158
|
+
approverRole: true,
|
|
159
|
+
approver: true
|
|
160
|
+
})) })).min(1),
|
|
161
|
+
coRequestors: z.array(ApprovalCoRequestorSchema).optional()
|
|
162
|
+
});
|
|
163
|
+
const ApproveApprovalSchema = z.object({
|
|
164
|
+
id: z.uuid(),
|
|
165
|
+
result: ApprovalStepResult,
|
|
166
|
+
resultComment: z.string().trim().max(2e3).optional(),
|
|
167
|
+
emailBody: z.string().trim().min(1)
|
|
168
|
+
});
|
|
169
|
+
const ResubmitApprovalSchema = ApprovalSchema.pick({
|
|
170
|
+
id: true,
|
|
171
|
+
approvalFlows: true
|
|
172
|
+
}).extend({ approvalFlows: z.array(ApprovalFlowSchema.pick({
|
|
173
|
+
approvalStage: true,
|
|
174
|
+
batchSequence: true,
|
|
175
|
+
stepApprovalOrder: true,
|
|
176
|
+
steps: true
|
|
177
|
+
}).extend({ steps: z.array(ApprovalFlowStepSchema.pick({
|
|
178
|
+
approverRole: true,
|
|
179
|
+
approver: true
|
|
180
|
+
})) })).min(1) });
|
|
181
|
+
const CancelApprovalSchema = z.object({
|
|
182
|
+
id: z.uuid(),
|
|
183
|
+
comment: z.string().trim().min(1).max(2e3),
|
|
184
|
+
emailBody: z.string().trim().min(1)
|
|
185
|
+
});
|
|
186
|
+
const WithdrawApprovalSchema = z.object({
|
|
187
|
+
id: z.uuid(),
|
|
188
|
+
comment: z.string().trim().min(1).max(2e3),
|
|
189
|
+
emailBody: z.string().trim().min(1)
|
|
190
|
+
});
|
|
191
|
+
//#endregion
|
|
192
|
+
export { ResubmitApprovalSchema as a, ApprovalStatus as c, ApprovalEmployeeSchema as d, ApprovalFlowSchema as f, ApprovalCoRequestorSchema as h, CreateApprovalSchema as i, ApprovalFlowStepSchema as l, ApprovalCoRequestorPrincipalSchema as m, ApproveApprovalSchema as n, WithdrawApprovalSchema as o, ApprovalCoRequestorPermissionsSchema as p, CancelApprovalSchema as r, HqApprovalRequestSchema as s, ApprovalSchema as t, ApprovalStepResult as u };
|
|
193
|
+
|
|
194
|
+
//# sourceMappingURL=Approval-Co6D1BNq.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Approval-Co6D1BNq.mjs","names":["z","ApprovalCoRequestorGroupSchema","object","role","string","trim","min","email","ApprovalCoRequestorGroup","infer","ApprovalCoRequestorEmployeeSchema","employeeId","name","ApprovalCoRequestorEmployee","ApprovalCoRequestorPrincipalSchema","union","ApprovalCoRequestorPrincipal","ApprovalCoRequestorPermissionsSchema","withdraw","boolean","default","optional","cancel","ApprovalCoRequestorPermissions","ApprovalCoRequestorSchema","id","uuid","principal","permissions","ApprovalCoRequestor","z","StepApprovalOrder","enum","z","StepApprovalOrder","ApprovalFlowStep","ApprovalFlowSchema","object","id","uuid","approvalStage","number","batchSequence","optional","approvalSequence","stepApprovalOrder","steps","array","custom","isActive","boolean","default","ApprovalFlow","infer","z","ApprovalEmployeeSchema","object","employeeId","string","trim","min","max","name","email","ApprovalEmployee","infer","z","ApprovalStepResult","enum","z","ApprovalEmployeeSchema","ApprovalStepResult","ApprovalFlowStepSchema","object","id","uuid","order","number","approverRole","string","trim","min","max","default","optional","approver","actualApprover","result","resultDate","date","resultComment","ApprovalFlowStep","infer","z","ApprovalRequestType","enum","z","ApprovalStatus","enum","z","HqApprovalColSchema","object","title","string","optional","text","textColor","textSize","HqApprovalCol","infer","HqApprovalRowSchema","col","array","HqApprovalRow","HqApprovalSectionSchema","row","type","HqApprovalSection","HqApprovalPageSchema","section","HqApprovalPage","HqApprovalSummarySchema","page","HqApprovalSummary","HqApprovalFormDataSchema","systemId","formType","formId","stepName","userId","subject","summary","messageId","attachList","chkResult","apprSummary","approvalComment","HqApprovalFormData","HqApprovalHeaderSchema","serviceId","authorizationCode","dataCreatedTime","characterEnable","boolean","default","HqApprovalHeader","HqApprovalRequestSchema","header","formData","HqApprovalRequest","z","ApprovalCoRequestorSchema","ApprovalEmployee","ApprovalFlow","ApprovalFlowSchema","ApprovalFlowStepSchema","ApprovalRequestType","ApprovalStatus","ApprovalStepResult","HqApprovalRequestSchema","ApprovalSchema","object","id","uuid","number","string","trim","max","optional","applicationName","min","type","default","status","created","date","createdBy","custom","updated","updatedBy","approvalFlows","array","currentApprovers","coRequestors","Approval","infer","CreateApprovalSchema","pick","extend","emailBody","hqApprovalRequest","approvalStage","batchSequence","stepApprovalOrder","steps","approverRole","approver","CreateApproval","ApproveApprovalSchema","result","resultComment","ApproveApproval","ResubmitApprovalSchema","ResubmitApproval","CancelApprovalSchema","comment","CancelApproval","WithdrawApprovalSchema","WithdrawApproval"],"sources":["../src/models/approval/ApprovalCoRequestor.ts","../src/models/approval/StepApprovalOrder.ts","../src/models/approval/ApprovalFlow.ts","../src/models/approval/ApprovalEmployee.ts","../src/models/approval/ApprovalStepResult.ts","../src/models/approval/ApprovalFlowStep.ts","../src/models/approval/ApprovalRequestType.ts","../src/models/approval/ApprovalStatus.ts","../src/models/approval/HqApprovalRequest.ts","../src/models/approval/Approval.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const ApprovalCoRequestorGroupSchema = z.object({\n role: z.string().trim().min(1),\n email: z.email(),\n});\n\nexport type ApprovalCoRequestorGroup = z.infer<typeof ApprovalCoRequestorGroupSchema>;\n\nexport const ApprovalCoRequestorEmployeeSchema = z.object({\n employeeId: z.string().trim().min(1),\n name: z.string().trim().min(1),\n email: z.email(),\n});\n\nexport type ApprovalCoRequestorEmployee = z.infer<typeof ApprovalCoRequestorEmployeeSchema>;\n\nexport const ApprovalCoRequestorPrincipalSchema = z.union([\n ApprovalCoRequestorGroupSchema,\n ApprovalCoRequestorEmployeeSchema,\n]);\n\nexport type ApprovalCoRequestorPrincipal = z.infer<typeof ApprovalCoRequestorPrincipalSchema>;\n\nexport const ApprovalCoRequestorPermissionsSchema = z.object({\n withdraw: z.boolean().default(false).optional(),\n cancel: z.boolean().default(false).optional(),\n});\n\nexport type ApprovalCoRequestorPermissions = z.infer<typeof ApprovalCoRequestorPermissionsSchema>;\n\nexport const ApprovalCoRequestorSchema = z.object({\n id: z.uuid(),\n principal: ApprovalCoRequestorPrincipalSchema,\n permissions: ApprovalCoRequestorPermissionsSchema,\n});\n\nexport type ApprovalCoRequestor = z.infer<typeof ApprovalCoRequestorSchema>;\n","import z from \"zod\";\n\nexport const StepApprovalOrder = z.enum([\"Serial\", \"Parallel\", \"OneOfThem\"]);\n","import { z } from \"zod\";\nimport { StepApprovalOrder } from \"./StepApprovalOrder\";\nimport type { ApprovalFlowStep } from \"./ApprovalFlowStep\";\n\nexport const ApprovalFlowSchema = z.object({\n id: z.uuid(),\n approvalStage: z.number(),\n batchSequence: z.number().optional(),\n approvalSequence: z.number(),\n stepApprovalOrder: StepApprovalOrder,\n steps: z.array(z.custom<ApprovalFlowStep>()),\n isActive: z.boolean().default(false).optional(),\n});\n\nexport type ApprovalFlow = z.infer<typeof ApprovalFlowSchema>;\n","import { z } from \"zod\";\n\nexport const ApprovalEmployeeSchema = z.object({\n employeeId: z.string().trim().min(1).max(20),\n name: z.string().trim().min(1).max(50),\n email: z.email().min(1).max(100),\n});\n\nexport type ApprovalEmployee = z.infer<typeof ApprovalEmployeeSchema>;\n","import z from \"zod\";\n\nexport const ApprovalStepResult = z.enum([\n \"NotAvailable\",\n \"FutureApproval\",\n \"WaitingForApproval\",\n \"Approved\",\n \"Rejected\",\n \"Skipped\",\n \"Withdrawn\",\n \"Cancelled\",\n]);\n","import { z } from \"zod\";\nimport { ApprovalEmployeeSchema } from \"./ApprovalEmployee\";\nimport { ApprovalStepResult } from \"./ApprovalStepResult\";\n\nexport const ApprovalFlowStepSchema = z.object({\n id: z.uuid(),\n order: z.number(),\n approverRole: z.string().trim().min(1).max(100).default(\"Approver\").optional(),\n approver: ApprovalEmployeeSchema,\n actualApprover: ApprovalEmployeeSchema.optional(),\n result: ApprovalStepResult.default(\"NotAvailable\").optional(),\n resultDate: z.date().optional(),\n resultComment: z.string().trim().max(2000).optional(),\n});\n\nexport type ApprovalFlowStep = z.infer<typeof ApprovalFlowStepSchema>;\n","import z from \"zod\";\n\nexport const ApprovalRequestType = z.enum([\"Single\", \"Batch\"]);\n","import z from \"zod\";\n\nexport const ApprovalStatus = z.enum([\n \"WaitingForApproval\",\n \"Approved\",\n \"PartiallyApproved\",\n \"Rejected\",\n \"Withdrawn\",\n \"Cancelled\",\n]);\n","import { z } from \"zod\";\n\nexport const HqApprovalColSchema = z.object({\n title: z.string().optional(),\n text: z.string().optional(),\n textColor: z.string().optional(),\n textSize: z.string().optional(),\n});\n\nexport type HqApprovalCol = z.infer<typeof HqApprovalColSchema>;\n\nexport const HqApprovalRowSchema = z.object({\n col: z.array(HqApprovalColSchema),\n});\n\nexport type HqApprovalRow = z.infer<typeof HqApprovalRowSchema>;\n\nexport const HqApprovalSectionSchema = z.object({\n row: z.array(HqApprovalRowSchema),\n title: z.string().optional(),\n type: z.string().optional(),\n text: z.string().optional(),\n});\n\nexport type HqApprovalSection = z.infer<typeof HqApprovalSectionSchema>;\n\nexport const HqApprovalPageSchema = z.object({\n section: z.array(HqApprovalSectionSchema),\n});\n\nexport type HqApprovalPage = z.infer<typeof HqApprovalPageSchema>;\n\nexport const HqApprovalSummarySchema = z.object({\n page: z.array(HqApprovalPageSchema),\n});\n\nexport type HqApprovalSummary = z.infer<typeof HqApprovalSummarySchema>;\n\nexport const HqApprovalFormDataSchema = z.object({\n systemId: z.string().optional(),\n formType: z.string().optional(),\n formId: z.string().optional(),\n stepName: z.string().optional(),\n userId: z.string().optional(),\n title: z.string().optional(),\n subject: z.string().optional(),\n summary: HqApprovalSummarySchema.optional(),\n messageId: z.string().optional(),\n attachList: z.string().optional(),\n chkResult: z.string().optional(),\n apprSummary: z.string().optional(),\n approvalComment: z.string().optional(),\n});\n\nexport type HqApprovalFormData = z.infer<typeof HqApprovalFormDataSchema>;\n\nexport const HqApprovalHeaderSchema = z.object({\n serviceId: z.string().optional(),\n authorizationCode: z.string().optional(),\n dataCreatedTime: z.string().optional(),\n characterEnable: z.boolean().default(false).optional(),\n});\n\nexport type HqApprovalHeader = z.infer<typeof HqApprovalHeaderSchema>;\n\nexport const HqApprovalRequestSchema = z.object({\n header: HqApprovalHeaderSchema.optional(),\n formData: HqApprovalFormDataSchema.optional(),\n});\n\nexport type HqApprovalRequest = z.infer<typeof HqApprovalRequestSchema>;\n","import z from \"zod\";\nimport { ApprovalCoRequestorSchema } from \"./ApprovalCoRequestor\";\nimport { type ApprovalEmployee } from \"./ApprovalEmployee\";\nimport type { ApprovalFlow } from \"./ApprovalFlow\";\nimport { ApprovalFlowSchema } from \"./ApprovalFlow\";\nimport { ApprovalFlowStepSchema } from \"./ApprovalFlowStep\";\nimport { ApprovalRequestType } from \"./ApprovalRequestType\";\nimport { ApprovalStatus } from \"./ApprovalStatus\";\nimport { ApprovalStepResult } from \"./ApprovalStepResult\";\nimport { HqApprovalRequestSchema } from \"./HqApprovalRequest\";\n\nexport const ApprovalSchema = z.object({\n id: z.uuid(),\n number: z.string().trim().max(30).optional(),\n applicationName: z.string().trim().min(1).max(50),\n type: ApprovalRequestType.default(\"Single\").optional(),\n status: ApprovalStatus,\n created: z.date(),\n createdBy: z.custom<ApprovalEmployee>(),\n updated: z.date().optional(),\n updatedBy: z.custom<ApprovalEmployee>().optional(),\n approvalFlows: z.array(z.custom<ApprovalFlow>()).min(1),\n currentApprovers: z.array(z.custom<ApprovalEmployee>()),\n coRequestors: z.array(ApprovalCoRequestorSchema).optional(),\n});\n\nexport type Approval = z.infer<typeof ApprovalSchema>;\n\n// Create Approval\nexport const CreateApprovalSchema = ApprovalSchema.pick({\n id: true,\n number: true,\n applicationName: true,\n type: true,\n status: true,\n approvalFlows: true,\n}).extend({\n emailBody: z.string().trim().min(1),\n hqApprovalRequest: HqApprovalRequestSchema.optional(),\n approvalFlows: z\n .array(\n ApprovalFlowSchema.pick({\n approvalStage: true,\n batchSequence: true,\n stepApprovalOrder: true,\n steps: true,\n }).extend({\n steps: z.array(\n ApprovalFlowStepSchema.pick({\n approverRole: true,\n approver: true,\n }),\n ),\n }),\n )\n .min(1),\n coRequestors: z.array(ApprovalCoRequestorSchema).optional(),\n});\n\nexport type CreateApproval = z.infer<typeof CreateApprovalSchema>;\n\n// Single Approval\nexport const ApproveApprovalSchema = z.object({\n id: z.uuid(),\n result: ApprovalStepResult,\n resultComment: z.string().trim().max(2000).optional(),\n emailBody: z.string().trim().min(1),\n});\n\nexport type ApproveApproval = z.infer<typeof ApproveApprovalSchema>;\n\n// Resubmit Approval\nexport const ResubmitApprovalSchema = ApprovalSchema.pick({\n id: true,\n approvalFlows: true,\n}).extend({\n approvalFlows: z\n .array(\n ApprovalFlowSchema.pick({\n approvalStage: true,\n batchSequence: true,\n stepApprovalOrder: true,\n steps: true,\n }).extend({\n steps: z.array(\n ApprovalFlowStepSchema.pick({\n approverRole: true,\n approver: true,\n }),\n ),\n }),\n )\n .min(1),\n});\n\nexport type ResubmitApproval = z.infer<typeof ResubmitApprovalSchema>;\n\n// Cancel Approval\nexport const CancelApprovalSchema = z.object({\n id: z.uuid(),\n comment: z.string().trim().min(1).max(2000),\n emailBody: z.string().trim().min(1),\n});\n\nexport type CancelApproval = z.infer<typeof CancelApprovalSchema>;\n\n// Withdraw Approval\nexport const WithdrawApprovalSchema = z.object({\n id: z.uuid(),\n comment: z.string().trim().min(1).max(2000),\n emailBody: z.string().trim().min(1),\n});\n\nexport type WithdrawApproval = z.infer<typeof WithdrawApprovalSchema>;\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogsContext-DLqA8RJ_.mjs","names":["createContext","CloseDialog","OpenDialog","DialogsContextValue","open","close","DialogsContext"],"sources":["../src/contexts/DialogsContext.ts"],"sourcesContent":["import { createContext } from \"react\";\nimport type { CloseDialog, OpenDialog } from \"../hooks/useDialogs\";\n\nexport interface DialogsContextValue {\n open: OpenDialog;\n close: CloseDialog;\n}\n\nexport const DialogsContext = createContext<DialogsContextValue>({} as DialogsContextValue);\n"],"mappings":";;AAQA,MAAaM,iBAAiBN,cAAmC,CAAC,CAAwB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
//#region src/models/email/EmailAttachment.ts
|
|
3
|
+
const EmailAttachmentSchema = z.object({
|
|
4
|
+
appName: z.string().trim().min(1).max(100),
|
|
5
|
+
subId: z.uuid()
|
|
6
|
+
});
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region src/models/email/Email.ts
|
|
9
|
+
const EmailSchema = z.object({
|
|
10
|
+
subject: z.string().trim().min(1).max(60),
|
|
11
|
+
body: z.string().trim().min(1),
|
|
12
|
+
to: z.array(z.email()).min(1),
|
|
13
|
+
bcc: z.array(z.email()).optional(),
|
|
14
|
+
cc: z.array(z.email()).optional(),
|
|
15
|
+
attachments: z.array(EmailAttachmentSchema).optional()
|
|
16
|
+
});
|
|
17
|
+
//#endregion
|
|
18
|
+
export { EmailAttachmentSchema as n, EmailSchema as t };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=Email-BzQQkbe9.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Email-BzQQkbe9.mjs","names":["z","EmailAttachmentSchema","object","appName","string","trim","min","max","subId","uuid","EmailAttachment","infer","z","EmailAttachmentSchema","EmailSchema","object","subject","string","trim","min","max","body","to","array","email","bcc","optional","cc","attachments","Email","infer"],"sources":["../src/models/email/EmailAttachment.ts","../src/models/email/Email.ts"],"sourcesContent":["import z from \"zod\";\n\nexport const EmailAttachmentSchema = z.object({\n appName: z.string().trim().min(1).max(100),\n subId: z.uuid(),\n});\n\nexport type EmailAttachment = z.infer<typeof EmailAttachmentSchema>;\n","import z from \"zod\";\nimport { EmailAttachmentSchema } from \"./EmailAttachment\";\n\nexport const EmailSchema = z.object({\n subject: z.string().trim().min(1).max(60),\n body: z.string().trim().min(1),\n to: z.array(z.email()).min(1),\n bcc: z.array(z.email()).optional(),\n cc: z.array(z.email()).optional(),\n attachments: z.array(EmailAttachmentSchema).optional(),\n});\n\nexport type Email = z.infer<typeof EmailSchema>;\n"],"mappings":";;AAEA,MAAaC,wBAAwBD,EAAEE,OAAO;CAC5CC,SAASH,EAAEI,OAAO,CAAC,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,GAAG;CACzCC,OAAOR,EAAES,KAAK;AAChB,CAAC;;;ACFD,MAAaK,cAAcF,EAAEG,OAAO;CAClCC,SAASJ,EAAEK,OAAO,CAAC,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,EAAE;CACxCC,MAAMT,EAAEK,OAAO,CAAC,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC;CAC7BG,IAAIV,EAAEW,MAAMX,EAAEY,MAAM,CAAC,CAAC,CAACL,IAAI,CAAC;CAC5BM,KAAKb,EAAEW,MAAMX,EAAEY,MAAM,CAAC,CAAC,CAACE,SAAS;CACjCC,IAAIf,EAAEW,MAAMX,EAAEY,MAAM,CAAC,CAAC,CAACE,SAAS;CAChCE,aAAahB,EAAEW,MAAMV,qBAAqB,CAAC,CAACa,SAAS;AACvD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as z$2 from "zod";
|
|
2
|
+
//#region src/models/file/FileMeta.ts
|
|
3
|
+
const FileMetaSchema = z$2.object({
|
|
4
|
+
id: z$2.uuid(),
|
|
5
|
+
subId: z$2.uuid(),
|
|
6
|
+
appName: z$2.string().trim().min(1).max(255),
|
|
7
|
+
fileName: z$2.string().trim().min(1).max(255),
|
|
8
|
+
fileExtension: z$2.string().trim().min(1).max(255),
|
|
9
|
+
fileSize: z$2.number().min(0),
|
|
10
|
+
mediaSubType: z$2.string().trim().min(1).max(255),
|
|
11
|
+
mediaType: z$2.string().trim().min(1).max(255),
|
|
12
|
+
mimeType: z$2.string().trim().min(1).max(255),
|
|
13
|
+
createdBy: z$2.string().trim().min(1).max(255),
|
|
14
|
+
createdDate: z$2.date()
|
|
15
|
+
});
|
|
16
|
+
//#endregion
|
|
17
|
+
export { FileMetaSchema as t };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=FileMeta-DDqUju1Y.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileMeta-DDqUju1Y.mjs","names":["z","FileMetaSchema","object","id","uuid","subId","appName","string","trim","min","max","fileName","fileExtension","fileSize","number","mediaSubType","mediaType","mimeType","createdBy","createdDate","date","FileMeta","infer"],"sources":["../src/models/file/FileMeta.ts"],"sourcesContent":["import * as z from \"zod\";\n\nexport const FileMetaSchema = z.object({\n id: z.uuid(),\n subId: z.uuid(),\n appName: z.string().trim().min(1).max(255),\n fileName: z.string().trim().min(1).max(255),\n fileExtension: z.string().trim().min(1).max(255),\n fileSize: z.number().min(0),\n mediaSubType: z.string().trim().min(1).max(255),\n mediaType: z.string().trim().min(1).max(255),\n mimeType: z.string().trim().min(1).max(255),\n createdBy: z.string().trim().min(1).max(255),\n createdDate: z.date(),\n});\n\nexport type FileMeta = z.infer<typeof FileMetaSchema>;\n"],"mappings":";;AAEA,MAAaC,iBAAiBD,IAAEE,OAAO;CACrCC,IAAIH,IAAEI,KAAK;CACXC,OAAOL,IAAEI,KAAK;CACdE,SAASN,IAAEO,OAAO,CAAC,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,GAAG;CACzCC,UAAUX,IAAEO,OAAO,CAAC,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,GAAG;CAC1CE,eAAeZ,IAAEO,OAAO,CAAC,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,GAAG;CAC/CG,UAAUb,IAAEc,OAAO,CAAC,CAACL,IAAI,CAAC;CAC1BM,cAAcf,IAAEO,OAAO,CAAC,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,GAAG;CAC9CM,WAAWhB,IAAEO,OAAO,CAAC,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,GAAG;CAC3CO,UAAUjB,IAAEO,OAAO,CAAC,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,GAAG;CAC1CQ,WAAWlB,IAAEO,OAAO,CAAC,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,IAAI,GAAG;CAC3CS,aAAanB,IAAEoB,KAAK;AACtB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as z$2 from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/models/file/FileMeta.d.ts
|
|
4
|
+
declare const FileMetaSchema: z$2.ZodObject<{
|
|
5
|
+
id: z$2.ZodUUID;
|
|
6
|
+
subId: z$2.ZodUUID;
|
|
7
|
+
appName: z$2.ZodString;
|
|
8
|
+
fileName: z$2.ZodString;
|
|
9
|
+
fileExtension: z$2.ZodString;
|
|
10
|
+
fileSize: z$2.ZodNumber;
|
|
11
|
+
mediaSubType: z$2.ZodString;
|
|
12
|
+
mediaType: z$2.ZodString;
|
|
13
|
+
mimeType: z$2.ZodString;
|
|
14
|
+
createdBy: z$2.ZodString;
|
|
15
|
+
createdDate: z$2.ZodDate;
|
|
16
|
+
}, z$2.core.$strip>;
|
|
17
|
+
type FileMeta = z$2.infer<typeof FileMetaSchema>;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { FileMetaSchema as n, FileMeta as t };
|
|
20
|
+
//# sourceMappingURL=FileMeta-ILLTOjaM.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationContext-CgwUOeW0.mjs","names":["createContext","AlertColor","NotificationOptions","severity","autoHideDuration","NotificationContextValue","notify","message","options","NotificationContext"],"sources":["../src/contexts/NotificationContext.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport type { AlertColor } from \"@mui/material/Alert\";\n\nexport interface NotificationOptions {\n severity?: AlertColor;\n autoHideDuration?: number;\n}\n\nexport interface NotificationContextValue {\n notify: (message: string, options?: NotificationOptions) => void;\n}\n\nexport const NotificationContext = createContext<NotificationContextValue | null>(null);\n"],"mappings":";;AAYA,MAAaS,sBAAsBT,cAA+C,IAAI"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
import { QueryClient } from "@tanstack/react-query";
|
|
3
|
+
|
|
4
|
+
//#region src/models/QueryClientParam.d.ts
|
|
5
|
+
declare const BQueryClientParamSchema: z.ZodObject<{
|
|
6
|
+
queryClient: z.ZodCustom<QueryClient, QueryClient>;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
type QueryClientParam = z.infer<typeof BQueryClientParamSchema>;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { QueryClientParam as t };
|
|
11
|
+
//# sourceMappingURL=QueryClientParam-CzaM3akD.d.mts.map
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { c } from "react/compiler-runtime";
|
|
2
|
+
import { IconButton, ListItemButton } from "@mui/material";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { createLink } from "@tanstack/react-router";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/router/RouterIconButton.tsx
|
|
7
|
+
const CreatedComponent$1 = createLink(React.forwardRef(function IconButtonComponent(props, reference) {
|
|
8
|
+
const $ = c(4);
|
|
9
|
+
if ($[0] !== "78225cdb1e7335044739e8f2aa569a8b6e8ddff45ee95d92920518aa6794a52d") {
|
|
10
|
+
for (let $i = 0; $i < 4; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
|
|
11
|
+
$[0] = "78225cdb1e7335044739e8f2aa569a8b6e8ddff45ee95d92920518aa6794a52d";
|
|
12
|
+
}
|
|
13
|
+
let t0;
|
|
14
|
+
if ($[1] !== props || $[2] !== reference) {
|
|
15
|
+
t0 = /* @__PURE__ */ jsx(IconButton, {
|
|
16
|
+
ref: reference,
|
|
17
|
+
component: "a",
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
20
|
+
$[1] = props;
|
|
21
|
+
$[2] = reference;
|
|
22
|
+
$[3] = t0;
|
|
23
|
+
} else t0 = $[3];
|
|
24
|
+
return t0;
|
|
25
|
+
}));
|
|
26
|
+
const RouterIconButton = (props) => {
|
|
27
|
+
const $ = c(3);
|
|
28
|
+
if ($[0] !== "78225cdb1e7335044739e8f2aa569a8b6e8ddff45ee95d92920518aa6794a52d") {
|
|
29
|
+
for (let $i = 0; $i < 3; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
|
|
30
|
+
$[0] = "78225cdb1e7335044739e8f2aa569a8b6e8ddff45ee95d92920518aa6794a52d";
|
|
31
|
+
}
|
|
32
|
+
let t0;
|
|
33
|
+
if ($[1] !== props) {
|
|
34
|
+
t0 = /* @__PURE__ */ jsx(CreatedComponent$1, { ...props });
|
|
35
|
+
$[1] = props;
|
|
36
|
+
$[2] = t0;
|
|
37
|
+
} else t0 = $[2];
|
|
38
|
+
return t0;
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/components/router/RouterListItemButton.tsx
|
|
42
|
+
const CreatedComponent = createLink(React.forwardRef(function ButtonComponent(props, reference) {
|
|
43
|
+
const $ = c(4);
|
|
44
|
+
if ($[0] !== "a33d2f291bddc17afd0afbb422e06a0a3bbcd9c360494d00918e68b54a100925") {
|
|
45
|
+
for (let $i = 0; $i < 4; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
|
|
46
|
+
$[0] = "a33d2f291bddc17afd0afbb422e06a0a3bbcd9c360494d00918e68b54a100925";
|
|
47
|
+
}
|
|
48
|
+
let t0;
|
|
49
|
+
if ($[1] !== props || $[2] !== reference) {
|
|
50
|
+
t0 = /* @__PURE__ */ jsx(ListItemButton, {
|
|
51
|
+
ref: reference,
|
|
52
|
+
component: "a",
|
|
53
|
+
...props
|
|
54
|
+
});
|
|
55
|
+
$[1] = props;
|
|
56
|
+
$[2] = reference;
|
|
57
|
+
$[3] = t0;
|
|
58
|
+
} else t0 = $[3];
|
|
59
|
+
return t0;
|
|
60
|
+
}));
|
|
61
|
+
const RouterListItemButton = (props) => {
|
|
62
|
+
const $ = c(3);
|
|
63
|
+
if ($[0] !== "a33d2f291bddc17afd0afbb422e06a0a3bbcd9c360494d00918e68b54a100925") {
|
|
64
|
+
for (let $i = 0; $i < 3; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
|
|
65
|
+
$[0] = "a33d2f291bddc17afd0afbb422e06a0a3bbcd9c360494d00918e68b54a100925";
|
|
66
|
+
}
|
|
67
|
+
let t0;
|
|
68
|
+
if ($[1] !== props) {
|
|
69
|
+
t0 = /* @__PURE__ */ jsx(CreatedComponent, { ...props });
|
|
70
|
+
$[1] = props;
|
|
71
|
+
$[2] = t0;
|
|
72
|
+
} else t0 = $[2];
|
|
73
|
+
return t0;
|
|
74
|
+
};
|
|
75
|
+
//#endregion
|
|
76
|
+
export { RouterIconButton as n, RouterListItemButton as t };
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=RouterListItemButton-owZVvuC_.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouterListItemButton-owZVvuC_.mjs","names":["IconButton","createLink","React","IconButtonProps","LinkComponent","Component","forwardRef","HTMLAnchorElement","IconButtonComponent","props","reference","$","_c","$i","Symbol","for","t0","CreatedComponent","RouterIconButton","ListItemButton","createLink","React","ListItemButtonProps","LinkComponent","Component","forwardRef","HTMLAnchorElement","ButtonComponent","props","reference","$","_c","$i","Symbol","for","t0","CreatedComponent","RouterListItemButton"],"sources":["../src/components/router/RouterIconButton.tsx","../src/components/router/RouterListItemButton.tsx"],"sourcesContent":["import { IconButton } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { IconButtonProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, IconButtonProps<\"a\">>(\n function IconButtonComponent(props, reference) {\n return <IconButton ref={reference} component=\"a\" {...props} />;\n },\n);\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterIconButton: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};\n","import { ListItemButton } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { ListItemButtonProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, ListItemButtonProps<\"a\">>(\n function ButtonComponent(props, reference) {\n return <ListItemButton ref={reference} component=\"a\" {...props} />;\n },\n);\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterListItemButton: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};\n"],"mappings":";;;;;;AAYA,MAAMiB,qBAAmBhB,WANPC,MAAMI,WACtB,SAAAE,oBAAAC,OAAAC,WAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,OAAAF,SAAAE,EAAA,OAAAD,WAAA;EACSM,KAAA,oBAAC,YAAD;GAAiBN,KAAAA;GAAqB,WAAA;GAAG,GAAKD;EAAK,CAAA;EAAIE,EAAA,KAAAF;EAAAE,EAAA,KAAAD;EAAAC,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAAvDK;AAAuD,CAI9BX,CAAS;AAE7C,MAAaa,oBAAoDT,UAAA;CAAA,MAAAE,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,OAAAF,OAAA;EACxDO,KAAA,oBAAC,oBAAD,EAAiB,GAAKP,MAAK,CAAA;EAAIE,EAAA,KAAAF;EAAAE,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAA/BK;AAA+B;;;ACHxC,MAAMoB,mBAAmBhB,WANPC,MAAMI,WACtB,SAAAE,gBAAAC,OAAAC,WAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,OAAAF,SAAAE,EAAA,OAAAD,WAAA;EACSM,KAAA,oBAAC,gBAAD;GAAqBN,KAAAA;GAAqB,WAAA;GAAG,GAAKD;EAAK,CAAA;EAAIE,EAAA,KAAAF;EAAAE,EAAA,KAAAD;EAAAC,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAA3DK;AAA2D,CAIlCX,CAAS;AAE7C,MAAaa,wBAAwDT,UAAA;CAAA,MAAAE,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,OAAAF,OAAA;EAC5DO,KAAA,oBAAC,kBAAD,EAAiB,GAAKP,MAAK,CAAA;EAAIE,EAAA,KAAAF;EAAAE,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAA/BK;AAA+B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/models/User.d.ts
|
|
2
|
+
type User = {
|
|
3
|
+
name: string;
|
|
4
|
+
email: string;
|
|
5
|
+
department: string;
|
|
6
|
+
employeeId: string;
|
|
7
|
+
companyName?: string;
|
|
8
|
+
groups: Array<string>;
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { User as t };
|
|
12
|
+
//# sourceMappingURL=User-1gKoYJvW.d.mts.map
|
package/dist/auth.d.mts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { t as getAccessToken } from "./user-Cen43mlr.mjs";
|
|
2
|
+
import { scopes } from "virtual:wcz-layout";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/auth/authHandlers.d.ts
|
|
5
|
+
/** GET /auth/login — start the flow: stash PKCE + state, redirect to Entra. */
|
|
6
|
+
declare function handleLogin(): Promise<Response>;
|
|
7
|
+
/** GET /auth/callback — finish the flow: validate state, exchange code, set session. */
|
|
8
|
+
declare function handleCallback(): Promise<Response>;
|
|
9
|
+
/** GET /auth/logout — clear the local session and sign out of the Entra session. */
|
|
10
|
+
declare function handleLogout(): Promise<Response>;
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/lib/auth/msalServer.d.ts
|
|
13
|
+
/**
|
|
14
|
+
* On-Behalf-Of flow: Exchange user token for a token to call downstream API
|
|
15
|
+
* Use when: Server needs to call microservice on behalf of the logged-in user
|
|
16
|
+
*/
|
|
17
|
+
declare const getTokenOnBehalfOf: (userToken: string, scopeKey: keyof typeof scopes) => Promise<string>;
|
|
18
|
+
/**
|
|
19
|
+
* Client Credentials flow: Get app-only token (no user context)
|
|
20
|
+
* Use when: Background jobs, scheduled tasks, service-to-service calls
|
|
21
|
+
*/
|
|
22
|
+
declare const getAppToken: (scopeKey: keyof typeof scopes) => Promise<string>;
|
|
23
|
+
//#endregion
|
|
24
|
+
export { getAccessToken, getAppToken, getTokenOnBehalfOf, handleCallback, handleLogin, handleLogout };
|
|
25
|
+
//# sourceMappingURL=auth.d.mts.map
|
package/dist/auth.mjs
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { f as getAppSession, i as buildUser, l as getAccessToken } from "./utils-2XiozDlV.mjs";
|
|
2
|
+
import { n as getTokenOnBehalfOf, t as getAppToken } from "./msalServer-CkNOOjjH.mjs";
|
|
3
|
+
//#region src/lib/auth/authHandlers.ts
|
|
4
|
+
/**
|
|
5
|
+
* Server-side handlers for the OAuth2 Authorization Code (PKCE) flow. They are
|
|
6
|
+
* mounted by thin route files (`/auth/login`, `/auth/callback`, `/auth/logout`)
|
|
7
|
+
* in the consuming app and drive the full server-side Entra login — the browser
|
|
8
|
+
* never loads an auth library.
|
|
9
|
+
*/
|
|
10
|
+
const redirect = (location) => new Response(null, {
|
|
11
|
+
status: 302,
|
|
12
|
+
headers: { Location: location }
|
|
13
|
+
});
|
|
14
|
+
/** The OAuth redirect URI, derived from the request origin. */
|
|
15
|
+
const resolveRedirectUri = (origin) => `${origin}/auth/callback`;
|
|
16
|
+
/** Only same-origin paths are allowed, so `returnTo` cannot become an open redirect. */
|
|
17
|
+
const sanitizeReturnTo = (value) => value?.startsWith("/") && !value.startsWith("//") ? value : "/";
|
|
18
|
+
/** GET /auth/login — start the flow: stash PKCE + state, redirect to Entra. */
|
|
19
|
+
async function handleLogin() {
|
|
20
|
+
const { getRequestUrl } = await import("@tanstack/react-start/server");
|
|
21
|
+
const url = getRequestUrl();
|
|
22
|
+
const returnTo = sanitizeReturnTo(url.searchParams.get("returnTo"));
|
|
23
|
+
const { cryptoProvider, buildAuthCodeUrl } = await import("./entra-s4ZjHq5o.mjs");
|
|
24
|
+
const { verifier, challenge } = await cryptoProvider.generatePkceCodes();
|
|
25
|
+
const state = cryptoProvider.createNewGuid();
|
|
26
|
+
await (await getAppSession()).update({
|
|
27
|
+
pkceVerifier: verifier,
|
|
28
|
+
state,
|
|
29
|
+
returnTo
|
|
30
|
+
});
|
|
31
|
+
const authUrl = await buildAuthCodeUrl({
|
|
32
|
+
redirectUri: resolveRedirectUri(url.origin),
|
|
33
|
+
state,
|
|
34
|
+
codeChallenge: challenge
|
|
35
|
+
});
|
|
36
|
+
return redirect(authUrl);
|
|
37
|
+
}
|
|
38
|
+
/** GET /auth/callback — finish the flow: validate state, exchange code, set session. */
|
|
39
|
+
async function handleCallback() {
|
|
40
|
+
const { getRequestUrl } = await import("@tanstack/react-start/server");
|
|
41
|
+
const url = getRequestUrl();
|
|
42
|
+
const session = await getAppSession();
|
|
43
|
+
const { pkceVerifier, state: expectedState, returnTo = "/" } = session.data;
|
|
44
|
+
const error = url.searchParams.get("error");
|
|
45
|
+
if (error) {
|
|
46
|
+
await session.clear();
|
|
47
|
+
return redirect(`/?auth_error=${encodeURIComponent(error)}`);
|
|
48
|
+
}
|
|
49
|
+
const code = url.searchParams.get("code");
|
|
50
|
+
const state = url.searchParams.get("state");
|
|
51
|
+
if (!code || !state || !pkceVerifier || state !== expectedState) {
|
|
52
|
+
await session.clear();
|
|
53
|
+
return redirect("/?auth_error=invalid_state");
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
const { exchangeCodeForSession } = await import("./entra-s4ZjHq5o.mjs");
|
|
57
|
+
const { refreshToken, claims } = await exchangeCodeForSession({
|
|
58
|
+
code,
|
|
59
|
+
redirectUri: resolveRedirectUri(url.origin),
|
|
60
|
+
codeVerifier: pkceVerifier
|
|
61
|
+
});
|
|
62
|
+
await session.update({
|
|
63
|
+
refreshToken,
|
|
64
|
+
user: buildUser(claims),
|
|
65
|
+
pkceVerifier: void 0,
|
|
66
|
+
state: void 0,
|
|
67
|
+
returnTo: void 0
|
|
68
|
+
});
|
|
69
|
+
return redirect(returnTo);
|
|
70
|
+
} catch (error) {
|
|
71
|
+
const message = error instanceof Error ? error.message : "token_exchange_failed";
|
|
72
|
+
console.error("[auth] code exchange failed:", message);
|
|
73
|
+
await session.clear();
|
|
74
|
+
return redirect(`/?auth_error=${encodeURIComponent(message)}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** GET /auth/logout — clear the local session and sign out of the Entra session. */
|
|
78
|
+
async function handleLogout() {
|
|
79
|
+
const { getRequestUrl } = await import("@tanstack/react-start/server");
|
|
80
|
+
const url = getRequestUrl();
|
|
81
|
+
await (await getAppSession()).clear();
|
|
82
|
+
const { buildLogoutUrl } = await import("./entra-s4ZjHq5o.mjs");
|
|
83
|
+
return redirect(buildLogoutUrl(`${url.origin}/`));
|
|
84
|
+
}
|
|
85
|
+
//#endregion
|
|
86
|
+
export { getAccessToken, getAppToken, getTokenOnBehalfOf, handleCallback, handleLogin, handleLogout };
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=auth.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.mjs","names":["buildUser","getAppSession","redirect","location","Response","status","headers","Location","resolveRedirectUri","origin","sanitizeReturnTo","value","startsWith","handleLogin","Promise","getRequestUrl","url","returnTo","searchParams","get","cryptoProvider","buildAuthCodeUrl","verifier","challenge","generatePkceCodes","state","createNewGuid","session","update","pkceVerifier","authUrl","redirectUri","codeChallenge","handleCallback","expectedState","data","error","clear","encodeURIComponent","code","exchangeCodeForSession","refreshToken","claims","codeVerifier","user","undefined","message","Error","console","handleLogout","buildLogoutUrl"],"sources":["../src/lib/auth/authHandlers.ts"],"sourcesContent":["import { buildUser } from \"~/lib/utils\";\nimport { getAppSession } from \"./session\";\n\n// These handlers run only as server route handlers, so their server-only deps are\n// imported dynamically to keep them out of the client bundle: `entra` pulls in\n// `@azure/msal-node`, and `@tanstack/react-start/server` pulls in the SSR renderer\n// (`react-dom/server`).\n\n/**\n * Server-side handlers for the OAuth2 Authorization Code (PKCE) flow. They are\n * mounted by thin route files (`/auth/login`, `/auth/callback`, `/auth/logout`)\n * in the consuming app and drive the full server-side Entra login — the browser\n * never loads an auth library.\n */\n\nconst redirect = (location: string): Response =>\n new Response(null, { status: 302, headers: { Location: location } });\n\n/** The OAuth redirect URI, derived from the request origin. */\nconst resolveRedirectUri = (origin: string): string => `${origin}/auth/callback`;\n\n/** Only same-origin paths are allowed, so `returnTo` cannot become an open redirect. */\nconst sanitizeReturnTo = (value: string | null): string =>\n value?.startsWith(\"/\") && !value.startsWith(\"//\") ? value : \"/\";\n\n/** GET /auth/login — start the flow: stash PKCE + state, redirect to Entra. */\nexport async function handleLogin(): Promise<Response> {\n const { getRequestUrl } = await import(\"@tanstack/react-start/server\");\n const url = getRequestUrl();\n const returnTo = sanitizeReturnTo(url.searchParams.get(\"returnTo\"));\n\n const { cryptoProvider, buildAuthCodeUrl } = await import(\"./entra\");\n const { verifier, challenge } = await cryptoProvider.generatePkceCodes();\n const state = cryptoProvider.createNewGuid();\n\n const session = await getAppSession();\n await session.update({ pkceVerifier: verifier, state, returnTo });\n\n const authUrl = await buildAuthCodeUrl({\n redirectUri: resolveRedirectUri(url.origin),\n state,\n codeChallenge: challenge,\n });\n return redirect(authUrl);\n}\n\n/** GET /auth/callback — finish the flow: validate state, exchange code, set session. */\nexport async function handleCallback(): Promise<Response> {\n const { getRequestUrl } = await import(\"@tanstack/react-start/server\");\n const url = getRequestUrl();\n const session = await getAppSession();\n const { pkceVerifier, state: expectedState, returnTo = \"/\" } = session.data;\n\n const error = url.searchParams.get(\"error\");\n if (error) {\n await session.clear();\n return redirect(`/?auth_error=${encodeURIComponent(error)}`);\n }\n\n const code = url.searchParams.get(\"code\");\n const state = url.searchParams.get(\"state\");\n if (!code || !state || !pkceVerifier || state !== expectedState) {\n await session.clear();\n return redirect(\"/?auth_error=invalid_state\");\n }\n\n try {\n const { exchangeCodeForSession } = await import(\"./entra\");\n const { refreshToken, claims } = await exchangeCodeForSession({\n code,\n redirectUri: resolveRedirectUri(url.origin),\n codeVerifier: pkceVerifier,\n });\n\n // Persist the refresh token + trimmed user; drop the spent transient values.\n await session.update({\n refreshToken,\n user: buildUser(claims),\n pkceVerifier: undefined,\n state: undefined,\n returnTo: undefined,\n });\n\n return redirect(returnTo);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"token_exchange_failed\";\n console.error(\"[auth] code exchange failed:\", message);\n await session.clear();\n return redirect(`/?auth_error=${encodeURIComponent(message)}`);\n }\n}\n\n/** GET /auth/logout — clear the local session and sign out of the Entra session. */\nexport async function handleLogout(): Promise<Response> {\n const { getRequestUrl } = await import(\"@tanstack/react-start/server\");\n const url = getRequestUrl();\n const session = await getAppSession();\n await session.clear();\n const { buildLogoutUrl } = await import(\"./entra\");\n return redirect(buildLogoutUrl(`${url.origin}/`));\n}\n"],"mappings":";;;;;;;;;AAeA,MAAME,YAAYC,aAChB,IAAIC,SAAS,MAAM;CAAEC,QAAQ;CAAKC,SAAS,EAAEC,UAAUJ,SAAS;AAAE,CAAC;;AAGrE,MAAMK,sBAAsBC,WAA2B,GAAGA,OAAM;;AAGhE,MAAMC,oBAAoBC,UACxBA,OAAOC,WAAW,GAAG,KAAK,CAACD,MAAMC,WAAW,IAAI,IAAID,QAAQ;;AAG9D,eAAsBE,cAAiC;CACrD,MAAM,EAAEE,kBAAkB,MAAM,OAAO;CACvC,MAAMC,MAAMD,cAAc;CAC1B,MAAME,WAAWP,iBAAiBM,IAAIE,aAAaC,IAAI,UAAU,CAAC;CAElE,MAAM,EAAEC,gBAAgBC,qBAAqB,MAAM,OAAO;CAC1D,MAAM,EAAEC,UAAUC,cAAc,MAAMH,eAAeI,kBAAkB;CACvE,MAAMC,QAAQL,eAAeM,cAAc;CAG3C,OAAMC,MADgB1B,cAAc,EAAA,CACtB2B,OAAO;EAAEC,cAAcP;EAAUG;EAAOR;CAAS,CAAC;CAEhE,MAAMa,UAAU,MAAMT,iBAAiB;EACrCU,aAAavB,mBAAmBQ,IAAIP,MAAM;EAC1CgB;EACAO,eAAeT;CACjB,CAAC;CACD,OAAOrB,SAAS4B,OAAO;AACzB;;AAGA,eAAsBG,iBAAoC;CACxD,MAAM,EAAElB,kBAAkB,MAAM,OAAO;CACvC,MAAMC,MAAMD,cAAc;CAC1B,MAAMY,UAAU,MAAM1B,cAAc;CACpC,MAAM,EAAE4B,cAAcJ,OAAOS,eAAejB,WAAW,QAAQU,QAAQQ;CAEvE,MAAMC,QAAQpB,IAAIE,aAAaC,IAAI,OAAO;CAC1C,IAAIiB,OAAO;EACT,MAAMT,QAAQU,MAAM;EACpB,OAAOnC,SAAS,gBAAgBoC,mBAAmBF,KAAK,GAAG;CAC7D;CAEA,MAAMG,OAAOvB,IAAIE,aAAaC,IAAI,MAAM;CACxC,MAAMM,QAAQT,IAAIE,aAAaC,IAAI,OAAO;CAC1C,IAAI,CAACoB,QAAQ,CAACd,SAAS,CAACI,gBAAgBJ,UAAUS,eAAe;EAC/D,MAAMP,QAAQU,MAAM;EACpB,OAAOnC,SAAS,4BAA4B;CAC9C;CAEA,IAAI;EACF,MAAM,EAAEsC,2BAA2B,MAAM,OAAO;EAChD,MAAM,EAAEC,cAAcC,WAAW,MAAMF,uBAAuB;GAC5DD;GACAR,aAAavB,mBAAmBQ,IAAIP,MAAM;GAC1CkC,cAAcd;EAChB,CAAC;EAGD,MAAMF,QAAQC,OAAO;GACnBa;GACAG,MAAM5C,UAAU0C,MAAM;GACtBb,cAAcgB,KAAAA;GACdpB,OAAOoB,KAAAA;GACP5B,UAAU4B,KAAAA;EACZ,CAAC;EAED,OAAO3C,SAASe,QAAQ;CAC1B,SAASmB,OAAO;EACd,MAAMU,UAAUV,iBAAiBW,QAAQX,MAAMU,UAAU;EACzDE,QAAQZ,MAAM,gCAAgCU,OAAO;EACrD,MAAMnB,QAAQU,MAAM;EACpB,OAAOnC,SAAS,gBAAgBoC,mBAAmBQ,OAAO,GAAG;CAC/D;AACF;;AAGA,eAAsBG,eAAkC;CACtD,MAAM,EAAElC,kBAAkB,MAAM,OAAO;CACvC,MAAMC,MAAMD,cAAc;CAE1B,OAAMY,MADgB1B,cAAc,EAAA,CACtBoC,MAAM;CACpB,MAAM,EAAEa,mBAAmB,MAAM,OAAO;CACxC,OAAOhD,SAASgD,eAAe,GAAGlC,IAAIP,OAAM,EAAG,CAAC;AAClD"}
|