@striae-org/striae 4.0.2 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/app/components/actions/confirm-export.ts +4 -2
  2. package/app/components/actions/generate-pdf.ts +10 -2
  3. package/app/components/audit/user-audit-viewer.tsx +121 -940
  4. package/app/components/audit/user-audit.module.css +20 -0
  5. package/app/components/audit/viewer/audit-activity-summary.tsx +52 -0
  6. package/app/components/audit/viewer/audit-entries-list.tsx +200 -0
  7. package/app/components/audit/viewer/audit-filters-panel.tsx +306 -0
  8. package/app/components/audit/viewer/audit-user-info-card.tsx +44 -0
  9. package/app/components/audit/viewer/audit-viewer-header.tsx +55 -0
  10. package/app/components/audit/viewer/audit-viewer-utils.ts +121 -0
  11. package/app/components/audit/viewer/types.ts +1 -0
  12. package/app/components/audit/viewer/use-audit-viewer-data.ts +166 -0
  13. package/app/components/audit/viewer/use-audit-viewer-export.ts +176 -0
  14. package/app/components/audit/viewer/use-audit-viewer-filters.ts +141 -0
  15. package/app/components/auth/mfa-enrollment.module.css +13 -5
  16. package/app/components/auth/mfa-verification.module.css +13 -5
  17. package/app/components/canvas/canvas.tsx +3 -0
  18. package/app/components/canvas/confirmation/confirmation.tsx +13 -37
  19. package/app/components/public-signing-key-modal/public-signing-key-modal.module.css +1 -0
  20. package/app/components/public-signing-key-modal/public-signing-key-modal.tsx +8 -37
  21. package/app/components/sidebar/case-export/case-export.tsx +9 -34
  22. package/app/components/sidebar/case-import/case-import.module.css +2 -0
  23. package/app/components/sidebar/case-import/case-import.tsx +10 -34
  24. package/app/components/sidebar/cases/cases-modal.module.css +44 -9
  25. package/app/components/sidebar/cases/cases-modal.tsx +16 -14
  26. package/app/components/sidebar/files/files-modal.module.css +45 -10
  27. package/app/components/sidebar/files/files-modal.tsx +16 -16
  28. package/app/components/sidebar/notes/notes-modal.tsx +17 -15
  29. package/app/components/sidebar/notes/notes.module.css +2 -0
  30. package/app/components/sidebar/sidebar.module.css +2 -2
  31. package/app/components/toast/toast.module.css +2 -1
  32. package/app/components/toast/toast.tsx +16 -11
  33. package/app/components/user/delete-account.tsx +10 -31
  34. package/app/components/user/inactivity-warning.module.css +8 -6
  35. package/app/components/user/manage-profile.module.css +2 -0
  36. package/app/components/user/manage-profile.tsx +85 -30
  37. package/app/hooks/useOverlayDismiss.ts +68 -0
  38. package/app/routes/auth/login.example.tsx +786 -0
  39. package/app/routes/auth/login.module.example.css +523 -0
  40. package/app/routes/auth/login.tsx +1 -1
  41. package/app/routes/auth/passwordReset.module.css +23 -13
  42. package/app/routes/striae/striae.tsx +8 -1
  43. package/app/routes.ts +7 -0
  44. package/app/services/audit/audit-export-csv.ts +2 -0
  45. package/app/services/audit/audit.service.ts +29 -5
  46. package/app/services/audit/builders/audit-entry-builder.ts +2 -1
  47. package/app/services/audit/builders/audit-event-builders-user-security.ts +4 -2
  48. package/app/services/audit/builders/audit-event-builders-workflow.ts +6 -0
  49. package/app/types/audit.ts +2 -1
  50. package/app/types/user.ts +1 -0
  51. package/app/utils/data/permissions.ts +1 -0
  52. package/functions/api/pdf/[[path]].ts +32 -1
  53. package/load-context.ts +9 -0
  54. package/package.json +5 -1
  55. package/primershear.emails.example +6 -0
  56. package/scripts/deploy-config.sh +27 -0
  57. package/scripts/deploy-pages-secrets.sh +6 -0
  58. package/scripts/deploy-primershear-emails.sh +166 -0
  59. package/worker-configuration.d.ts +7493 -7491
  60. package/workers/audit-worker/wrangler.jsonc.example +1 -1
  61. package/workers/data-worker/wrangler.jsonc.example +1 -1
  62. package/workers/image-worker/wrangler.jsonc.example +1 -1
  63. package/workers/keys-worker/wrangler.jsonc.example +1 -1
  64. package/workers/pdf-worker/src/pdf-worker.example.ts +3 -0
  65. package/workers/pdf-worker/src/report-types.ts +3 -0
  66. package/workers/pdf-worker/wrangler.jsonc.example +1 -1
  67. package/workers/user-worker/src/user-worker.example.ts +6 -1
  68. package/workers/user-worker/wrangler.jsonc.example +1 -1
  69. package/wrangler.toml.example +1 -1
@@ -79,7 +79,8 @@ export async function storeConfirmation(
79
79
  fileSizeBytes: 0 // Not applicable for confirmation creation
80
80
  },
81
81
  originalImageId,
82
- originalImageFileName
82
+ originalImageFileName,
83
+ confirmationData.badgeId
83
84
  );
84
85
 
85
86
  auditService.endWorkflow();
@@ -103,7 +104,8 @@ export async function storeConfirmation(
103
104
  fileSizeBytes: 0
104
105
  },
105
106
  originalImageId || currentImageId, // Use originalImageId if available, fallback to currentImageId
106
- originalImageFileName
107
+ originalImageFileName,
108
+ confirmationData?.badgeId
107
109
  );
108
110
 
109
111
  auditService.endWorkflow();
@@ -9,6 +9,8 @@ interface GeneratePDFParams {
9
9
  selectedFilename: string | undefined;
10
10
  userCompany: string;
11
11
  userFirstName: string;
12
+ userLastName: string;
13
+ userBadgeId: string;
12
14
  currentCase: string;
13
15
  annotationData: AnnotationData | null;
14
16
  activeAnnotations: Set<string>;
@@ -25,6 +27,8 @@ export const generatePDF = async ({
25
27
  selectedFilename,
26
28
  userCompany,
27
29
  userFirstName,
30
+ userLastName,
31
+ userBadgeId,
28
32
  currentCase,
29
33
  annotationData,
30
34
  activeAnnotations,
@@ -62,15 +66,19 @@ export const generatePDF = async ({
62
66
  filename: selectedFilename,
63
67
  userCompany: userCompany,
64
68
  firstName: userFirstName,
69
+ userFirstName: userFirstName,
70
+ userLastName: userLastName,
71
+ userBadgeId: userBadgeId || undefined,
65
72
  caseNumber: currentCase,
66
73
  annotationData,
67
74
  activeAnnotations: Array.from(activeAnnotations), // Convert Set to Array
68
75
  currentDate, // Pass formatted current date
69
- notesUpdatedFormatted // Pass formatted notes updated date
76
+ notesUpdatedFormatted, // Pass formatted notes updated date
70
77
  };
71
78
 
79
+ // reportFormat is resolved server-side in the Pages Function based on the
80
+ // user's verified email address, so it is intentionally omitted here.
72
81
  const pdfRequest = {
73
- reportFormat: 'striae',
74
82
  data: pdfData,
75
83
  };
76
84