@striae-org/striae 6.1.5 → 6.1.6

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.
@@ -113,11 +113,11 @@ export const SidebarContainer: React.FC<SidebarContainerProps> = (props) => {
113
113
  Security Policy
114
114
  </Link>
115
115
  <Link
116
- to="https://community.striae.org"
116
+ to="https://account.striae.org/p/login/dRmcMZ3HC5vVfFZ4St4wM00"
117
117
  target="_blank"
118
118
  rel="noopener noreferrer"
119
119
  className={styles.footerModalLink}>
120
- Striae Community
120
+ Manage Membership
121
121
  </Link>
122
122
  </div>
123
123
 
@@ -729,7 +729,7 @@ export const Striae = ({ user }: StriaePage) => {
729
729
  supportLevel: notes.supportLevel || 'Inconclusive',
730
730
  includeConfirmation: notes.includeConfirmation ?? false,
731
731
  boxAnnotations: notes.boxAnnotations || [],
732
- updatedAt: notes.updatedAt || new Date().toISOString()
732
+ updatedAt: notes.updatedAt || ''
733
733
  });
734
734
  } else {
735
735
  setAnnotationData(null);
@@ -794,6 +794,7 @@ export const Striae = ({ user }: StriaePage) => {
794
794
  const now = new Date().toISOString();
795
795
  const dataWithEarliestTimestamp: AnnotationData = {
796
796
  ...data,
797
+ updatedAt: now,
797
798
  earliestAnnotationTimestamp: resolveEarliestAnnotationTimestamp(
798
799
  data.earliestAnnotationTimestamp,
799
800
  annotationData?.earliestAnnotationTimestamp,
package/package.json CHANGED
@@ -1,139 +1,138 @@
1
- {
2
- "name": "@striae-org/striae",
3
- "version": "6.1.5",
4
- "private": false,
5
- "description": "Striae is a specialized, cloud-native platform designed to streamline forensic firearms identification by providing an intuitive environment for digital comparison image annotation, authenticated confirmations, and automated report generation.",
6
- "license": "Apache-2.0",
7
- "homepage": "https://github.com/striae-org/striae/wiki",
8
- "repository": {
9
- "type": "git",
10
- "url": "https://github.com/striae-org/striae.git"
11
- },
12
- "funding": {
13
- "type": "github",
14
- "url": "https://github.com/sponsors/striae-org"
15
- },
16
- "bugs": {
17
- "url": "https://github.com/striae-org/striae/issues"
18
- },
19
- "keywords": [
20
- "forensics",
21
- "firearms",
22
- "annotation",
23
- "react",
24
- "cloudflare-workers",
25
- "authenticated",
26
- "confirmations",
27
- "chain-of-custody",
28
- "audit-trail"
29
- ],
30
- "publishConfig": {
31
- "access": "public"
32
- },
33
- "files": [
34
- "app/",
35
- "!app/config",
36
- "react-router.config.ts",
37
- "load-context.ts",
38
- "scripts/",
39
- "functions/",
40
- "public/",
41
- "workers/",
42
- "shared/",
43
- "!workers/*/.wrangler",
44
- "!workers/*/package-lock.json",
45
- "!workers/*/worker-configuration.d.ts",
46
- "!workers/*/wrangler.jsonc",
47
- "!workers/*/src/**/*worker.ts",
48
- "!workers/pdf-worker/src/assets/**/*",
49
- "workers/pdf-worker/src/assets/generated-assets.example.ts",
50
- "!workers/pdf-worker/src/formats/**/*",
51
- "workers/pdf-worker/src/formats/format-striae.ts",
52
- ".env.example",
53
- "firebase.json",
54
- "tsconfig.json",
55
- "vite.config.ts",
56
- "/worker-configuration.d.ts",
57
- "wrangler.toml.example",
58
- "LICENSE"
59
- ],
60
- "sideEffects": false,
61
- "type": "module",
62
- "scripts": {
63
- "deploy:all": "bash ./scripts/deploy-all.sh",
64
- "emulators": "firebase emulators:start --only auth",
65
- "dev": "node ./scripts/dev.cjs && react-router dev",
66
- "build": "node ./scripts/dev.cjs && react-router build",
67
- "clean": "rm -rf build node_modules/.cache .cache",
68
- "clean:build": "npm run clean && npm run build",
69
- "deploy": "npm run build && wrangler pages deploy",
70
- "publish:npm": "npm publish --access public --registry=https://registry.npmjs.org --@striae-org:registry=https://registry.npmjs.org",
71
- "publish:npm:dry-run": "npm publish --dry-run --access public --registry=https://registry.npmjs.org --@striae-org:registry=https://registry.npmjs.org",
72
- "publish:github": "npm publish --registry=https://npm.pkg.github.com --@striae-org:registry=https://npm.pkg.github.com",
73
- "publish:github:dry-run": "npm publish --dry-run --registry=https://npm.pkg.github.com --@striae-org:registry=https://npm.pkg.github.com",
74
- "publish:all": "npm run publish:npm && npm run publish:github",
75
- "publish:all:dry-run": "npm run publish:npm:dry-run && npm run publish:github:dry-run",
76
- "lint": "node ./scripts/run-eslint.cjs",
77
- "start": "node ./scripts/dev.cjs && wrangler pages dev",
78
- "typecheck": "react-router typegen && tsc",
79
- "typegen": "wrangler types",
80
- "preview": "npm run build && wrangler pages dev",
81
- "cf-typegen": "wrangler types",
82
- "enable-totp-mfa": "node ./scripts/enable-totp-mfa.mjs",
83
- "unenroll-totp-mfa": "node ./scripts/unenroll-totp-mfa.mjs",
84
- "update-versions": "node ./scripts/update-markdown-versions.cjs",
85
- "update-compatibility-dates": "node ./scripts/update-compatibility-dates.cjs",
86
- "deploy-config": "bash ./scripts/deploy-config.sh",
87
- "update-env": "bash ./scripts/deploy-config.sh --update-env",
88
- "install-workers": "bash ./scripts/install-workers.sh",
89
- "deploy-workers": "npm run deploy-workers:audit && npm run deploy-workers:data && npm run deploy-workers:image && npm run deploy-workers:pdf && npm run deploy-workers:user",
90
- "deploy-workers:secrets": "bash ./scripts/deploy-worker-secrets.sh",
91
- "deploy-pages:secrets": "bash ./scripts/deploy-pages-secrets.sh",
92
- "deploy-pages": "bash ./scripts/deploy-pages.sh",
93
- "deploy-primershear": "bash ./scripts/deploy-primershear-emails.sh",
94
- "deploy-members": "bash ./scripts/deploy-members-emails.sh",
95
- "deploy-workers:audit": "cd workers/audit-worker && npm run deploy",
96
- "deploy-workers:data": "cd workers/data-worker && npm run deploy",
97
- "deploy-workers:image": "cd workers/image-worker && npm run deploy",
98
- "deploy-workers:pdf": "cd workers/pdf-worker && npm run deploy",
99
- "deploy-workers:user": "cd workers/user-worker && npm run deploy"
100
- },
101
- "dependencies": {
102
- "@react-router/cloudflare": "^7.14.1",
103
- "firebase": "^12.12.0",
104
- "isbot": "^5.1.39",
105
- "jszip": "^3.10.1",
106
- "qrcode": "^1.5.4",
107
- "react": "^19.2.5",
108
- "react-dom": "^19.2.5",
109
- "react-router": "^7.14.1"
110
- },
111
- "devDependencies": {
112
- "@react-router/dev": "^7.14.1",
113
- "@react-router/fs-routes": "^7.14.1",
114
- "@types/qrcode": "^1.5.6",
115
- "@types/react": "^19.2.14",
116
- "@types/react-dom": "^19.2.3",
117
- "@typescript-eslint/eslint-plugin": "^8.58.2",
118
- "@typescript-eslint/parser": "^8.58.2",
119
- "eslint": "^9.39.4",
120
- "eslint-import-resolver-typescript": "^4.4.4",
121
- "eslint-plugin-import": "^2.32.0",
122
- "eslint-plugin-jsx-a11y": "^6.10.2",
123
- "eslint-plugin-react": "^7.37.5",
124
- "eslint-plugin-react-hooks": "^7.1.1",
125
- "firebase-admin": "^13.8.0",
126
- "modern-normalize": "^3.0.1",
127
- "typescript": "^5.9.3",
128
- "vite": "^7.3.2",
129
- "vite-tsconfig-paths": "^6.1.1",
130
- "wrangler": "^4.83.0"
131
- },
132
- "overrides": {
133
- "@tootallnate/once": "3.0.1"
134
- },
135
- "engines": {
136
- "node": ">=20.19.0"
137
- },
138
- "packageManager": "npm@11.12.0"
1
+ {
2
+ "name": "@striae-org/striae",
3
+ "version": "6.1.6",
4
+ "private": false,
5
+ "description": "Striae is a specialized, cloud-native platform designed to streamline forensic firearms identification by providing an intuitive environment for digital comparison image annotation, authenticated confirmations, and automated report generation.",
6
+ "license": "Apache-2.0",
7
+ "homepage": "https://github.com/striae-org/striae/wiki",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/striae-org/striae.git"
11
+ },
12
+ "funding": {
13
+ "type": "github",
14
+ "url": "https://github.com/sponsors/striae-org"
15
+ },
16
+ "bugs": {
17
+ "url": "https://github.com/striae-org/striae/issues"
18
+ },
19
+ "keywords": [
20
+ "forensics",
21
+ "firearms",
22
+ "annotation",
23
+ "react",
24
+ "cloudflare-workers",
25
+ "authenticated",
26
+ "confirmations",
27
+ "chain-of-custody",
28
+ "audit-trail"
29
+ ],
30
+ "publishConfig": {
31
+ "access": "public"
32
+ },
33
+ "files": [
34
+ "app/",
35
+ "!app/config",
36
+ "react-router.config.ts",
37
+ "load-context.ts",
38
+ "scripts/",
39
+ "functions/",
40
+ "public/",
41
+ "workers/",
42
+ "shared/",
43
+ "!workers/*/.wrangler",
44
+ "!workers/*/package-lock.json",
45
+ "!workers/*/worker-configuration.d.ts",
46
+ "!workers/*/wrangler.jsonc",
47
+ "!workers/*/src/**/*worker.ts",
48
+ "!workers/pdf-worker/src/assets/**/*",
49
+ "workers/pdf-worker/src/assets/generated-assets.example.ts",
50
+ "!workers/pdf-worker/src/formats/**/*",
51
+ "workers/pdf-worker/src/formats/format-striae.ts",
52
+ ".env.example",
53
+ "firebase.json",
54
+ "tsconfig.json",
55
+ "vite.config.ts",
56
+ "/worker-configuration.d.ts",
57
+ "wrangler.toml.example",
58
+ "LICENSE"
59
+ ],
60
+ "sideEffects": false,
61
+ "type": "module",
62
+ "scripts": {
63
+ "deploy:all": "bash ./scripts/deploy-all.sh",
64
+ "emulators": "firebase emulators:start --only auth",
65
+ "dev": "node ./scripts/dev.cjs && react-router dev",
66
+ "build": "node ./scripts/dev.cjs && react-router build",
67
+ "clean": "rm -rf build node_modules/.cache .cache",
68
+ "clean:build": "npm run clean && npm run build",
69
+ "deploy": "npm run build && wrangler pages deploy",
70
+ "publish:npm": "npm publish --access public --registry=https://registry.npmjs.org --@striae-org:registry=https://registry.npmjs.org",
71
+ "publish:npm:dry-run": "npm publish --dry-run --access public --registry=https://registry.npmjs.org --@striae-org:registry=https://registry.npmjs.org",
72
+ "publish:github": "npm publish --registry=https://npm.pkg.github.com --@striae-org:registry=https://npm.pkg.github.com",
73
+ "publish:github:dry-run": "npm publish --dry-run --registry=https://npm.pkg.github.com --@striae-org:registry=https://npm.pkg.github.com",
74
+ "publish:all": "npm run publish:npm && npm run publish:github",
75
+ "publish:all:dry-run": "npm run publish:npm:dry-run && npm run publish:github:dry-run",
76
+ "lint": "node ./scripts/run-eslint.cjs",
77
+ "start": "node ./scripts/dev.cjs && wrangler pages dev",
78
+ "typecheck": "react-router typegen && tsc",
79
+ "typegen": "wrangler types",
80
+ "preview": "npm run build && wrangler pages dev",
81
+ "cf-typegen": "wrangler types",
82
+ "enable-totp-mfa": "node ./scripts/enable-totp-mfa.mjs",
83
+ "unenroll-totp-mfa": "node ./scripts/unenroll-totp-mfa.mjs",
84
+ "update-versions": "node ./scripts/update-markdown-versions.cjs",
85
+ "update-compatibility-dates": "node ./scripts/update-compatibility-dates.cjs",
86
+ "deploy-config": "bash ./scripts/deploy-config.sh",
87
+ "update-env": "bash ./scripts/deploy-config.sh --update-env",
88
+ "install-workers": "bash ./scripts/install-workers.sh",
89
+ "deploy-workers": "npm run deploy-workers:audit && npm run deploy-workers:data && npm run deploy-workers:image && npm run deploy-workers:pdf && npm run deploy-workers:user",
90
+ "deploy-workers:secrets": "bash ./scripts/deploy-worker-secrets.sh",
91
+ "deploy-pages:secrets": "bash ./scripts/deploy-pages-secrets.sh",
92
+ "deploy-pages": "bash ./scripts/deploy-pages.sh",
93
+ "deploy-primershear": "bash ./scripts/deploy-primershear-emails.sh",
94
+ "deploy-members": "bash ./scripts/deploy-members-emails.sh",
95
+ "deploy-workers:audit": "cd workers/audit-worker && npm run deploy",
96
+ "deploy-workers:data": "cd workers/data-worker && npm run deploy",
97
+ "deploy-workers:image": "cd workers/image-worker && npm run deploy",
98
+ "deploy-workers:pdf": "cd workers/pdf-worker && npm run deploy",
99
+ "deploy-workers:user": "cd workers/user-worker && npm run deploy"
100
+ },
101
+ "dependencies": {
102
+ "@react-router/cloudflare": "^7.14.1",
103
+ "firebase": "^12.12.0",
104
+ "isbot": "^5.1.39",
105
+ "jszip": "^3.10.1",
106
+ "qrcode": "^1.5.4",
107
+ "react": "^19.2.5",
108
+ "react-dom": "^19.2.5",
109
+ "react-router": "^7.14.1"
110
+ },
111
+ "devDependencies": {
112
+ "@react-router/dev": "^7.14.1",
113
+ "@react-router/fs-routes": "^7.14.1",
114
+ "@types/qrcode": "^1.5.6",
115
+ "@types/react": "^19.2.14",
116
+ "@types/react-dom": "^19.2.3",
117
+ "@typescript-eslint/eslint-plugin": "^8.58.2",
118
+ "@typescript-eslint/parser": "^8.58.2",
119
+ "eslint": "^9.39.4",
120
+ "eslint-import-resolver-typescript": "^4.4.4",
121
+ "eslint-plugin-import": "^2.32.0",
122
+ "eslint-plugin-jsx-a11y": "^6.10.2",
123
+ "eslint-plugin-react": "^7.37.5",
124
+ "eslint-plugin-react-hooks": "^7.1.1",
125
+ "firebase-admin": "^13.8.0",
126
+ "modern-normalize": "^3.0.1",
127
+ "typescript": "^6.0.3",
128
+ "vite": "^8.0.8",
129
+ "wrangler": "^4.83.0"
130
+ },
131
+ "overrides": {
132
+ "@tootallnate/once": "3.0.1"
133
+ },
134
+ "engines": {
135
+ "node": ">=20.19.0"
136
+ },
137
+ "packageManager": "npm@11.12.0"
139
138
  }
package/vite.config.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { reactRouter } from "@react-router/dev/vite";
2
2
  import { cloudflareDevProxy } from "@react-router/dev/vite/cloudflare";
3
3
  import { defineConfig } from "vite";
4
- import tsconfigPaths from "vite-tsconfig-paths";
5
4
 
6
5
  export default defineConfig({
7
6
  server: {
@@ -11,9 +10,11 @@ export default defineConfig({
11
10
  chunkSizeWarningLimit: 500,
12
11
  minify: true,
13
12
  },
13
+ resolve: {
14
+ tsconfigPaths: true,
15
+ },
14
16
  plugins: [
15
17
  cloudflareDevProxy(),
16
18
  reactRouter(),
17
- tsconfigPaths(),
18
19
  ],
19
20
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "audit-worker",
3
- "version": "6.1.5",
3
+ "version": "6.1.6",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "deploy": "wrangler deploy",
@@ -7,7 +7,7 @@
7
7
  "name": "AUDIT_WORKER_NAME",
8
8
  "account_id": "ACCOUNT_ID",
9
9
  "main": "src/audit-worker.ts",
10
- "compatibility_date": "2026-04-18",
10
+ "compatibility_date": "2026-04-19",
11
11
  "compatibility_flags": [
12
12
  "nodejs_compat"
13
13
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "data-worker",
3
- "version": "6.1.5",
3
+ "version": "6.1.6",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "deploy": "wrangler deploy",
@@ -5,7 +5,7 @@
5
5
  "name": "DATA_WORKER_NAME",
6
6
  "account_id": "ACCOUNT_ID",
7
7
  "main": "src/data-worker.ts",
8
- "compatibility_date": "2026-04-18",
8
+ "compatibility_date": "2026-04-19",
9
9
  "compatibility_flags": [
10
10
  "nodejs_compat"
11
11
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "image-worker",
3
- "version": "6.1.5",
3
+ "version": "6.1.6",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "deploy": "wrangler deploy",
@@ -2,7 +2,7 @@
2
2
  "name": "IMAGES_WORKER_NAME",
3
3
  "account_id": "ACCOUNT_ID",
4
4
  "main": "src/image-worker.ts",
5
- "compatibility_date": "2026-04-18",
5
+ "compatibility_date": "2026-04-19",
6
6
  "compatibility_flags": [
7
7
  "nodejs_compat"
8
8
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdf-worker",
3
- "version": "6.1.5",
3
+ "version": "6.1.6",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "generate:assets": "node scripts/generate-assets.js",
@@ -2,7 +2,7 @@
2
2
  "name": "PDF_WORKER_NAME",
3
3
  "account_id": "ACCOUNT_ID",
4
4
  "main": "src/pdf-worker.ts",
5
- "compatibility_date": "2026-04-18",
5
+ "compatibility_date": "2026-04-19",
6
6
  "compatibility_flags": [
7
7
  "nodejs_compat"
8
8
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "user-worker",
3
- "version": "6.1.5",
3
+ "version": "6.1.6",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "deploy": "wrangler deploy",
@@ -2,7 +2,7 @@
2
2
  "name": "USER_WORKER_NAME",
3
3
  "account_id": "ACCOUNT_ID",
4
4
  "main": "src/user-worker.ts",
5
- "compatibility_date": "2026-04-18",
5
+ "compatibility_date": "2026-04-19",
6
6
  "compatibility_flags": [
7
7
  "nodejs_compat"
8
8
  ],
@@ -1,6 +1,6 @@
1
1
  #:schema node_modules/wrangler/config-schema.json
2
2
  name = "PAGES_PROJECT_NAME"
3
- compatibility_date = "2026-04-18"
3
+ compatibility_date = "2026-04-19"
4
4
  compatibility_flags = ["nodejs_compat"]
5
5
  pages_build_output_dir = "./build/client"
6
6