From 8bc059a3d638091148bb32d20e6e0e6340c9477f Mon Sep 17 00:00:00 2001 From: "Abdel @ StarkWare" Date: Tue, 19 Mar 2024 18:52:27 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20init=20backend=20using=20bun?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 ++++ backend/.gitkeep | 0 service/.gitignore | 175 ++++++++++++++++++++++++++++++++++++++++++ service/README.md | 15 ++++ service/bun.lockb | Bin 0 -> 2778 bytes service/package.json | 14 ++++ service/src/index.ts | 22 ++++++ service/tsconfig.json | 22 ++++++ 8 files changed, 262 insertions(+) delete mode 100644 backend/.gitkeep create mode 100644 service/.gitignore create mode 100644 service/README.md create mode 100755 service/bun.lockb create mode 100644 service/package.json create mode 100644 service/src/index.ts create mode 100644 service/tsconfig.json diff --git a/README.md b/README.md index 8dced2cd..b0996166 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,20 @@ Vault is a cutting-edge tool that transforms how you manage your digital assets on Starknet. It lets you create custom accounts with unique rules and limits, ensuring your transactions are secure and tailored to your needs. Simple, flexible, and secure – Vault puts you in full control of your financial world. +## Vault service + +### Start + +```bash +cd service +bun i +bun start +``` + +## Onchain + +## App + ## Architecture ![Architecture](./resources/architecture.png) diff --git a/backend/.gitkeep b/backend/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/service/.gitignore b/service/.gitignore new file mode 100644 index 00000000..468f82a1 --- /dev/null +++ b/service/.gitignore @@ -0,0 +1,175 @@ +# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore + +# Logs + +logs +_.log +npm-debug.log_ +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Caches + +.cache + +# Diagnostic reports (https://nodejs.org/api/report.html) + +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# Runtime data + +pids +_.pid +_.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover + +lib-cov + +# Coverage directory used by tools like istanbul + +coverage +*.lcov + +# nyc test coverage + +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) + +.grunt + +# Bower dependency directory (https://bower.io/) + +bower_components + +# node-waf configuration + +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) + +build/Release + +# Dependency directories + +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) + +web_modules/ + +# TypeScript cache + +*.tsbuildinfo + +# Optional npm cache directory + +.npm + +# Optional eslint cache + +.eslintcache + +# Optional stylelint cache + +.stylelintcache + +# Microbundle cache + +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history + +.node_repl_history + +# Output of 'npm pack' + +*.tgz + +# Yarn Integrity file + +.yarn-integrity + +# dotenv environment variable files + +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) + +.parcel-cache + +# Next.js build output + +.next +out + +# Nuxt.js build / generate output + +.nuxt +dist + +# Gatsby files + +# Comment in the public line in if your project uses Gatsby and not Next.js + +# https://nextjs.org/blog/next-9-1#public-directory-support + +# public + +# vuepress build output + +.vuepress/dist + +# vuepress v2.x temp and cache directory + +.temp + +# Docusaurus cache and generated files + +.docusaurus + +# Serverless directories + +.serverless/ + +# FuseBox cache + +.fusebox/ + +# DynamoDB Local files + +.dynamodb/ + +# TernJS port file + +.tern-port + +# Stores VSCode versions used for testing VSCode extensions + +.vscode-test + +# yarn v2 + +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store diff --git a/service/README.md b/service/README.md new file mode 100644 index 00000000..df776d0a --- /dev/null +++ b/service/README.md @@ -0,0 +1,15 @@ +# vault-service + +To install dependencies: + +```bash +bun install +``` + +To run: + +```bash +bun run index.ts +``` + +This project was created using `bun init` in bun v1.0.18. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. diff --git a/service/bun.lockb b/service/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..0d2b96501078b85837e8940395ef488f428fb703 GIT binary patch literal 2778 zcmY#Z)GsYA(of3F(@)JSQ%EY!;{sycoc!eMw9K4T-L(9o+{6;yG6OCq1_p-G*(p<* zCx2Z1^*~kp14(zA41=Nt6U{s2HXo~3z5I7~t``?j5fHFJCc^McQ z#DOeMAe{!Kqk%Lxkbf6Q^8jg}8U~=@4by6Mq`95a)>XerKieVnT50j=8I|+1E@e*C zkLp$1YHP`vZ*%Nb;H=&ARU34)TT_!5f%+%`AYX%k0uWmR?T4AC2ofX$!1U(>)tUhH zgF=KAh@k;R&;*$N#Xyx-K>Z>>8W=7Nas+ik6u|Vq1acjL`ayO}0WpXs2Eg>20X=R5 z)z1Rd2oopP43K&d2I&QbA;^9Z4NC|x8Yl!-N4)xf{Qp1(Q5i5YK+Hupnni!MqvHRB zR~sBB{Z?G9t@Pv;xAW!nR^=<#rl0&0^J<~`i`w?0%(K^YJ)$DjQ0M+z zUUtGu?kslhRsgyYW-fC0vFu9`3Os&m+9a)u@>%bmytozm=HEkhTEFIDW=cszOmhfs4{z3skg7KsNNzaW{*j1&$mCB;_hGODwlMY*N& z*Zs}>vFa{=z@2VC*4&F~|L?FEb+@h-(-4b`GV(47IUusNC4gT|pT9RuW%rV{^$)Yl z^!$;`1;rZ-u&4#}SU+D_;>5KouyFDs`LG6&ungn3N3GA;Km1x&vf6ybM#X0VQ~l1W z=*h47p!E~)m5a9tRM?S(zwU78bxVG-u!udG%3Cr2^mZGa`N}n1VUd)~PD`U}Fm;-4{ z!@>ealVcrnx*|va(A2X5n$3?uX)c@MqGY|yyyB9?oE$w^rK1;8l$vU%U}T_BoLQBc zpQfW=qL7%AnVy%Q1}--L{f7Wh7=Y5x2dHT*?2u65vMDt-vIAGcwaNVMu`bVFBDP$gxzMnp>7yq~}^ul3J9Pm=j!5l$n=qr(lTi zrUk;A3?;?MVA~G-7Fk*}Wr7H(p#c)(zqi=toowN*lH%gjBA|J(mlYa=(!76Y0W$`u zzHhNGJ;PYR_wNGK4NlMs6BxI^Fg3&$q+ol>5=(PRbU|ijCa0EE7Niy@7iAWdfZ8-* zUPehtL9vy-eo<F@fX0;<>q6oKWDa3HAS-~nK$I>th7CYEOY>4PlQRi=1X&r-7-X(4IEqa{ fhCyNi68d!sH literal 0 HcmV?d00001 diff --git a/service/package.json b/service/package.json new file mode 100644 index 00000000..4fa04ddc --- /dev/null +++ b/service/package.json @@ -0,0 +1,14 @@ +{ + "name": "vault-service", + "module": "index.ts", + "type": "module", + "scripts": { + "start": "bun run src/index.ts" + }, + "devDependencies": { + "bun-types": "latest" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } +} \ No newline at end of file diff --git a/service/src/index.ts b/service/src/index.ts new file mode 100644 index 00000000..fac0d2da --- /dev/null +++ b/service/src/index.ts @@ -0,0 +1,22 @@ +const PORT = Bun.env.PORT || 8080; + +Bun.serve({ + port: PORT, + async fetch(request: Request) { + const { method } = request; + const { pathname } = new URL(request.url); + + if (method === "GET" && pathname === "/status") { + return handleGetStatus(); + } + return new Response("Not Found", { status: 404 }); + }, +}); + +console.log(`Listening on http://localhost:${PORT} ...`); + +function handleGetStatus() { + return new Response(JSON.stringify({ status: "OK" }), { + headers: { "Content-Type": "application/json" }, + }); +} diff --git a/service/tsconfig.json b/service/tsconfig.json new file mode 100644 index 00000000..7556e1d4 --- /dev/null +++ b/service/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "lib": ["ESNext"], + "module": "esnext", + "target": "esnext", + "moduleResolution": "bundler", + "moduleDetection": "force", + "allowImportingTsExtensions": true, + "noEmit": true, + "composite": true, + "strict": true, + "downlevelIteration": true, + "skipLibCheck": true, + "jsx": "react-jsx", + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "allowJs": true, + "types": [ + "bun-types" // add Bun global + ] + } +}