@striae-org/striae 4.1.0 → 4.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +8 -0
- package/LICENSE +1 -1
- package/app/components/actions/case-export/core-export.ts +14 -8
- package/app/components/actions/case-export/data-processing.ts +1 -0
- package/app/components/actions/case-export/download-handlers.ts +7 -0
- package/app/components/actions/case-export/metadata-helpers.ts +2 -1
- package/app/components/actions/case-import/confirmation-import.ts +12 -2
- package/app/components/actions/case-import/orchestrator.ts +78 -32
- package/app/components/actions/case-import/storage-operations.ts +97 -8
- package/app/components/actions/case-import/zip-processing.ts +159 -86
- package/app/components/actions/case-manage.ts +463 -8
- package/app/components/actions/confirm-export.ts +9 -2
- package/app/components/actions/image-manage.ts +77 -44
- package/app/components/audit/user-audit-viewer.tsx +19 -8
- package/app/components/audit/user-audit.module.css +21 -0
- package/app/components/audit/viewer/audit-entries-list.tsx +12 -2
- package/app/components/audit/viewer/audit-filters-panel.tsx +1 -0
- package/app/components/audit/viewer/audit-viewer-utils.ts +2 -0
- package/app/components/audit/viewer/use-audit-viewer-data.ts +24 -1
- package/app/components/audit/viewer/use-audit-viewer-export.ts +1 -1
- package/app/components/canvas/box-annotations/box-annotations.module.css +22 -18
- package/app/components/canvas/box-annotations/box-annotations.tsx +15 -0
- package/app/components/canvas/canvas.module.css +64 -54
- package/app/components/canvas/canvas.tsx +14 -16
- package/app/components/canvas/confirmation/confirmation.module.css +1 -0
- package/app/components/canvas/confirmation/confirmation.tsx +12 -14
- package/app/components/colors/colors.module.css +4 -3
- package/app/components/navbar/case-modals/archive-case-modal.module.css +110 -0
- package/app/components/navbar/case-modals/archive-case-modal.tsx +129 -0
- package/app/components/navbar/case-modals/open-case-modal.module.css +81 -0
- package/app/components/navbar/case-modals/open-case-modal.tsx +120 -0
- package/app/components/navbar/case-modals/rename-case-modal.module.css +81 -0
- package/app/components/navbar/case-modals/rename-case-modal.tsx +107 -0
- package/app/components/navbar/navbar.module.css +447 -0
- package/app/components/navbar/navbar.tsx +402 -0
- package/app/components/public-signing-key-modal/public-signing-key-modal.module.css +1 -0
- package/app/components/public-signing-key-modal/public-signing-key-modal.tsx +15 -16
- package/app/components/sidebar/case-export/case-export.module.css +1 -0
- package/app/components/sidebar/case-export/case-export.tsx +8 -46
- package/app/components/sidebar/case-import/case-import.module.css +23 -0
- package/app/components/sidebar/case-import/case-import.tsx +64 -16
- package/app/components/sidebar/case-import/components/CasePreviewSection.tsx +20 -1
- package/app/components/sidebar/case-import/components/ConfirmationDialog.tsx +15 -0
- package/app/components/sidebar/cases/case-sidebar.tsx +68 -588
- package/app/components/sidebar/cases/cases-modal.module.css +1 -0
- package/app/components/sidebar/cases/cases-modal.tsx +82 -43
- package/app/components/sidebar/cases/cases.module.css +82 -21
- package/app/components/sidebar/files/files-modal.module.css +1 -0
- package/app/components/sidebar/files/files-modal.tsx +49 -52
- package/app/components/sidebar/notes/addl-notes-modal.tsx +82 -0
- package/app/components/sidebar/notes/{notes-sidebar.tsx → notes-editor-form.tsx} +187 -138
- package/app/components/sidebar/notes/notes-editor-modal.module.css +49 -0
- package/app/components/sidebar/notes/notes-editor-modal.tsx +64 -0
- package/app/components/sidebar/notes/notes.module.css +170 -1
- package/app/components/sidebar/sidebar-container.tsx +16 -28
- package/app/components/sidebar/sidebar.module.css +5 -69
- package/app/components/sidebar/sidebar.tsx +27 -125
- package/app/components/sidebar/upload/image-upload-zone.module.css +13 -13
- package/app/components/user/inactivity-warning.module.css +1 -0
- package/app/components/user/inactivity-warning.tsx +15 -2
- package/app/components/user/manage-profile.tsx +23 -10
- package/app/{tailwind.css → global.css} +1 -3
- package/app/hooks/useOverlayDismiss.ts +54 -4
- package/app/root.tsx +1 -1
- package/app/routes/auth/login.tsx +785 -774
- package/app/routes/striae/striae.module.css +10 -3
- package/app/routes/striae/striae.tsx +475 -30
- package/app/services/audit/audit.service.ts +173 -27
- package/app/services/audit/builders/audit-event-builders-case-file.ts +43 -0
- package/app/services/audit/builders/audit-event-builders-workflow.ts +2 -0
- package/app/services/audit/builders/index.ts +1 -0
- package/app/types/audit.ts +4 -1
- package/app/types/case.ts +29 -0
- package/app/types/import.ts +3 -0
- package/app/utils/data/confirmation-summary/summary-core.ts +279 -0
- package/app/utils/data/data-operations.ts +17 -861
- package/app/utils/data/index.ts +11 -1
- package/app/utils/data/operations/batch-operations.ts +113 -0
- package/app/utils/data/operations/case-operations.ts +168 -0
- package/app/utils/data/operations/confirmation-summary-operations.ts +301 -0
- package/app/utils/data/operations/file-annotation-operations.ts +196 -0
- package/app/utils/data/operations/index.ts +7 -0
- package/app/utils/data/operations/signing-operations.ts +225 -0
- package/app/utils/data/operations/types.ts +42 -0
- package/app/utils/data/operations/validation-operations.ts +48 -0
- package/app/utils/data/permissions.ts +16 -1
- package/app/utils/forensics/audit-export-signature.ts +5 -1
- package/app/utils/forensics/confirmation-signature.ts +3 -0
- package/app/utils/forensics/export-verification.ts +426 -22
- package/functions/api/_shared/firebase-auth.ts +2 -7
- package/functions/api/image/[[path]].ts +20 -23
- package/functions/api/pdf/[[path]].ts +27 -8
- package/package.json +7 -12
- package/scripts/deploy-primershear-emails.sh +2 -1
- package/worker-configuration.d.ts +3 -3
- package/workers/audit-worker/package.json +1 -1
- package/workers/audit-worker/worker-configuration.d.ts +7448 -11323
- package/workers/audit-worker/wrangler.jsonc.example +1 -1
- package/workers/data-worker/package.json +1 -1
- package/workers/data-worker/worker-configuration.d.ts +7448 -11323
- package/workers/data-worker/wrangler.jsonc.example +1 -1
- package/workers/image-worker/package.json +1 -1
- package/workers/image-worker/src/image-worker.example.ts +16 -5
- package/workers/image-worker/worker-configuration.d.ts +7447 -11322
- package/workers/image-worker/wrangler.jsonc.example +1 -1
- package/workers/keys-worker/package.json +1 -1
- package/workers/keys-worker/worker-configuration.d.ts +7447 -11322
- package/workers/keys-worker/wrangler.jsonc.example +1 -1
- package/workers/pdf-worker/package.json +1 -1
- package/workers/pdf-worker/src/formats/format-striae.ts +9 -14
- package/workers/pdf-worker/src/pdf-worker.example.ts +37 -58
- package/workers/pdf-worker/src/report-types.ts +3 -3
- package/workers/pdf-worker/worker-configuration.d.ts +7448 -11323
- package/workers/pdf-worker/wrangler.jsonc.example +1 -1
- package/workers/user-worker/package.json +1 -1
- package/workers/user-worker/src/user-worker.example.ts +17 -0
- package/workers/user-worker/worker-configuration.d.ts +7448 -11323
- package/workers/user-worker/wrangler.jsonc.example +1 -1
- package/wrangler.toml.example +1 -1
- package/NOTICE +0 -13
- package/app/components/sidebar/notes/notes-modal.tsx +0 -53
- package/postcss.config.js +0 -6
- package/public/.well-known/keybase.txt +0 -56
- package/tailwind.config.ts +0 -22
package/wrangler.toml.example
CHANGED
package/NOTICE
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
NOTICE
|
|
2
|
-
|
|
3
|
-
Striae – A Firearms Examiner’s Comparison Companion
|
|
4
|
-
|
|
5
|
-
Striae © 2025. All rights reserved.
|
|
6
|
-
|
|
7
|
-
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License in the repository’s LICENSE file.
|
|
8
|
-
|
|
9
|
-
Attributions for bundled components:
|
|
10
|
-
|
|
11
|
-
Portions of this product may include open-source software licensed under their respective licenses, including but not limited to: Remix, Cloudflare Workers, Firebase, Tailwind CSS, Vite, and other npm packages. License texts for third-party components are provided in their respective source files or in node_modules as applicable.
|
|
12
|
-
|
|
13
|
-
No trademark rights are granted for “Striae” or any associated names or logos.
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { useState } from 'react';
|
|
2
|
-
import { useOverlayDismiss } from '~/hooks/useOverlayDismiss';
|
|
3
|
-
import styles from './notes.module.css';
|
|
4
|
-
|
|
5
|
-
interface NotesModalProps {
|
|
6
|
-
isOpen: boolean;
|
|
7
|
-
onClose: () => void;
|
|
8
|
-
notes: string;
|
|
9
|
-
onSave: (notes: string) => void;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const NotesModal = ({ isOpen, onClose, notes, onSave }: NotesModalProps) => {
|
|
13
|
-
const [tempNotes, setTempNotes] = useState(notes);
|
|
14
|
-
const {
|
|
15
|
-
handleOverlayMouseDown,
|
|
16
|
-
handleOverlayKeyDown
|
|
17
|
-
} = useOverlayDismiss({
|
|
18
|
-
isOpen,
|
|
19
|
-
onClose
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
if (!isOpen) return null;
|
|
23
|
-
|
|
24
|
-
const handleSave = () => {
|
|
25
|
-
onSave(tempNotes);
|
|
26
|
-
onClose();
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
return (
|
|
30
|
-
<div
|
|
31
|
-
className={styles.modalOverlay}
|
|
32
|
-
onMouseDown={handleOverlayMouseDown}
|
|
33
|
-
onKeyDown={handleOverlayKeyDown}
|
|
34
|
-
role="button"
|
|
35
|
-
tabIndex={0}
|
|
36
|
-
aria-label="Close notes dialog"
|
|
37
|
-
>
|
|
38
|
-
<div className={styles.modal}>
|
|
39
|
-
<h5 className={styles.modalTitle}>Additional Notes</h5>
|
|
40
|
-
<textarea
|
|
41
|
-
value={tempNotes}
|
|
42
|
-
onChange={(e) => setTempNotes(e.target.value)}
|
|
43
|
-
className={styles.modalTextarea}
|
|
44
|
-
placeholder="Enter additional notes..."
|
|
45
|
-
/>
|
|
46
|
-
<div className={styles.modalButtons}>
|
|
47
|
-
<button onClick={handleSave} className={styles.saveButton}>Save</button>
|
|
48
|
-
<button onClick={onClose} className={styles.cancelButton}>Cancel</button>
|
|
49
|
-
</div>
|
|
50
|
-
</div>
|
|
51
|
-
</div>
|
|
52
|
-
);
|
|
53
|
-
};
|
package/postcss.config.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
==================================================================
|
|
2
|
-
https://keybase.io/stephenjlu
|
|
3
|
-
--------------------------------------------------------------------
|
|
4
|
-
|
|
5
|
-
I hereby claim:
|
|
6
|
-
|
|
7
|
-
* I am an admin of https://striae.app
|
|
8
|
-
* I am stephenjlu (https://keybase.io/stephenjlu) on keybase.
|
|
9
|
-
* I have a public key ASAKWYuLxhqhdePAuDulLzWWUusZk7mQi-1lMyjF8lsSbgo
|
|
10
|
-
|
|
11
|
-
To do so, I am signing this object:
|
|
12
|
-
|
|
13
|
-
{
|
|
14
|
-
"body": {
|
|
15
|
-
"key": {
|
|
16
|
-
"eldest_kid": "01200a598b8bc61aa175e3c0b83ba52f359652eb1993b9908bed653328c5f25b126e0a",
|
|
17
|
-
"host": "keybase.io",
|
|
18
|
-
"kid": "01200a598b8bc61aa175e3c0b83ba52f359652eb1993b9908bed653328c5f25b126e0a",
|
|
19
|
-
"uid": "ef43479353eb3b8be30c76fd0919c219",
|
|
20
|
-
"username": "stephenjlu"
|
|
21
|
-
},
|
|
22
|
-
"merkle_root": {
|
|
23
|
-
"ctime": 1773711528,
|
|
24
|
-
"hash": "9519e4709ef4b2ab7ea27c6633fd91e00989841d63cf53dd15500ccbec43152fdb37efd0cefcae90edcae7d84e2584620026334e98ef2feb36241c6aa38aca11",
|
|
25
|
-
"hash_meta": "a8ed0ac295c8a433c99b4606da6e569399fae2b052a5f8d053a2d735d110b265",
|
|
26
|
-
"seqno": 27471249
|
|
27
|
-
},
|
|
28
|
-
"service": {
|
|
29
|
-
"entropy": "e8nGKp/3/msv+czv8R/pIZOA",
|
|
30
|
-
"hostname": "striae.app",
|
|
31
|
-
"protocol": "https:"
|
|
32
|
-
},
|
|
33
|
-
"type": "web_service_binding",
|
|
34
|
-
"version": 2
|
|
35
|
-
},
|
|
36
|
-
"client": {
|
|
37
|
-
"name": "keybase.io go client",
|
|
38
|
-
"version": "6.6.0"
|
|
39
|
-
},
|
|
40
|
-
"ctime": 1773711539,
|
|
41
|
-
"expire_in": 504576000,
|
|
42
|
-
"prev": "20fa9a69a64b9008e2ba1d18171c4eda04d49fc68c2b419cf5156b78faa8b75b",
|
|
43
|
-
"seqno": 26,
|
|
44
|
-
"tag": "signature"
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
which yields the signature:
|
|
48
|
-
|
|
49
|
-
hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgClmLi8YaoXXjwLg7pS81llLrGZO5kIvtZTMoxfJbEm4Kp3BheWxvYWTESpcCGsQgIPqaaaZLkAjiuh0YFxxO2gTUn8aMK0Gc9RVrePqot1vEIOlO7j2uG/S+PR0TZqsul0pFPx7wKWbK+YYm6cWb9OQYAgHCo3NpZ8RAUVB1DF+DBdsDrp5BVL0eqUuueayhIrABHB63O9f9e03e8MJpZUAWdv8r7eLRcOoSf5p3I+CtsDgeyklUXy6oCKhzaWdfdHlwZSCkaGFzaIKkdHlwZQildmFsdWXEIH2d3PmZB6Yydgvkp783wyinfEsZBLRlgM2WXItXvkvTo3RhZ80CAqd2ZXJzaW9uAQ==
|
|
50
|
-
|
|
51
|
-
And finally, I am proving ownership of this host by posting or
|
|
52
|
-
appending to this document.
|
|
53
|
-
|
|
54
|
-
View my publicly-auditable identity here: https://keybase.io/stephenjlu
|
|
55
|
-
|
|
56
|
-
==================================================================
|
package/tailwind.config.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Config } from "tailwindcss";
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
content: ["./app/**/{**,.client,.server}/**/*.{js,jsx,ts,tsx}"],
|
|
5
|
-
theme: {
|
|
6
|
-
extend: {
|
|
7
|
-
fontFamily: {
|
|
8
|
-
sans: [
|
|
9
|
-
"Inter",
|
|
10
|
-
"ui-sans-serif",
|
|
11
|
-
"system-ui",
|
|
12
|
-
"sans-serif",
|
|
13
|
-
"Apple Color Emoji",
|
|
14
|
-
"Segoe UI Emoji",
|
|
15
|
-
"Segoe UI Symbol",
|
|
16
|
-
"Noto Color Emoji",
|
|
17
|
-
],
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
plugins: [],
|
|
22
|
-
} satisfies Config;
|