Refactor routing in App component to enhance navigation and improve error handling by integrating dynamic routes and updating the NotFound route.

This commit is contained in:
becarta
2025-05-23 12:43:00 +02:00
parent f40db0f5c9
commit a544759a3b
11127 changed files with 1647032 additions and 0 deletions

52
node_modules/comma-separated-tokens/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,52 @@
/**
* @typedef Options
* Configuration for `stringify`.
* @property {boolean} [padLeft=true]
* Whether to pad a space before a token.
* @property {boolean} [padRight=false]
* Whether to pad a space after a token.
*/
/**
* @typedef {Options} StringifyOptions
* Please use `StringifyOptions` instead.
*/
/**
* Parse comma-separated tokens to an array.
*
* @param {string} value
* Comma-separated tokens.
* @returns {Array<string>}
* List of tokens.
*/
export function parse(value: string): Array<string>
/**
* Serialize an array of strings or numbers to comma-separated tokens.
*
* @param {Array<string|number>} values
* List of tokens.
* @param {Options} [options]
* Configuration for `stringify` (optional).
* @returns {string}
* Comma-separated tokens.
*/
export function stringify(
values: Array<string | number>,
options?: Options | undefined
): string
/**
* Configuration for `stringify`.
*/
export type Options = {
/**
* Whether to pad a space before a token.
*/
padLeft?: boolean | undefined
/**
* Whether to pad a space after a token.
*/
padRight?: boolean | undefined
}
/**
* Please use `StringifyOptions` instead.
*/
export type StringifyOptions = Options

74
node_modules/comma-separated-tokens/index.js generated vendored Normal file
View File

@@ -0,0 +1,74 @@
/**
* @typedef Options
* Configuration for `stringify`.
* @property {boolean} [padLeft=true]
* Whether to pad a space before a token.
* @property {boolean} [padRight=false]
* Whether to pad a space after a token.
*/
/**
* @typedef {Options} StringifyOptions
* Please use `StringifyOptions` instead.
*/
/**
* Parse comma-separated tokens to an array.
*
* @param {string} value
* Comma-separated tokens.
* @returns {Array<string>}
* List of tokens.
*/
export function parse(value) {
/** @type {Array<string>} */
const tokens = []
const input = String(value || '')
let index = input.indexOf(',')
let start = 0
/** @type {boolean} */
let end = false
while (!end) {
if (index === -1) {
index = input.length
end = true
}
const token = input.slice(start, index).trim()
if (token || !end) {
tokens.push(token)
}
start = index + 1
index = input.indexOf(',', start)
}
return tokens
}
/**
* Serialize an array of strings or numbers to comma-separated tokens.
*
* @param {Array<string|number>} values
* List of tokens.
* @param {Options} [options]
* Configuration for `stringify` (optional).
* @returns {string}
* Comma-separated tokens.
*/
export function stringify(values, options) {
const settings = options || {}
// Ensure the last empty entry is seen.
const input = values[values.length - 1] === '' ? [...values, ''] : values
return input
.join(
(settings.padRight ? ' ' : '') +
',' +
(settings.padLeft === false ? '' : ' ')
)
.trim()
}

22
node_modules/comma-separated-tokens/license generated vendored Normal file
View File

@@ -0,0 +1,22 @@
(The MIT License)
Copyright (c) 2016 Titus Wormer <tituswormer@gmail.com>
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.

72
node_modules/comma-separated-tokens/package.json generated vendored Normal file
View File

@@ -0,0 +1,72 @@
{
"name": "comma-separated-tokens",
"version": "2.0.3",
"description": "Parse and stringify comma-separated tokens",
"license": "MIT",
"keywords": [
"dom",
"html",
"comma",
"separated",
"tokens",
"parse",
"stringify"
],
"repository": "wooorm/comma-separated-tokens",
"bugs": "https://github.com/wooorm/comma-separated-tokens/issues",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
},
"author": "Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)",
"contributors": [
"Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)"
],
"sideEffects": false,
"type": "module",
"main": "index.js",
"types": "index.d.ts",
"files": [
"index.d.ts",
"index.js"
],
"devDependencies": {
"@types/node": "^18.0.0",
"c8": "^7.0.0",
"prettier": "^2.0.0",
"remark-cli": "^11.0.0",
"remark-preset-wooorm": "^9.0.0",
"type-coverage": "^2.0.0",
"typescript": "^4.0.0",
"xo": "^0.52.0"
},
"scripts": {
"prepack": "npm run build && npm run format",
"build": "tsc --build --clean && tsc --build && type-coverage",
"format": "remark . -qfo && prettier . -w --loglevel warn && xo --fix",
"test-api": "node --conditions development test.js",
"test-coverage": "c8 --check-coverage --100 --reporter lcov npm run test-api",
"test": "npm run build && npm run format && npm run test-coverage"
},
"prettier": {
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"bracketSpacing": false,
"semi": false,
"trailingComma": "none"
},
"xo": {
"prettier": true
},
"remarkConfig": {
"plugins": [
"preset-wooorm"
]
},
"typeCoverage": {
"atLeast": 100,
"detail": true,
"strict": true
}
}

167
node_modules/comma-separated-tokens/readme.md generated vendored Normal file
View File

@@ -0,0 +1,167 @@
# comma-separated-tokens
[![Build][build-badge]][build]
[![Coverage][coverage-badge]][coverage]
[![Downloads][downloads-badge]][downloads]
[![Size][size-badge]][size]
Parse and stringify comma-separated tokens.
## Contents
* [What is this?](#what-is-this)
* [When should I use this?](#when-should-i-use-this)
* [Install](#install)
* [Use](#use)
* [API](#api)
* [`parse(value)`](#parsevalue)
* [`stringify(values[, options])`](#stringifyvalues-options)
* [Types](#types)
* [Compatibility](#compatibility)
* [Related](#related)
* [Contribute](#contribute)
* [Security](#security)
* [License](#license)
## What is this?
This is a tiny package that can parse and stringify comma-separated tokens, as
used for example in the HTML `accept` attribute, according to the
[WHATWG spec][spec].
## When should I use this?
This package is rather niche, its low-level and particularly useful when
working with [hast][].
## Install
This package is [ESM only][esm].
In Node.js (version 14.14+, 16.0+), install with [npm][]:
```sh
npm install comma-separated-tokens
```
In Deno with [`esm.sh`][esmsh]:
```js
import {parse, stringify} from 'https://esm.sh/comma-separated-tokens@2'
```
In browsers with [`esm.sh`][esmsh]:
```html
<script type="module">
import {parse, stringify} from 'https://esm.sh/comma-separated-tokens@2?bundle'
</script>
```
## Use
```js
import {parse, stringify} from 'comma-separated-tokens'
parse(' a ,b,,d d ') //=> ['a', 'b', '', 'd d']
stringify(['a', 'b', '', 'd d']) //=> 'a, b, , d d'
```
## API
This package exports the identifier `parse` and `stringify`.
There is no default export.
### `parse(value)`
Parse commma-separated tokens (`string`) to an array of strings
(`Array<string>`), according to the [WHATWG spec][spec].
### `stringify(values[, options])`
Serialize an array of strings or numbers (`Array<string|number>`) to
comma-separated tokens (`string`).
Handles empty items at start or end correctly.
> 👉 **Note**: its not possible to specify initial or final whitespace per
> value.
##### `options`
Configuration (optional).
###### `options.padLeft`
Whether to pad a space before a token (`boolean`, default: `true`).
###### `options.padRight`
Whether to pad a space after a token (`boolean`, default: `false`).
## Types
This package is fully typed with [TypeScript][].
It exports the additional type `Options`.
## Compatibility
This package is at least compatible with all maintained versions of Node.js.
As of now, that is Node.js 14.14+ and 16.0+.
It also works in Deno and modern browsers.
## Related
* [`space-separated-tokens`](https://github.com/wooorm/space-separated-tokens)
— parse/stringify space-separated tokens
* [`collapse-white-space`](https://github.com/wooorm/collapse-white-space)
— replace multiple white-space characters with a single space
* [`property-information`](https://github.com/wooorm/property-information)
— info on HTML properties
## Contribute
Yes please!
See [How to Contribute to Open Source][contribute].
## Security
This package is safe.
## License
[MIT][license] © [Titus Wormer][author]
<!-- Definitions -->
[build-badge]: https://github.com/wooorm/comma-separated-tokens/workflows/main/badge.svg
[build]: https://github.com/wooorm/comma-separated-tokens/actions
[coverage-badge]: https://img.shields.io/codecov/c/github/wooorm/comma-separated-tokens.svg
[coverage]: https://codecov.io/github/wooorm/comma-separated-tokens
[downloads-badge]: https://img.shields.io/npm/dm/comma-separated-tokens.svg
[downloads]: https://www.npmjs.com/package/comma-separated-tokens
[size-badge]: https://img.shields.io/bundlephobia/minzip/comma-separated-tokens.svg
[size]: https://bundlephobia.com/result?p=comma-separated-tokens
[npm]: https://docs.npmjs.com/cli/install
[esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
[esmsh]: https://esm.sh
[typescript]: https://www.typescriptlang.org
[contribute]: https://opensource.guide/how-to-contribute/
[license]: license
[author]: https://wooorm.com
[spec]: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#comma-separated-tokens
[hast]: https://github.com/syntax-tree/hast