⚡ Adds routing
Squashed commit of the following: commitd26bffc33aAuthor: Jan Andrle <andrle.jan@centrum.cz> Date: Tue Jun 9 10:35:14 2026 +0200 ⚡ ups versions commit8bb12aaac1Author: Jan Andrle <andrle.jan@centrum.cz> Date: Fri May 22 15:56:44 2026 +0200 ⚡ 📺 finlizes routing and improves bs commitc3782509e8Author: Jan Andrle <andrle.jan@centrum.cz> Date: Wed May 20 16:10:51 2026 +0200 ⚡ first steps (footer) commit7c925d1fdbAuthor: Jan Andrle <andrle.jan@centrum.cz> Date: Wed May 20 15:24:20 2026 +0200 ⚡ 📺 tsc-alias commite4e41197b9Author: Jan Andrle <andrle.jan@centrum.cz> Date: Wed May 20 14:40:47 2026 +0200 🐛 fixes routing commit7d6240e28aAuthor: Jan Andrle <andrle.jan@centrum.cz> Date: Wed May 20 14:40:00 2026 +0200 🐛 📺 fixes dev server commit139b1590ceAuthor: Jan Andrle <andrle.jan@centrum.cz> Date: Wed Apr 29 13:40:40 2026 +0200 ⚡ Uses original router - it has benefits to use hash properly commit3cc11b68deAuthor: Jan Andrle <andrle.jan@centrum.cz> Date: Tue Apr 28 17:16:00 2026 +0200 🎉
This commit is contained in:
+10
-4
@@ -4,9 +4,6 @@ This project uses [jaandrle/bs: The simplest possible build system using executa
|
||||
## Available executables
|
||||
If it makes sense, arguments are passed to internally used commands (e.g. `tsc`), e. g. `--help`.
|
||||
|
||||
### bs/lint
|
||||
This lints the project using `tsc`.
|
||||
|
||||
### bs/test
|
||||
This lints the project and runs tests using `wtr`.
|
||||
|
||||
@@ -19,8 +16,17 @@ This builds the project using `rollup`.
|
||||
### bs/analyze
|
||||
This analyze Custom Element manifest using the `@custom-elements-manifest/analyzer`.
|
||||
|
||||
### bs/dev/assets
|
||||
Copies assets using `cp` into proper destination in `.tmp`.
|
||||
|
||||
### bs/dev/tsc
|
||||
Builds typescript files using `tsc`.
|
||||
|
||||
### bs/dev/lint
|
||||
Lints the project using `tsc`.
|
||||
|
||||
### bs/npm/lint
|
||||
Linted projects’ npm dependencies.
|
||||
Lints projects’ npm dependencies.
|
||||
|
||||
### bs/npm/update
|
||||
Updates projects’ npm dependencies.
|
||||
|
||||
+7
-3
@@ -5,8 +5,12 @@ set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3
|
||||
exit 1;
|
||||
}
|
||||
# depends on
|
||||
declare -r app='src/app-cfpodcasts.ts'
|
||||
declare -r cem='node_modules/.bin/cem'
|
||||
declare -r app=(
|
||||
'src/**/c-*.ts'
|
||||
'src/**/app-*/index.ts'
|
||||
'src/index.ts'
|
||||
)
|
||||
declare -r cem='node_modules/.bin/custom-elements-manifest'
|
||||
|
||||
help(){
|
||||
if ! isHelp "${@}"; then return 0; fi
|
||||
@@ -17,7 +21,7 @@ help(){
|
||||
}
|
||||
main(){
|
||||
help "${@}"
|
||||
$cem analyze --litelement --globs "$app" "${@}"
|
||||
$cem analyze --litelement --globs "${app[@]}" "${@}"
|
||||
}
|
||||
|
||||
main "${@}"
|
||||
|
||||
@@ -5,6 +5,8 @@ set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3
|
||||
exit 1;
|
||||
}
|
||||
# depends on
|
||||
declare -r tsc='bs/dev/tsc'
|
||||
declare -r assets='bs/dev/assets'
|
||||
declare -r rollup='node_modules/.bin/rollup'
|
||||
declare -r analyze='bs/analyze'
|
||||
declare -r config='rollup.config.js'
|
||||
@@ -20,6 +22,8 @@ help(){
|
||||
main(){
|
||||
help "${@}"
|
||||
|
||||
$tsc
|
||||
$assets
|
||||
rm -rf "$dist"
|
||||
$rollup -c $config "${@}"
|
||||
$analyze --exclude "$dist"
|
||||
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3Ml53kvc
|
||||
. bs/.common || {
|
||||
echo 'Please run this script from the project root directory' >&2;
|
||||
exit 1;
|
||||
}
|
||||
# depends on
|
||||
declare -r paths='bs/dev/paths.js'
|
||||
declare -r assets="$($paths 'src')/**/assets"
|
||||
declare -r target="$($paths 'tscoutput')"
|
||||
|
||||
help(){
|
||||
if ! isHelp "${@}"; then return 0; fi
|
||||
echoReadmeInfo
|
||||
echo
|
||||
exit 0
|
||||
}
|
||||
main(){
|
||||
help "${@}"
|
||||
shopt -s globstar nullglob
|
||||
for dir in $assets; do
|
||||
cp -r "$dir" "$target/$dir"
|
||||
done
|
||||
}
|
||||
|
||||
main "${@}"
|
||||
@@ -16,7 +16,7 @@ help(){
|
||||
}
|
||||
main(){
|
||||
help "${@}"
|
||||
$tsc "${@}"
|
||||
$tsc --noEmit "${@}"
|
||||
}
|
||||
|
||||
main "${@}"
|
||||
Executable
+44
@@ -0,0 +1,44 @@
|
||||
#!/bin/env node
|
||||
import tsconfig from "../../tsconfig.json" with { type: "json" };
|
||||
export const paths = {
|
||||
/** code source */
|
||||
src: "src",
|
||||
/** code processed by tsc */
|
||||
tscoutput: tsconfig.compilerOptions.outDir,
|
||||
/** code processed by tsc and rollup */
|
||||
dist: "dist",
|
||||
/** tempral results of tsc, tests, … */
|
||||
tmp: ".tmp",
|
||||
};
|
||||
export default paths;
|
||||
|
||||
import { argv, exit } from "node:process";
|
||||
import { fileURLToPath } from "node:url";
|
||||
const [ _, script ] = argv;
|
||||
if (script === fileURLToPath(import.meta.url))
|
||||
main(argv.slice(2));
|
||||
|
||||
function main(args) {
|
||||
if(args.includes("--help") || args.includes("-h")){
|
||||
console.log(`
|
||||
Usage: ${script} [options]
|
||||
|
||||
Options:
|
||||
[type] … if omitted, echo all
|
||||
`);
|
||||
exit(0);
|
||||
}
|
||||
if(args.length === 0){
|
||||
console.log(paths);
|
||||
exit(0);
|
||||
}
|
||||
for(const arg of args){
|
||||
const path = paths[arg];
|
||||
if(!path){
|
||||
console.error(`Unknown path: ${arg}`);
|
||||
exit(1);
|
||||
}
|
||||
console.log(path);
|
||||
}
|
||||
}
|
||||
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3Ml53kvc
|
||||
. bs/.common || {
|
||||
echo 'Please run this script from the project root directory' >&2;
|
||||
exit 1;
|
||||
}
|
||||
# depends on
|
||||
declare -r tsc='node_modules/.bin/tsc'
|
||||
declare -r tscAlias='node_modules/.bin/tsc-alias'
|
||||
|
||||
help(){
|
||||
if ! isHelp "${@}"; then return 0; fi
|
||||
echoReadmeInfo
|
||||
echo
|
||||
$tsc --help
|
||||
$tscAlias --help
|
||||
exit 0
|
||||
}
|
||||
main(){
|
||||
help "${@}"
|
||||
$tsc "${@}"
|
||||
$tscAlias "${@}"
|
||||
}
|
||||
|
||||
main "${@}"
|
||||
@@ -4,20 +4,22 @@ set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3
|
||||
echo 'Please run this script from the project root directory' >&2;
|
||||
exit 1;
|
||||
}
|
||||
# "start:build": "web-dev-server --root-dir dist --app-index index.html --open",
|
||||
# "start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"web-dev-server\""
|
||||
# depends on
|
||||
declare -r server='node_modules/.bin/web-dev-server'
|
||||
declare -r lint='bs/lint'
|
||||
declare -r index='index.html'
|
||||
declare -r lint='bs/dev/lint'
|
||||
declare -r tsc='bs/dev/tsc'
|
||||
declare -r assets='bs/dev/assets'
|
||||
declare -r server_config='web-dev-server.config.js'
|
||||
|
||||
help(){
|
||||
if ! isHelp "${@}"; then return 0; fi
|
||||
echoReadmeInfo
|
||||
cat <<-EOF
|
||||
Options:
|
||||
./src Starts the development server (default)
|
||||
./dist Starts the production server
|
||||
|
||||
Defaults:
|
||||
See server config file: '$server_config'
|
||||
EOF
|
||||
$server --help
|
||||
exit 0
|
||||
@@ -25,13 +27,15 @@ EOF
|
||||
main(){
|
||||
help "${@}"
|
||||
|
||||
$lint
|
||||
local -r target="${1:-./src}" # ./src or ./dist
|
||||
if [[ "$target" == './dist' ]]; then
|
||||
if [[ "$target" =~ 'dist' ]]; then
|
||||
# console warns because of config file, use npx serve?
|
||||
$server --root-dir "$target" --app-index $index --open
|
||||
$server "${@}"
|
||||
else
|
||||
$lint --watch --preserveWatchOutput &
|
||||
$server &
|
||||
$assets
|
||||
$tsc --watch --preserveWatchOutput &
|
||||
$server "${@}" &
|
||||
wait
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -5,15 +5,13 @@ set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3
|
||||
exit 1;
|
||||
}
|
||||
# depends on
|
||||
declare -r lint='bs/lint'
|
||||
declare -r wtr='node_modules/.bin/wtr'
|
||||
declare -r tsc='bs/dev/tsc'
|
||||
declare -r wtr='node_modules/.bin/web-test-runner'
|
||||
|
||||
help(){
|
||||
if ! isHelp "${@}"; then return 0; fi
|
||||
echoReadmeInfo
|
||||
cat <<EOF
|
||||
|
||||
Options:
|
||||
--watch, -w Runs in watch mode
|
||||
EOF
|
||||
$wtr --help
|
||||
@@ -22,12 +20,12 @@ EOF
|
||||
main(){
|
||||
help "$1"
|
||||
if [[ "$1" != "--watch" ]]; then
|
||||
$lint
|
||||
$tsc
|
||||
$wtr "$@" --coverage
|
||||
exit
|
||||
fi
|
||||
|
||||
$lint --watch --preserveWatchOutput &
|
||||
$tsc --watch --preserveWatchOutput &
|
||||
$wtr "${*}" &
|
||||
wait
|
||||
}
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
v1.0.md
|
||||
@@ -0,0 +1,4 @@
|
||||
# v1.0.0
|
||||
|
||||
- [x] initial setup (`bs`, app structure, …)
|
||||
- [x] adds routing support
|
||||
@@ -0,0 +1,8 @@
|
||||
# Development-related documentation
|
||||
|
||||
## [CommaFeed API.md](./CommaFeed\ API.md)
|
||||
Exported API for [CommaFeed](https://github.com/CommaFeed/CommaFeed).
|
||||
|
||||
## Development TODO summary
|
||||
- [PLAN.md](./PLAN.md): Overall plan for the project.
|
||||
- [TASK.md](./TASK.md): Converted plan to overview of tasks.
|
||||
@@ -1,13 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<opml version="1.0">
|
||||
<head>
|
||||
<dateCreated>Tue, 21 Apr 2026 11:06:35 GMT</dateCreated>
|
||||
<dateCreated>Fri, 24 Apr 2026 13:48:25 GMT</dateCreated>
|
||||
<title>jaa-podcasty subscriptions in CommaFeed</title>
|
||||
</head>
|
||||
<body>
|
||||
<outline text="Epizody z vypršených odběrů" type="rss" title="Epizody z vypršených odběrů" xmlUrl="https://jaandrle.cz/p/2026-04-07.xml" htmlUrl="https://jaandrle.cz/podcasts/" />
|
||||
<outline text="Playlist: Čestmír & Daniela - YouTube" type="rss" title="Playlist: Čestmír & Daniela - YouTube" xmlUrl="http://rss-bridge.jaandrle.cz/?action=display&bridge=YoutubeBridge&token=Chief*Snowplow1*Drastic&context=By+playlist+Id&p=PLPK5bz7v9zh1BFEHQrNri-iCeugTjq1Jj&duration_min=&duration_max=&format=Atom" htmlUrl="http://rss-bridge.jaandrle.cz/?action=display&bridge=YoutubeBridge&token=Chief*Snowplow1*Drastic&context=By+playlist+Id&p=PLPK5bz7v9zh1BFEHQrNri-iCeugTjq1Jj&duration_min=&duration_max=&format=Atom" />
|
||||
<outline text="5:59" type="rss" title="5:59" xmlUrl="https://feeds.transistor.fm/5-59" htmlUrl="https://www.seznamzpravy.cz/" />
|
||||
<outline text="Redneck & Beneš" type="rss" title="Redneck & Beneš" xmlUrl="https://www.voxpot.cz/pod/rss/844dd837-6063-4b77-99c5-5adf7c7622f5/redneck-benes.xml" htmlUrl="https://www.voxpot.cz/muj-ucet" />
|
||||
<outline text="Pinepods News Podcast" type="rss" title="Pinepods News Podcast" xmlUrl="https://news.pinepods.online/feed.xml" htmlUrl="https://news.pinepods.online" />
|
||||
<outline text="Český rozhlas - Věda" type="rss" title="Český rozhlas - Věda" xmlUrl="https://api.mujrozhlas.cz/rss/topic/8c432621-a9a9-4c0a-8376-ea4ae5707fbb.rss" htmlUrl="https://www.mujrozhlas.cz/topic/view/8c432621-a9a9-4c0a-8376-ea4ae5707fbb" />
|
||||
<outline text="Bilance" type="rss" title="Bilance" xmlUrl="https://feeds.transistor.fm/bilance" htmlUrl="https://www.ceskatelevize.cz/porady/14021364946-bilance/" />
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
|
||||
<meta name="Description" content="Put your description here.">
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/logo.svg">
|
||||
<link rel="icon" type="image/svg+xml" href="./.tmp/tsc/src/assets/logo.svg">
|
||||
<base href="/">
|
||||
|
||||
<style>
|
||||
@@ -23,7 +23,7 @@
|
||||
<body>
|
||||
<app-cfpodcasts></app-cfpodcasts>
|
||||
|
||||
<script type="module" src="./out-tsc/src/app-index.js"></script>
|
||||
<script type="module" src="./.tmp/tsc/src/index.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
Generated
+226
-188
@@ -9,12 +9,13 @@
|
||||
"version": "0.0.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@lit-labs/router": "^0.1.4",
|
||||
"lit": "~3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@custom-elements-manifest/analyzer": "~0.11",
|
||||
"@open-wc/testing": "~4.0",
|
||||
"@rollup/plugin-babel": "~7.0",
|
||||
"@rollup/plugin-babel": "~7.1",
|
||||
"@rollup/plugin-node-resolve": "~16.0",
|
||||
"@types/mocha": "~10.0",
|
||||
"@web/dev-server": "~0.4",
|
||||
@@ -23,9 +24,10 @@
|
||||
"@web/test-runner": "~0.20",
|
||||
"babel-plugin-template-html-minifier": "~4.1",
|
||||
"deepmerge": "~4.3",
|
||||
"rollup": "~4.59",
|
||||
"rollup": "~4.61",
|
||||
"rollup-plugin-esbuild": "~6.2",
|
||||
"rollup-plugin-workbox": "~8.1",
|
||||
"tsc-alias": "~1.8",
|
||||
"tslib": "~2.8",
|
||||
"typescript": "~6.0"
|
||||
}
|
||||
@@ -2201,6 +2203,15 @@
|
||||
"@jridgewell/sourcemap-codec": "^1.4.14"
|
||||
}
|
||||
},
|
||||
"node_modules/@lit-labs/router": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@lit-labs/router/-/router-0.1.4.tgz",
|
||||
"integrity": "sha512-xURH6fOPE0MYfXa1nyl+qTIhZRVWkFa2oggTRodKAI2q/HjA2Va7HEKe7fMm8DdnFE+zEI2aUGnStawKpVh3lQ==",
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"lit": "^2.0.0 || ^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@lit-labs/ssr-dom-shim": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.5.1.tgz",
|
||||
@@ -2435,9 +2446,6 @@
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2452,9 +2460,6 @@
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2469,9 +2474,6 @@
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2486,9 +2488,6 @@
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2503,9 +2502,6 @@
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2520,9 +2516,6 @@
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2537,9 +2530,6 @@
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2554,9 +2544,6 @@
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2683,14 +2670,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/plugin-babel": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-7.0.0.tgz",
|
||||
"integrity": "sha512-NS2+P7v80N3MQqehZEjgpaFb9UyX3URNMW/zvoECKGo4PY4DvJfQusTI7BX/Ks+CPvtTfk3TqcR6S9VYBi/C+A==",
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-7.1.0.tgz",
|
||||
"integrity": "sha512-h9Y+xYha6p4wKO+FwdiPIkE+eIYCm8MzZPpX1iARIoFBnmKP9CnpT1p9dDf/DTFm6fyN8PmuLyRI5qZgchnitw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-module-imports": "^7.18.6",
|
||||
"@rollup/pluginutils": "^5.0.1"
|
||||
"@rollup/pluginutils": "^5.0.1",
|
||||
"workerpool": "^9.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
@@ -2806,9 +2794,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.1.tgz",
|
||||
"integrity": "sha512-xB0b51TB7IfDEzAojXahmr+gfA00uYVInJGgNNkeQG6RPnCPGr7udsylFLTubuIUSRE6FkcI1NElyRt83PP5oQ==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.61.1.tgz",
|
||||
"integrity": "sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -2820,9 +2808,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm64": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.1.tgz",
|
||||
"integrity": "sha512-XOjPId0qwSDKHaIsdzHJtKCxX0+nH8MhBwvrNsT7tVyKmdTx1jJ4XzN5RZXCdTzMpufLb+B8llTC0D8uCrLhcw==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.61.1.tgz",
|
||||
"integrity": "sha512-Jx2g7iSjw4AOT0HDPHM9RV3GNjRXwybWtSFZiZAYUTjUwjVrYIwq3kBf+LnhqJlzXFAqTAh2F7IGI+O568exPw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2834,9 +2822,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.1.tgz",
|
||||
"integrity": "sha512-vQuRd28p0gQpPrS6kppd8IrWmFo42U8Pz1XLRjSZXq5zCqyMDYFABT7/sywL11mO1EL10Qhh7MVPEwkG8GiBeg==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.61.1.tgz",
|
||||
"integrity": "sha512-0F1L/Z3Eqv8mT2n3dCpeO8GcTvHvVqkP5/t6DMsn0KzhYVcg+s7Ncl5DS8qjKYEeio6Az0Gt6nyBORay5qIlCA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2848,9 +2836,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-x64": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.1.tgz",
|
||||
"integrity": "sha512-x6VG6U29+Ivlnajrg1IHdzXeAwSoEHBFVO+CtC9Brugx6de712CUJobRUxsIA0KYrQvCmzNrMPFTT1A4CCqNTg==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.61.1.tgz",
|
||||
"integrity": "sha512-qLttcH871ujY4YcVfUSShhOw+CsoTatYz8gRbHO7Bb92QH059/P0y5do1KMs41fY0BpD2x4AJH/gID0zFiqVKQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2862,9 +2850,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-arm64": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.1.tgz",
|
||||
"integrity": "sha512-Sgi0Uo6t1YCHJMNO3Y8+bm+SvOanUGkoZKn/VJPwYUe2kp31X5KnXmzKd/NjW8iA3gFcfNZ64zh14uOGrIllCQ==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.61.1.tgz",
|
||||
"integrity": "sha512-fUI4RapGE0Oh3mb8mgfvC1O2nU1RpDZUKnDQm3xB1Ipg7C2wTs5Kstz7G2uWK99a8S2yTMq8/P4uycwNa0nJyw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2876,9 +2864,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-x64": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.1.tgz",
|
||||
"integrity": "sha512-AM4xnwEZwukdhk7laMWfzWu9JGSVnJd+Fowt6Fd7QW1nrf3h0Hp7Qx5881M4aqrUlKBCybOxz0jofvIIfl7C5g==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.61.1.tgz",
|
||||
"integrity": "sha512-H5YrdvJaDtI/U9/emrD4b++xkvp3y/JvOe4rizHbxvkyMfRS/CiRYdji+Pl8D0brEaNFWUh1drQxgAGIl6Xudw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2890,16 +2878,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.1.tgz",
|
||||
"integrity": "sha512-KUizqxpwaR2AZdAUsMWfL/C94pUu7TKpoPd88c8yFVixJ+l9hejkrwoK5Zj3wiNh65UeyryKnJyxL1b7yNqFQA==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.61.1.tgz",
|
||||
"integrity": "sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2907,16 +2892,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.1.tgz",
|
||||
"integrity": "sha512-MZoQ/am77ckJtZGFAtPucgUuJWiop3m2R3lw7tC0QCcbfl4DRhQUBUkHWCkcrT3pqy5Mzv5QQgY6Dmlba6iTWg==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.61.1.tgz",
|
||||
"integrity": "sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2924,16 +2906,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.1.tgz",
|
||||
"integrity": "sha512-Sez95TP6xGjkWB1608EfhCX1gdGrO5wzyN99VqzRtC17x/1bhw5VU1V0GfKUwbW/Xr1J8mSasoFoJa6Y7aGGSA==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.61.1.tgz",
|
||||
"integrity": "sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2941,16 +2920,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.1.tgz",
|
||||
"integrity": "sha512-9Cs2Seq98LWNOJzR89EGTZoiP8EkZ9UbQhBlDgfAkM6asVna1xJ04W2CLYWDN/RpUgOjtQvcv8wQVi1t5oQazA==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.61.1.tgz",
|
||||
"integrity": "sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2958,16 +2934,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-loong64-gnu": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.1.tgz",
|
||||
"integrity": "sha512-n9yqttftgFy7IrNEnHy1bOp6B4OSe8mJDiPkT7EqlM9FnKOwUMnCK62ixW0Kd9Clw0/wgvh8+SqaDXMFvw3KqQ==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.61.1.tgz",
|
||||
"integrity": "sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2975,16 +2948,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-loong64-musl": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.1.tgz",
|
||||
"integrity": "sha512-SfpNXDzVTqs/riak4xXcLpq5gIQWsqGWMhN1AGRQKB4qGSs4r0sEs3ervXPcE1O9RsQ5bm8Muz6zmQpQnPss1g==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.61.1.tgz",
|
||||
"integrity": "sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2992,16 +2962,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.1.tgz",
|
||||
"integrity": "sha512-LjaChED0wQnjKZU+tsmGbN+9nN1XhaWUkAlSbTdhpEseCS4a15f/Q8xC2BN4GDKRzhhLZpYtJBZr2NZhR0jvNw==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.61.1.tgz",
|
||||
"integrity": "sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -3009,16 +2976,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-ppc64-musl": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.1.tgz",
|
||||
"integrity": "sha512-ojW7iTJSIs4pwB2xV6QXGwNyDctvXOivYllttuPbXguuKDX5vwpqYJsHc6D2LZzjDGHML414Tuj3LvVPe1CT1A==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.61.1.tgz",
|
||||
"integrity": "sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -3026,16 +2990,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.1.tgz",
|
||||
"integrity": "sha512-FP+Q6WTcxxvsr0wQczhSE+tOZvFPV8A/mUE6mhZYFW9/eea/y/XqAgRoLLMuE9Cz0hfX5bi7p116IWoB+P237A==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.61.1.tgz",
|
||||
"integrity": "sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -3043,16 +3004,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-musl": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.1.tgz",
|
||||
"integrity": "sha512-L1uD9b/Ig8Z+rn1KttCJjwhN1FgjRMBKsPaBsDKkfUl7GfFq71pU4vWCnpOsGljycFEbkHWARZLf4lMYg3WOLw==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.61.1.tgz",
|
||||
"integrity": "sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -3060,16 +3018,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.1.tgz",
|
||||
"integrity": "sha512-EZc9NGTk/oSUzzOD4nYY4gIjteo2M3CiozX6t1IXGCOdgxJTlVu/7EdPeiqeHPSIrxkLhavqpBAUCfvC6vBOug==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.61.1.tgz",
|
||||
"integrity": "sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -3077,16 +3032,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.1.tgz",
|
||||
"integrity": "sha512-NQ9KyU1Anuy59L8+HHOKM++CoUxrQWrZWXRik4BJFm+7i5NP6q/SW43xIBr80zzt+PDBJ7LeNmloQGfa0JGk0w==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.61.1.tgz",
|
||||
"integrity": "sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -3094,16 +3046,13 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.1.tgz",
|
||||
"integrity": "sha512-GZkLk2t6naywsveSFBsEb0PLU+JC9ggVjbndsbG20VPhar6D1gkMfCx4NfP9owpovBXTN+eRdqGSkDGIxPHhmQ==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.61.1.tgz",
|
||||
"integrity": "sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -3111,9 +3060,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-openbsd-x64": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.1.tgz",
|
||||
"integrity": "sha512-1hjG9Jpl2KDOetr64iQd8AZAEjkDUUK5RbDkYWsViYLC1op1oNzdjMJeFiofcGhqbNTaY2kfgqowE7DILifsrA==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.61.1.tgz",
|
||||
"integrity": "sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -3125,9 +3074,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-openharmony-arm64": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.1.tgz",
|
||||
"integrity": "sha512-ARoKfflk0SiiYm3r1fmF73K/yB+PThmOwfWCk1sr7x/k9dc3uGLWuEE9if+Pw21el8MSpp3TMnG5vLNsJ/MMGQ==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.61.1.tgz",
|
||||
"integrity": "sha512-fbWnKqVkjrJN38vNe3ahkbk6iejS/3b0Nt7EEtPpE6RBacZcGXNKbzfHN3GUUlXOPghUg0j6XUGrtjX9z1sIvA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -3139,9 +3088,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.1.tgz",
|
||||
"integrity": "sha512-oOST61G6VM45Mz2vdzWMr1s2slI7y9LqxEV5fCoWi2MDONmMvgsJVHSXxce/I2xOSZPTZ47nDPOl1tkwKWSHcw==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.61.1.tgz",
|
||||
"integrity": "sha512-ArMl38iVAbk0New1ogihQNY6iphLi4ZaRsa037gUzv5yeKPY8TD3Dmy4x2RNC1VztU/uqm+G+/RwFrSka3Oy2g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -3153,9 +3102,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.1.tgz",
|
||||
"integrity": "sha512-x5WgLi5dWpRz7WclKBGEF15LcWTh0ewrHM6Cq4A+WUbkysUMZNeqt05bwPonOQ3ihPS/WMhAZV5zB1DfnI4Sxg==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.61.1.tgz",
|
||||
"integrity": "sha512-0mYtjHS9ucAbcATycCNK9IGBk/cCe/ma7EmSLGZdsxnOA8cjRIyU04wDpVAD9NiOfLUR9KTxdiO53uOkherqjQ==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -3167,9 +3116,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-gnu": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.1.tgz",
|
||||
"integrity": "sha512-wS+zHAJRVP5zOL0e+a3V3E/NTEwM2HEvvNKoDy5Xcfs0o8lljxn+EAFPkUsxihBdmDq1JWzXmmB9cbssCPdxxw==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.61.1.tgz",
|
||||
"integrity": "sha512-gK1iCEPfpoSG9wfBihXxvBMi8ZfcWffYkEsC/Eih+iFENTaewvNcrEQ69lIOWYO5pePHKLHHO7nq5AILGO/HQQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -3181,9 +3130,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.1.tgz",
|
||||
"integrity": "sha512-rhHyrMeLpErT/C7BxcEsU4COHQUzHyrPYW5tOZUeUhziNtRuYxmDWvqQqzpuUt8xpOgmbKa1btGXfnA/ANVO+g==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.61.1.tgz",
|
||||
"integrity": "sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -3343,9 +3292,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/estree": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
|
||||
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
|
||||
"integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
@@ -7961,9 +7910,6 @@
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -7985,9 +7931,6 @@
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -8009,9 +7952,6 @@
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"glibc"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -8033,9 +7973,6 @@
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"libc": [
|
||||
"musl"
|
||||
],
|
||||
"license": "MPL-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -8445,6 +8382,20 @@
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/mylas": {
|
||||
"version": "2.1.14",
|
||||
"resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.14.tgz",
|
||||
"integrity": "sha512-BzQguy9W9NJgoVn2mRWzbFrFWWztGCcng2QI9+41frfk+Athwgx3qhqhvStz7ExeUUu7Kzw427sNzHpEZNINog==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/raouldeheer"
|
||||
}
|
||||
},
|
||||
"node_modules/nanocolors": {
|
||||
"version": "0.2.13",
|
||||
"resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz",
|
||||
@@ -8903,6 +8854,19 @@
|
||||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/plimit-lit": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.6.1.tgz",
|
||||
"integrity": "sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"queue-lit": "^1.5.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/portfinder": {
|
||||
"version": "1.0.38",
|
||||
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz",
|
||||
@@ -9065,6 +9029,16 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/queue-lit": {
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.2.tgz",
|
||||
"integrity": "sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/queue-microtask": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
|
||||
@@ -9419,13 +9393,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.1.tgz",
|
||||
"integrity": "sha512-iZKH8BeoCwTCBTZBZWQQMreekd4mdomwdjIQ40GC1oZm6o+8PnNMIxFOiCsGMWeS8iDJ7KZcl7KwmKk/0HOQpA==",
|
||||
"version": "4.61.1",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.61.1.tgz",
|
||||
"integrity": "sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/estree": "1.0.8"
|
||||
"@types/estree": "1.0.9"
|
||||
},
|
||||
"bin": {
|
||||
"rollup": "dist/bin/rollup"
|
||||
@@ -9435,31 +9409,31 @@
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-android-arm-eabi": "4.59.1",
|
||||
"@rollup/rollup-android-arm64": "4.59.1",
|
||||
"@rollup/rollup-darwin-arm64": "4.59.1",
|
||||
"@rollup/rollup-darwin-x64": "4.59.1",
|
||||
"@rollup/rollup-freebsd-arm64": "4.59.1",
|
||||
"@rollup/rollup-freebsd-x64": "4.59.1",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.59.1",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.59.1",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.59.1",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.59.1",
|
||||
"@rollup/rollup-linux-loong64-gnu": "4.59.1",
|
||||
"@rollup/rollup-linux-loong64-musl": "4.59.1",
|
||||
"@rollup/rollup-linux-ppc64-gnu": "4.59.1",
|
||||
"@rollup/rollup-linux-ppc64-musl": "4.59.1",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.59.1",
|
||||
"@rollup/rollup-linux-riscv64-musl": "4.59.1",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.59.1",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.59.1",
|
||||
"@rollup/rollup-linux-x64-musl": "4.59.1",
|
||||
"@rollup/rollup-openbsd-x64": "4.59.1",
|
||||
"@rollup/rollup-openharmony-arm64": "4.59.1",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.59.1",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.59.1",
|
||||
"@rollup/rollup-win32-x64-gnu": "4.59.1",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.59.1",
|
||||
"@rollup/rollup-android-arm-eabi": "4.61.1",
|
||||
"@rollup/rollup-android-arm64": "4.61.1",
|
||||
"@rollup/rollup-darwin-arm64": "4.61.1",
|
||||
"@rollup/rollup-darwin-x64": "4.61.1",
|
||||
"@rollup/rollup-freebsd-arm64": "4.61.1",
|
||||
"@rollup/rollup-freebsd-x64": "4.61.1",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.61.1",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.61.1",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.61.1",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.61.1",
|
||||
"@rollup/rollup-linux-loong64-gnu": "4.61.1",
|
||||
"@rollup/rollup-linux-loong64-musl": "4.61.1",
|
||||
"@rollup/rollup-linux-ppc64-gnu": "4.61.1",
|
||||
"@rollup/rollup-linux-ppc64-musl": "4.61.1",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.61.1",
|
||||
"@rollup/rollup-linux-riscv64-musl": "4.61.1",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.61.1",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.61.1",
|
||||
"@rollup/rollup-linux-x64-musl": "4.61.1",
|
||||
"@rollup/rollup-openbsd-x64": "4.61.1",
|
||||
"@rollup/rollup-openharmony-arm64": "4.61.1",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.61.1",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.61.1",
|
||||
"@rollup/rollup-win32-x64-gnu": "4.61.1",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.61.1",
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
@@ -10384,6 +10358,63 @@
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tsc-alias": {
|
||||
"version": "1.8.17",
|
||||
"resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.17.tgz",
|
||||
"integrity": "sha512-EIduCZHqbNwPm8BZYfq1aD7BQ697A4h6uSGMOFQfYGoQwfrYFTKwYfy9Bv42YxHkduVBcn9Zx0DkX111DKskyg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"chokidar": "^3.5.3",
|
||||
"commander": "^9.0.0",
|
||||
"get-tsconfig": "^4.10.0",
|
||||
"globby": "^11.0.4",
|
||||
"mylas": "^2.1.9",
|
||||
"normalize-path": "^3.0.0",
|
||||
"plimit-lit": "^1.2.6"
|
||||
},
|
||||
"bin": {
|
||||
"tsc-alias": "dist/bin/index.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.20.2"
|
||||
}
|
||||
},
|
||||
"node_modules/tsc-alias/node_modules/chokidar": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
|
||||
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"anymatch": "~3.1.2",
|
||||
"braces": "~3.0.2",
|
||||
"glob-parent": "~5.1.2",
|
||||
"is-binary-path": "~2.1.0",
|
||||
"is-glob": "~4.0.1",
|
||||
"normalize-path": "~3.0.0",
|
||||
"readdirp": "~3.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8.10.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/tsc-alias/node_modules/commander": {
|
||||
"version": "9.5.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
|
||||
"integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^12.20.0 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
@@ -11421,6 +11452,13 @@
|
||||
"workbox-core": "7.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/workerpool": {
|
||||
"version": "9.3.4",
|
||||
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz",
|
||||
"integrity": "sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/wrap-ansi": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
|
||||
|
||||
+4
-2
@@ -11,12 +11,13 @@
|
||||
"start": "bs/start"
|
||||
},
|
||||
"dependencies": {
|
||||
"@lit-labs/router": "^0.1.4",
|
||||
"lit": "~3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@custom-elements-manifest/analyzer": "~0.11",
|
||||
"@open-wc/testing": "~4.0",
|
||||
"@rollup/plugin-babel": "~7.0",
|
||||
"@rollup/plugin-babel": "~7.1",
|
||||
"@rollup/plugin-node-resolve": "~16.0",
|
||||
"@types/mocha": "~10.0",
|
||||
"@web/dev-server": "~0.4",
|
||||
@@ -25,9 +26,10 @@
|
||||
"@web/test-runner": "~0.20",
|
||||
"babel-plugin-template-html-minifier": "~4.1",
|
||||
"deepmerge": "~4.3",
|
||||
"rollup": "~4.59",
|
||||
"rollup": "~4.61",
|
||||
"rollup-plugin-esbuild": "~6.2",
|
||||
"rollup-plugin-workbox": "~8.1",
|
||||
"tsc-alias": "~1.8",
|
||||
"tslib": "~2.8",
|
||||
"typescript": "~6.0"
|
||||
},
|
||||
|
||||
+6
-4
@@ -4,8 +4,10 @@ import { rollupPluginHTML as html } from "@web/rollup-plugin-html";
|
||||
import { importMetaAssets } from "@web/rollup-plugin-import-meta-assets";
|
||||
import esbuild from "rollup-plugin-esbuild";
|
||||
import { generateSW } from "rollup-plugin-workbox";
|
||||
import { paths } from "./bs/dev/paths.js";
|
||||
import { join } from "node:path";
|
||||
|
||||
const pathDist = join.bind(null, paths.dist);
|
||||
export default {
|
||||
input: "index.html",
|
||||
output: {
|
||||
@@ -13,7 +15,7 @@ export default {
|
||||
chunkFileNames: "[hash].js",
|
||||
assetFileNames: "[hash][extname]",
|
||||
format: "es",
|
||||
dir: "dist",
|
||||
dir: pathDist(),
|
||||
},
|
||||
preserveEntrySignatures: false,
|
||||
|
||||
@@ -22,7 +24,7 @@ export default {
|
||||
html({
|
||||
minify: true,
|
||||
injectServiceWorker: true,
|
||||
serviceWorkerPath: "dist/sw.js",
|
||||
serviceWorkerPath: pathDist("sw.js"),
|
||||
}),
|
||||
/** Resolve bare module imports */
|
||||
nodeResolve(),
|
||||
@@ -59,9 +61,9 @@ export default {
|
||||
globIgnores: ["polyfills/*.js", "nomodule-*.js"],
|
||||
navigateFallback: "/index.html",
|
||||
// where to output the generated sw
|
||||
swDest: join("dist", "sw.js"),
|
||||
swDest: pathDist("sw.js"),
|
||||
// directory to match patterns against to be precached
|
||||
globDirectory: join("dist"),
|
||||
globDirectory: pathDist(),
|
||||
// cache any html js and css by default
|
||||
globPatterns: ["**/*.{html,js,css,webmanifest}"],
|
||||
skipWaiting: true,
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
import { css } from "lit";
|
||||
export const styles = css`
|
||||
:host {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
`;
|
||||
@@ -0,0 +1,14 @@
|
||||
import { LitElement, html } from "lit";
|
||||
import { property, customElement } from "lit/decorators.js";
|
||||
import { styles } from "./index.css.js";
|
||||
|
||||
@customElement("app-episode")
|
||||
export class AppEpisode extends LitElement {
|
||||
static override styles = styles;
|
||||
@property({ type: String }) override id = "";
|
||||
override render() {
|
||||
return html`
|
||||
Episode ${this.id}
|
||||
`;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { route } from "@/core/route.js";
|
||||
import { html } from "lit";
|
||||
|
||||
export const path = "/episodes/" as const;
|
||||
export const routes = route(
|
||||
{
|
||||
path: "/episodes/:id/",
|
||||
async enter() {
|
||||
await import("./index.js");
|
||||
return true;
|
||||
},
|
||||
render({ id }){
|
||||
return html`<app-episode id=${id}></app-episode>`;
|
||||
},
|
||||
},
|
||||
);
|
||||
@@ -0,0 +1,9 @@
|
||||
import { css } from "lit";
|
||||
export const styles = css`
|
||||
:host {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
`;
|
||||
@@ -0,0 +1,14 @@
|
||||
import { LitElement, html } from "lit";
|
||||
import { customElement } from "lit/decorators.js";
|
||||
import { styles } from "./index.css.js";
|
||||
|
||||
@customElement("app-episodes")
|
||||
export class AppEpisodes extends LitElement {
|
||||
static override styles = styles;
|
||||
override render() {
|
||||
return html`
|
||||
<div class="logo"></div>
|
||||
<a href="/episodes/1">Episode 1</a>
|
||||
`;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import { route } from "@/core/route.js";
|
||||
import { routes as routeEpisode } from "./:id/routes.js";
|
||||
import { html } from "lit";
|
||||
|
||||
export const path = "/episodes/" as const;
|
||||
export const routes = route(
|
||||
{
|
||||
path,
|
||||
async enter() {
|
||||
await import("./index.js");
|
||||
return true;
|
||||
},
|
||||
render(){
|
||||
return html`<app-episodes></app-episodes>`;
|
||||
},
|
||||
},
|
||||
routeEpisode,
|
||||
);
|
||||
@@ -0,0 +1,9 @@
|
||||
import { css } from "lit";
|
||||
export const styles = css`
|
||||
:host {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
`;
|
||||
@@ -0,0 +1,22 @@
|
||||
import { html } from "lit";
|
||||
import { fixture, expect } from "@open-wc/testing";
|
||||
|
||||
import type { AppHome } from "./index.js";
|
||||
import "./index.js";
|
||||
|
||||
describe("AppHome", () => {
|
||||
let element: AppHome;
|
||||
beforeEach(async () => {
|
||||
element = await fixture(html`<app-home></app-home>`);
|
||||
});
|
||||
|
||||
it("renders a h1", () => {
|
||||
const h1 = element.shadowRoot!.querySelector('h1')!;
|
||||
expect(h1).to.exist;
|
||||
expect(h1.textContent).to.equal('My app');
|
||||
});
|
||||
|
||||
it("passes the a11y audit", async () => {
|
||||
await expect(element).shadowDom.to.be.accessible();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,15 @@
|
||||
import { LitElement, html } from "lit";
|
||||
import { customElement } from "lit/decorators.js";
|
||||
import { styles } from "./index.css.js";
|
||||
|
||||
@customElement("app-home")
|
||||
export class AppHome extends LitElement {
|
||||
static override styles = styles;
|
||||
override render() {
|
||||
return html`
|
||||
<h1>My app</h1>
|
||||
<p>Hello world</p>
|
||||
<a href="/episodes">Episode</a>
|
||||
`;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { route } from "@/core/route.js";
|
||||
import { html } from "lit";
|
||||
|
||||
export const path = "/" as const;
|
||||
export const routes = route(
|
||||
{
|
||||
path,
|
||||
async enter() {
|
||||
await import("./index.js");
|
||||
return true;
|
||||
},
|
||||
render(){
|
||||
return html`<app-home></app-home>`;
|
||||
},
|
||||
},
|
||||
);
|
||||
@@ -1,33 +0,0 @@
|
||||
import { css } from "lit";
|
||||
export const styles = css`
|
||||
:host {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
font-size: calc(10px + 2vmin);
|
||||
color: #1a2b42;
|
||||
max-width: 960px;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
background-color: var(--app-cfpodcasts-background-color);
|
||||
}
|
||||
|
||||
main {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.logo {
|
||||
margin-top: 36px;
|
||||
}
|
||||
|
||||
.app-footer {
|
||||
font-size: calc(12px + 0.5vmin);
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.app-footer a {
|
||||
margin-left: 5px;
|
||||
}
|
||||
`;
|
||||
@@ -1,39 +0,0 @@
|
||||
import { LitElement, html } from "lit";
|
||||
import { property, customElement } from "lit/decorators.js";
|
||||
import { styles } from "./app-index.css.js";
|
||||
|
||||
const logo = import.meta.resolve("../../assets/logo.svg");
|
||||
|
||||
@customElement("app-cfpodcasts")
|
||||
export class AppCfpodcasts extends LitElement {
|
||||
@property({ type: String }) header = "My app";
|
||||
static styles = styles;
|
||||
render() {
|
||||
return html`
|
||||
<main>
|
||||
<div class="logo"><img alt="open-wc logo" src=${logo} /></div>
|
||||
<h1>${this.header}</h1>
|
||||
|
||||
<p>Edit <code>src/AppCfpodcasts.ts</code> and save to reload.</p>
|
||||
<a
|
||||
class="app-link"
|
||||
href="https://open-wc.org/guides/developing-components/code-examples"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
Code examples
|
||||
</a>
|
||||
</main>
|
||||
|
||||
<p class="app-footer">
|
||||
🚽 Made with love by
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="https://github.com/open-wc"
|
||||
>open-wc</a
|
||||
>.
|
||||
</p>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,24 @@
|
||||
import { LitElement, css, html } from "lit";
|
||||
import { customElement } from "lit/decorators.js";
|
||||
|
||||
const styles = css`
|
||||
:host {
|
||||
position: absolute;
|
||||
clip: rect(1px 1px 1px 1px);
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
padding: 0;
|
||||
border: 0;
|
||||
height: 1px;
|
||||
width: 1px;
|
||||
overflow: hidden;
|
||||
}
|
||||
`;
|
||||
@customElement("c-sronly")
|
||||
export class CSronly extends LitElement {
|
||||
static override styles = styles;
|
||||
override render() {
|
||||
return html`
|
||||
<slot></slot>
|
||||
`;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import type { PathRouteConfig } from "@lit-labs/router";
|
||||
|
||||
export function route(...routes: (PathRouteConfig|PathRouteConfig[])[]): PathRouteConfig[] {
|
||||
return routes.flatMap(function process(route){
|
||||
if (Array.isArray(route)) // already processed
|
||||
return route;
|
||||
const { path, ...rest }= route;
|
||||
if (!path.endsWith("/"))
|
||||
throw new Error("path must end with „/”!");
|
||||
return [
|
||||
{ path, ...rest },
|
||||
{ path: path.slice(0, -1), ...rest },
|
||||
];
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
import { css } from "lit";
|
||||
export const styles = css`
|
||||
:host {
|
||||
height: 100vh;
|
||||
height: 100dvh;
|
||||
display: grid;
|
||||
grid-template-areas:
|
||||
"main"
|
||||
"footer";
|
||||
grid-template-rows: auto 4ch;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
main {
|
||||
grid-area: main;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
nav {
|
||||
grid-area: footer;
|
||||
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: space-evenly;
|
||||
align-items: center;
|
||||
padding: .5ch;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
height: 100%;
|
||||
aspect-ratio: 1;
|
||||
}
|
||||
img {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
`;
|
||||
@@ -0,0 +1,27 @@
|
||||
import { html } from "lit";
|
||||
import { fixture, expect } from "@open-wc/testing";
|
||||
|
||||
import type { AppCfpodcasts } from "./index.js";
|
||||
import "./index.js";
|
||||
|
||||
describe("App", () => {
|
||||
let element: AppCfpodcasts;
|
||||
let nav: HTMLElement;
|
||||
beforeEach(async () => {
|
||||
element = await fixture(html`<app-cfpodcasts></app-cfpodcasts>`);
|
||||
nav = element.shadowRoot!.querySelector("nav")!;
|
||||
});
|
||||
|
||||
it("renders <main>", () => {
|
||||
const content = element.shadowRoot!.querySelector('main')!;
|
||||
expect(content).to.exist;
|
||||
});
|
||||
|
||||
it("has all pages", async () => {
|
||||
const links = nav.querySelectorAll("a");
|
||||
await expect(links.length).to.equal(2);
|
||||
});
|
||||
it("passes the a11y audit", async () => {
|
||||
await expect(nav).shadowDom.to.be.accessible();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,39 @@
|
||||
import { LitElement, html } from "lit";
|
||||
import { customElement } from "lit/decorators.js";
|
||||
import { styles } from "./index.css.js";
|
||||
import { Router } from "@lit-labs/router";
|
||||
|
||||
import * as routeHome from "./app-home/routes.js";
|
||||
import * as routeEpisodes from "./app-episodes/routes.js";
|
||||
|
||||
import "./components/c-sronly.js";
|
||||
const logo = new URL("./assets/logo.svg", import.meta.url);
|
||||
|
||||
@customElement("app-cfpodcasts")
|
||||
export class AppCfpodcasts extends LitElement {
|
||||
static override styles = styles;
|
||||
private _routes = new Router(this, [
|
||||
...routeHome.routes,
|
||||
...routeEpisodes.routes,
|
||||
]);
|
||||
override render() {
|
||||
console.log(this._routes); // TODO
|
||||
return html`
|
||||
<main>${this._routes.outlet()}</main>
|
||||
<nav>
|
||||
<a
|
||||
href="${this._routes.link("/")}"
|
||||
title="Home"
|
||||
>
|
||||
<img alt="" src=${logo} />
|
||||
<c-sronly>Home</c-sronly>
|
||||
</a>
|
||||
<a
|
||||
href="${this._routes.link(routeEpisodes.path)}"
|
||||
>
|
||||
Episodes
|
||||
</a>
|
||||
</nav>
|
||||
`;
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
import { html } from 'lit';
|
||||
import { fixture, expect } from '@open-wc/testing';
|
||||
|
||||
import type { AppCfpodcasts } from '../src/app-index.js';
|
||||
import '../src/app-cfpodcasts.js';
|
||||
|
||||
describe('AppCfpodcasts', () => {
|
||||
let element: AppCfpodcasts;
|
||||
beforeEach(async () => {
|
||||
element = await fixture(html`<app-cfpodcasts></app-cfpodcasts>`);
|
||||
});
|
||||
|
||||
it('renders a h1', () => {
|
||||
const h1 = element.shadowRoot!.querySelector('h1')!;
|
||||
expect(h1).to.exist;
|
||||
expect(h1.textContent).to.equal('My app');
|
||||
});
|
||||
|
||||
it('passes the a11y audit', async () => {
|
||||
await expect(element).shadowDom.to.be.accessible();
|
||||
});
|
||||
});
|
||||
+39
-19
@@ -1,21 +1,41 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es2021",
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"noEmitOnError": true,
|
||||
"lib": ["es2021", "dom", "DOM.Iterable"],
|
||||
"strict": true,
|
||||
"esModuleInterop": false,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"experimentalDecorators": true,
|
||||
"importHelpers": true,
|
||||
"outDir": "out-tsc",
|
||||
"sourceMap": true,
|
||||
"inlineSources": true,
|
||||
"rootDir": "./",
|
||||
"incremental": true,
|
||||
"skipLibCheck": true
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
"compilerOptions": {
|
||||
"verbatimModuleSyntax": true,
|
||||
"noEmitOnError": true,
|
||||
"target": "es2021",
|
||||
"skipLibCheck": true,
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"isolatedModules": true,
|
||||
|
||||
"strict": true,
|
||||
"strictBindCallApply": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noUncheckedSideEffectImports": true,
|
||||
"allowUnreachableCode": false,
|
||||
"noUncheckedIndexedAccess": true,
|
||||
"noPropertyAccessFromIndexSignature": true,
|
||||
"erasableSyntaxOnly": true,
|
||||
"noImplicitOverride": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"useDefineForClassFields": false,
|
||||
"experimentalDecorators": true,
|
||||
"importHelpers": true,
|
||||
|
||||
"noErrorTruncation": false,
|
||||
|
||||
"outDir": ".tmp/tsc",
|
||||
"sourceMap": true,
|
||||
"inlineSources": true,
|
||||
"rootDir": "./",
|
||||
"incremental": true,
|
||||
"types": ["mocha"],
|
||||
"lib": ["es2021", "dom", "DOM.Iterable"],
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
|
||||
+20
-10
@@ -1,21 +1,31 @@
|
||||
// import { hmrPlugin, presets } from "@open-wc/dev-server-hmr";
|
||||
|
||||
/** Use Hot Module replacement by adding --hmr to the start command */
|
||||
const hmr = process.argv.includes("--hmr");
|
||||
/** Use Hot Module replacement by adding --watch to the start command */
|
||||
//const hmr = process.argv.includes("--watch");
|
||||
const [ mode ] = process.argv.slice(2);
|
||||
import { paths } from "./bs/dev/paths.js";
|
||||
import { join } from "node:path";
|
||||
|
||||
const pathDist = join.bind(null, paths.dist);
|
||||
const target = mode !== "dist" // OR "src"
|
||||
? {
|
||||
rootDir: ".",
|
||||
appIndex: "index.html",
|
||||
}
|
||||
: {
|
||||
rootDir: pathDist(),
|
||||
appIndex: pathDist("index.html"),
|
||||
};
|
||||
|
||||
export default /** @type {import("@web/dev-server").DevServerConfig} */ ({
|
||||
open: "/",
|
||||
watch: !hmr,
|
||||
/** Resolve bare module imports */
|
||||
nodeResolve: {
|
||||
open: "/", // SPA routing
|
||||
nodeResolve: { // Resolve bare module imports
|
||||
exportConditions: ["browser", "development"],
|
||||
},
|
||||
|
||||
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
||||
// esbuildTarget: "auto"
|
||||
// esbuildTarget: "auto" // Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
||||
|
||||
/** Set appIndex to enable SPA routing */
|
||||
appIndex: "./index.html",
|
||||
...target,
|
||||
|
||||
plugins: [
|
||||
/** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
|
||||
|
||||
+35
-29
@@ -1,41 +1,47 @@
|
||||
// import { playwrightLauncher } from '@web/test-runner-playwright';
|
||||
|
||||
const filteredLogs = ['Running in dev mode', 'Lit is in dev mode'];
|
||||
const filteredLogs = ["Running in dev mode", "Lit is in dev mode"];
|
||||
import { paths } from "./bs/dev/paths.js";
|
||||
import { join } from "node:path";
|
||||
|
||||
export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
|
||||
/** Test files to run */
|
||||
files: 'out-tsc/test/**/*.test.js',
|
||||
/** Test files to run */
|
||||
files: join(paths.tscoutput, "src/**/*.test.js"),
|
||||
|
||||
/** Resolve bare module imports */
|
||||
nodeResolve: {
|
||||
exportConditions: ['browser', 'development'],
|
||||
},
|
||||
/** Resolve bare module imports */
|
||||
nodeResolve: {
|
||||
exportConditions: ["browser", "development"],
|
||||
},
|
||||
|
||||
/** Filter out lit dev mode logs */
|
||||
filterBrowserLogs(log) {
|
||||
for (const arg of log.args) {
|
||||
if (typeof arg === 'string' && filteredLogs.some(l => arg.includes(l))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
/** Filter out lit dev mode logs */
|
||||
filterBrowserLogs(log) {
|
||||
for (const arg of log.args) {
|
||||
if (typeof arg === "string" && filteredLogs.some(l => arg.includes(l))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
||||
// esbuildTarget: 'auto',
|
||||
coverageConfig: {
|
||||
reportDir: join(paths.tmp, "coverage"),
|
||||
},
|
||||
|
||||
/** Amount of browsers to run concurrently */
|
||||
// concurrentBrowsers: 2,
|
||||
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
||||
// esbuildTarget: 'auto',
|
||||
|
||||
/** Amount of test files per browser to test concurrently */
|
||||
// concurrency: 1,
|
||||
/** Amount of browsers to run concurrently */
|
||||
// concurrentBrowsers: 2,
|
||||
|
||||
/** Browsers to run tests on */
|
||||
// browsers: [
|
||||
// playwrightLauncher({ product: 'chromium' }),
|
||||
// playwrightLauncher({ product: 'firefox' }),
|
||||
// playwrightLauncher({ product: 'webkit' }),
|
||||
// ],
|
||||
/** Amount of test files per browser to test concurrently */
|
||||
// concurrency: 1,
|
||||
|
||||
// See documentation for all available options
|
||||
/** Browsers to run tests on */
|
||||
// browsers: [
|
||||
// playwrightLauncher({ product: 'chromium' }),
|
||||
// playwrightLauncher({ product: 'firefox' }),
|
||||
// playwrightLauncher({ product: 'webkit' }),
|
||||
// ],
|
||||
|
||||
// See documentation for all available options
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user