mirror of
https://github.com/movie-web/providers-api.git
synced 2025-09-13 06:53:27 +00:00
Add JWT
This commit is contained in:
@@ -2,13 +2,18 @@
|
|||||||
"name": "providers-api",
|
"name": "providers-api",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"build": "wrangler deploy --dry-run --outdir dist",
|
||||||
"dev": "wrangler dev src/index.ts",
|
"dev": "wrangler dev src/index.ts",
|
||||||
"deploy": "wrangler deploy --minify src/index.ts",
|
"deploy": "wrangler deploy --minify src/index.ts",
|
||||||
"preinstall": "npx only-allow pnpm"
|
"preinstall": "npx only-allow pnpm"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@movie-web/providers": "^1.1.5",
|
"@movie-web/providers": "^1.1.5",
|
||||||
|
"@tsndr/cloudflare-worker-jwt": "^2.3.2",
|
||||||
|
"@types/jsonwebtoken": "^9.0.5",
|
||||||
|
"esbuild": "^0.19.10",
|
||||||
"hono": "^3.11.8",
|
"hono": "^3.11.8",
|
||||||
"zod": "^3.22.4"
|
"zod": "^3.22.4"
|
||||||
},
|
},
|
||||||
|
259
pnpm-lock.yaml
generated
259
pnpm-lock.yaml
generated
@@ -8,6 +8,15 @@ dependencies:
|
|||||||
'@movie-web/providers':
|
'@movie-web/providers':
|
||||||
specifier: ^1.1.5
|
specifier: ^1.1.5
|
||||||
version: 1.1.5
|
version: 1.1.5
|
||||||
|
'@tsndr/cloudflare-worker-jwt':
|
||||||
|
specifier: ^2.3.2
|
||||||
|
version: 2.3.2
|
||||||
|
'@types/jsonwebtoken':
|
||||||
|
specifier: ^9.0.5
|
||||||
|
version: 9.0.5
|
||||||
|
esbuild:
|
||||||
|
specifier: ^0.19.10
|
||||||
|
version: 0.19.10
|
||||||
hono:
|
hono:
|
||||||
specifier: ^3.11.8
|
specifier: ^3.11.8
|
||||||
version: 3.11.8
|
version: 3.11.8
|
||||||
@@ -131,6 +140,15 @@ packages:
|
|||||||
rollup-plugin-node-polyfills: 0.2.1
|
rollup-plugin-node-polyfills: 0.2.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@esbuild/aix-ppc64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [ppc64]
|
||||||
|
os: [aix]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/android-arm64@0.17.19:
|
/@esbuild/android-arm64@0.17.19:
|
||||||
resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
|
resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -140,6 +158,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/android-arm64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [android]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/android-arm@0.17.19:
|
/@esbuild/android-arm@0.17.19:
|
||||||
resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==}
|
resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -149,6 +176,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/android-arm@0.19.10:
|
||||||
|
resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [arm]
|
||||||
|
os: [android]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/android-x64@0.17.19:
|
/@esbuild/android-x64@0.17.19:
|
||||||
resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==}
|
resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -158,6 +194,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/android-x64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [android]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/darwin-arm64@0.17.19:
|
/@esbuild/darwin-arm64@0.17.19:
|
||||||
resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==}
|
resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -167,6 +212,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/darwin-arm64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [darwin]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/darwin-x64@0.17.19:
|
/@esbuild/darwin-x64@0.17.19:
|
||||||
resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==}
|
resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -176,6 +230,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/darwin-x64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [darwin]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/freebsd-arm64@0.17.19:
|
/@esbuild/freebsd-arm64@0.17.19:
|
||||||
resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==}
|
resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -185,6 +248,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/freebsd-arm64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [freebsd]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/freebsd-x64@0.17.19:
|
/@esbuild/freebsd-x64@0.17.19:
|
||||||
resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==}
|
resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -194,6 +266,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/freebsd-x64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [freebsd]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/linux-arm64@0.17.19:
|
/@esbuild/linux-arm64@0.17.19:
|
||||||
resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==}
|
resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -203,6 +284,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/linux-arm64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/linux-arm@0.17.19:
|
/@esbuild/linux-arm@0.17.19:
|
||||||
resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==}
|
resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -212,6 +302,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/linux-arm@0.19.10:
|
||||||
|
resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [arm]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/linux-ia32@0.17.19:
|
/@esbuild/linux-ia32@0.17.19:
|
||||||
resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==}
|
resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -221,6 +320,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/linux-ia32@0.19.10:
|
||||||
|
resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [ia32]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/linux-loong64@0.17.19:
|
/@esbuild/linux-loong64@0.17.19:
|
||||||
resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==}
|
resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -230,6 +338,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/linux-loong64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [loong64]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/linux-mips64el@0.17.19:
|
/@esbuild/linux-mips64el@0.17.19:
|
||||||
resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==}
|
resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -239,6 +356,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/linux-mips64el@0.19.10:
|
||||||
|
resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [mips64el]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/linux-ppc64@0.17.19:
|
/@esbuild/linux-ppc64@0.17.19:
|
||||||
resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==}
|
resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -248,6 +374,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/linux-ppc64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [ppc64]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/linux-riscv64@0.17.19:
|
/@esbuild/linux-riscv64@0.17.19:
|
||||||
resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==}
|
resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -257,6 +392,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/linux-riscv64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [riscv64]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/linux-s390x@0.17.19:
|
/@esbuild/linux-s390x@0.17.19:
|
||||||
resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==}
|
resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -266,6 +410,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/linux-s390x@0.19.10:
|
||||||
|
resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [s390x]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/linux-x64@0.17.19:
|
/@esbuild/linux-x64@0.17.19:
|
||||||
resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==}
|
resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -275,6 +428,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/linux-x64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/netbsd-x64@0.17.19:
|
/@esbuild/netbsd-x64@0.17.19:
|
||||||
resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==}
|
resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -284,6 +446,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/netbsd-x64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [netbsd]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/openbsd-x64@0.17.19:
|
/@esbuild/openbsd-x64@0.17.19:
|
||||||
resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==}
|
resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -293,6 +464,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/openbsd-x64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [openbsd]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/sunos-x64@0.17.19:
|
/@esbuild/sunos-x64@0.17.19:
|
||||||
resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==}
|
resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -302,6 +482,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/sunos-x64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [sunos]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/win32-arm64@0.17.19:
|
/@esbuild/win32-arm64@0.17.19:
|
||||||
resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==}
|
resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -311,6 +500,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/win32-arm64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [arm64]
|
||||||
|
os: [win32]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/win32-ia32@0.17.19:
|
/@esbuild/win32-ia32@0.17.19:
|
||||||
resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==}
|
resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -320,6 +518,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/win32-ia32@0.19.10:
|
||||||
|
resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [ia32]
|
||||||
|
os: [win32]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@esbuild/win32-x64@0.17.19:
|
/@esbuild/win32-x64@0.17.19:
|
||||||
resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==}
|
resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -329,6 +536,15 @@ packages:
|
|||||||
dev: true
|
dev: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@esbuild/win32-x64@0.19.10:
|
||||||
|
resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [win32]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
|
/@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
|
||||||
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
|
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
@@ -454,6 +670,10 @@ packages:
|
|||||||
tslib: 2.6.2
|
tslib: 2.6.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@tsndr/cloudflare-worker-jwt@2.3.2:
|
||||||
|
resolution: {integrity: sha512-g1jSm5olPqKh15kadnj0666YPudibHYGyFyM0URLXSeY5MzNIGkfhFedLgKHq8NCDBMzLUMX7Oz8d+jmQXqBuw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/json-schema@7.0.15:
|
/@types/json-schema@7.0.15:
|
||||||
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
||||||
dev: true
|
dev: true
|
||||||
@@ -462,6 +682,12 @@ packages:
|
|||||||
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
|
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/jsonwebtoken@9.0.5:
|
||||||
|
resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/node': 20.10.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/node-forge@1.3.10:
|
/@types/node-forge@1.3.10:
|
||||||
resolution: {integrity: sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==}
|
resolution: {integrity: sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -472,7 +698,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==}
|
resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 5.26.5
|
undici-types: 5.26.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@types/semver@7.5.6:
|
/@types/semver@7.5.6:
|
||||||
resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
|
resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
|
||||||
@@ -1166,6 +1391,37 @@ packages:
|
|||||||
'@esbuild/win32-x64': 0.17.19
|
'@esbuild/win32-x64': 0.17.19
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/esbuild@0.19.10:
|
||||||
|
resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
hasBin: true
|
||||||
|
requiresBuild: true
|
||||||
|
optionalDependencies:
|
||||||
|
'@esbuild/aix-ppc64': 0.19.10
|
||||||
|
'@esbuild/android-arm': 0.19.10
|
||||||
|
'@esbuild/android-arm64': 0.19.10
|
||||||
|
'@esbuild/android-x64': 0.19.10
|
||||||
|
'@esbuild/darwin-arm64': 0.19.10
|
||||||
|
'@esbuild/darwin-x64': 0.19.10
|
||||||
|
'@esbuild/freebsd-arm64': 0.19.10
|
||||||
|
'@esbuild/freebsd-x64': 0.19.10
|
||||||
|
'@esbuild/linux-arm': 0.19.10
|
||||||
|
'@esbuild/linux-arm64': 0.19.10
|
||||||
|
'@esbuild/linux-ia32': 0.19.10
|
||||||
|
'@esbuild/linux-loong64': 0.19.10
|
||||||
|
'@esbuild/linux-mips64el': 0.19.10
|
||||||
|
'@esbuild/linux-ppc64': 0.19.10
|
||||||
|
'@esbuild/linux-riscv64': 0.19.10
|
||||||
|
'@esbuild/linux-s390x': 0.19.10
|
||||||
|
'@esbuild/linux-x64': 0.19.10
|
||||||
|
'@esbuild/netbsd-x64': 0.19.10
|
||||||
|
'@esbuild/openbsd-x64': 0.19.10
|
||||||
|
'@esbuild/sunos-x64': 0.19.10
|
||||||
|
'@esbuild/win32-arm64': 0.19.10
|
||||||
|
'@esbuild/win32-ia32': 0.19.10
|
||||||
|
'@esbuild/win32-x64': 0.19.10
|
||||||
|
dev: false
|
||||||
|
|
||||||
/escape-string-regexp@4.0.0:
|
/escape-string-regexp@4.0.0:
|
||||||
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -2733,7 +2989,6 @@ packages:
|
|||||||
|
|
||||||
/undici-types@5.26.5:
|
/undici-types@5.26.5:
|
||||||
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
|
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/undici@5.28.2:
|
/undici@5.28.2:
|
||||||
resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==}
|
resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==}
|
||||||
|
22
src/index.ts
22
src/index.ts
@@ -62,6 +62,8 @@ app.get('/scrape', async (context) => {
|
|||||||
|
|
||||||
const turnstileEnabled = Boolean(context.env?.TURNSTILE_ENABLED);
|
const turnstileEnabled = Boolean(context.env?.TURNSTILE_ENABLED);
|
||||||
|
|
||||||
|
let jwtResponse: string | undefined = undefined;
|
||||||
|
|
||||||
if (turnstileEnabled) {
|
if (turnstileEnabled) {
|
||||||
const turnstileResponse = await validateTurnstile(context);
|
const turnstileResponse = await validateTurnstile(context);
|
||||||
|
|
||||||
@@ -73,6 +75,8 @@ app.get('/scrape', async (context) => {
|
|||||||
)}`,
|
)}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jwtResponse = turnstileResponse.jwtToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
let media: ScrapeMedia;
|
let media: ScrapeMedia;
|
||||||
@@ -88,6 +92,10 @@ app.get('/scrape', async (context) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return streamSSE(context, async (stream) => {
|
return streamSSE(context, async (stream) => {
|
||||||
|
if (jwtResponse) {
|
||||||
|
await writeSSEEvent(stream, 'token', jwtResponse);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const output = await providers.runAll({
|
const output = await providers.runAll({
|
||||||
media,
|
media,
|
||||||
@@ -130,6 +138,8 @@ app.get('/scrape/embed', async (context) => {
|
|||||||
|
|
||||||
const turnstileEnabled = Boolean(context.env?.TURNSTILE_ENABLED);
|
const turnstileEnabled = Boolean(context.env?.TURNSTILE_ENABLED);
|
||||||
|
|
||||||
|
let jwtResponse: string | undefined = undefined;
|
||||||
|
|
||||||
if (turnstileEnabled) {
|
if (turnstileEnabled) {
|
||||||
const turnstileResponse = await validateTurnstile(context);
|
const turnstileResponse = await validateTurnstile(context);
|
||||||
|
|
||||||
@@ -141,6 +151,8 @@ app.get('/scrape/embed', async (context) => {
|
|||||||
)}`,
|
)}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jwtResponse = turnstileResponse.jwtToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
let embedInput: z.infer<typeof embedSchema>;
|
let embedInput: z.infer<typeof embedSchema>;
|
||||||
@@ -156,6 +168,9 @@ app.get('/scrape/embed', async (context) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return streamSSE(context, async (stream) => {
|
return streamSSE(context, async (stream) => {
|
||||||
|
if (jwtResponse) {
|
||||||
|
await writeSSEEvent(stream, 'token', jwtResponse);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const output = await providers.runEmbedScraper({
|
const output = await providers.runEmbedScraper({
|
||||||
id: embedInput.id,
|
id: embedInput.id,
|
||||||
@@ -190,6 +205,8 @@ app.get('/scrape/source', async (context) => {
|
|||||||
|
|
||||||
const turnstileEnabled = Boolean(context.env?.TURNSTILE_ENABLED);
|
const turnstileEnabled = Boolean(context.env?.TURNSTILE_ENABLED);
|
||||||
|
|
||||||
|
let jwtResponse: string | undefined = undefined;
|
||||||
|
|
||||||
if (turnstileEnabled) {
|
if (turnstileEnabled) {
|
||||||
const turnstileResponse = await validateTurnstile(context);
|
const turnstileResponse = await validateTurnstile(context);
|
||||||
|
|
||||||
@@ -201,6 +218,8 @@ app.get('/scrape/source', async (context) => {
|
|||||||
)}`,
|
)}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jwtResponse = turnstileResponse.jwtToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
let sourceInput: z.infer<typeof sourceSchema>;
|
let sourceInput: z.infer<typeof sourceSchema>;
|
||||||
@@ -216,6 +235,9 @@ app.get('/scrape/source', async (context) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return streamSSE(context, async (stream) => {
|
return streamSSE(context, async (stream) => {
|
||||||
|
if (jwtResponse) {
|
||||||
|
await writeSSEEvent(stream, 'token', jwtResponse);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const output = await providers.runSourceScraper({
|
const output = await providers.runSourceScraper({
|
||||||
id: sourceInput.id,
|
id: sourceInput.id,
|
||||||
|
@@ -1,16 +1,60 @@
|
|||||||
import { Context, Env } from 'hono';
|
import { Context, Env } from 'hono';
|
||||||
|
import jsonwebtoken from '@tsndr/cloudflare-worker-jwt';
|
||||||
|
|
||||||
export async function validateTurnstile(context: Context<Env>) {
|
export async function validateTurnstile(context: Context<Env>) {
|
||||||
const turnstileSecret = context.env?.TURNSTILE_SECRET as string | undefined;
|
const turnstileSecret = context.env?.TURNSTILE_SECRET as string | undefined;
|
||||||
|
const jwtSecret = (context.env?.JWT_SECRET as string | undefined) ?? '';
|
||||||
|
|
||||||
const token = context.req.header('cf-turnstile-token') || '';
|
const token = context.req.query('token') || '';
|
||||||
|
|
||||||
// TODO: Make this cross platform
|
// TODO: Make this cross platform
|
||||||
const ip = context.req.header('CF-Connecting-IP') || '';
|
const ip = context.req.header('CF-Connecting-IP') || '';
|
||||||
|
|
||||||
|
if (token.startsWith('jwt|')) {
|
||||||
|
try {
|
||||||
|
console.log(token, token.slice('jwt|'.length));
|
||||||
|
|
||||||
|
const isValid = await jsonwebtoken.verify(
|
||||||
|
token.slice('jwt|'.length),
|
||||||
|
jwtSecret,
|
||||||
|
{
|
||||||
|
algorithm: 'HS256',
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!isValid) {
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
errorCodes: ['jwt-invalid'],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const { payload } = jsonwebtoken.decode(token.slice('jwt|'.length));
|
||||||
|
|
||||||
|
if (!payload || payload.ip !== ip) {
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
errorCodes: ['jwt-ip-invalid'],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
errorCodes: [],
|
||||||
|
};
|
||||||
|
} catch (e: any) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!token.startsWith('turnstile|')) {
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
errorCodes: ['invalid-token-type'],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append('secret', turnstileSecret || '');
|
formData.append('secret', turnstileSecret || '');
|
||||||
formData.append('response', token);
|
formData.append('response', token.slice('turnstile|'.length));
|
||||||
formData.append('remoteip', ip);
|
formData.append('remoteip', ip);
|
||||||
|
|
||||||
const url = 'https://challenges.cloudflare.com/turnstile/v0/siteverify';
|
const url = 'https://challenges.cloudflare.com/turnstile/v0/siteverify';
|
||||||
@@ -20,8 +64,21 @@ export async function validateTurnstile(context: Context<Env>) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const outcome = await result.json<any>();
|
const outcome = await result.json<any>();
|
||||||
|
|
||||||
|
let jwt: string | undefined = undefined;
|
||||||
|
if (outcome.success) {
|
||||||
|
jwt = await jsonwebtoken.sign(
|
||||||
|
{
|
||||||
|
ip,
|
||||||
|
exp: Math.floor(Date.now() / 1000) + 60 * 10, // 10 Minutes
|
||||||
|
},
|
||||||
|
jwtSecret,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
success: outcome.success as boolean,
|
success: outcome.success as boolean,
|
||||||
errorCodes: outcome['error-codes'] as string[],
|
errorCodes: outcome['error-codes'] as string[],
|
||||||
|
jwtToken: jwt,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -2,8 +2,3 @@ name = "providers-api"
|
|||||||
main = "./src/index.ts"
|
main = "./src/index.ts"
|
||||||
workers_dev = true
|
workers_dev = true
|
||||||
compatibility_date = "2023-12-17"
|
compatibility_date = "2023-12-17"
|
||||||
|
|
||||||
[vars]
|
|
||||||
TURNSTILE_ENABLED = false
|
|
||||||
TURNSTILE_SECRET = "1x0000000000000000000000000000000AA"
|
|
||||||
CORS_ALLOWED = "localhost,movie-web.app,dev.movie-web.app"
|
|
||||||
|
Reference in New Issue
Block a user