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
KMNUMnLSTYUFn6E;
literal 0
HcmV?d00001
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..bc6240c430a0b2fb71cf85886ace486495f137f1
GIT binary patch
literal 5238
zcmb7IX>3&26&^@K(jN(ll2-lE9|#YNqK3_YH*CfW-p3F%25&Tk#T%uRt=QwSJs!64
zHYQX}XS@mwG@!H!6^hWj880&?btr_UiQ1%8#SoerZz4rWj6{0+oqOMV^TvTnebSwK
z=e>8&`R;elJ?GqKGR-p0Ha+*83BAd*_&X-kLiF?IssC|55BC=19)>2|#(VsW3-@PU
zEJFxVyMD{zSbw6!qa-+kzW75EMP}bb;e21PI7;yrFHmBQ^YytHY_aq|U1avV{A=qT
z2G%;rx5h!rng%M2QmA0QBKs)c!@G%;p6+h$Fms$%M^%Q^%#v$+f^nN_Kl*U;`
zV#UvS^7~f%g27DNgMoBA^{3e>kXBFKn>*-Y#xV+5>Zy5o7d0(ITiPw!cv>lqrIZ6l
z`TeovN^>yV<{Hedp@FO#8qBcMxy`?(1D*e*8vB62(X_mint49As%_bbn4ivkg<@D%K4gm_L=hjV7}o131Rg%0}IB
z-g{`|j%_D*OgrA~ppuQ(sCv^yvLF64ZE=1?m1UPOzXS6-sQ?@oM1fCf(@}S8Z>DZTonzG->i@+MGQu~~@)7BB1*EHWz-LwQwb)xltn%`;@JiItdn7h~^W
z4#$akXcn|tVuS$)j{o;!{kU#qop>s+rork@aP%ti4cC0}&Rdt_oL^#1U!mPDG%Ftz
zn*F^cW?x=uG_ONK=l*|Ps(8E-9?AD*3>eC5e8z8SaQTxQ_Z7qqjy>Fb3FzaUs^4gF
zNcQ09UJ-1+bEQ=-2lrD8V{(-|mvk~{U1uTwH5x0^Y6kz>{Qoq9b(S%Lm7vWxu
zNeaPUcSjQ|caX_3Ti0h8L|{_?aQBnN{uc_Pe3w}!$0~0ABpLSv2aG|*A@mBL3hNDH
zQ4mur2(ekYle+T-gX+f)3m5s9fWI#^863Ao++_@E{6-!L>sS3*dw*tsHyQfZmNSm=
zF-xUcS8QCoIxaT%{}B1&GouWne!+tp|Ct9rI558Zs4?f2abOTUBvsz{+*10Y!~msY
zgUNrz=J%fk=O1z$G|K5u#rjhW9L(TBysL9yv;oH*MdXyRWX>zhgUE4zxE;6WyE+f*
zpeV|JT#dbAp2Xl2d9P2!(8u{t^9Ms73}cr1!~a=7@(JfPU_f3HJd7sobQ$&c=QsQS
zvGD7G48$VDvVP8)h>4=5)rK)J4#uG3V1MA;!+B88g(9CKM{vKSo5t6b(RixFVBq2F
z(fEq*v)Q=~X4^c2oM+Jn(q~|Ret%jWc{h8hZtn%Uka<+s&s=EvPvl`OA1{+Ry=iF=
z@@c8e%fK)$^Sj{TZc@32Ik=jCaPDAs^|Z(bjDd54kq78MwZ%*O-uyf5_S~ZC+5tLm
zZ4?;%;Gr2gL*pO<1J=$QOr)bOS%-$a9>K%fiU%LR^y(bs_zj5R$R)_}BA;N)JQy$>
zcMed^*-6^h{V&?xeuwruhUh}p5n_L6UV;3-LdBrfGzK0-U6Kyn%mZw}{vdb|{!p12
zvf4bsT;!r`&S#86+Ck<9&gmSBgwOq(NaIK?bF!;m8^~b2*`w7{9Go|yer}2-}ka9}J5ayvt
z<$-ZbW^Jb_wJw@eZ80HgEastNIJCZc1Qd7G0)xf_W6*dQOD!J>{E2u`WDr8jnM92-J(}^U8chQ{p4E3deKmiYCPz=^cWox-$zhm4x@=0Rp{3+aNVrd
z&Wxda*-481kwTkd-lkU6uH25~o}>DX5!&InPS&mOQd!1Ha;=p5#hwHfQBxapiU9}C
zH^XgQC$oNT8V4$dHt25?JaFACYxtH`7{eZ{pKIu&*=NbQ?i7_}ouQ0_SLoH(d@?41
z1NH~xw1|AB^C9m0J#C5J4Wh>8S{)cfoellEO=j?*)!rHg4F}i1Tg%?1=*}rhDetGF
zDi4wRjNCIW{|0ZGcP{ik5ExiL^T6vjU|=4kKS&<<{2-g;p%t7k7p~Qv^xEDK#kgTY&%Vfl2$7gIlYr{`(1J76Z4)7(u1KfiCYeQCBZz#9MdbQO1B+t>B
M&>=;I)v2TZ0<_%Qvj6}9
literal 0
HcmV?d00001
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000..db787dd
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,388 @@
+
+
+
+
+
+
+
+
+ Live Cricket Score đ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Live Cricket Score
+
+
Change Theme:
+
+
+
+
+
+
+
+
+
+ Get Score
+ Refresh
+
+
+
+
+
+
Disclaimer
+
+ The score data retrieved from CricBuzz is collected strictly for personal use only. This data is scraped using custom scripts and stored locally on my Android device, which functions as a personal server. The data is accessed and displayed via Termux, and the network traffic is securely proxied through a Cloudflare Argo Tunnel.
+
+ This setup is fully contained within my personal environment and is not accessible to the outside world. The data is not served externally or used for any commercial purposes. I do not claim ownership of any data or content provided by CricBuzz. The scraping process is solely for personal use and complies with CricBuzzâs terms of service, ensuring no infringement on their intellectual property rights.
+
+ Please note that any use, redistribution, or public display beyond personal use may violate CricBuzzâs terms and may be subject to legal or ethical consequences. I take no responsibility for any actions outside of personal, non-commercial use.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/renovate.json b/renovate.json
new file mode 100644
index 0000000..3d3b1bf
--- /dev/null
+++ b/renovate.json
@@ -0,0 +1,17 @@
+{
+ "extends": ["config:base"],
+ "automerge": true,
+ "major": {
+ "automerge": false
+ },
+ "lockFileMaintenance": {
+ "enabled": false,
+ "automerge": false
+ },
+ "labels": ["renovate"],
+ "rangeStrategy": "bump",
+ "bumpVersion": null,
+ "semanticCommits": true,
+ "timezone": "Asia/Kolkata",
+ "schedule": "on wednesday"
+}
\ No newline at end of file
diff --git a/tmux.sh b/tmux.sh
new file mode 100644
index 0000000..5dc865d
--- /dev/null
+++ b/tmux.sh
@@ -0,0 +1,3 @@
+if ! tmux has-session -t score 2>/dev/null; then
+ tmux new-session -d -s score 'node $HOME/ts-cricket-score/dist/index.js'
+fi
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..d7fa631
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "compilerOptions": {
+ "target": "ESNext",
+ "lib": ["ESNext", "DOM"],
+ "module": "CommonJS",
+ "strict": true,
+ "esModuleInterop": true,
+ "outDir": "./dist",
+ "rootDir": "./",
+ "resolveJsonModule": true,
+ "skipLibCheck": true
+ }
+ }
\ No newline at end of file
diff --git a/utils/error.ts b/utils/error.ts
new file mode 100644
index 0000000..8bf1096
--- /dev/null
+++ b/utils/error.ts
@@ -0,0 +1,7 @@
+import { Request, Response, NextFunction } from 'express';
+
+export default (error: any, req: Request, res: Response, next: NextFunction) => {
+ console.error(error.message);
+ console.error(error.stack);
+ res.status(500).json({ error: 'Internal Server Error' });
+};
\ No newline at end of file
diff --git a/utils/secureHeaders.ts b/utils/secureHeaders.ts
new file mode 100644
index 0000000..7e7e713
--- /dev/null
+++ b/utils/secureHeaders.ts
@@ -0,0 +1,10 @@
+import { Request, Response, NextFunction } from "express";
+
+export const setSecureHeaders = (req: Request, res: Response, next: NextFunction) => {
+ res.setHeader("X-Content-Type-Options", "nosniff");
+ res.setHeader("X-Frame-Options", "DENY");
+ res.setHeader("X-XSS-Protection", "1; mode=block");
+ res.setHeader("Referrer-Policy", "no-referrer-when-downgrade");
+ res.setHeader("X-Robots-Tag", "noindex, nofollow");
+ next();
+};
\ No newline at end of file