🐛 Fixes API development

This commit is contained in:
2026-06-12 13:45:24 +02:00
parent bcb51d5397
commit 5a0a2de0f0
4 changed files with 145 additions and 6 deletions
+127
View File
@@ -24,6 +24,7 @@
"@web/test-runner": "~0.20", "@web/test-runner": "~0.20",
"babel-plugin-template-html-minifier": "~4.1", "babel-plugin-template-html-minifier": "~4.1",
"deepmerge": "~4.3", "deepmerge": "~4.3",
"koa-proxies": "^0.12.4",
"rollup": "~4.61", "rollup": "~4.61",
"rollup-plugin-esbuild": "~6.2", "rollup-plugin-esbuild": "~6.2",
"rollup-plugin-workbox": "~8.1", "rollup-plugin-workbox": "~8.1",
@@ -6034,6 +6035,13 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"dev": true,
"license": "MIT"
},
"node_modules/events-universal": { "node_modules/events-universal": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz",
@@ -6246,6 +6254,27 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/follow-redirects": {
"version": "1.16.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
"integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
"dev": true,
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"license": "MIT",
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/for-each": { "node_modules/for-each": {
"version": "0.3.5", "version": "0.3.5",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
@@ -6786,6 +6815,21 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/http-proxy": {
"version": "1.18.1",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
"integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0",
"requires-port": "^1.0.0"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/http-proxy-agent": { "node_modules/http-proxy-agent": {
"version": "7.0.2", "version": "7.0.2",
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
@@ -7690,6 +7734,21 @@
"etag": "^1.8.1" "etag": "^1.8.1"
} }
}, },
"node_modules/koa-proxies": {
"version": "0.12.4",
"resolved": "https://registry.npmjs.org/koa-proxies/-/koa-proxies-0.12.4.tgz",
"integrity": "sha512-xxrEtN0e7s7/gNRoOMUltCbuIaCWqTQUTZNWQqet/8MoxSW0hG422lx2Al9FfYO3nCeA+b5c5/YmILRzavivDA==",
"dev": true,
"license": "MIT",
"dependencies": {
"http-proxy": "^1.18.1",
"path-match": "^1.2.4",
"uuid": "^8.3.2"
},
"peerDependencies": {
"koa": ">=2"
}
},
"node_modules/koa-send": { "node_modules/koa-send": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz",
@@ -8779,6 +8838,39 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/path-match": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/path-match/-/path-match-1.2.4.tgz",
"integrity": "sha512-UWlehEdqu36jmh4h5CWJ7tARp1OEVKGHKm6+dg9qMq5RKUTV5WJrGgaZ3dN2m7WFAXDbjlHzvJvL/IUpy84Ktw==",
"deprecated": "This package is archived and no longer maintained. For support, visit https://github.com/expressjs/express/discussions",
"dev": true,
"license": "MIT",
"dependencies": {
"http-errors": "~1.4.0",
"path-to-regexp": "^1.0.0"
}
},
"node_modules/path-match/node_modules/http-errors": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.4.0.tgz",
"integrity": "sha512-oLjPqve1tuOl5aRhv8GK5eHpqP1C9fb+Ol+XTLjKfLltE44zdDbEdjPSbU7Ch5rSNsVFqZn97SrMmZLdu1/YMw==",
"dev": true,
"license": "MIT",
"dependencies": {
"inherits": "2.0.1",
"statuses": ">= 1.2.1 < 2"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/path-match/node_modules/inherits": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
"integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==",
"dev": true,
"license": "ISC"
},
"node_modules/path-parse": { "node_modules/path-parse": {
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@@ -8810,6 +8902,23 @@
"dev": true, "dev": true,
"license": "ISC" "license": "ISC"
}, },
"node_modules/path-to-regexp": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz",
"integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==",
"dev": true,
"license": "MIT",
"dependencies": {
"isarray": "0.0.1"
}
},
"node_modules/path-to-regexp/node_modules/isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
"dev": true,
"license": "MIT"
},
"node_modules/path-type": { "node_modules/path-type": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -9275,6 +9384,13 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dev": true,
"license": "MIT"
},
"node_modules/resolve": { "node_modules/resolve": {
"version": "1.22.11", "version": "1.22.11",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
@@ -10730,6 +10846,17 @@
"browserslist": ">= 4.21.0" "browserslist": ">= 4.21.0"
} }
}, },
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
"dev": true,
"license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/v8-to-istanbul": { "node_modules/v8-to-istanbul": {
"version": "9.3.0", "version": "9.3.0",
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
+1
View File
@@ -26,6 +26,7 @@
"@web/test-runner": "~0.20", "@web/test-runner": "~0.20",
"babel-plugin-template-html-minifier": "~4.1", "babel-plugin-template-html-minifier": "~4.1",
"deepmerge": "~4.3", "deepmerge": "~4.3",
"koa-proxies": "^0.12.4",
"rollup": "~4.61", "rollup": "~4.61",
"rollup-plugin-esbuild": "~6.2", "rollup-plugin-esbuild": "~6.2",
"rollup-plugin-workbox": "~8.1", "rollup-plugin-workbox": "~8.1",
+3 -6
View File
@@ -1,8 +1,6 @@
const url_server = "https://rss.jaandrle.cz"; const url_server = "";
const url_base = `${url_server}/rest`; const url_base = `${url_server}/rest`;
// @ts-expect-error S7016 const [ username, password ] = ":".split(':');
import { users } from "ENV";
const [ username, password ] = users[0].split(':');
/** /**
* Generates the Basic Authentication header. * Generates the Basic Authentication header.
@@ -32,7 +30,6 @@ export async function fetchAPI(endpoint: string, options: RequestInit = {}): Pro
Authorization: auth, Authorization: auth,
Accept: "application/json", Accept: "application/json",
...headers, ...headers,
}, }
mode: "no-cors",
}); });
} }
+14
View File
@@ -17,7 +17,21 @@ const target = mode !== "dist" // OR "src"
appIndex: pathDist("index.html"), appIndex: pathDist("index.html"),
}; };
import proxy from "koa-proxies";
import { users } from "./.env.js";
const middleware = [
proxy("/rest", {
target: "https://rss.jaandrle.cz",
headers: {
Authorization: "Basic " + Buffer.from(users[0]).toString("base64"),
},
logs: true,
changeOrigin: true,
}),
];
export default /** @type {import("@web/dev-server").DevServerConfig} */ ({ export default /** @type {import("@web/dev-server").DevServerConfig} */ ({
middleware,
open: "/", // SPA routing open: "/", // SPA routing
nodeResolve: { // Resolve bare module imports nodeResolve: { // Resolve bare module imports
exportConditions: ["browser", "development"], exportConditions: ["browser", "development"],