@striae-org/striae 6.1.4 → 6.1.5
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/app/root.tsx +1 -0
- package/package.json +138 -140
- package/public/_headers +11 -1
- package/public/robots.txt +2 -0
- package/scripts/deploy-config/modules/scaffolding.sh +0 -17
- package/workers/audit-worker/package.json +1 -1
- package/workers/audit-worker/wrangler.jsonc.example +1 -1
- package/workers/data-worker/package.json +1 -1
- package/workers/data-worker/wrangler.jsonc.example +1 -1
- package/workers/image-worker/package.json +1 -1
- package/workers/image-worker/wrangler.jsonc.example +1 -1
- package/workers/pdf-worker/package.json +1 -1
- package/workers/pdf-worker/wrangler.jsonc.example +1 -1
- package/workers/user-worker/package.json +1 -1
- package/workers/user-worker/wrangler.jsonc.example +1 -1
- package/wrangler.toml.example +1 -1
- /package/app/routes/auth/{login.module.example.css → login.module.css} +0 -0
- /package/app/routes/auth/{login.example.tsx → login.tsx} +0 -0
package/app/root.tsx
CHANGED
|
@@ -64,6 +64,7 @@ export function Layout({ children }: { children: React.ReactNode }) {
|
|
|
64
64
|
<head>
|
|
65
65
|
<meta charSet="utf-8" />
|
|
66
66
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
67
|
+
<meta name="robots" content="noindex, nofollow" />
|
|
67
68
|
<style dangerouslySetInnerHTML={{ __html: themeStyles }} />
|
|
68
69
|
<Links />
|
|
69
70
|
</head>
|
package/package.json
CHANGED
|
@@ -1,141 +1,139 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@striae-org/striae",
|
|
3
|
-
"version": "6.1.
|
|
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
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"workers
|
|
44
|
-
"
|
|
45
|
-
"!workers
|
|
46
|
-
"!workers/*/
|
|
47
|
-
"!workers/*/worker
|
|
48
|
-
"!workers
|
|
49
|
-
"
|
|
50
|
-
"!workers/pdf-worker/src/
|
|
51
|
-
"workers/pdf-worker/src/
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
".
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"build": "
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"publish:
|
|
73
|
-
"publish:
|
|
74
|
-
"publish:
|
|
75
|
-
"publish:
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"typegen": "wrangler types",
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"update-
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"deploy-
|
|
92
|
-
"deploy-
|
|
93
|
-
"deploy-
|
|
94
|
-
"deploy-
|
|
95
|
-
"deploy-
|
|
96
|
-
"deploy-
|
|
97
|
-
"deploy-workers:
|
|
98
|
-
"deploy-workers:
|
|
99
|
-
"deploy-workers:
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"react": "^
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
"@
|
|
115
|
-
"@react
|
|
116
|
-
"@types/
|
|
117
|
-
"@
|
|
118
|
-
"@
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"eslint": "^
|
|
122
|
-
"eslint-
|
|
123
|
-
"eslint-plugin-
|
|
124
|
-
"eslint-plugin-
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
},
|
|
140
|
-
"packageManager": "npm@11.12.0"
|
|
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"
|
|
141
139
|
}
|
package/public/_headers
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
/*.css
|
|
2
2
|
Cache-Control: public, max-age=31536000, immutable
|
|
3
3
|
/*.js
|
|
4
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
4
|
+
Cache-Control: public, max-age=31536000, immutable
|
|
5
5
|
/*.svg
|
|
6
6
|
Cache-Control: public, max-age=31536000, immutable
|
|
7
7
|
/*.jpg
|
|
8
8
|
Cache-Control: public, max-age=31536000, immutable
|
|
9
|
+
/*.jpeg
|
|
10
|
+
Cache-Control: public, max-age=31536000, immutable
|
|
9
11
|
/*.png
|
|
10
12
|
Cache-Control: public, max-age=31536000, immutable
|
|
13
|
+
/*.woff2
|
|
14
|
+
Cache-Control: public, max-age=31536000, immutable
|
|
15
|
+
/*.woff
|
|
16
|
+
Cache-Control: public, max-age=31536000, immutable
|
|
11
17
|
/*
|
|
12
18
|
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
|
|
19
|
+
X-Robots-Tag: noindex, nofollow
|
|
20
|
+
X-Content-Type-Options: nosniff
|
|
21
|
+
X-Frame-Options: DENY
|
|
22
|
+
Referrer-Policy: strict-origin-when-cross-origin
|
|
@@ -63,23 +63,6 @@ copy_example_configs() {
|
|
|
63
63
|
echo -e "${GREEN} ✅ app: copied $copied_config_files config file(s) from config-example${NC}"
|
|
64
64
|
fi
|
|
65
65
|
|
|
66
|
-
# Copy auth route template files
|
|
67
|
-
echo -e "${YELLOW} Copying auth route template files...${NC}"
|
|
68
|
-
|
|
69
|
-
if [ -f "app/routes/auth/login.example.tsx" ] && { [ "$update_env" = "true" ] || [ ! -f "app/routes/auth/login.tsx" ]; }; then
|
|
70
|
-
cp app/routes/auth/login.example.tsx app/routes/auth/login.tsx
|
|
71
|
-
echo -e "${GREEN} ✅ auth: login.tsx created from example${NC}"
|
|
72
|
-
elif [ -f "app/routes/auth/login.tsx" ]; then
|
|
73
|
-
echo -e "${YELLOW} ⚠️ auth: login.tsx already exists, skipping copy${NC}"
|
|
74
|
-
fi
|
|
75
|
-
|
|
76
|
-
if [ -f "app/routes/auth/login.module.example.css" ] && { [ "$update_env" = "true" ] || [ ! -f "app/routes/auth/login.module.css" ]; }; then
|
|
77
|
-
cp app/routes/auth/login.module.example.css app/routes/auth/login.module.css
|
|
78
|
-
echo -e "${GREEN} ✅ auth: login.module.css created from example${NC}"
|
|
79
|
-
elif [ -f "app/routes/auth/login.module.css" ]; then
|
|
80
|
-
echo -e "${YELLOW} ⚠️ auth: login.module.css already exists, skipping copy${NC}"
|
|
81
|
-
fi
|
|
82
|
-
|
|
83
66
|
# Navigate to each worker directory and copy the example file
|
|
84
67
|
echo -e "${YELLOW} Copying worker configuration files...${NC}"
|
|
85
68
|
|
package/wrangler.toml.example
CHANGED
|
File without changes
|
|
File without changes
|