diff --git a/.gitignore b/.gitignore
index 19f1a4d..15c1b92 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
.DS_Store
.idea/
-node_modules/
+/node_modules
build/
tmp/
temp/
diff --git a/backend/package-lock.json b/backend/package-lock.json
index 018f030..531a324 100644
--- a/backend/package-lock.json
+++ b/backend/package-lock.json
@@ -15,7 +15,6 @@
"class-validator": "^0.14.0",
"exifreader": "^4.13.0",
"hasha": "^5.2.2",
- "io-ts": "^2.2.20",
"jsonwebtoken": "^9.0.1",
"koa": "^2.14.2",
"koa-body": "^5.0.0",
@@ -2951,12 +2950,6 @@
"url": "https://ko-fi.com/tunnckoCore/commissions"
}
},
- "node_modules/fp-ts": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.1.tgz",
- "integrity": "sha512-by7U5W8dkIzcvDofUcO42yl9JbnHTEDBrzu3pt5fKT+Z4Oy85I21K80EYJYdjQGC2qum4Vo55Ag57iiIK4FYuA==",
- "peer": true
- },
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -3602,14 +3595,6 @@
"node": ">= 0.4"
}
},
- "node_modules/io-ts": {
- "version": "2.2.20",
- "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-2.2.20.tgz",
- "integrity": "sha512-Rq2BsYmtwS5vVttie4rqrOCIfHCS9TgpRLFpKQCM1wZBBRY9nWVGmEvm2FnDbSE2un1UE39DvFpTR5UL47YDcA==",
- "peerDependencies": {
- "fp-ts": "^2.5.0"
- }
- },
"node_modules/is-array-buffer": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
@@ -4514,9 +4499,9 @@
}
},
"node_modules/make-dir/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
}
@@ -9572,12 +9557,6 @@
"qs": "^6.11.0"
}
},
- "fp-ts": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.1.tgz",
- "integrity": "sha512-by7U5W8dkIzcvDofUcO42yl9JbnHTEDBrzu3pt5fKT+Z4Oy85I21K80EYJYdjQGC2qum4Vo55Ag57iiIK4FYuA==",
- "peer": true
- },
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -10027,12 +10006,6 @@
"side-channel": "^1.0.4"
}
},
- "io-ts": {
- "version": "2.2.20",
- "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-2.2.20.tgz",
- "integrity": "sha512-Rq2BsYmtwS5vVttie4rqrOCIfHCS9TgpRLFpKQCM1wZBBRY9nWVGmEvm2FnDbSE2un1UE39DvFpTR5UL47YDcA==",
- "requires": {}
- },
"is-array-buffer": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
@@ -10694,9 +10667,9 @@
},
"dependencies": {
"semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
}
}
},
diff --git a/backend/package.json b/backend/package.json
index d1a17c3..268a6f4 100755
--- a/backend/package.json
+++ b/backend/package.json
@@ -20,7 +20,6 @@
"class-validator": "^0.14.0",
"exifreader": "^4.13.0",
"hasha": "^5.2.2",
- "io-ts": "^2.2.20",
"jsonwebtoken": "^9.0.1",
"koa": "^2.14.2",
"koa-body": "^5.0.0",
@@ -48,12 +47,12 @@
"@types/hasha": "^3.0.1",
"@types/jsonwebtoken": "^9.0.2",
"@types/koa": "^2.13.7",
+ "@types/koa__cors": "^4.0.0",
+ "@types/koa__router": "^12.0.0",
"@types/koa-logger": "^3.1.2",
"@types/koa-send": "^4.1.3",
"@types/koa-sslify": "^4.0.3",
"@types/koa-static": "^4.0.2",
- "@types/koa__cors": "^4.0.0",
- "@types/koa__router": "^12.0.0",
"@types/mime-types": "^2.1.1",
"@types/mocha": "^10.0.1",
"@types/mysql": "^2.15.21",
@@ -85,4 +84,4 @@
"pre-commit": "npm run lint-all && npm run prettier-check"
}
}
-}
\ No newline at end of file
+}
diff --git a/backend/src/app.ts b/backend/src/app.ts
index d1cf752..8920fc2 100644
--- a/backend/src/app.ts
+++ b/backend/src/app.ts
@@ -15,8 +15,15 @@ import { config, EnvType } from "~config";
import { userRouter } from "~routes/users";
import { devRouter } from "~routes/dev";
import { photosRouter } from "~routes/photos";
+import { TUserJWT } from "~shared/types";
-export const app = new Koa();
+export interface IAppState extends Koa.DefaultState {
+ user?: TUserJWT;
+}
+
+export interface IAppContext extends Koa.DefaultContext {}
+
+export const app = new Koa
|
+
+ + Astro + + astro.build + +
+ Astro is a new kind of static |
+
+
+
+
+ + Glow Wallet + + glow.app + + Your new favorite
+ |
+
|
+
+ + Deletype + + deletype.com + |
+
+
+ + Proxy + + proxy.com + |
+
|
+
+ + Trigger.dev + + trigger.dev + |
+
+
+
+
+
+ + Numeric + + numeric.io + |
+
+
+ + Snaplet + + snaplet.dev + |
+ |
|
+
+ + Marcato Partners + + marcatopartners.com + |
+
+
+ + Interval + + interval.com + |
+
+
+ + Seasoned Software + + seasoned.cc + |
+
|
+
+ + Bamboo Creative + + bamboocreative.nz + |
+ ||
|
+
+ + Brandon Bayer + + @flybayer, + creator of Blitz.js + + |
+
+
+ + Jiří Brabec + + @brabeji + + |
+
+
+ + Alex Johansson + + @alexdotjs + |
+
|
+
+ + Fungible Systems + + fungible.systems + + |
+
+
+ + Adaptable + + adaptable.io + + |
+
+
+ + Avana Wallet + + avanawallet.com + Solana non-custodial wallet + + |
+
|
+
+ + Jason Lengstorf + + learnwithjason.dev + + |
+
+
+ + Global Illumination, Inc. + + ill.inc + + |
+
+