added doga
BIN
25_02_24/Dolgozat.zip
Normal file
BIN
25_02_24/Feladat.pdf
Normal file
23
25_02_24/frontend/.gitignore
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
70
25_02_24/frontend/README.md
Normal file
|
@ -0,0 +1,70 @@
|
|||
# Getting Started with Create React App
|
||||
|
||||
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
||||
|
||||
## Available Scripts
|
||||
|
||||
In the project directory, you can run:
|
||||
|
||||
### `npm start`
|
||||
|
||||
Runs the app in the development mode.\
|
||||
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
|
||||
|
||||
The page will reload when you make changes.\
|
||||
You may also see any lint errors in the console.
|
||||
|
||||
### `npm test`
|
||||
|
||||
Launches the test runner in the interactive watch mode.\
|
||||
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
|
||||
|
||||
### `npm run build`
|
||||
|
||||
Builds the app for production to the `build` folder.\
|
||||
It correctly bundles React in production mode and optimizes the build for the best performance.
|
||||
|
||||
The build is minified and the filenames include the hashes.\
|
||||
Your app is ready to be deployed!
|
||||
|
||||
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
|
||||
|
||||
### `npm run eject`
|
||||
|
||||
**Note: this is a one-way operation. Once you `eject`, you can't go back!**
|
||||
|
||||
If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
|
||||
|
||||
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
|
||||
|
||||
You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
|
||||
|
||||
## Learn More
|
||||
|
||||
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
||||
|
||||
To learn React, check out the [React documentation](https://reactjs.org/).
|
||||
|
||||
### Code Splitting
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
|
||||
|
||||
### Analyzing the Bundle Size
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
|
||||
|
||||
### Making a Progressive Web App
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
|
||||
|
||||
### Advanced Configuration
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
|
||||
|
||||
### Deployment
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
|
||||
|
||||
### `npm run build` fails to minify
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
|
140
25_02_24/frontend/db.json
Normal file
|
@ -0,0 +1,140 @@
|
|||
{
|
||||
"szallitmanyok": [
|
||||
{
|
||||
"id": "#1",
|
||||
"nev": "Példa Péter",
|
||||
"email": "peter@peter.com",
|
||||
"telefonszam": "06000000001",
|
||||
"irszam": 3478,
|
||||
"varos": "Lazacfalva",
|
||||
"utca": "Bordó utca",
|
||||
"hazszam": 34,
|
||||
"megjegyzes": "Törékeny csomag!"
|
||||
},
|
||||
{
|
||||
"id": "#2",
|
||||
"nev": "Metódus Mária",
|
||||
"email": "metodus@maria.com",
|
||||
"telefonszam": "06000000002",
|
||||
"irszam": 5672,
|
||||
"varos": "Kannafalva",
|
||||
"utca": "Fűzfa utca",
|
||||
"hazszam": 87,
|
||||
"megjegyzes": "Nincs"
|
||||
},
|
||||
{
|
||||
"id": "#3",
|
||||
"nev": "Objektum Ottó",
|
||||
"email": "objektum@otto.com",
|
||||
"telefonszam": "06000000003",
|
||||
"irszam": 1657,
|
||||
"varos": "Falufalva",
|
||||
"utca": "Tölgyfa utca",
|
||||
"hazszam": 38,
|
||||
"megjegyzes": "Nincs"
|
||||
},
|
||||
{
|
||||
"id": "4957",
|
||||
"": "asd"
|
||||
},
|
||||
{
|
||||
"id": "4657987",
|
||||
"nev": "Szabó Márton",
|
||||
"email": "digivagyok@gmail.com",
|
||||
"telefonszam": "0620231564",
|
||||
"irszam": "5600",
|
||||
"varos": "Békéscsaba",
|
||||
"utca": "Szabó Pál tér",
|
||||
"hazszam": "7",
|
||||
"megjegyzes": "adasddasasdasdads"
|
||||
},
|
||||
{
|
||||
"id": "123546",
|
||||
"nev": "Patai Olivér",
|
||||
"email": "patai@mail.com",
|
||||
"telefonszam": "061324564",
|
||||
"irszam": "5700",
|
||||
"varos": "Békéscsaba",
|
||||
"utca": "asd",
|
||||
"hazszam": "7",
|
||||
"megjegyzes": "asdasdasdasdasdasdasd"
|
||||
},
|
||||
{
|
||||
"id": "123546",
|
||||
"nev": "Patai Olivér",
|
||||
"email": "patai@mail.com",
|
||||
"telefonszam": "061324564",
|
||||
"irszam": "5700",
|
||||
"varos": "Békéscsaba",
|
||||
"utca": "asd",
|
||||
"hazszam": "7",
|
||||
"megjegyzes": "asdasdasdasdasdasdasd"
|
||||
},
|
||||
{
|
||||
"id": "skibidi",
|
||||
"nev": "toilet",
|
||||
"email": "skibidi@mail.com",
|
||||
"telefonszam": "0620202020",
|
||||
"irszam": "5600",
|
||||
"varos": "Bugyi",
|
||||
"utca": "fő utca",
|
||||
"hazszam": "7",
|
||||
"megjegyzes": "Nincs megjegyzés"
|
||||
},
|
||||
{
|
||||
"id": "skibidi",
|
||||
"nev": "toilet",
|
||||
"email": "skibidi@mail.com",
|
||||
"telefonszam": "0620202020",
|
||||
"irszam": "5600",
|
||||
"varos": "Bugyi",
|
||||
"utca": "fő utca",
|
||||
"hazszam": "7",
|
||||
"megjegyzes": "Nincs megjegyzés"
|
||||
},
|
||||
{
|
||||
"id": "skibidi",
|
||||
"nev": "toilet",
|
||||
"email": "skibidi@mail.com",
|
||||
"telefonszam": "0620202020",
|
||||
"irszam": "5600",
|
||||
"varos": "Bugyi",
|
||||
"utca": "fő utca",
|
||||
"hazszam": "7",
|
||||
"megjegyzes": "Nincs megjegyzés"
|
||||
},
|
||||
{
|
||||
"id": "skibidi",
|
||||
"nev": "toilet",
|
||||
"email": "skibidi@mail.com",
|
||||
"telefonszam": "0620202020",
|
||||
"irszam": "5600",
|
||||
"varos": "Bugyi",
|
||||
"utca": "fő utca",
|
||||
"hazszam": "7",
|
||||
"megjegyzes": "Nincs megjegyzés"
|
||||
},
|
||||
{
|
||||
"id": "skibidi",
|
||||
"nev": "toilet",
|
||||
"email": "skibidi@mail.com",
|
||||
"telefonszam": "0620202020",
|
||||
"irszam": "5600",
|
||||
"varos": "Bugyi",
|
||||
"utca": "fő utca",
|
||||
"hazszam": "7",
|
||||
"megjegyzes": "Nincs megjegyzés"
|
||||
},
|
||||
{
|
||||
"id": "skibidi",
|
||||
"nev": "toilet",
|
||||
"email": "skibidi@mail.com",
|
||||
"telefonszam": "0620202020",
|
||||
"irszam": "5600",
|
||||
"varos": "Bugyi",
|
||||
"utca": "fő utca",
|
||||
"hazszam": "7",
|
||||
"megjegyzes": "Nincs megjegyzés"
|
||||
}
|
||||
]
|
||||
}
|
18206
25_02_24/frontend/package-lock.json
generated
Normal file
43
25_02_24/frontend/package.json
Normal file
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"name": "frontend",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@testing-library/dom": "^10.4.0",
|
||||
"@testing-library/jest-dom": "^6.6.3",
|
||||
"@testing-library/react": "^16.2.0",
|
||||
"@testing-library/user-event": "^13.5.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-router-dom": "^7.2.0",
|
||||
"react-scripts": "5.0.1",
|
||||
"web-vitals": "^2.1.4"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": [
|
||||
"react-app",
|
||||
"react-app/jest"
|
||||
]
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"json-server": "^1.0.0-beta.3"
|
||||
}
|
||||
}
|
BIN
25_02_24/frontend/public/favicon.ico
Normal file
After Width: | Height: | Size: 3.8 KiB |
43
25_02_24/frontend/public/index.html
Normal file
|
@ -0,0 +1,43 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta
|
||||
name="description"
|
||||
content="Web site created using create-react-app"
|
||||
/>
|
||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is installed on a
|
||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||
-->
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<!--
|
||||
Notice the use of %PUBLIC_URL% in the tags above.
|
||||
It will be replaced with the URL of the `public` folder during the build.
|
||||
Only files inside the `public` folder can be referenced from the HTML.
|
||||
|
||||
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||
work correctly both with client-side routing and a non-root public URL.
|
||||
Learn how to configure a non-root public URL by running `npm run build`.
|
||||
-->
|
||||
<title>React App</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
<!--
|
||||
This HTML file is a template.
|
||||
If you open it directly in the browser, you will see an empty page.
|
||||
|
||||
You can add webfonts, meta tags, or analytics to this file.
|
||||
The build step will place the bundled scripts into the <body> tag.
|
||||
|
||||
To begin the development, run `npm start` or `yarn start`.
|
||||
To create a production bundle, use `npm run build` or `yarn build`.
|
||||
-->
|
||||
</body>
|
||||
</html>
|
BIN
25_02_24/frontend/public/logo192.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
25_02_24/frontend/public/logo512.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
25
25_02_24/frontend/public/manifest.json
Normal file
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"short_name": "React App",
|
||||
"name": "Create React App Sample",
|
||||
"icons": [
|
||||
{
|
||||
"src": "favicon.ico",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
},
|
||||
{
|
||||
"src": "logo192.png",
|
||||
"type": "image/png",
|
||||
"sizes": "192x192"
|
||||
},
|
||||
{
|
||||
"src": "logo512.png",
|
||||
"type": "image/png",
|
||||
"sizes": "512x512"
|
||||
}
|
||||
],
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
3
25_02_24/frontend/public/robots.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
38
25_02_24/frontend/src/App.css
Normal file
|
@ -0,0 +1,38 @@
|
|||
.App {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.App-logo {
|
||||
height: 40vmin;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
.App-logo {
|
||||
animation: App-logo-spin infinite 20s linear;
|
||||
}
|
||||
}
|
||||
|
||||
.App-header {
|
||||
background-color: #282c34;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: calc(10px + 2vmin);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.App-link {
|
||||
color: #61dafb;
|
||||
}
|
||||
|
||||
@keyframes App-logo-spin {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
28
25_02_24/frontend/src/App.jsx
Normal file
|
@ -0,0 +1,28 @@
|
|||
import React from 'react';
|
||||
import './App.css';
|
||||
import Header from './components/Header';
|
||||
import Main from './components/Main';
|
||||
import Menu from './components/Menu';
|
||||
import Szallitmanyok from './components/Szallitmanyok';
|
||||
import UjSzallitmany from './components/UjSzallitmany';
|
||||
|
||||
import {BrowserRouter, Route, Routes} from 'react-router-dom';
|
||||
|
||||
|
||||
function App() {
|
||||
return (
|
||||
<>
|
||||
<BrowserRouter>
|
||||
<Header szoveg={"ExPortál futárszolgálat"}></Header>
|
||||
<Menu />
|
||||
<Routes>
|
||||
<Route path="/" element={<Main />} />
|
||||
<Route path="/szallitmanyok" element={<Szallitmanyok/>} />
|
||||
<Route path="/ujszallitmany" element={<UjSzallitmany/>} />
|
||||
<Route path="*" element={<Main />} />
|
||||
</Routes>
|
||||
</BrowserRouter>
|
||||
</>
|
||||
);
|
||||
}
|
||||
export default App;
|
8
25_02_24/frontend/src/App.test.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
import { render, screen } from '@testing-library/react';
|
||||
import App from './App';
|
||||
|
||||
test('renders learn react link', () => {
|
||||
render(<App />);
|
||||
const linkElement = screen.getByText(/learn react/i);
|
||||
expect(linkElement).toBeInTheDocument();
|
||||
});
|
10
25_02_24/frontend/src/components/Header.jsx
Normal file
|
@ -0,0 +1,10 @@
|
|||
import './../styles/Header.css';
|
||||
|
||||
export default function Header({szoveg}){
|
||||
return (
|
||||
<header>
|
||||
<h1>{szoveg}</h1>
|
||||
</header>
|
||||
)
|
||||
}
|
||||
|
18
25_02_24/frontend/src/components/Main.jsx
Normal file
|
@ -0,0 +1,18 @@
|
|||
import hatter from '../images/hatter.jpg';
|
||||
import '../styles/Main.css';
|
||||
|
||||
export default function Main() {
|
||||
return (
|
||||
<>
|
||||
<main className="main" style={{ backgroundImage: `url(${hatter})` }}>
|
||||
<div className="content">
|
||||
<h1>Üdvözöljük futárszolgálatunknál!</h1>
|
||||
<p>
|
||||
Gyors és kényelmes lehetőséget biztosítunk csomagjai nemzetközi szállítására!
|
||||
Felejtse el a kényelmetlen csomagpontokat, mi házhoz megyünk csomagjáért!
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
</>
|
||||
)
|
||||
}
|
14
25_02_24/frontend/src/components/Menu.jsx
Normal file
|
@ -0,0 +1,14 @@
|
|||
import './../styles/Menu.css';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
export default function Menu() {
|
||||
return (
|
||||
<>
|
||||
<div className="menu">
|
||||
<Link to="/" className="menu-item">Főoldal</Link>
|
||||
<Link to="/szallitmanyok" className="menu-item">Szállítmányok</Link>
|
||||
<Link to="/ujszallitmany" className="menu-item">Új szállítmány leadása</Link>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
51
25_02_24/frontend/src/components/Szallitmanyok.jsx
Normal file
|
@ -0,0 +1,51 @@
|
|||
import { useEffect, useState } from "react";
|
||||
import './../styles/Szallitmanyok.css';
|
||||
|
||||
const apiURL = 'http://localhost:8000/szallitmanyok';
|
||||
|
||||
export default function Szallitmanyok() {
|
||||
|
||||
let [szallitmanyok, setSzallitmanyok] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
async function fetchData() {
|
||||
try {
|
||||
let response = await fetch(apiURL);
|
||||
let data = await response.json();
|
||||
setSzallitmanyok(data);
|
||||
} catch (error) {
|
||||
console.error('A Hiba kódja:', error);
|
||||
}
|
||||
}
|
||||
|
||||
fetchData();
|
||||
}, []);
|
||||
|
||||
if (!szallitmanyok) {
|
||||
return <p>Nincs megjeleníthető adat</p>
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
{szallitmanyok.map((szallitmany) => {
|
||||
return (
|
||||
<div className="cards-container" key={szallitmany.id}>
|
||||
<div className="szallitmany-card">
|
||||
<div className="szallitmany-card-body">
|
||||
<h2 className="szallitmany-card-title">{szallitmany.id}</h2>
|
||||
<p className="szallitmany-card-detail">Név: {szallitmany.nev}</p>
|
||||
<p className="szallitmany-card-detail">Email: {szallitmany.email}</p>
|
||||
<p className="szallitmany-card-detail">Telefonszám: {szallitmany.telefonszam}</p>
|
||||
<p className="szallitmany-card-detail">Irányítószám: {szallitmany.irszam}</p>
|
||||
<p className="szallitmany-card-detail">Város: {szallitmany.varos} </p>
|
||||
<p className="szallitmany-card-detail">Utca: {szallitmany.utca} </p>
|
||||
<p className="szallitmany-card-detail">Házszám: {szallitmany.hazszam} </p>
|
||||
<p className="szallitmany-card-detail">Megjegyzés: {szallitmany.megjegyzes} </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
</>
|
||||
)
|
||||
}
|
65
25_02_24/frontend/src/components/UjSzallitmany.jsx
Normal file
|
@ -0,0 +1,65 @@
|
|||
import './../styles/UjSzallitmany.css';
|
||||
import { useState } from 'react';
|
||||
|
||||
export default function UjSzallitmany() {
|
||||
const [szallitmany, setSzallitmany] = useState({});
|
||||
|
||||
const handleSubmit = async (event) => {
|
||||
event.preventDefault();
|
||||
try {
|
||||
let response = await fetch('http://localhost:8000/szallitmanyok', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(szallitmany)
|
||||
});
|
||||
if (response.ok) {
|
||||
alert('Szállítmány felvéve!');
|
||||
} else {
|
||||
alert('Hiba történt a szállítmány felvétele során!');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('A hiba kódja:', error);
|
||||
}
|
||||
}
|
||||
|
||||
const handleChange = (event) => {
|
||||
let name = event.target.name;
|
||||
let value = event.target.value;
|
||||
setSzallitmany({
|
||||
...szallitmany,
|
||||
[name]: value
|
||||
})
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div>
|
||||
<form onSubmit={handleSubmit} action="/" >
|
||||
<div>
|
||||
<label>Adjon meg egy egyedi azonosítót:</label>
|
||||
<input type='text' name='id' value={ szallitmany.id} onChange={handleChange} required />
|
||||
<label>Adja meg nevét:</label>
|
||||
<input type='text' name='nev' value={szallitmany.nev} onChange={handleChange} required />
|
||||
<label>Adja meg az email címét:</label>
|
||||
<input type='text' name='email' value={szallitmany.email} onChange={handleChange} required />
|
||||
<label>Adja meg a telefonszámát:</label>
|
||||
<input type='tel' name='telefonszam' value={szallitmany.telefonszam} onChange={handleChange} required />
|
||||
<label>Adjon meg a irányítószámot:</label>
|
||||
<input type='number' name='irszam' value={szallitmany.irszam} onChange={handleChange} required />
|
||||
<label>Adja meg a városát:</label>
|
||||
<input type='text' name='varos' value={szallitmany.varos} onChange={handleChange} required />
|
||||
<label>Adja meg a utcáját:</label>
|
||||
<input type='text' name='utca' value={szallitmany.utca} onChange={handleChange} required />
|
||||
<label>Adja meg a házszámát:</label>
|
||||
<input type='number' name='hazszam' value={szallitmany.hazszam} onChange={handleChange} required />
|
||||
<label>Megjegyzés (Opcionális):</label>
|
||||
<input type='textarea' name='megjegyzes' value={szallitmany.megjegyzes} onChange={handleChange} />
|
||||
<button type='submit'>Szállítmány felvétele</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
BIN
25_02_24/frontend/src/images/hatter.jpg
Normal file
After Width: | Height: | Size: 772 KiB |
13
25_02_24/frontend/src/index.css
Normal file
|
@ -0,0 +1,13 @@
|
|||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||
sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
|
||||
monospace;
|
||||
}
|
17
25_02_24/frontend/src/index.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
import React from 'react';
|
||||
import ReactDOM from 'react-dom/client';
|
||||
import './index.css';
|
||||
import App from './App';
|
||||
import reportWebVitals from './reportWebVitals';
|
||||
|
||||
const root = ReactDOM.createRoot(document.getElementById('root'));
|
||||
root.render(
|
||||
<React.StrictMode>
|
||||
<App />
|
||||
</React.StrictMode>
|
||||
);
|
||||
|
||||
// If you want to start measuring performance in your app, pass a function
|
||||
// to log results (for example: reportWebVitals(console.log))
|
||||
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
||||
reportWebVitals();
|
1
25_02_24/frontend/src/logo.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#61DAFB"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg>
|
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.5 MiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 42 KiB |
|
@ -0,0 +1,25 @@
|
|||
<div>
|
||||
<form onSubmit={}>
|
||||
<div>
|
||||
<label>Adjon meg egy egyedi azonosítót:</label>
|
||||
<input type='text' value={} onChange={} required/>
|
||||
<label>Adja meg nevét:</label>
|
||||
<input type='text' value={} onChange={} required/>
|
||||
<label>Adja meg az email címét:</label>
|
||||
<input type='text' value={} onChange={} required/>
|
||||
<label>Adja meg a telefonszámát:</label>
|
||||
<input type='tel' value={} onChange={} required/>
|
||||
<label>Adjon meg a irányítószámot:</label>
|
||||
<input type='number' value={} onChange={} required/>
|
||||
<label>Adja meg a városát:</label>
|
||||
<input type='text' value={} onChange={} required/>
|
||||
<label>Adja meg a utcáját:</label>
|
||||
<input type='text' value={} onChange={} required/>
|
||||
<label>Adja meg a házszámát:</label>
|
||||
<input type='number' value={} onChange={} required/>
|
||||
<label>Megjegyzés (Opcionális):</label>
|
||||
<input type='textarea' value={} onChange={}/>
|
||||
<button type='submit'>Szállítmány felvétele</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
9
25_02_24/frontend/src/mellekletek/sablonok/main.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
<main className="main" style={{ backgroundImage: `url(${})` }}>
|
||||
<div className="content">
|
||||
<h1>Üdvözöljük futárszolgálatunknál!</h1>
|
||||
<p>
|
||||
Gyors és kényelmes lehetőséget biztosítunk csomagjai nemzetközi szállítására!
|
||||
Felejtse el a kényelmetlen csomagpontokat, mi házhoz megyünk csomagjáért!
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
5
25_02_24/frontend/src/mellekletek/sablonok/menu.html
Normal file
|
@ -0,0 +1,5 @@
|
|||
<div className="menu">
|
||||
<a className="menu-item">Főoldal</a>
|
||||
<a className="menu-item">Szállítmányok</a>
|
||||
<a className="menu-item">Új szállítmány leadása</a>
|
||||
</div>
|
|
@ -0,0 +1,15 @@
|
|||
<div className="cards-container">
|
||||
<div className="szallitmany-card">
|
||||
<div className="szallitmany-card-body">
|
||||
<h2 className="szallitmany-card-title"></h2>
|
||||
<p className="szallitmany-card-detail">Név: </p>
|
||||
<p className="szallitmany-card-detail">Email: </p>
|
||||
<p className="szallitmany-card-detail">Telefonszám: </p>
|
||||
<p className="szallitmany-card-detail">Irányítószám: </p>
|
||||
<p className="szallitmany-card-detail">Város: </p>
|
||||
<p className="szallitmany-card-detail">Utca: </p>
|
||||
<p className="szallitmany-card-detail">Házszám: </p>
|
||||
<p className="szallitmany-card-detail">Megjegyzés: </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
13
25_02_24/frontend/src/reportWebVitals.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
const reportWebVitals = onPerfEntry => {
|
||||
if (onPerfEntry && onPerfEntry instanceof Function) {
|
||||
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
|
||||
getCLS(onPerfEntry);
|
||||
getFID(onPerfEntry);
|
||||
getFCP(onPerfEntry);
|
||||
getLCP(onPerfEntry);
|
||||
getTTFB(onPerfEntry);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export default reportWebVitals;
|
5
25_02_24/frontend/src/setupTests.js
Normal file
|
@ -0,0 +1,5 @@
|
|||
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
||||
// allows you to do things like:
|
||||
// expect(element).toHaveTextContent(/react/i)
|
||||
// learn more: https://github.com/testing-library/jest-dom
|
||||
import '@testing-library/jest-dom';
|
11
25_02_24/frontend/src/styles/Header.css
Normal file
|
@ -0,0 +1,11 @@
|
|||
header {
|
||||
background-color: #1e3a8a;
|
||||
color: white;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 0;
|
||||
font-size: 2.5rem;
|
||||
}
|
29
25_02_24/frontend/src/styles/Main.css
Normal file
|
@ -0,0 +1,29 @@
|
|||
.main {
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: white;
|
||||
padding: 50px 20px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.content {
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
padding: 20px;
|
||||
border-radius: 10px;
|
||||
max-width: 800px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 1.2rem;
|
||||
}
|
23
25_02_24/frontend/src/styles/Menu.css
Normal file
|
@ -0,0 +1,23 @@
|
|||
|
||||
.menu {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 20px 0;
|
||||
background-color: #2563eb;
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
color: #000000;
|
||||
text-decoration: none;
|
||||
background-color: #ffffff;
|
||||
padding: 10px 20px;
|
||||
margin: 0 10px;
|
||||
border-radius: 5px;
|
||||
transition: background-color 0.3s ease;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.menu-item:hover {
|
||||
background-color: #9c9a9a;
|
||||
}
|
43
25_02_24/frontend/src/styles/Szallitmanyok.css
Normal file
|
@ -0,0 +1,43 @@
|
|||
.cards-container {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-evenly;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.szallitmany-card {
|
||||
width: 300px;
|
||||
background-color: #2563eb;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
|
||||
margin: 15px;
|
||||
overflow: hidden;
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
}
|
||||
|
||||
.szallitmany-card:hover {
|
||||
transform: translateY(-10px);
|
||||
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.szallitmany-card-body {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.szallitmany-card-title {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
color: #ffffff;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.szallitmany-card-detail {
|
||||
font-size: 16px;
|
||||
color: #ffffff;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.szallitmany-card-detail:first-child {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
57
25_02_24/frontend/src/styles/UjSzallitmany.css
Normal file
|
@ -0,0 +1,57 @@
|
|||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
background-color: #fcfafa;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
form {
|
||||
background-color: #2563eb;
|
||||
max-width: 500px;
|
||||
margin: 20px auto;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0px 4px 10px rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
label {
|
||||
font-weight: bold;
|
||||
color: #ffffff;
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
input {
|
||||
width: 100%;
|
||||
padding: 8px;
|
||||
margin-top: 5px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
font-size: 16px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
input[name="megjegyzes"] {
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
button {
|
||||
background-color: #ffffff;
|
||||
color: rgb(0, 0, 0);
|
||||
font-size: 16px;
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
margin-top: 15px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: #9c9a9a;
|
||||
}
|
16
25_02_24/node_modules/.bin/json-server
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../json-server/lib/bin.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../json-server/lib/bin.js" "$@"
|
||||
fi
|
17
25_02_24/node_modules/.bin/json-server.cmd
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\json-server\lib\bin.js" %*
|
28
25_02_24/node_modules/.bin/json-server.ps1
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../json-server/lib/bin.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../json-server/lib/bin.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../json-server/lib/bin.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../json-server/lib/bin.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
16
25_02_24/node_modules/.bin/json5
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../json5/lib/cli.js" "$@"
|
||||
fi
|
17
25_02_24/node_modules/.bin/json5.cmd
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\json5\lib\cli.js" %*
|
28
25_02_24/node_modules/.bin/json5.ps1
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
16
25_02_24/node_modules/.bin/mime
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../mime/bin/cli.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../mime/bin/cli.js" "$@"
|
||||
fi
|
17
25_02_24/node_modules/.bin/mime.cmd
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\bin\cli.js" %*
|
28
25_02_24/node_modules/.bin/mime.ps1
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../mime/bin/cli.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../mime/bin/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../mime/bin/cli.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../mime/bin/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
539
25_02_24/node_modules/.package-lock.json
generated
vendored
Normal file
|
@ -0,0 +1,539 @@
|
|||
{
|
||||
"name": "25_02_24",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"node_modules/@polka/url": {
|
||||
"version": "1.0.0-next.28",
|
||||
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
|
||||
"integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@tinyhttp/accepts": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/accepts/-/accepts-2.2.3.tgz",
|
||||
"integrity": "sha512-9pQN6pJAJOU3McmdJWTcyq7LLFW8Lj5q+DadyKcvp+sxMkEpktKX5sbfJgJuOvjk6+1xWl7pe0YL1US1vaO/1w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"mime": "4.0.4",
|
||||
"negotiator": "^0.6.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "individual",
|
||||
"url": "https://github.com/tinyhttp/tinyhttp?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/app": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/app/-/app-2.5.2.tgz",
|
||||
"integrity": "sha512-DcB3Y8GQppLQlO2VxRYF7LzTEAoZb+VRQXuIsErcu2fNaM1xdx6NQZDso5rlZUiaeg6KYYRfU34N4XkZbv6jSA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@tinyhttp/cookie": "2.1.1",
|
||||
"@tinyhttp/proxy-addr": "2.2.1",
|
||||
"@tinyhttp/req": "2.2.5",
|
||||
"@tinyhttp/res": "2.2.5",
|
||||
"@tinyhttp/router": "2.2.3",
|
||||
"header-range-parser": "1.1.3",
|
||||
"regexparam": "^2.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.21.3"
|
||||
},
|
||||
"funding": {
|
||||
"type": "individual",
|
||||
"url": "https://github.com/tinyhttp/tinyhttp?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/content-disposition": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.2.2.tgz",
|
||||
"integrity": "sha512-crXw1txzrS36huQOyQGYFvhTeLeG0Si1xu+/l6kXUVYpE0TjFjEZRqTbuadQLfKGZ0jaI+jJoRyqaWwxOSHW2g==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "individual",
|
||||
"url": "https://github.com/tinyhttp/tinyhttp?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/content-type": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/content-type/-/content-type-0.1.4.tgz",
|
||||
"integrity": "sha512-dl6f3SHIJPYbhsW1oXdrqOmLSQF/Ctlv3JnNfXAE22kIP7FosqJHxkz/qj2gv465prG8ODKH5KEyhBkvwrueKQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/cookie": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/cookie/-/cookie-2.1.1.tgz",
|
||||
"integrity": "sha512-h/kL9jY0e0Dvad+/QU3efKZww0aTvZJslaHj3JTPmIPC9Oan9+kYqmh3M6L5JUQRuTJYFK2nzgL2iJtH2S+6dA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "individual",
|
||||
"url": "https://github.com/tinyhttp/tinyhttp?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/cookie-signature": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/cookie-signature/-/cookie-signature-2.1.1.tgz",
|
||||
"integrity": "sha512-VDsSMY5OJfQJIAtUgeQYhqMPSZptehFSfvEEtxr+4nldPA8IImlp3QVcOVuK985g4AFR4Hl1sCbWCXoqBnVWnw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/cors": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/cors/-/cors-2.0.1.tgz",
|
||||
"integrity": "sha512-qrmo6WJuaiCzKWagv2yA/kw6hIISfF/hOqPWwmI6w0o8apeTMmRN3DoCFvQ/wNVuWVdU5J4KU7OX8aaSOEq51A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@tinyhttp/vary": "^0.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20 || 14.x || >=16"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/encode-url": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/encode-url/-/encode-url-2.1.1.tgz",
|
||||
"integrity": "sha512-AhY+JqdZ56qV77tzrBm0qThXORbsVjs/IOPgGCS7x/wWnsa/Bx30zDUU/jPAUcSzNOzt860x9fhdGpzdqbUeUw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/etag": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/etag/-/etag-2.1.2.tgz",
|
||||
"integrity": "sha512-j80fPKimGqdmMh6962y+BtQsnYPVCzZfJw0HXjyH70VaJBHLKGF+iYhcKqzI3yef6QBNa8DKIPsbEYpuwApXTw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/forwarded": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/forwarded/-/forwarded-2.1.2.tgz",
|
||||
"integrity": "sha512-9H/eulJ68ElY/+zYpTpNhZ7vxGV+cnwaR6+oQSm7bVgZMyuQfgROW/qvZuhmgDTIxnGMXst+Ba4ij6w6Krcs3w==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/logger": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/logger/-/logger-2.0.0.tgz",
|
||||
"integrity": "sha512-8DfLQjGDIaIJeivYamVrrpmwmsGwS8wt2DGvzlcY5HEBagdiI4QJy/veAFcUHuaJqufn4wLwmn4q5VUkW8BCpQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"colorette": "^2.0.20",
|
||||
"dayjs": "^1.11.10",
|
||||
"http-status-emojis": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.18 || >=16.20"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/proxy-addr": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/proxy-addr/-/proxy-addr-2.2.1.tgz",
|
||||
"integrity": "sha512-BicqMqVI91hHq2BQmnqJUh0FQUnx7DncwSGgu2ghlh+JZG2rHK2ZN/rXkfhrx1rrUw6hnd0L36O8GPMh01+dDQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@tinyhttp/forwarded": "2.1.2",
|
||||
"ipaddr.js": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/req": {
|
||||
"version": "2.2.5",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/req/-/req-2.2.5.tgz",
|
||||
"integrity": "sha512-trfsXwtmsNjMcGKcLJ+45h912kLRqBQCQD06ams3Tq0kf4gHLxjHjoYOC1Z9yGjOn81XllRx8wqvnvr+Kbe3gw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@tinyhttp/accepts": "2.2.3",
|
||||
"@tinyhttp/type-is": "2.2.4",
|
||||
"@tinyhttp/url": "2.1.1",
|
||||
"header-range-parser": "^1.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/res": {
|
||||
"version": "2.2.5",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/res/-/res-2.2.5.tgz",
|
||||
"integrity": "sha512-yBsqjWygpuKAVz4moWlP4hqzwiDDqfrn2mA0wviJAcgvGiyOErtlQwXY7aj3aPiCpURvxvEFO//Gdy6yV+xEpA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@tinyhttp/content-disposition": "2.2.2",
|
||||
"@tinyhttp/cookie": "2.1.1",
|
||||
"@tinyhttp/cookie-signature": "2.1.1",
|
||||
"@tinyhttp/encode-url": "2.1.1",
|
||||
"@tinyhttp/req": "2.2.5",
|
||||
"@tinyhttp/send": "2.2.3",
|
||||
"@tinyhttp/vary": "^0.1.3",
|
||||
"es-escape-html": "^0.1.1",
|
||||
"mime": "4.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/router": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/router/-/router-2.2.3.tgz",
|
||||
"integrity": "sha512-O0MQqWV3Vpg/uXsMYg19XsIgOhwjyhTYWh51Qng7bxqXixxx2PEvZWnFjP7c84K7kU/nUX41KpkEBTLnznk9/Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/send": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/send/-/send-2.2.3.tgz",
|
||||
"integrity": "sha512-o4cVHHGQ8WjVBS8UT0EE/2WnjoybrfXikHwsRoNlG1pfrC/Sd01u1N4Te8cOd/9aNGLr4mGxWb5qTm2RRtEi7g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@tinyhttp/content-type": "^0.1.4",
|
||||
"@tinyhttp/etag": "2.1.2",
|
||||
"mime": "4.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/type-is": {
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/type-is/-/type-is-2.2.4.tgz",
|
||||
"integrity": "sha512-7F328NheridwjIfefBB2j1PEcKKABpADgv7aCJaE8x8EON77ZFrAkI3Rir7pGjopV7V9MBmW88xUQigBEX2rmQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@tinyhttp/content-type": "^0.1.4",
|
||||
"mime": "4.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/url": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/url/-/url-2.1.1.tgz",
|
||||
"integrity": "sha512-POJeq2GQ5jI7Zrdmj22JqOijB5/GeX+LEX7DUdml1hUnGbJOTWDx7zf2b5cCERj7RoXL67zTgyzVblBJC+NJWg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tinyhttp/vary": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@tinyhttp/vary/-/vary-0.1.3.tgz",
|
||||
"integrity": "sha512-SoL83sQXAGiHN1jm2VwLUWQSQeDAAl1ywOm6T0b0Cg1CZhVsjoiZadmjhxF6FHCCY7OHHVaLnTgSMxTPIDLxMg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.20"
|
||||
}
|
||||
},
|
||||
"node_modules/chalk": {
|
||||
"version": "5.4.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
|
||||
"integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.17.0 || ^14.13 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/chokidar": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
|
||||
"integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"readdirp": "^4.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 14.16.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
}
|
||||
},
|
||||
"node_modules/colorette": {
|
||||
"version": "2.0.20",
|
||||
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
|
||||
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/dayjs": {
|
||||
"version": "1.11.13",
|
||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
|
||||
"integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/dot-prop": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz",
|
||||
"integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"type-fest": "^4.18.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/es-escape-html": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es-escape-html/-/es-escape-html-0.1.1.tgz",
|
||||
"integrity": "sha512-yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.x"
|
||||
}
|
||||
},
|
||||
"node_modules/eta": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/eta/-/eta-3.5.0.tgz",
|
||||
"integrity": "sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/eta-dev/eta?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/header-range-parser": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/header-range-parser/-/header-range-parser-1.1.3.tgz",
|
||||
"integrity": "sha512-B9zCFt3jH8g09LR1vHL4pcAn8yMEtlSlOUdQemzHMRKMImNIhhszdeosYFfNW0WXKQtXIlWB+O4owHJKvEJYaA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/http-status-emojis": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-status-emojis/-/http-status-emojis-2.2.0.tgz",
|
||||
"integrity": "sha512-ompKtgwpx8ff0hsbpIB7oE4ax1LXoHmftsHHStMELX56ivG3GhofTX8ZHWlUaFKfGjcGjw6G3rPk7dJRXMmbbg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/inflection": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/inflection/-/inflection-3.0.2.tgz",
|
||||
"integrity": "sha512-+Bg3+kg+J6JUWn8J6bzFmOWkTQ6L/NHfDRSYU+EVvuKHDxUDHAXgqixHfVlzuBQaPOTac8hn43aPhMNk6rMe3g==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ipaddr.js": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
|
||||
"integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/json-server": {
|
||||
"version": "1.0.0-beta.3",
|
||||
"resolved": "https://registry.npmjs.org/json-server/-/json-server-1.0.0-beta.3.tgz",
|
||||
"integrity": "sha512-DwE69Ep5ccwIJZBUIWEENC30Yj8bwr4Ax9W9VoIWAYnB8Sj4ReptscO8/DRHv/nXwVlmb3Bk73Ls86+VZdYkkA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@tinyhttp/app": "^2.4.0",
|
||||
"@tinyhttp/cors": "^2.0.1",
|
||||
"@tinyhttp/logger": "^2.0.0",
|
||||
"chalk": "^5.3.0",
|
||||
"chokidar": "^4.0.1",
|
||||
"dot-prop": "^9.0.0",
|
||||
"eta": "^3.5.0",
|
||||
"inflection": "^3.0.0",
|
||||
"json5": "^2.2.3",
|
||||
"lowdb": "^7.0.1",
|
||||
"milliparsec": "^4.0.0",
|
||||
"sirv": "^2.0.4",
|
||||
"sort-on": "^6.1.0"
|
||||
},
|
||||
"bin": {
|
||||
"json-server": "lib/bin.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.3"
|
||||
}
|
||||
},
|
||||
"node_modules/json5": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
||||
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"json5": "lib/cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/lowdb": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lowdb/-/lowdb-7.0.1.tgz",
|
||||
"integrity": "sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"steno": "^4.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/typicode"
|
||||
}
|
||||
},
|
||||
"node_modules/milliparsec": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/milliparsec/-/milliparsec-4.0.0.tgz",
|
||||
"integrity": "sha512-/wk9d4Z6/9ZvoEH/6BI4TrTCgmkpZPuSRN/6fI9aUHOfXdNTuj/VhLS7d+NqG26bi6L9YmGXutVYvWC8zQ0qtA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
}
|
||||
},
|
||||
"node_modules/mime": {
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-4.0.4.tgz",
|
||||
"integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
"https://github.com/sponsors/broofa"
|
||||
],
|
||||
"bin": {
|
||||
"mime": "bin/cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/mrmime": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
|
||||
"integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/negotiator": {
|
||||
"version": "0.6.4",
|
||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
|
||||
"integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/readdirp": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
|
||||
"integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 14.18.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "individual",
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
}
|
||||
},
|
||||
"node_modules/regexparam": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.2.tgz",
|
||||
"integrity": "sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/sirv": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
|
||||
"integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@polka/url": "^1.0.0-next.24",
|
||||
"mrmime": "^2.0.0",
|
||||
"totalist": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/sort-on": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/sort-on/-/sort-on-6.1.0.tgz",
|
||||
"integrity": "sha512-WTECP0nYNWO1n2g5bpsV0yZN9cBmZsF8ThHFbOqVN0HBFRoaQZLLEMvMmJlKHNPYQeVngeI5+jJzIfFqOIo1OA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"dot-prop": "^9.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/steno": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/steno/-/steno-4.0.2.tgz",
|
||||
"integrity": "sha512-yhPIQXjrlt1xv7dyPQg2P17URmXbuM5pdGkpiMB3RenprfiBlvK415Lctfe0eshk90oA7/tNq7WEiMK8RSP39A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/typicode"
|
||||
}
|
||||
},
|
||||
"node_modules/totalist": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
|
||||
"integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/type-fest": {
|
||||
"version": "4.35.0",
|
||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.35.0.tgz",
|
||||
"integrity": "sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
42
25_02_24/node_modules/@polka/url/build.js
generated
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
const qs = require('querystring');
|
||||
|
||||
/**
|
||||
* @typedef ParsedURL
|
||||
* @type {import('.').ParsedURL}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef Request
|
||||
* @property {string} url
|
||||
* @property {ParsedURL} _parsedUrl
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {Request} req
|
||||
* @returns {ParsedURL|void}
|
||||
*/
|
||||
function parse(req) {
|
||||
let raw = req.url;
|
||||
if (raw == null) return;
|
||||
|
||||
let prev = req._parsedUrl;
|
||||
if (prev && prev.raw === raw) return prev;
|
||||
|
||||
let pathname=raw, search='', query;
|
||||
|
||||
if (raw.length > 1) {
|
||||
let idx = raw.indexOf('?', 1);
|
||||
|
||||
if (idx !== -1) {
|
||||
search = raw.substring(idx);
|
||||
pathname = raw.substring(0, idx);
|
||||
if (search.length > 1) {
|
||||
query = qs.parse(search.substring(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return req._parsedUrl = { pathname, search, query, raw };
|
||||
}
|
||||
|
||||
exports.parse = parse;
|
40
25_02_24/node_modules/@polka/url/build.mjs
generated
vendored
Normal file
|
@ -0,0 +1,40 @@
|
|||
import * as qs from 'node:querystring';
|
||||
|
||||
/**
|
||||
* @typedef ParsedURL
|
||||
* @type {import('.').ParsedURL}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef Request
|
||||
* @property {string} url
|
||||
* @property {ParsedURL} _parsedUrl
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {Request} req
|
||||
* @returns {ParsedURL|void}
|
||||
*/
|
||||
export function parse(req) {
|
||||
let raw = req.url;
|
||||
if (raw == null) return;
|
||||
|
||||
let prev = req._parsedUrl;
|
||||
if (prev && prev.raw === raw) return prev;
|
||||
|
||||
let pathname=raw, search='', query;
|
||||
|
||||
if (raw.length > 1) {
|
||||
let idx = raw.indexOf('?', 1);
|
||||
|
||||
if (idx !== -1) {
|
||||
search = raw.substring(idx);
|
||||
pathname = raw.substring(0, idx);
|
||||
if (search.length > 1) {
|
||||
query = qs.parse(search.substring(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return req._parsedUrl = { pathname, search, query, raw };
|
||||
}
|
10
25_02_24/node_modules/@polka/url/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
import type { IncomingMessage } from 'http';
|
||||
|
||||
export interface ParsedURL {
|
||||
pathname: string;
|
||||
search: string;
|
||||
query: Record<string, string | string[]> | void;
|
||||
raw: string;
|
||||
}
|
||||
|
||||
export function parse(req: IncomingMessage): ParsedURL;
|
30
25_02_24/node_modules/@polka/url/package.json
generated
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"version": "1.0.0-next.28",
|
||||
"name": "@polka/url",
|
||||
"repository": "lukeed/polka",
|
||||
"description": "Super fast, memoized `req.url` parser",
|
||||
"module": "build.mjs",
|
||||
"types": "index.d.ts",
|
||||
"main": "build.js",
|
||||
"license": "MIT",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./index.d.ts",
|
||||
"import": "./build.mjs",
|
||||
"require": "./build.js"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"files": [
|
||||
"build.*",
|
||||
"index.d.*"
|
||||
],
|
||||
"author": {
|
||||
"name": "Luke Edwards",
|
||||
"email": "luke@lukeed.com",
|
||||
"url": "https://lukeed.com"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
68
25_02_24/node_modules/@polka/url/readme.md
generated
vendored
Normal file
|
@ -0,0 +1,68 @@
|
|||
# @polka/url [](https://npmjs.org/package/@polka/url) [](https://licenses.dev/npm/%40polka%2Furl)
|
||||
|
||||
> Super fast, memoized `req.url` parser; _not_ limited to [Polka][polka]!
|
||||
|
||||
Parses the `url` from a [`IncomingMessage`](https://nodejs.org/api/http.html#http_class_http_incomingmessage) request. The returned object will always only contain the following keys: `search`, `query`, `pathname`, and `raw`.
|
||||
|
||||
> **Note:** This library does not process `protocol`, `hostname`, `port`, etc.<br>This is because the incoming `req.url` value only begins with the path information.
|
||||
|
||||
Parsed requests will be mutated with a `_parsedUrl` key, containing the returned output. This is used for future memoization, avoiding the need to fully parse the same `url` value multiple times.
|
||||
|
||||
## Install
|
||||
|
||||
```
|
||||
$ npm install --save @polka/url
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
const parse = require('@polka/url');
|
||||
|
||||
let req = {
|
||||
url: '/foo/bar?fizz=buzz'
|
||||
};
|
||||
let output = parse(req);
|
||||
//=> {
|
||||
//=> pathname: '/foo/bar',
|
||||
//=> raw: '/foo/bar?fizz=buzz',
|
||||
//=> search: '?fizz=buzz',
|
||||
//=> query: {
|
||||
//=> fizz: 'buzz'
|
||||
//=> },
|
||||
//=> }
|
||||
|
||||
// Attaches result for future memoization
|
||||
assert.deepEqual(output, req._parsedUrl); //=> true
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### url(req)
|
||||
Returns: `Object` or `undefined`
|
||||
|
||||
> **Important:** The `req` must have a `url` key, otherwise `undefined` will be returned.<br>If no input is provided at all, a `TypeError` will be thrown.
|
||||
|
||||
#### req
|
||||
Type: `IncomingMessage` or `{ url: string }`
|
||||
|
||||
The incoming HTTP request (`req`) or a plain `Object` with a `url` key.
|
||||
|
||||
> **Note:** In Node.js servers, the [`req.url`](https://nodejs.org/api/http.html#http_message_url) begins with a pathname & does not include a `hash`.
|
||||
|
||||
|
||||
## Benchmarks
|
||||
|
||||
Check out the [`bench`](/bench) directory for in-depth benchmark results and comparisons.
|
||||
|
||||
|
||||
## Support
|
||||
|
||||
Any issues or questions can be sent to the [Polka][polka] repository.<br>However, please specify that your inquiry is about `@polka/url` specifically.
|
||||
|
||||
|
||||
## License
|
||||
|
||||
MIT © [Luke Edwards](https://lukeed.com)
|
||||
|
||||
[polka]: https://github.com/lukeed/polka
|
21
25_02_24/node_modules/@tinyhttp/accepts/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2020 v 1 r t l
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
117
25_02_24/node_modules/@tinyhttp/accepts/README.md
generated
vendored
Normal file
|
@ -0,0 +1,117 @@
|
|||
# @tinyhttp/accepts
|
||||
|
||||
> [`accepts`](https://github.com/jshttp/accepts) rewrite in TypeScript.
|
||||
|
||||
Higher level content negotiation based on
|
||||
[negotiator](https://www.npmjs.com/package/negotiator). Extracted from
|
||||
[koa](https://www.npmjs.com/package/koa) for general use.
|
||||
|
||||
In addition to negotiator, it allows:
|
||||
|
||||
- Allows types as an array or arguments list, ie
|
||||
`(['text/html', 'application/json'])` as well as
|
||||
`('text/html', 'application/json')`.
|
||||
- Allows type shorthands such as `json`.
|
||||
- Returns `false` when no types match
|
||||
- Treats non-existent headers as `*`
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
pnpm i @tinyhttp/accepts
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
```ts
|
||||
import { Accepts } from '@tinyhttp/accepts'
|
||||
```
|
||||
|
||||
### accepts(req)
|
||||
|
||||
Create a new `Accepts` object for the given `req`.
|
||||
|
||||
#### `.charset(charsets)`
|
||||
|
||||
Return the first accepted charset. If nothing in `charsets` is accepted, then
|
||||
`false` is returned.
|
||||
|
||||
#### `.charsets()`
|
||||
|
||||
Return the charsets that the request accepts, in the order of the client's
|
||||
preference (most preferred first).
|
||||
|
||||
#### `.encoding(encodings)`
|
||||
|
||||
Return the first accepted encoding. If nothing in `encodings` is accepted, then
|
||||
`false` is returned.
|
||||
|
||||
#### `.encodings()`
|
||||
|
||||
Return the encodings that the request accepts, in the order of the client's
|
||||
preference (most preferred first).
|
||||
|
||||
#### `.language(languages)`
|
||||
|
||||
Return the first accepted language. If nothing in `languages` is accepted, then
|
||||
`false` is returned.
|
||||
|
||||
#### `.languages()`
|
||||
|
||||
Return the languages that the request accepts, in the order of the client's
|
||||
preference (most preferred first).
|
||||
|
||||
#### `.type(types)`
|
||||
|
||||
Return the first accepted type (and it is returned as the same text as what
|
||||
appears in the `types` array). If nothing in `types` is accepted, then `false`
|
||||
is returned.
|
||||
|
||||
The `types` array can contain full MIME types or file extensions. Any value that
|
||||
is not a full MIME types is passed to `require('mime-types').lookup`.
|
||||
|
||||
#### `.types()`
|
||||
|
||||
Return the types that the request accepts, in the order of the client's
|
||||
preference (most preferred first).
|
||||
|
||||
## Example
|
||||
|
||||
This simple example shows how to use `accepts` to return a different typed
|
||||
respond body based on what the client wants to accept. The server lists it's
|
||||
preferences in order and will get back the best match between the client and
|
||||
server.
|
||||
|
||||
```ts
|
||||
import Accepts from '@tinyhttp/accepts'
|
||||
import { createServer } from 'node:http'
|
||||
|
||||
createServer((req, res) => {
|
||||
const accept = new Accepts(req)
|
||||
|
||||
// the order of this list is significant; should be server preferred order
|
||||
switch (accept.type(['json', 'html'])) {
|
||||
case 'json':
|
||||
res.setHeader('Content-Type', 'application/json')
|
||||
res.write('{"hello":"world!"}')
|
||||
break
|
||||
case 'html':
|
||||
res.setHeader('Content-Type', 'text/html')
|
||||
res.write('<b>hello, world!</b>')
|
||||
break
|
||||
default:
|
||||
// the fallback is text/plain, so no need to specify it above
|
||||
res.setHeader('Content-Type', 'text/plain')
|
||||
res.write('hello, world!')
|
||||
break
|
||||
}
|
||||
|
||||
res.end()
|
||||
}).listen(3000)
|
||||
```
|
||||
|
||||
You can test this out with the cURL program:
|
||||
|
||||
```sh
|
||||
curl -I -H 'Accept: text/html' http://localhost:3000/
|
||||
```
|
48
25_02_24/node_modules/@tinyhttp/accepts/dist/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,48 @@
|
|||
import type { IncomingMessage as I, IncomingHttpHeaders } from 'node:http';
|
||||
import Negotiator from 'negotiator';
|
||||
export declare class Accepts {
|
||||
headers: IncomingHttpHeaders;
|
||||
negotiator: Negotiator;
|
||||
constructor(req: Pick<I, 'headers'>);
|
||||
/**
|
||||
* Check if the given `type(s)` is acceptable, returning the best match when true, otherwise `false`, in which case you should respond with 406 "Not Acceptable".
|
||||
*
|
||||
* The `type` value may be a single mime type string such as "application/json", the extension name such as "json" or an array `["json", "html", "text/plain"]`. When a list or array is given the _best_ match, if any is returned. When no types are given as arguments, returns all types accepted by the client in the preference order.
|
||||
*/
|
||||
types(types: string | string[], ...args: string[]): string[] | string | false;
|
||||
get type(): (types: string | string[], ...args: string[]) => string[] | string | false;
|
||||
/**
|
||||
* Return accepted encodings or best fit based on `encodings`.
|
||||
*
|
||||
* Given `Accept-Encoding: gzip, deflate`
|
||||
* an array sorted by quality is returned:
|
||||
*
|
||||
* ['gzip', 'deflate']
|
||||
*/
|
||||
encodings(encodings: string | string[], ...args: string[]): string | string[] | boolean;
|
||||
get encoding(): (encodings: string | string[], ...args: string[]) => string | string[] | boolean;
|
||||
/**
|
||||
* Return accepted charsets or best fit based on `charsets`.
|
||||
*
|
||||
* Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
|
||||
* an array sorted by quality is returned:
|
||||
*
|
||||
* ['utf-8', 'utf-7', 'iso-8859-1']
|
||||
*/
|
||||
charsets(charsets?: string | string[], ...args: string[]): string | string[] | boolean;
|
||||
get charset(): (charsets: string | string[], ...args: string[]) => string | string[] | boolean;
|
||||
/**
|
||||
* Return accepted languages or best fit based on `langs`.
|
||||
*
|
||||
* Given `Accept-Language: en;q=0.8, es, pt`
|
||||
* an array sorted by quality is returned:
|
||||
*
|
||||
* ['es', 'pt', 'en']
|
||||
*
|
||||
*/
|
||||
languages(languages: string | string[], ...args: string[]): string | string[] | boolean;
|
||||
get lang(): (languages: string | string[], ...args: string[]) => string | string[] | boolean;
|
||||
get langs(): (languages: string | string[], ...args: string[]) => string | string[] | boolean;
|
||||
get language(): (languages: string | string[], ...args: string[]) => string | string[] | boolean;
|
||||
}
|
||||
//# sourceMappingURL=index.d.ts.map
|
1
25_02_24/node_modules/@tinyhttp/accepts/dist/index.d.ts.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,CAAC,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAE1E,OAAO,UAAU,MAAM,YAAY,CAAA;AAMnC,qBAAa,OAAO;IAClB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,UAAU,EAAE,UAAU,CAAA;gBACV,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC;IAInC;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK;IA0B7E,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAErF;IACD;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO;IAevF,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAE/F;IACD;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO;IAetF,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAE7F;IACD;;;;;;;;OAQG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO;IAevF,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAE3F;IACD,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAE5F;IACD,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAE/F;CACF"}
|
117
25_02_24/node_modules/@tinyhttp/accepts/dist/index.js
generated
vendored
Normal file
|
@ -0,0 +1,117 @@
|
|||
import mime from 'mime';
|
||||
import Negotiator from 'negotiator';
|
||||
const extToMime = (type) => (type.indexOf('/') === -1 ? mime.getType(type) : type);
|
||||
const validMime = (type) => typeof type === 'string';
|
||||
export class Accepts {
|
||||
constructor(req) {
|
||||
this.headers = req.headers;
|
||||
this.negotiator = new Negotiator(req);
|
||||
}
|
||||
/**
|
||||
* Check if the given `type(s)` is acceptable, returning the best match when true, otherwise `false`, in which case you should respond with 406 "Not Acceptable".
|
||||
*
|
||||
* The `type` value may be a single mime type string such as "application/json", the extension name such as "json" or an array `["json", "html", "text/plain"]`. When a list or array is given the _best_ match, if any is returned. When no types are given as arguments, returns all types accepted by the client in the preference order.
|
||||
*/
|
||||
types(types, ...args) {
|
||||
let mimeTypes = [];
|
||||
// support flattened arguments
|
||||
if (types && !Array.isArray(types)) {
|
||||
mimeTypes = [types, ...args];
|
||||
}
|
||||
else if (types) {
|
||||
mimeTypes = [...types, ...args];
|
||||
}
|
||||
// no types, return all requested types
|
||||
if (!mimeTypes || mimeTypes.length === 0) {
|
||||
return this.negotiator.mediaTypes();
|
||||
}
|
||||
// no accept header, return first given type
|
||||
if (!this.headers.accept) {
|
||||
return mimeTypes[0];
|
||||
}
|
||||
const mimes = mimeTypes.map(extToMime);
|
||||
const accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
|
||||
const [first] = accepts;
|
||||
return first ? mimeTypes[mimes.indexOf(first)] : false;
|
||||
}
|
||||
get type() {
|
||||
return this.types;
|
||||
}
|
||||
/**
|
||||
* Return accepted encodings or best fit based on `encodings`.
|
||||
*
|
||||
* Given `Accept-Encoding: gzip, deflate`
|
||||
* an array sorted by quality is returned:
|
||||
*
|
||||
* ['gzip', 'deflate']
|
||||
*/
|
||||
encodings(encodings, ...args) {
|
||||
let _encodings = encodings;
|
||||
// support flattened arguments
|
||||
if (_encodings && !Array.isArray(_encodings)) {
|
||||
_encodings = [_encodings, ...args];
|
||||
}
|
||||
// no encodings, return all requested encodings
|
||||
if (!_encodings || _encodings.length === 0) {
|
||||
return this.negotiator.encodings();
|
||||
}
|
||||
return this.negotiator.encodings(_encodings)[0] || false;
|
||||
}
|
||||
get encoding() {
|
||||
return this.encodings;
|
||||
}
|
||||
/**
|
||||
* Return accepted charsets or best fit based on `charsets`.
|
||||
*
|
||||
* Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
|
||||
* an array sorted by quality is returned:
|
||||
*
|
||||
* ['utf-8', 'utf-7', 'iso-8859-1']
|
||||
*/
|
||||
charsets(charsets, ...args) {
|
||||
let _charsets = charsets;
|
||||
// support flattened arguments
|
||||
if (_charsets && !Array.isArray(_charsets)) {
|
||||
_charsets = [_charsets, ...args];
|
||||
}
|
||||
// no charsets, return all requested charsets
|
||||
if (!_charsets || _charsets.length === 0) {
|
||||
return this.negotiator.charsets();
|
||||
}
|
||||
return this.negotiator.charsets(_charsets)[0] || false;
|
||||
}
|
||||
get charset() {
|
||||
return this.charsets;
|
||||
}
|
||||
/**
|
||||
* Return accepted languages or best fit based on `langs`.
|
||||
*
|
||||
* Given `Accept-Language: en;q=0.8, es, pt`
|
||||
* an array sorted by quality is returned:
|
||||
*
|
||||
* ['es', 'pt', 'en']
|
||||
*
|
||||
*/
|
||||
languages(languages, ...args) {
|
||||
let _languages = languages;
|
||||
// support flattened arguments
|
||||
if (_languages && !Array.isArray(_languages)) {
|
||||
_languages = [_languages, ...args];
|
||||
}
|
||||
// no languages, return all requested languages
|
||||
if (!_languages || _languages.length === 0) {
|
||||
return this.negotiator.languages();
|
||||
}
|
||||
return this.negotiator.languages(_languages)[0] || false;
|
||||
}
|
||||
get lang() {
|
||||
return this.languages;
|
||||
}
|
||||
get langs() {
|
||||
return this.languages;
|
||||
}
|
||||
get language() {
|
||||
return this.languages;
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=index.js.map
|
1
25_02_24/node_modules/@tinyhttp/accepts/dist/index.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
35
25_02_24/node_modules/@tinyhttp/accepts/package.json
generated
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"name": "@tinyhttp/accepts",
|
||||
"description": "accepts rewrite in TypeScript",
|
||||
"version": "2.2.3",
|
||||
"license": "MIT",
|
||||
"homepage": "https://tinyhttp.v1rtl.site",
|
||||
"funding": {
|
||||
"type": "individual",
|
||||
"url": "https://github.com/tinyhttp/tinyhttp?sponsor=1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tinyhttp/tinyhttp.git",
|
||||
"directory": "packages/cookie-signature"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20.0"
|
||||
},
|
||||
"type": "module",
|
||||
"types": "./dist/index.d.ts",
|
||||
"exports": "./dist/index.js",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@types/negotiator": "^0.6.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"mime": "4.0.4",
|
||||
"negotiator": "^0.6.3"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc"
|
||||
}
|
||||
}
|
21
25_02_24/node_modules/@tinyhttp/app/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2020 v 1 r t l
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
25
25_02_24/node_modules/@tinyhttp/app/README.md
generated
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# @tinyhttp/app
|
||||
|
||||
The core of tinyhttp. Contains the `App`, `Request` and `Response`. Additionally, it provides special tinyhttp-specific types.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
pnpm i @tinyhttp/app
|
||||
```
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
import { App } from '@tinyhttp/app'
|
||||
import type { Request, Response, NextFunction } from '@tinyhttp/app'
|
||||
|
||||
new App()
|
||||
.use((req: Request, res: Response, next: NextFunction) => {
|
||||
console.log('Did a request')
|
||||
next()
|
||||
})
|
||||
.get('/', (_, res) => res.send('<h1>Hello World</h1>'))
|
||||
.get('/page/:page', (req, res) => res.send(`You opened ${req.params.page}`))
|
||||
.listen(3000)
|
||||
```
|
55
25_02_24/node_modules/@tinyhttp/app/dist/app.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
import { type Server } from 'node:http';
|
||||
import type { Handler, Middleware, NextFunction, UseMethodParams } from '@tinyhttp/router';
|
||||
import { Router } from '@tinyhttp/router';
|
||||
import type { TemplateEngineOptions } from './index.js';
|
||||
import type { ErrorHandler } from './onError.js';
|
||||
import type { Request } from './request.js';
|
||||
import type { Response } from './response.js';
|
||||
import type { AppConstructor, AppInterface, AppRenderOptions, AppSettings, TemplateEngine } from './types.js';
|
||||
/**
|
||||
* `App` class - the starting point of tinyhttp app.
|
||||
*
|
||||
* With the `App` you can:
|
||||
* * use routing methods and `.use(...)`
|
||||
* * set no match (404) and error (500) handlers
|
||||
* * configure template engines
|
||||
* * store data in locals
|
||||
* * listen the http server on a specified port
|
||||
*
|
||||
* In case you use TypeScript, you can pass custom types to this class because it is also a generic class.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* ```ts
|
||||
* interface CoolReq extends Request {
|
||||
* genericsAreDope: boolean
|
||||
* }
|
||||
*
|
||||
* const app = App<any, CoolReq, Response>()
|
||||
* ```
|
||||
*/
|
||||
export declare class App<Req extends Request = Request, Res extends Response = Response> extends Router<App, Req, Res> implements AppInterface<Req, Res> {
|
||||
#private;
|
||||
middleware: Middleware<Req, Res>[];
|
||||
locals: Record<string, unknown>;
|
||||
noMatchHandler: Handler;
|
||||
onError: ErrorHandler;
|
||||
settings: AppSettings;
|
||||
engines: Record<string, TemplateEngine>;
|
||||
applyExtensions?: Handler;
|
||||
attach: (req: Req, res: Res, next?: NextFunction) => void;
|
||||
cache: Record<string, unknown>;
|
||||
constructor(options?: AppConstructor<Req, Res>);
|
||||
set<K extends keyof AppSettings>(setting: K, value: AppSettings[K]): this;
|
||||
enable<K extends keyof AppSettings>(setting: K): this;
|
||||
enabled<K extends keyof AppSettings>(setting: K): boolean;
|
||||
disable<K extends keyof AppSettings>(setting: K): this;
|
||||
path(): any;
|
||||
engine<RenderOptions extends TemplateEngineOptions = TemplateEngineOptions>(ext: string, fn: TemplateEngine<RenderOptions>): this;
|
||||
render<RenderOptions extends TemplateEngineOptions = TemplateEngineOptions>(name: string, data?: Record<string, unknown>, options?: AppRenderOptions<RenderOptions>, cb?: (err: unknown, html?: unknown) => void): void;
|
||||
use(...args: UseMethodParams<Req, Res, AppInterface<any, any>>): this;
|
||||
route(path: string): App<any, any>;
|
||||
handler<RenderOptions extends TemplateEngineOptions = TemplateEngineOptions>(req: Req, res: Res, next?: NextFunction): void;
|
||||
listen(port?: number, cb?: () => void, host?: string): Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
|
||||
}
|
||||
//# sourceMappingURL=app.d.ts.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/app.d.ts.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
323
25_02_24/node_modules/@tinyhttp/app/dist/app.js
generated
vendored
Normal file
|
@ -0,0 +1,323 @@
|
|||
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
||||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
||||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
||||
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
||||
};
|
||||
var _App_instances, _App_find;
|
||||
import { createServer } from 'node:http';
|
||||
import { getPathname } from '@tinyhttp/req';
|
||||
import { Router, pushMiddleware } from '@tinyhttp/router';
|
||||
import { parse as rg } from 'regexparam';
|
||||
import { extendMiddleware } from './extend.js';
|
||||
import { onErrorHandler } from './onError.js';
|
||||
import { getURLParams } from './request.js';
|
||||
import { View } from './view.js';
|
||||
/**
|
||||
* Add leading slash if not present (e.g. path -> /path, /path -> /path)
|
||||
* @param x
|
||||
*/
|
||||
const lead = (x) => (x.charCodeAt(0) === 47 ? x : `/${x}`);
|
||||
const trail = (x) => (x.charCodeAt(x.length - 1) === 47 ? x.substring(0, x.length - 1) : x);
|
||||
const mount = (fn) => (fn instanceof App ? fn.attach : fn);
|
||||
const applyHandler = (h) => async (req, res, next) => {
|
||||
try {
|
||||
if (h[Symbol.toStringTag] === 'AsyncFunction') {
|
||||
await h(req, res, next);
|
||||
}
|
||||
else
|
||||
h(req, res, next);
|
||||
}
|
||||
catch (e) {
|
||||
next === null || next === void 0 ? void 0 : next(e);
|
||||
}
|
||||
};
|
||||
/**
|
||||
* `App` class - the starting point of tinyhttp app.
|
||||
*
|
||||
* With the `App` you can:
|
||||
* * use routing methods and `.use(...)`
|
||||
* * set no match (404) and error (500) handlers
|
||||
* * configure template engines
|
||||
* * store data in locals
|
||||
* * listen the http server on a specified port
|
||||
*
|
||||
* In case you use TypeScript, you can pass custom types to this class because it is also a generic class.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* ```ts
|
||||
* interface CoolReq extends Request {
|
||||
* genericsAreDope: boolean
|
||||
* }
|
||||
*
|
||||
* const app = App<any, CoolReq, Response>()
|
||||
* ```
|
||||
*/
|
||||
export class App extends Router {
|
||||
constructor(options = {}) {
|
||||
super();
|
||||
_App_instances.add(this);
|
||||
this.middleware = [];
|
||||
this.locals = {};
|
||||
this.engines = {};
|
||||
this.onError = (options === null || options === void 0 ? void 0 : options.onError) || onErrorHandler;
|
||||
// @ts-expect-error typescript is not smart enough to understand "this" ts(2345)
|
||||
this.noMatchHandler = (options === null || options === void 0 ? void 0 : options.noMatchHandler) || this.onError.bind(this, { code: 404 });
|
||||
this.settings = {
|
||||
view: View,
|
||||
xPoweredBy: true,
|
||||
views: `${process.cwd()}/views`,
|
||||
'view cache': process.env.NODE_ENV === 'production',
|
||||
'trust proxy': 0,
|
||||
...options.settings
|
||||
};
|
||||
if (options.applyExtensions)
|
||||
this.applyExtensions = options === null || options === void 0 ? void 0 : options.applyExtensions;
|
||||
const boundHandler = this.handler.bind(this);
|
||||
this.attach = (req, res, next) => setImmediate(boundHandler, req, res, next);
|
||||
this.cache = {};
|
||||
}
|
||||
set(setting, value) {
|
||||
this.settings[setting] = value;
|
||||
return this;
|
||||
}
|
||||
enable(setting) {
|
||||
this.settings[setting] = true;
|
||||
return this;
|
||||
}
|
||||
enabled(setting) {
|
||||
return Boolean(this.settings[setting]);
|
||||
}
|
||||
disable(setting) {
|
||||
this.settings[setting] = false;
|
||||
return this;
|
||||
}
|
||||
path() {
|
||||
return this.parent ? this.parent.path() + this.mountpath : '';
|
||||
}
|
||||
engine(ext, fn) {
|
||||
this.engines[ext[0] === '.' ? ext : `.${ext}`] = fn;
|
||||
return this;
|
||||
}
|
||||
render(name, data = {}, options = {}, cb = () => { }) {
|
||||
let view;
|
||||
const { _locals, ...opts } = options;
|
||||
let locals = this.locals;
|
||||
if (_locals)
|
||||
locals = { ...locals, ..._locals };
|
||||
locals = { ...locals, ...data };
|
||||
if (opts.cache == null)
|
||||
opts.cache = this.enabled('view cache');
|
||||
if (opts.cache) {
|
||||
view = this.cache[name];
|
||||
}
|
||||
if (!view) {
|
||||
const ViewClass = this.settings.view || View;
|
||||
try {
|
||||
view = new ViewClass(name, {
|
||||
defaultEngine: this.settings['view engine'],
|
||||
root: this.settings.views,
|
||||
engines: this.engines
|
||||
});
|
||||
}
|
||||
catch (err) {
|
||||
return cb(err);
|
||||
}
|
||||
if (opts.cache) {
|
||||
this.cache[name] = view;
|
||||
}
|
||||
}
|
||||
try {
|
||||
view.render(opts, locals, cb);
|
||||
}
|
||||
catch (err) {
|
||||
cb(err);
|
||||
}
|
||||
}
|
||||
use(...args) {
|
||||
var _a;
|
||||
const base = args[0];
|
||||
const fns = args.slice(1).flat();
|
||||
let pathArray = [];
|
||||
if (typeof base === 'function' || base instanceof App) {
|
||||
fns.unshift(base);
|
||||
}
|
||||
else {
|
||||
// if base is not an array of paths, then convert it to an array.
|
||||
let basePaths = [];
|
||||
if (Array.isArray(base))
|
||||
basePaths = base;
|
||||
else if (typeof base === 'string')
|
||||
basePaths = [base];
|
||||
basePaths = basePaths.filter((element) => {
|
||||
if (typeof element === 'string') {
|
||||
pathArray.push(element);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
fns.unshift(...basePaths);
|
||||
}
|
||||
pathArray = pathArray.length ? pathArray.map((path) => lead(path)) : ['/'];
|
||||
const mountpath = pathArray.join(', ');
|
||||
let regex;
|
||||
for (const fn of fns) {
|
||||
if (fn instanceof App) {
|
||||
for (const path of pathArray) {
|
||||
regex = rg(path, true);
|
||||
fn.mountpath = mountpath;
|
||||
this.apps[path] = fn;
|
||||
// @ts-expect-error typescript is not smart enough to understand "this" ts(2345)
|
||||
fn.parent = this;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const path of pathArray) {
|
||||
const handlerPaths = [];
|
||||
const handlerFunctions = [];
|
||||
const handlerPathBase = path === '/' ? '' : lead(path);
|
||||
for (const fn of fns) {
|
||||
if (fn instanceof App && ((_a = fn.middleware) === null || _a === void 0 ? void 0 : _a.length)) {
|
||||
for (const mw of fn.middleware) {
|
||||
handlerPaths.push(handlerPathBase + lead(mw.path));
|
||||
handlerFunctions.push(fn);
|
||||
}
|
||||
}
|
||||
else {
|
||||
handlerPaths.push('');
|
||||
handlerFunctions.push(fn);
|
||||
}
|
||||
}
|
||||
pushMiddleware(this.middleware)({
|
||||
path,
|
||||
regex,
|
||||
type: 'mw',
|
||||
handler: mount(handlerFunctions[0]),
|
||||
handlers: handlerFunctions.slice(1).map(mount),
|
||||
fullPaths: handlerPaths
|
||||
});
|
||||
}
|
||||
return this;
|
||||
}
|
||||
route(path) {
|
||||
const app = new App({ settings: this.settings });
|
||||
this.use(path, app);
|
||||
return app;
|
||||
}
|
||||
handler(req, res, next) {
|
||||
/* Set X-Powered-By header */
|
||||
const { xPoweredBy } = this.settings;
|
||||
if (xPoweredBy)
|
||||
res.setHeader('X-Powered-By', typeof xPoweredBy === 'string' ? xPoweredBy : 'tinyhttp');
|
||||
// @ts-expect-error typescript is not smart enough to understand "this" ts(2345)
|
||||
const exts = this.applyExtensions || extendMiddleware(this);
|
||||
let mw = [
|
||||
{
|
||||
handler: exts,
|
||||
type: 'mw',
|
||||
path: '/'
|
||||
}
|
||||
];
|
||||
req.baseUrl = '';
|
||||
const handle = (mw, pathname) => async (req, res, next) => {
|
||||
var _a;
|
||||
const { path, handler, regex } = mw;
|
||||
let params;
|
||||
try {
|
||||
params = regex ? getURLParams(regex, pathname) : {};
|
||||
}
|
||||
catch (e) {
|
||||
console.error(e);
|
||||
if (e instanceof URIError)
|
||||
return res.sendStatus(400);
|
||||
throw e;
|
||||
}
|
||||
let prefix = path;
|
||||
if (regex) {
|
||||
for (const key of regex.keys) {
|
||||
if (key === 'wild') {
|
||||
prefix = prefix.replace('*', params.wild);
|
||||
}
|
||||
else {
|
||||
prefix = prefix.replace(`:${key}`, params[key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
req.params = { ...req.params, ...params };
|
||||
if (mw.type === 'mw') {
|
||||
req.url = lead(req.originalUrl.substring(prefix.length));
|
||||
req.baseUrl = trail(req.originalUrl.substring(0, prefix.length));
|
||||
}
|
||||
if (!req.path)
|
||||
req.path = pathname;
|
||||
if ((_a = this.settings) === null || _a === void 0 ? void 0 : _a.enableReqRoute)
|
||||
req.route = mw;
|
||||
await applyHandler(handler)(req, res, next);
|
||||
};
|
||||
let idx = 0;
|
||||
const loop = () => {
|
||||
req.originalUrl = req.baseUrl + req.url;
|
||||
const pathname = getPathname(req.url);
|
||||
const matched = __classPrivateFieldGet(this, _App_instances, "m", _App_find).call(this, pathname).filter((x) => (req.method === 'HEAD' || (x.method ? x.method === req.method : true)) && !mw.includes(x));
|
||||
if (matched.length && matched[0] !== null) {
|
||||
if (idx !== 0) {
|
||||
idx = mw.length;
|
||||
req.params = {};
|
||||
}
|
||||
mw = [
|
||||
...mw,
|
||||
...matched,
|
||||
{
|
||||
type: 'mw',
|
||||
handler: (req, res, next) => {
|
||||
if (req.method === 'HEAD') {
|
||||
res.statusCode = 204;
|
||||
return res.end('');
|
||||
}
|
||||
next === null || next === void 0 ? void 0 : next();
|
||||
},
|
||||
path: '/'
|
||||
}
|
||||
];
|
||||
}
|
||||
else if (this.parent == null) {
|
||||
mw.push({
|
||||
handler: this.noMatchHandler,
|
||||
type: 'route',
|
||||
path: '/'
|
||||
});
|
||||
}
|
||||
void handle(mw[idx++], pathname)(req, res, next);
|
||||
};
|
||||
const parentNext = next;
|
||||
next = (err) => {
|
||||
if (err != null) {
|
||||
// @ts-expect-error The 'this' context of type 'this' is not assignable to method's 'this' of type 'App<Request, Response<unknown>>' ts(2345)
|
||||
return this.onError(err, req, res);
|
||||
}
|
||||
if (res.writableEnded)
|
||||
return;
|
||||
if (idx >= mw.length) {
|
||||
if (parentNext != null)
|
||||
parentNext();
|
||||
return;
|
||||
}
|
||||
loop();
|
||||
};
|
||||
loop();
|
||||
}
|
||||
listen(port, cb, host) {
|
||||
return createServer().on('request', this.attach).listen(port, host, cb);
|
||||
}
|
||||
}
|
||||
_App_instances = new WeakSet(), _App_find = function _App_find(url) {
|
||||
return this.middleware.filter((m) => {
|
||||
m.regex = m.regex || rg(m.path, m.type === 'mw');
|
||||
let fullPathRegex;
|
||||
m.fullPath && typeof m.fullPath === 'string'
|
||||
? (fullPathRegex = rg(m.fullPath, m.type === 'mw'))
|
||||
: (fullPathRegex = null);
|
||||
return m.regex.pattern.test(url) && (m.type === 'mw' && fullPathRegex ? fullPathRegex.pattern.test(url) : true);
|
||||
});
|
||||
};
|
||||
//# sourceMappingURL=app.js.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/app.js.map
generated
vendored
Normal file
8
25_02_24/node_modules/@tinyhttp/app/dist/extend.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
import type { App } from './app.js';
|
||||
import type { Handler } from './index.js';
|
||||
import type { TemplateEngineOptions } from './types.js';
|
||||
/**
|
||||
* Extends Request and Response objects with custom properties and methods
|
||||
*/
|
||||
export declare const extendMiddleware: <EngineOptions extends TemplateEngineOptions = TemplateEngineOptions>(app: App) => Handler;
|
||||
//# sourceMappingURL=extend.d.ts.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/extend.d.ts.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../src/extend.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAKzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,aAAa,SAAS,qBAAqB,+BAA+B,GAAG,KA+DtG,OAAO,CAAA"}
|
64
25_02_24/node_modules/@tinyhttp/app/dist/extend.js
generated
vendored
Normal file
|
@ -0,0 +1,64 @@
|
|||
import { compile } from '@tinyhttp/proxy-addr';
|
||||
import { checkIfXMLHttpRequest, getAccepts, getAcceptsCharsets, getAcceptsEncodings, getAcceptsLanguages, getFreshOrStale, getQueryParams, getRangeFromHeader, getRequestHeader, reqIs } from '@tinyhttp/req';
|
||||
import { append, attachment, clearCookie, download, formatResponse, getResponseHeader, json, redirect, send, sendFile, sendStatus, setContentType, setCookie, setHeader, setLinksHeader, setLocationHeader, setVaryHeader, status } from '@tinyhttp/res';
|
||||
import { getSubdomains } from './request.js';
|
||||
import { getHost, getIP, getIPs, getProtocol } from './request.js';
|
||||
import { renderTemplate } from './response.js';
|
||||
/**
|
||||
* Extends Request and Response objects with custom properties and methods
|
||||
*/
|
||||
export const extendMiddleware = (app) => ((req, res, next) => {
|
||||
const { settings } = app;
|
||||
res.get = getResponseHeader(res);
|
||||
req.get = getRequestHeader(req);
|
||||
if (settings === null || settings === void 0 ? void 0 : settings.bindAppToReqRes) {
|
||||
req.app = app;
|
||||
res.app = app;
|
||||
}
|
||||
if (settings === null || settings === void 0 ? void 0 : settings.networkExtensions) {
|
||||
let trust = (settings === null || settings === void 0 ? void 0 : settings['trust proxy']) || 0;
|
||||
if (trust && typeof trust !== 'function') {
|
||||
trust = compile(trust);
|
||||
settings['trust proxy'] = trust;
|
||||
}
|
||||
req.protocol = getProtocol(req, trust);
|
||||
req.secure = req.protocol === 'https';
|
||||
const host = getHost(req, trust);
|
||||
req.hostname = host === null || host === void 0 ? void 0 : host.hostname;
|
||||
req.port = host === null || host === void 0 ? void 0 : host.port;
|
||||
req.subdomains = getSubdomains(req, trust, settings.subdomainOffset);
|
||||
req.ip = getIP(req, trust);
|
||||
req.ips = getIPs(req, trust);
|
||||
}
|
||||
req.query = getQueryParams(req.url);
|
||||
req.is = reqIs(req);
|
||||
req.range = getRangeFromHeader(req);
|
||||
req.accepts = getAccepts(req);
|
||||
req.acceptsCharsets = getAcceptsCharsets(req);
|
||||
req.acceptsEncodings = getAcceptsEncodings(req);
|
||||
req.acceptsLanguages = getAcceptsLanguages(req);
|
||||
req.xhr = checkIfXMLHttpRequest(req);
|
||||
res.header = res.set = setHeader(res);
|
||||
res.send = send(req, res);
|
||||
res.json = json(res);
|
||||
res.status = status(res);
|
||||
res.sendStatus = sendStatus(req, res);
|
||||
res.sendFile = sendFile(req, res);
|
||||
res.type = setContentType(res);
|
||||
res.location = setLocationHeader(req, res);
|
||||
res.links = setLinksHeader(res);
|
||||
res.vary = setVaryHeader(res);
|
||||
res.cookie = setCookie(req, res);
|
||||
res.clearCookie = clearCookie(req, res);
|
||||
res.render = renderTemplate(req, res, app);
|
||||
res.format = formatResponse(req, res, next);
|
||||
res.redirect = redirect(req, res, next);
|
||||
res.attachment = attachment(res);
|
||||
res.download = download(req, res);
|
||||
res.append = append(res);
|
||||
res.locals = res.locals || Object.create(null);
|
||||
Object.defineProperty(req, 'fresh', { get: getFreshOrStale.bind(null, req, res), configurable: true });
|
||||
req.stale = !req.fresh;
|
||||
next();
|
||||
});
|
||||
//# sourceMappingURL=extend.js.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/extend.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"extend.js","sourceRoot":"","sources":["../src/extend.ts"],"names":[],"mappings":"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"}
|
15
25_02_24/node_modules/@tinyhttp/app/dist/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
export { App } from './app.js';
|
||||
export * from './request.js';
|
||||
export * from './response.js';
|
||||
export { extendMiddleware } from './extend.js';
|
||||
export { onErrorHandler, type ErrorHandler } from './onError.js';
|
||||
export { View } from './view.js';
|
||||
export type { AppSettings, TemplateEngineOptions, TemplateEngine, AppConstructor } from './types.js';
|
||||
import type { Middleware, NextFunction, AsyncHandler as RAsyncHandler, Handler as RHandler, SyncHandler as RSyncHandler } from '@tinyhttp/router';
|
||||
import type { Request } from './request.js';
|
||||
import type { Response } from './response.js';
|
||||
export type Handler = RHandler<Request, Response>;
|
||||
export type AsyncHandler = RAsyncHandler<Request, Response>;
|
||||
export type SyncHandler = RSyncHandler<Request, Response>;
|
||||
export type { NextFunction, Middleware, Request, Response };
|
||||
//# sourceMappingURL=index.d.ts.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/index.d.ts.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEpG,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,YAAY,IAAI,aAAa,EAC7B,OAAO,IAAI,QAAQ,EACnB,WAAW,IAAI,YAAY,EAC5B,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACjD,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAC3D,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACzD,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
7
25_02_24/node_modules/@tinyhttp/app/dist/index.js
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
export { App } from './app.js';
|
||||
export * from './request.js';
|
||||
export * from './response.js';
|
||||
export { extendMiddleware } from './extend.js';
|
||||
export { onErrorHandler } from './onError.js';
|
||||
export { View } from './view.js';
|
||||
//# sourceMappingURL=index.js.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/index.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAqB,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
|
7
25_02_24/node_modules/@tinyhttp/app/dist/onError.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
import type { NextFunction } from '@tinyhttp/router';
|
||||
import type { App } from './app.js';
|
||||
import type { Request } from './request.js';
|
||||
import type { Response } from './response.js';
|
||||
export type ErrorHandler = (this: App, err: any, req: Request, res: Response, next?: NextFunction) => void;
|
||||
export declare const onErrorHandler: ErrorHandler;
|
||||
//# sourceMappingURL=onError.d.ts.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/onError.d.ts.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"onError.d.ts","sourceRoot":"","sources":["../src/onError.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI,CAAA;AAE1G,eAAO,MAAM,cAAc,EAAE,YAU5B,CAAA"}
|
15
25_02_24/node_modules/@tinyhttp/app/dist/onError.js
generated
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
import { STATUS_CODES } from 'node:http';
|
||||
export const onErrorHandler = function (err, _req, res) {
|
||||
if (this.onError === onErrorHandler && this.parent)
|
||||
return this.parent.onError(err, _req, res);
|
||||
if (err instanceof Error)
|
||||
console.error(err);
|
||||
const code = err.code in STATUS_CODES ? err.code : err.status;
|
||||
if (typeof err === 'string' || Buffer.isBuffer(err))
|
||||
res.writeHead(500).end(err);
|
||||
else if (code in STATUS_CODES)
|
||||
res.writeHead(code).end(STATUS_CODES[code]);
|
||||
else
|
||||
res.writeHead(500).end(err.message);
|
||||
};
|
||||
//# sourceMappingURL=onError.js.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/onError.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"onError.js","sourceRoot":"","sources":["../src/onError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAQxC,MAAM,CAAC,MAAM,cAAc,GAAiB,UAAqB,GAAQ,EAAE,IAAa,EAAE,GAAa;IACrG,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IAE9F,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE5C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAA;IAE7D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SAC3E,IAAI,IAAI,IAAI,YAAY;QAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;;QACrE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAC1C,CAAC,CAAA"}
|
59
25_02_24/node_modules/@tinyhttp/app/dist/request.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,59 @@
|
|||
import type { IncomingHttpHeaders, IncomingMessage } from 'node:http';
|
||||
import type { ParsedUrlQuery } from 'node:querystring';
|
||||
import { type Trust } from '@tinyhttp/proxy-addr';
|
||||
import type { Options, Ranges } from 'header-range-parser';
|
||||
import type { Middleware } from '@tinyhttp/router';
|
||||
import type { App } from './app.js';
|
||||
import type { Socket } from 'node:net';
|
||||
import type { TLSSocket } from 'node:tls';
|
||||
import type { URLParams } from '@tinyhttp/req';
|
||||
export { getURLParams } from '@tinyhttp/req';
|
||||
export type Host = {
|
||||
hostname: string;
|
||||
port?: number;
|
||||
};
|
||||
export declare const getProtocol: (req: Request, trust: Trust) => Protocol;
|
||||
export declare const getHost: (req: Request, trust: Trust) => Host | undefined;
|
||||
export declare const getIP: (req: Pick<Request, "headers" | "connection" | "socket">, trust: Trust) => string | undefined;
|
||||
export declare const getIPs: (req: Pick<Request, "headers" | "connection" | "socket">, trust: Trust) => string[] | undefined;
|
||||
export declare const getSubdomains: (req: Request, trust: Trust, subdomainOffset?: number) => string[];
|
||||
export type Connection = IncomingMessage['socket'] & {
|
||||
encrypted: boolean;
|
||||
};
|
||||
export type Protocol = 'http' | 'https' | string;
|
||||
export type { URLParams };
|
||||
type AcceptsReturns = string | boolean | string[];
|
||||
export interface Request extends IncomingMessage {
|
||||
originalUrl: string;
|
||||
path: string;
|
||||
url: string;
|
||||
baseUrl: string;
|
||||
query: ParsedUrlQuery;
|
||||
params: URLParams;
|
||||
connection: Connection;
|
||||
socket: TLSSocket | Socket;
|
||||
route?: Middleware;
|
||||
protocol: Protocol;
|
||||
secure: boolean;
|
||||
xhr: boolean;
|
||||
hostname?: string;
|
||||
port?: number;
|
||||
ip?: string;
|
||||
ips?: string[];
|
||||
subdomains?: string[];
|
||||
get: <HeaderName extends string>(header: HeaderName) => IncomingHttpHeaders[HeaderName];
|
||||
range: (size: number, options?: Options) => -1 | -2 | -3 | Ranges | undefined;
|
||||
accepts: (...types: string[]) => AcceptsReturns;
|
||||
acceptsEncodings: (...encodings: string[]) => AcceptsReturns;
|
||||
acceptsCharsets: (...charsets: string[]) => AcceptsReturns;
|
||||
acceptsLanguages: (...languages: string[]) => AcceptsReturns;
|
||||
is: (...types: string[]) => string | boolean;
|
||||
cookies?: any;
|
||||
signedCookies?: any;
|
||||
secret?: string | string[];
|
||||
fresh?: boolean;
|
||||
stale?: boolean;
|
||||
body?: any;
|
||||
app?: App;
|
||||
}
|
||||
//# sourceMappingURL=request.d.ts.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/request.d.ts.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
|
85
25_02_24/node_modules/@tinyhttp/app/dist/request.js
generated
vendored
Normal file
|
@ -0,0 +1,85 @@
|
|||
import { all, compile, proxyaddr as proxyAddr } from '@tinyhttp/proxy-addr';
|
||||
import { isIP } from 'node:net';
|
||||
export { getURLParams } from '@tinyhttp/req';
|
||||
const trustRemoteAddress = ({ socket }, trust) => {
|
||||
const val = socket.remoteAddress;
|
||||
if (typeof trust !== 'function')
|
||||
trust = compile(trust);
|
||||
return trust(val, 0);
|
||||
};
|
||||
export const getProtocol = (req, trust) => {
|
||||
const proto = `http${req.secure ? 's' : ''}`;
|
||||
if (!trustRemoteAddress(req, trust))
|
||||
return proto;
|
||||
const header = req.headers['X-Forwarded-Proto'] || proto;
|
||||
const index = header.indexOf(',');
|
||||
return index !== -1 ? header.substring(0, index).trim() : header.trim();
|
||||
};
|
||||
const normalizeHostString = (host) => decodeURIComponent(host).toLowerCase().normalize();
|
||||
const getAuthorityHeaderHostString = (req) => {
|
||||
const authority = req.get(':authority');
|
||||
if (Array.isArray(authority))
|
||||
return undefined;
|
||||
if (Array.isArray(authority) || !authority)
|
||||
return undefined;
|
||||
const index = authority.indexOf('@');
|
||||
if (index === -1)
|
||||
return normalizeHostString(authority);
|
||||
return normalizeHostString(authority.substring(index + 1));
|
||||
};
|
||||
const getForwardedHeaderHostString = (req) => {
|
||||
const forwardedHost = req.get('x-forwarded-host');
|
||||
if (Array.isArray(forwardedHost))
|
||||
return undefined;
|
||||
if (!forwardedHost)
|
||||
return undefined;
|
||||
return normalizeHostString(forwardedHost);
|
||||
};
|
||||
const getDefaultHeaderHostString = (req) => {
|
||||
const host = req.get('host');
|
||||
if (!host || host.indexOf(',') !== -1)
|
||||
return undefined;
|
||||
if (host.indexOf(',') !== -1)
|
||||
return undefined;
|
||||
return normalizeHostString(host);
|
||||
};
|
||||
const getHostString = (req, trust) => {
|
||||
var _a;
|
||||
if (trustRemoteAddress(req, trust)) {
|
||||
const forwardedHost = getForwardedHeaderHostString(req);
|
||||
if (forwardedHost)
|
||||
return forwardedHost;
|
||||
}
|
||||
const authorityHost = getAuthorityHeaderHostString(req);
|
||||
const defaultHost = getDefaultHeaderHostString(req);
|
||||
if (authorityHost && defaultHost) {
|
||||
if (authorityHost !== defaultHost)
|
||||
throw new Error('Request `:authority` pseudo-header does not agree with `Host` header');
|
||||
return authorityHost;
|
||||
}
|
||||
return (_a = authorityHost !== null && authorityHost !== void 0 ? authorityHost : defaultHost) !== null && _a !== void 0 ? _a : undefined;
|
||||
};
|
||||
export const getHost = (req, trust) => {
|
||||
const host = getHostString(req, trust);
|
||||
if (!host)
|
||||
return undefined;
|
||||
// IPv6 literal support
|
||||
const index = host.indexOf(':', host[0] === '[' ? host.indexOf(']') + 1 : 0);
|
||||
if (index === -1)
|
||||
return { hostname: host };
|
||||
const hostname = host.substring(0, index);
|
||||
const port = Number(host.substring(index + 1));
|
||||
if (Number.isNaN(port))
|
||||
throw new TypeError('Port number is NaN, therefore Host is malformed');
|
||||
return { hostname, port };
|
||||
};
|
||||
export const getIP = (req, trust) => proxyAddr(req, trust).replace(/^.*:/, ''); // striping the redundant prefix addeded by OS to IPv4 address
|
||||
export const getIPs = (req, trust) => all(req, trust);
|
||||
export const getSubdomains = (req, trust, subdomainOffset = 2) => {
|
||||
const host = getHost(req, trust);
|
||||
if (!(host === null || host === void 0 ? void 0 : host.hostname))
|
||||
return [];
|
||||
const subdomains = isIP(host.hostname) ? [host.hostname] : host.hostname.split('.').reverse();
|
||||
return subdomains.slice(subdomainOffset);
|
||||
};
|
||||
//# sourceMappingURL=request.js.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/request.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
|
44
25_02_24/node_modules/@tinyhttp/app/dist/response.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
import type { OutgoingHttpHeaders, ServerResponse } from 'node:http';
|
||||
import type { SerializeOptions } from '@tinyhttp/cookie';
|
||||
import type { DownloadOptions, FormatProps, SendFileOptions } from '@tinyhttp/res';
|
||||
import type { App } from './app.js';
|
||||
import type { Request } from './request.js';
|
||||
import type { AppRenderOptions, TemplateEngineOptions } from './types.js';
|
||||
export declare const renderTemplate: <O extends TemplateEngineOptions = TemplateEngineOptions>(_req: Request, res: Response, app: App) => (file: string, data?: Record<string, unknown>, options?: AppRenderOptions<O>) => Response;
|
||||
export interface Response<B = unknown> extends ServerResponse {
|
||||
header(field: string | Record<string, unknown>, val?: string | any[]): Response<B>;
|
||||
set(field: string | Record<string, unknown>, val?: string | any[]): Response<B>;
|
||||
get<HeaderName extends string>(field: HeaderName): OutgoingHttpHeaders[HeaderName];
|
||||
send(body: B): Response<B>;
|
||||
sendFile(path: string, options?: SendFileOptions, cb?: (err?: unknown) => void): Response<B>;
|
||||
json(body: B): Response<B>;
|
||||
status(status: number): Response<B>;
|
||||
sendStatus(statusCode: number): Response<B>;
|
||||
cookie(name: string, value: string | Record<string, unknown>, options?: SerializeOptions & Partial<{
|
||||
signed: boolean;
|
||||
}>): Response<B>;
|
||||
clearCookie(name: string, options?: SerializeOptions): Response<B>;
|
||||
location(url: string): Response<B>;
|
||||
links(links: {
|
||||
[key: string]: string;
|
||||
}): Response<B>;
|
||||
render<O extends TemplateEngineOptions = TemplateEngineOptions>(file: string, data?: Record<string, any>, options?: AppRenderOptions<O>): Response<B>;
|
||||
vary(field: string): Response<B>;
|
||||
format(obj: FormatProps): Response<B>;
|
||||
redirect(url: string, status?: number): Response<B>;
|
||||
type(type: string): Response<B>;
|
||||
download(path: string, filename: string, options?: DownloadOptions, cb?: (err?: unknown) => void): Response<B>;
|
||||
attachment(filename?: string): Response<B>;
|
||||
app?: App;
|
||||
locals: Record<string, any>;
|
||||
/**
|
||||
* Send JSON response with JSONP callback support.
|
||||
*
|
||||
* To enable this method, install the `@tinyhttp/jsonp` package and attach the method to `res.jsonp` property.
|
||||
*
|
||||
* @param obj Response object
|
||||
*/
|
||||
jsonp(obj: any): Response<B>;
|
||||
append(field: string, value: any): Response<B>;
|
||||
}
|
||||
//# sourceMappingURL=response.d.ts.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/response.d.ts.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"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"}
|
9
25_02_24/node_modules/@tinyhttp/app/dist/response.js
generated
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
export const renderTemplate = (_req, res, app) => (file, data, options) => {
|
||||
app.render(file, data ? { ...res.locals, ...data } : res.locals, options, (err, html) => {
|
||||
if (err)
|
||||
throw err;
|
||||
res.send(html);
|
||||
});
|
||||
return res;
|
||||
};
|
||||
//# sourceMappingURL=response.js.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/response.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,cAAc,GACzB,CAA0D,IAAa,EAAE,GAAa,EAAE,GAAQ,EAAE,EAAE,CACpG,CAAC,IAAY,EAAE,IAA8B,EAAE,OAA6B,EAAY,EAAE;IACxF,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAY,EAAE,IAAa,EAAE,EAAE;QACxG,IAAI,GAAG;YAAE,MAAM,GAAG,CAAA;QAClB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
|
108
25_02_24/node_modules/@tinyhttp/app/dist/types.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,108 @@
|
|||
import type { Server } from 'node:http';
|
||||
import type { Trust } from '@tinyhttp/proxy-addr';
|
||||
import type { Handler, NextFunction, RouterInterface, UseMethodParams } from '@tinyhttp/router';
|
||||
import type { ErrorHandler } from './onError.js';
|
||||
import type { Request } from './request.js';
|
||||
import type { Response } from './response.js';
|
||||
import type { View } from './view.js';
|
||||
/**
|
||||
* tinyhttp App has a few settings for toggling features
|
||||
*/
|
||||
export type AppSettings = Partial<{
|
||||
networkExtensions: boolean;
|
||||
subdomainOffset: number;
|
||||
bindAppToReqRes: boolean;
|
||||
xPoweredBy: string | boolean;
|
||||
enableReqRoute: boolean;
|
||||
views: string | string[];
|
||||
view: typeof View;
|
||||
'view cache': boolean;
|
||||
'view engine': string;
|
||||
'trust proxy': Trust;
|
||||
}>;
|
||||
export type TemplateEngineOptions = {
|
||||
[key: string]: unknown;
|
||||
cache?: boolean;
|
||||
};
|
||||
/**
|
||||
* Function that processes the template
|
||||
*/
|
||||
export type TemplateEngine<O extends TemplateEngineOptions = TemplateEngineOptions> = (path: string, locals: Record<string, unknown>, opts: AppRenderOptions<O>, cb: (err: Error | null, html: unknown) => void) => void;
|
||||
export type AppRenderOptions<O extends TemplateEngineOptions = TemplateEngineOptions> = O & Partial<{
|
||||
cache: boolean;
|
||||
ext: string;
|
||||
viewsFolder: string;
|
||||
_locals: Record<string, unknown>;
|
||||
}>;
|
||||
export type AppConstructor<Req extends Request = Request, Res extends Response = Response> = Partial<{
|
||||
noMatchHandler: Handler<Req, Res>;
|
||||
onError: ErrorHandler;
|
||||
settings: AppSettings;
|
||||
applyExtensions: Handler<Req, Res>;
|
||||
new (options: AppConstructor<Req, Res>): AppInterface<Req, Res>;
|
||||
}>;
|
||||
export interface AppInterface<Req extends Request, Res extends Response> extends RouterInterface<AppInterface<Req, Res>, Req, Res> {
|
||||
/**
|
||||
* Set app setting
|
||||
* @param setting setting name
|
||||
* @param value setting value
|
||||
*/
|
||||
set<K extends keyof AppSettings>(setting: K, value: AppSettings[K]): AppInterface<Req, Res>;
|
||||
/**
|
||||
* Enable app setting
|
||||
* @param setting Setting name
|
||||
*/
|
||||
enable<K extends keyof AppSettings>(setting: K): AppInterface<Req, Res>;
|
||||
/**
|
||||
* Check if setting is enabled
|
||||
* @param setting Setting name
|
||||
* @returns
|
||||
*/
|
||||
enabled<K extends keyof AppSettings>(setting: K): boolean;
|
||||
/**
|
||||
* Disable app setting
|
||||
* @param setting Setting name
|
||||
*/
|
||||
disable<K extends keyof AppSettings>(setting: K): AppInterface<Req, Res>;
|
||||
/**
|
||||
* Return the app's absolute pathname
|
||||
* based on the parent(s) that have
|
||||
* mounted it.
|
||||
*
|
||||
* For example if the application was
|
||||
* mounted as `"/admin"`, which itself
|
||||
* was mounted as `"/blog"` then the
|
||||
* return value would be `"/blog/admin"`.
|
||||
*
|
||||
*/
|
||||
path(): string;
|
||||
/**
|
||||
* Register a template engine with extension
|
||||
*/
|
||||
engine<RenderOptions extends TemplateEngineOptions = TemplateEngineOptions>(ext: string, fn: TemplateEngine<RenderOptions>): AppInterface<Req, Res>;
|
||||
/**
|
||||
* Render a template
|
||||
* @param name What to render
|
||||
* @param data data that is passed to a template
|
||||
* @param options Template engine options
|
||||
* @param cb Callback that consumes error and html
|
||||
*/
|
||||
render<RenderOptions extends TemplateEngineOptions = TemplateEngineOptions>(name: string, data: Record<string, unknown>, options: AppRenderOptions<RenderOptions>, cb: (err: unknown, html?: unknown) => void): void;
|
||||
use(...args: UseMethodParams<Req, Res, AppInterface<any, any>>): AppInterface<Req, Res>;
|
||||
route(path: string): AppInterface<Req, Res>;
|
||||
/**
|
||||
* Extends Req / Res objects, pushes 404 and 500 handlers, dispatches middleware
|
||||
* @param req Req object
|
||||
* @param res Res object
|
||||
* @param next 'Next' function
|
||||
*/
|
||||
handler(req: Req, res: Res, next?: NextFunction): void;
|
||||
/**
|
||||
* Creates HTTP server and dispatches middleware
|
||||
* @param port server listening port
|
||||
* @param cb callback to be invoked after server starts listening
|
||||
* @param host server listening host
|
||||
*/
|
||||
listen(port?: number, cb?: () => void, host?: string): Server;
|
||||
}
|
||||
//# sourceMappingURL=types.d.ts.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/types.d.ts.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
2
25_02_24/node_modules/@tinyhttp/app/dist/types.js
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
export {};
|
||||
//# sourceMappingURL=types.js.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/types.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
38
25_02_24/node_modules/@tinyhttp/app/dist/view.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
/*!
|
||||
* Ported from https://github.com/expressjs/express/blob/master/lib/view.js
|
||||
* express
|
||||
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||
* Copyright(c) 2013 Roman Shtylman
|
||||
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||
* MIT Licensed
|
||||
*/
|
||||
import type { TemplateEngine, TemplateEngineOptions } from './types.js';
|
||||
/**
|
||||
* Initialize a new `View` with the given `name`.
|
||||
*
|
||||
* Options:
|
||||
*
|
||||
* - `defaultEngine` the default template engine name
|
||||
* - `engines` template engine require() cache
|
||||
* - `root` root path for view lookup
|
||||
*
|
||||
* @param name
|
||||
* @param options
|
||||
* @public
|
||||
*/
|
||||
export declare class View<RenderOptions extends TemplateEngineOptions = TemplateEngineOptions> {
|
||||
#private;
|
||||
ext?: string;
|
||||
defaultEngine?: string;
|
||||
name: string;
|
||||
engine: TemplateEngine<RenderOptions>;
|
||||
path: string;
|
||||
root: string | string[];
|
||||
constructor(name: string, opts?: Partial<{
|
||||
defaultEngine: string;
|
||||
root: string | string[];
|
||||
engines: Record<string, TemplateEngine<RenderOptions>>;
|
||||
}>);
|
||||
render(options: RenderOptions, data: Record<string, unknown>, cb: (err: Error | null, html: unknown) => void): void;
|
||||
}
|
||||
//# sourceMappingURL=view.d.ts.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/view.d.ts.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAUvE;;;;;;;;;;;;GAYG;AAEH,qBAAa,IAAI,CAAC,aAAa,SAAS,qBAAqB,GAAG,qBAAqB;;IACnF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,CAAA;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAK;gBAE1B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,OAAO,CAAC;QACZ,aAAa,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;QACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,CAAA;KACvD,CAAM;IAiET,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI;CAG7G"}
|
100
25_02_24/node_modules/@tinyhttp/app/dist/view.js
generated
vendored
Normal file
|
@ -0,0 +1,100 @@
|
|||
/*!
|
||||
* Ported from https://github.com/expressjs/express/blob/master/lib/view.js
|
||||
* express
|
||||
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||
* Copyright(c) 2013 Roman Shtylman
|
||||
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||
* MIT Licensed
|
||||
*/
|
||||
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
||||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
||||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
||||
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
||||
};
|
||||
var _View_instances, _View_lookup, _View_resolve;
|
||||
import { statSync } from 'node:fs';
|
||||
import { basename, dirname, extname, join, resolve } from 'node:path';
|
||||
function tryStat(path) {
|
||||
try {
|
||||
return statSync(path);
|
||||
}
|
||||
catch (e) {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Initialize a new `View` with the given `name`.
|
||||
*
|
||||
* Options:
|
||||
*
|
||||
* - `defaultEngine` the default template engine name
|
||||
* - `engines` template engine require() cache
|
||||
* - `root` root path for view lookup
|
||||
*
|
||||
* @param name
|
||||
* @param options
|
||||
* @public
|
||||
*/
|
||||
export class View {
|
||||
constructor(name, opts = {}) {
|
||||
var _a, _b;
|
||||
_View_instances.add(this);
|
||||
this.root = [];
|
||||
this.ext = extname(name);
|
||||
this.name = name;
|
||||
if (opts.root)
|
||||
this.root = opts.root;
|
||||
if (opts.defaultEngine)
|
||||
this.defaultEngine = opts.defaultEngine;
|
||||
if (!this.ext && !this.defaultEngine)
|
||||
throw new Error('No default engine was specified and no extension was provided.');
|
||||
let fileName = name;
|
||||
if (!this.ext) {
|
||||
// get extension from default engine name
|
||||
this.ext = ((_a = this.defaultEngine) === null || _a === void 0 ? void 0 : _a[0]) !== '.' ? `.${this.defaultEngine}` : this.defaultEngine;
|
||||
fileName += this.ext;
|
||||
}
|
||||
if (!((_b = opts.engines) === null || _b === void 0 ? void 0 : _b[this.ext]))
|
||||
throw new Error(`No engine was found for ${this.ext}`);
|
||||
const path = __classPrivateFieldGet(this, _View_instances, "m", _View_lookup).call(this, fileName);
|
||||
const dirs = Array.isArray(this.root) && this.root.length > 1
|
||||
? `directories "${this.root.slice(0, -1).join('", "')}" or "${this.root[this.root.length - 1]}"`
|
||||
: `directory "${this.root}"`;
|
||||
if (!path)
|
||||
throw new Error(`Failed to lookup view "${name}" in views ${dirs}`);
|
||||
this.engine = opts.engines[this.ext];
|
||||
this.path = path;
|
||||
}
|
||||
render(options, data, cb) {
|
||||
this.engine(this.path, data, options, cb);
|
||||
}
|
||||
}
|
||||
_View_instances = new WeakSet(), _View_lookup = function _View_lookup(name) {
|
||||
let path;
|
||||
const roots = [].concat(this.root);
|
||||
for (let i = 0; i < roots.length && !path; i++) {
|
||||
const root = roots[i];
|
||||
// resolve the path
|
||||
const loc = resolve(root, name);
|
||||
const dir = dirname(loc);
|
||||
const file = basename(loc);
|
||||
// resolve the file
|
||||
path = __classPrivateFieldGet(this, _View_instances, "m", _View_resolve).call(this, dir, file);
|
||||
}
|
||||
return path;
|
||||
}, _View_resolve = function _View_resolve(dir, file) {
|
||||
const ext = this.ext;
|
||||
// <path>.<ext>
|
||||
let path = join(dir, file);
|
||||
let stat = tryStat(path);
|
||||
if (stat === null || stat === void 0 ? void 0 : stat.isFile()) {
|
||||
return path;
|
||||
}
|
||||
// <path>/index.<ext>
|
||||
path = join(dir, basename(file, ext), `index${ext}`);
|
||||
stat = tryStat(path);
|
||||
if (stat === null || stat === void 0 ? void 0 : stat.isFile()) {
|
||||
return path;
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=view.js.map
|
1
25_02_24/node_modules/@tinyhttp/app/dist/view.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"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"}
|
46
25_02_24/node_modules/@tinyhttp/app/package.json
generated
vendored
Normal file
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
"name": "@tinyhttp/app",
|
||||
"version": "2.5.2",
|
||||
"description": "0-legacy, tiny & fast web framework as a replacement of Express",
|
||||
"type": "module",
|
||||
"homepage": "https://tinyhttp.v1rtl.site",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tinyhttp/tinyhttp.git",
|
||||
"directory": "packages/app"
|
||||
},
|
||||
"funding": {
|
||||
"type": "individual",
|
||||
"url": "https://github.com/tinyhttp/tinyhttp?sponsor=1"
|
||||
},
|
||||
"types": "./dist/index.d.ts",
|
||||
"exports": "./dist/index.js",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.21.3"
|
||||
},
|
||||
"keywords": [
|
||||
"tinyhttp",
|
||||
"router",
|
||||
"backend",
|
||||
"http",
|
||||
"framework",
|
||||
"api"
|
||||
],
|
||||
"author": "v1rtl",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"header-range-parser": "1.1.3",
|
||||
"regexparam": "^2.0.2",
|
||||
"@tinyhttp/cookie": "2.1.1",
|
||||
"@tinyhttp/proxy-addr": "2.2.1",
|
||||
"@tinyhttp/req": "2.2.5",
|
||||
"@tinyhttp/res": "2.2.5",
|
||||
"@tinyhttp/router": "2.2.3"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc"
|
||||
}
|
||||
}
|
21
25_02_24/node_modules/@tinyhttp/content-disposition/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2020 v 1 r t l
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
107
25_02_24/node_modules/@tinyhttp/content-disposition/README.md
generated
vendored
Normal file
|
@ -0,0 +1,107 @@
|
|||
# @tinyhttp/content-disposition
|
||||
|
||||
> [`content-disposition`](https://github.com/jshttp/content-disposition) rewrite
|
||||
> in TypeScript.
|
||||
|
||||
Create and parse HTTP `Content-Disposition` header
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
pnpm i @tinyhttp/content-disposition
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
```ts
|
||||
import { contentDisposition, parse } from '@tinyhttp/content-disposition'
|
||||
```
|
||||
|
||||
### `contentDisposition(filename)`
|
||||
|
||||
Create an attachment `Content-Disposition` header value using the given file
|
||||
name, if supplied. The `filename` is optional and if no file name is desired,
|
||||
but you want to specify `options`, set `filename` to `undefined`.
|
||||
|
||||
```js
|
||||
res.setHeader('Content-Disposition', contentDisposition('∫ maths.pdf'))
|
||||
```
|
||||
|
||||
**note** HTTP headers are of the ISO-8859-1 character set. If you are writing
|
||||
this header through a means different from `setHeader` in Node.js, you'll want
|
||||
to specify the `'binary'` encoding in Node.js.
|
||||
|
||||
#### Options
|
||||
|
||||
`contentDisposition` accepts these properties in the options object.
|
||||
|
||||
##### `fallback`
|
||||
|
||||
If the `filename` option is outside ISO-8859-1, then the file name is actually
|
||||
stored in a supplemental field for clients that support Unicode file names and a
|
||||
ISO-8859-1 version of the file name is automatically generated.
|
||||
|
||||
This specifies the ISO-8859-1 file name to override the automatic generation or
|
||||
disables the generation all together, defaults to `true`.
|
||||
|
||||
- A string will specify the ISO-8859-1 file name to use in place of automatic
|
||||
generation.
|
||||
- `false` will disable including a ISO-8859-1 file name and only include the
|
||||
Unicode version (unless the file name is already ISO-8859-1).
|
||||
- `true` will enable automatic generation if the file name is outside
|
||||
ISO-8859-1.
|
||||
|
||||
If the `filename` option is ISO-8859-1 and this option is specified and has a
|
||||
different value, then the `filename` option is encoded in the extended field and
|
||||
this set as the fallback field, even though they are both ISO-8859-1.
|
||||
|
||||
##### `type`
|
||||
|
||||
Specifies the disposition type, defaults to `"attachment"`. This can also be
|
||||
`"inline"`, or any other value (all values except inline are treated like
|
||||
`attachment`, but can convey additional information if both parties agree to
|
||||
it). The type is normalized to lower-case.
|
||||
|
||||
### `contentDisposition.parse(string)`
|
||||
|
||||
```js
|
||||
contentDisposition.parse('attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt')
|
||||
```
|
||||
|
||||
Parse a `Content-Disposition` header string. This automatically handles extended
|
||||
("Unicode") parameters by decoding them and providing them under the standard
|
||||
parameter name. This will return an object with the following properties
|
||||
(examples are shown for the string
|
||||
`'attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt'`):
|
||||
|
||||
- `type`: The disposition type (always lower case). Example: `'attachment'`
|
||||
|
||||
- `parameters`: An object of the parameters in the disposition (name of
|
||||
parameter always lower case and extended versions replace non-extended
|
||||
versions). Example: `{filename: "€ rates.txt"}`
|
||||
|
||||
## Example
|
||||
|
||||
This simple example shows how to use `accepts` to return a different typed
|
||||
respond body based on what the client wants to accept. The server lists it's
|
||||
preferences in order and will get back the best match between the client and
|
||||
server.
|
||||
|
||||
```ts
|
||||
import { contentDisposition } from '@tinyhttp/content-disposition'
|
||||
import destroy from 'destroy'
|
||||
import fs from 'node:fs'
|
||||
import { createServer } from 'node:http'
|
||||
import onFinished from 'on-finished'
|
||||
|
||||
const filePath = '/path/to/public/plans.pdf'
|
||||
|
||||
createServer((req, res) => {
|
||||
res.setHeader('Content-Type', 'application/pdf')
|
||||
res.setHeader('Content-Disposition', contentDisposition(filePath))
|
||||
|
||||
const stream = fs.createReadStream(filePath)
|
||||
stream.pipe(res)
|
||||
onFinished(res, () => destroy(stream))
|
||||
})
|
||||
```
|
21
25_02_24/node_modules/@tinyhttp/content-disposition/dist/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
export declare class ContentDisposition {
|
||||
type: string;
|
||||
parameters: Record<string, unknown>;
|
||||
constructor(type: string, parameters: Record<string, string | undefined | boolean>);
|
||||
}
|
||||
/**
|
||||
* Create an attachment Content-Disposition header.
|
||||
*
|
||||
* @param filename file name
|
||||
* @param options
|
||||
*/
|
||||
export declare function contentDisposition(filename?: string, options?: Partial<{
|
||||
type: string;
|
||||
fallback: string | boolean;
|
||||
}>): string;
|
||||
/**
|
||||
* Parse Content-Disposition header string.
|
||||
* @param header string
|
||||
*/
|
||||
export declare function parse(header: string): ContentDisposition;
|
||||
//# sourceMappingURL=index.d.ts.map
|
1
25_02_24/node_modules/@tinyhttp/content-disposition/dist/index.d.ts.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8BA,qBAAa,kBAAkB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACvB,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;CAInF;AAoFD;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAChC,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;CAC3B,CAAM,GACN,MAAM,CAGR;AA2BD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAuDxD"}
|