Compare commits

...

16 Commits

Author SHA1 Message Date
Fabian Stamm
8135190cd8 Update earthly version
Some checks failed
CI / build (push) Failing after 24s
2024-03-17 19:04:20 +01:00
Fabian Stamm
abe9bb28a4 Change back mongodb version
All checks were successful
CI / build (push) Successful in 20m22s
2023-11-29 16:04:04 +01:00
Fabian Stamm
99845a7b94 Try different URL schema
Some checks failed
CI / build (push) Failing after 26s
2023-11-29 13:32:57 +01:00
Fabian Stamm
60b0c2f577 Switch back to older version of safe_mongo, since the new one is esm only
All checks were successful
CI / build (push) Successful in 21m31s
2023-11-29 12:04:45 +01:00
Fabian Stamm
58e4ab1886 Merge branch 'master' of https://git.hibas.dev/OpenServer/OpenAuth_server 2023-11-29 10:25:12 +01:00
Fabian Stamm
e87cc7f86f Updating dependencies
All checks were successful
CI / build (push) Successful in 20m18s
2023-11-29 10:25:00 +01:00
Fabian Stamm
8d3b788657 use modern version of earthly
All checks were successful
CI / build (push) Successful in 20m13s
2023-11-29 09:40:16 +01:00
Fabian Stamm
26f9b8d208 use modern version
Some checks failed
CI / build (push) Failing after 4m25s
2023-11-29 01:19:36 +01:00
Fabian Stamm
36304b8873 Fix some stiff
Some checks failed
CI / build (push) Has been cancelled
2023-11-29 01:17:19 +01:00
Fabian Stamm
9234efab2a Add earthfile and ci
Some checks failed
CI / build (push) Failing after 25s
2023-11-28 19:49:29 +01:00
Fabian Stamm
6bcda75634 Fix TOTP space bug, caused by space inserted by cleavejs 2023-04-15 00:06:06 +02:00
Fabian Stamm
dd39ece408 Make birthday optional 2023-04-14 15:46:00 +02:00
Fabian Stamm
cc1696a429 Adjust frontend build script to allow aggressive caching 2023-04-14 15:43:08 +02:00
Fabian Stamm
b68fa6f223 Bumping version 2023-04-14 15:17:07 +02:00
Fabian Stamm
3718a1d55c Merge branch 'new-ui-and-api' 2023-04-14 15:15:27 +02:00
80aace7b72 Add a nextcloud compatible response for profile. 2023-04-10 00:54:21 +02:00
33 changed files with 511 additions and 4819 deletions

View File

@ -1,3 +0,0 @@
{
"url": "https://drone.hibas123.de/OpenServer/OpenAuth_server/"
}

View File

@ -1,21 +0,0 @@
kind: pipeline
type: docker
name: default
steps:
- name: Build docker
image: plugins/docker
settings:
username:
from_secret: docker_username
password:
from_secret: docker_password
auto_tag: true
repo: docker.hibas123.de/authserver
registry: docker.hibas123.de
debug: true
when:
branch: [master]
event:
exclude:
- pull_request

37
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,37 @@
# .github/workflows/ci.yml
name: CI
on:
push:
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
env:
MY_DOCKER_USERNAME: ${{ secrets.MY_DOCKER_USERNAME }}
MY_DOCKER_PASSWORD: ${{ secrets.MY_DOCKER_PASSWORD }}
FORCE_COLOR: 1
steps:
- uses: https://github.com/earthly/actions-setup@v1
with:
version: v0.8.0
- uses: actions/checkout@v4
- name: Put back the git branch into git (Earthly uses it for tagging)
run: |
branch=""
if [ -n "$GITHUB_HEAD_REF" ]; then
branch="$GITHUB_HEAD_REF"
else
branch="${GITHUB_REF##*/}"
fi
git checkout -b "$branch" || true
- name: Docker Login
run: docker login git.hibas.dev --username "$MY_DOCKER_USERNAME" --password "$MY_DOCKER_PASSWORD"
- name: Earthly version
run: earthly --version
- name: Run build
run: earthly --push +docker-multi

1
Backend/.dockerignore Normal file
View File

@ -0,0 +1 @@
config.ini

View File

@ -5,6 +5,7 @@ database=openauth
[core]
name = OpenAuthService
secret = dev
url=http://localhost:3000
[web]
port = 3000

View File

@ -36,8 +36,8 @@
"@types/speakeasy": "^2.0.7",
"@types/uuid": "^9.0.1",
"apidoc": "^0.54.0",
"concurrently": "^8.0.1",
"nodemon": "^2.0.22",
"concurrently": "^8.2.2",
"nodemon": "^3.0.1",
"prettier": "^2.8.7",
"ts-node": "^10.9.1",
"typescript": "^5.0.4"
@ -48,7 +48,7 @@
"@hibas123/nodeloggingserver_client": "^1.1.2",
"@hibas123/openauth-internalapi": "workspace:^",
"@hibas123/openauth-views-v1": "workspace:^",
"@hibas123/safe_mongo": "^2.0.1",
"@hibas123/safe_mongo": "2.0.1",
"@simplewebauthn/server": "^7.2.0",
"body-parser": "^1.20.2",
"compression": "^1.7.4",
@ -60,18 +60,18 @@
"express-session": "^1.17.3",
"handlebars": "^4.7.7",
"i18n": "^0.15.1",
"ini": "^4.0.0",
"joi": "^17.9.1",
"ini": "^4.1.1",
"joi": "^17.11.0",
"jsonwebtoken": "^9.0.0",
"moment": "^2.29.4",
"mongodb": "^5.2.0",
"node-rsa": "^1.1.1",
"npm-run-all": "^4.1.5",
"qrcode": "^1.5.1",
"qrcode": "^1.5.3",
"reflect-metadata": "^0.1.13",
"speakeasy": "^2.0.0",
"u2f": "^0.1.3",
"uuid": "^9.0.0"
"uuid": "^9.0.1"
},
"packageManager": "yarn@3.5.0"
}

View File

@ -18,7 +18,7 @@ export default class AccountService extends Server.AccountService<SessionContext
id: ctx.user.uid,
username: ctx.user.username,
name: ctx.user.name,
birthday: ctx.user.birthday.valueOf(),
birthday: ctx.user.birthday?.valueOf(),
gender: ctx.user.gender as number as Gender,
}
}

View File

@ -2,15 +2,17 @@ import Mail from "../../models/mail";
import { GetClientApiAuthMiddleware } from "../middlewares/client";
import Stacker from "../middlewares/stacker";
import { Request, Response } from "express";
import Logging from "@hibas123/nodelogging";
export default Stacker(GetClientApiAuthMiddleware(), async (req: Request, res) => {
const mode = req.query.mode;
let mails = await Promise.all(
req.user.mails.map((id) => Mail.findById(id))
);
let mail = mails.find((e) => e.primary) || mails[0];
res.json({
let base_response = {
user_id: req.user.uid,
id: req.user.uid,
ID: req.user.uid,
@ -18,8 +20,19 @@ export default Stacker(GetClientApiAuthMiddleware(), async (req: Request, res) =
email: mail.mail,
username: req.user.username,
displayName: req.user.name,
"display-name": req.user.name,
displayNameClaim: req.user.name,
name: req.user.name,
});
}
if (mode == "nextcloud") {
Logging.debug("Profile in Nextcloud mode");
base_response["ocs"] = {
data: {
id: base_response.user_id,
email: base_response.email,
"display-name": base_response.displayName,
}
}
}
res.json(base_response);
})

View File

@ -10,6 +10,8 @@ dotenv.config();
export interface DatabaseConfig {
host: string;
database: string;
username?: string;
password?: string;
}
export interface WebConfig {
@ -57,6 +59,14 @@ const config = (parse(
type: String,
default: "localhost",
},
username: {
type: String,
optional: true,
},
password: {
type: String,
optional: true,
},
},
web: {
port: {

View File

@ -1,13 +1,21 @@
import SafeMongo from "@hibas123/safe_mongo";
import Config from "./config";
let dbname = "openauth";
let host = "localhost";
if (Config.database) {
if (Config.database.database) dbname = Config.database.database;
if (Config.database.host) host = Config.database.host;
}
if (Config.core.dev) dbname += "_dev";
const DB = new SafeMongo("mongodb://" + host, dbname, {
});
const host = Config.database.host || "localhost";
// const port = Config.database.port || "27017";
const port = "27017";
const database = Config.database.database || "openauth";
const url = new URL(`mongodb://${host}:${port}/${database}`);
const user = Config.database.username || undefined;
const passwd = Config.database.password || undefined;
if (user) {
url.username = user;
if (passwd) url.password = passwd;
}
const DB = new SafeMongo(url.href, database);
export default DB;

View File

@ -26,6 +26,7 @@ export default class Web {
constructor(config: WebConfig) {
this.server = express();
this.server.set("trust proxy", 1);
this.port = Number(config.port);
this.registerMiddleware();
this.registerUserSession();
@ -45,7 +46,7 @@ export default class Web {
resave: false,
saveUninitialized: false,
store: MongoStore.create({
client: DB.getClient(),
client: DB.getClient() as any,
dbName: DB.db.databaseName,
collectionName: "sessions",
autoRemove: "native",

41
Earthfile Normal file
View File

@ -0,0 +1,41 @@
VERSION 0.7
FROM node:20-alpine3.18
WORKDIR /build
project:
COPY . .
RUN yarn install
build:
FROM +project
RUN yarn build
SAVE ARTIFACT /build/_API /API
SAVE ARTIFACT /build/Backend/lib /Backend
SAVE ARTIFACT /build/Frontend/build /Frontend
SAVE ARTIFACT /build/FrontendLegacy/out /FrontendLegacy
docker-multi:
BUILD +build
BUILD --platform linux/amd64 --platform linux/arm64 +docker
docker:
FROM +project
# RUN apk add --no-cache caddy supervisor
# COPY ./supervisord.conf /etc/supervisord.conf
COPY +build/API /build/_API
COPY +build/Backend /build/Backend/lib
COPY +build/Frontend /build/Frontend/build
COPY +build/FrontendLegacy /build/FrontendLegacy/out
WORKDIR /build/Backend
ENTRYPOINT ["node", "lib/index.js"]
ARG EARTHLY_TARGET_TAG
ARG TAG=$EARTHLY_TARGET_TAG
SAVE IMAGE --push git.hibas.dev/openserver/openauth:$TAG

View File

@ -2,46 +2,45 @@
"name": "@hibas123/openauth-views-v2",
"main": "index.js",
"devDependencies": {
"@popperjs/core": "^2.11.7",
"@rollup/plugin-html": "^1.0.2",
"@rollup/plugin-image": "^3.0.2",
"@hibas123/openauth-internalapi": "workspace:^",
"@hibas123/theme": "^2.0.7",
"@hibas123/utils": "^2.2.18",
"@popperjs/core": "^2.11.8",
"@rollup/plugin-commonjs": "^24.0.1",
"@rollup/plugin-html": "^1.0.3",
"@rollup/plugin-image": "^3.0.3",
"@rollup/plugin-node-resolve": "^15.0.2",
"@simplewebauthn/browser": "^7.2.0",
"@tsconfig/svelte": "^4.0.1",
"@types/cleave.js": "^1.4.7",
"autoprefixer": "^10.4.14",
"classnames": "^2.3.2",
"cssnano": "^6.0.0",
"cleave.js": "^1.6.0",
"cssnano": "^6.0.1",
"esbuild": "^0.17.16",
"flowbite": "^1.6.5",
"flowbite-svelte": "^0.34.9",
"postcss": "^8.4.21",
"joi": "^17.11.0",
"postcss": "^8.4.31",
"postcss-import": "^15.1.0",
"postcss-url": "^10.1.3",
"rollup": "^3.20.2",
"rollup-plugin-esbuild": "^5.0.0",
"rollup-plugin-hash": "^1.3.0",
"rollup-plugin-livereload": "^2.0.5",
"rollup-plugin-postcss": "^4.0.2",
"rollup-plugin-sizes": "^1.0.5",
"rollup-plugin-sizes": "^1.0.6",
"rollup-plugin-svelte": "^7.1.4",
"rollup-plugin-visualizer": "^5.9.0",
"svelte": "^3.58.0",
"svelte-preprocess": "^5.0.3",
"tailwindcss": "^3.3.1",
"typescript": "^5.0.4"
"typescript": "^5.0.4",
"what-the-pack": "^2.0.3"
},
"scripts": {
"prepublishOnly": "npm run build",
"build": "rollup -c rollup.config.mjs ",
"dev": "rollup -c rollup.config.mjs -w"
},
"dependencies": {
"@hibas123/openauth-internalapi": "workspace:^",
"@hibas123/theme": "^2.0.6",
"@hibas123/utils": "^2.2.18",
"@rollup/plugin-commonjs": "^24.0.1",
"@simplewebauthn/browser": "^7.2.0",
"cleave.js": "^1.6.0",
"joi": "^17.9.1",
"what-the-pack": "^2.0.3"
}
}

View File

@ -2,6 +2,6 @@ module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
cssnano: {},
// cssnano: {},
},
};

View File

@ -9,6 +9,7 @@ import postcss from "rollup-plugin-postcss";
import livereload from "rollup-plugin-livereload";
import sveltePreprocess from "svelte-preprocess";
import commonjs from "@rollup/plugin-commonjs";
import hash from "rollup-plugin-hash";
const VIEWS = ["home", "login", "popup", "user"];
@ -27,9 +28,14 @@ const htmlTemplate = ({ attributes, meta, files, publicPath, title }) => {
""
);
};
let bundle_name = "";
const scripts = (files.js || [])
.map(({ fileName }) => {
const attrs = makeHtmlAttributes(attributes.script);
if (fileName.startsWith("bundle.")) {
bundle_name = fileName;
}
return `<script src="${publicPath}${fileName}"${attrs}></script>`;
})
.join("\n");
@ -54,8 +60,7 @@ const htmlTemplate = ({ attributes, meta, files, publicPath, title }) => {
<head>
${metas}
<title>${title}</title>
<link rel="stylesheet" href="bundle.css"/>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/>
<link rel="stylesheet" href="${bundle_name.slice(0, -2)}css"/>
${links}
</head>
<body>
@ -66,14 +71,13 @@ const htmlTemplate = ({ attributes, meta, files, publicPath, title }) => {
export default VIEWS.map((view) => ({
input: `src/pages/${view}/main.ts`,
output: [
{
file: `build/${view}/bundle.min.js`,
output: {
dir: `build/${view}`,
entryFileNames: `bundle.[hash].min.js`,
format: "es",
sourcemap: true,
name: view,
},
],
plugins: [
svelte({
emitCss: true,
@ -106,9 +110,12 @@ export default VIEWS.map((view) => ({
title: `Rullup bundle for ${view}`,
}),
postcss({
extract: `bundle.css`, //TODO: Check if it should be enabled
extract: true, // `bundle.css`, //TODO: Check if it should be enabled
// inject: true,
}),
hash({
dest: "bundle.[hash].min.js",
}),
// dev && livereload(),
],
}));

View File

@ -9,7 +9,7 @@
let code: string = "";
function send() {
loginState.useTOTP(id, code);
loginState.useTOTP(id, code.replace(/\s+/g, ""));
}
</script>

View File

@ -31,7 +31,7 @@
verifingTOTP = true;
verifyError = undefined;
try {
await InternalAPI.TwoFactor.VerifyTOTP(totp.id, code);
await InternalAPI.TwoFactor.VerifyTOTP(totp.id, code.replace(/\s/g, ""));
stage = "done";
dispatch("reload");
} catch (err) {

1
FrontendLegacy/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
out/

View File

@ -1,484 +0,0 @@
<html><head><title>{{i18n "Administration"}}</title><meta charset=utf8 /><meta name=viewport content="width=device-width,initial-scale=1"/><script src=https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js type=text/javascript></script><script src=https://unpkg.com/popper.js@1.12.6/dist/umd/popper.js type=text/javascript></script><script src=https://unpkg.com/bootstrap-material-design@4.1.1/dist/js/bootstrap-material-design.js type=text/javascript></script><script src=https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.11/handlebars.min.js type=text/javascript></script><script>$(document).ready(() => $('body').bootstrapMaterialDesign())</script><style>@import"https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons";@import"https://unpkg.com/bootstrap-material-design@4.1.1/dist/css/bootstrap-material-design.min.css";.btn-primary{color:#fff !important;background-color:#1e88e5 !important}.error_card{color:#ff2f00;padding:1rem;font-size:1rem}.bg-primary{background-color:#1e88e5 !important}.spinner{-webkit-animation:rotation 1.35s linear infinite;animation:rotation 1.35s linear infinite;stroke:#1e88e5}@-webkit-keyframes rotation{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@keyframes rotation{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}.circle{stroke-dasharray:180;stroke-dashoffset:0;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-animation:turn 1.35s ease-in-out infinite;animation:turn 1.35s ease-in-out infinite}@-webkit-keyframes turn{0%{stroke-dashoffset:180}50%{stroke-dashoffset:45;-webkit-transform:rotate(135deg);transform:rotate(135deg)}100%{stroke-dashoffset:180;-webkit-transform:rotate(450deg);transform:rotate(450deg)}}@keyframes turn{0%{stroke-dashoffset:180}50%{stroke-dashoffset:45;-webkit-transform:rotate(135deg);transform:rotate(135deg)}100%{stroke-dashoffset:180;-webkit-transform:rotate(450deg);transform:rotate(450deg)}}header{margin-bottom:8px;padding:8px 16px;padding-bottom:0}table{word-wrap:break-word;table-layout:fixed}table td{vertical-align:inherit !important;width:auto}.col.form-group{padding-left:0 !important;margin-left:5px !important}</style></head><body><header class=bg-primary style="display: flex; justify-content: space-between;"><h3 style="display: inline">{{appname}} {{i18n "Administration"}} <span id=sitename>LOADING</span></h3><ul class="nav nav-tabs" style="display: inline-block; margin-left: auto; margin-top: -8px;"><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" data-toggle=dropdown href=# role=button aria-haspopup=true aria-expanded=false>Model</a><div class=dropdown-menu><a class=dropdown-item href="?type=user">User</a> <a class=dropdown-item href="?type=regcode">RegCode</a> <a class=dropdown-item href="?type=client">Client</a></div></li></ul></header><div id=content><div class=container><div id=error_cont class=row style="margin-bottom: 24px;display: none;"><div class=col-sm><div class="card error_card"><div id=error_msg class=card-body></div></div></div></div><div id=custom_data_cont class=row style="margin-bottom: 24px; display: none"><div class=col-sm><div class=card><div id=custom_data class=card-body></div></div></div></div><div class=row><div class=col-sm><div class=card><div class=card-body><div id=table-body><div style="width: 65px; height: 65px; margin: 0 auto;"><svg class=spinner viewBox="0 0 66 66" xmlns=http://www.w3.org/2000/svg><circle class=circle fill=none stroke-width=6 stroke-linecap=round cx=33 cy=33 r=30></circle></svg></div></div></div></div></div></div></div></div><script id=template-spinner type=text/x-handlebars-template><div style="width: 65px; height: 65px; margin: 0 auto;">
<svg class="spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
<circle class="circle" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
</svg>
</div></script><script id=template-user-list type=text/x-handlebars-template><table class="table table-bordered" style="margin-bottom: 0">
<thead>
<tr>
<th scope="col">Username</th>
<th scope="col">Name</th>
<th scope="col">Gender</th>
<th scope="col">Role</th>
<th scope="col" style="width: 2.5rem"></th>
</tr>
</thead>
<tbody>
\{{#users}}
<tr>
<td>\{{ username }}</td>
<td>\{{ name }}</td>
<!-- ToDo: Make helper to resolve number to human readaby text-->
<td>\{{humangender gender}}</td>
<td onclick="userOnChangeType('\{{_id}}')">
\{{#if admin}}
<span class="badge badge-danger">Admin</span>
\{{else}}
<span class="badge badge-success">User</span>
\{{/if}}
</td>
<td style="padding: 0.25em">
<button style="border: 0; background-color: rgba(0, 0, 0, 0); padding: 0; text-align: center;" onclick="deleteUser('\{{_id}}')">
<i class="material-icons" style="font-size: 2rem; display: inline">
delete
</i>
</button>
</td>
</tr>
\{{/users}}
</tbody>
</table></script><script id=template-regcode-list type=text/x-handlebars-template><button class="btn btn-raised btn-primary" onclick="createRegcode()">Create</button>
<table class="table table-bordered" style="margin-bottom: 0">
<thead>
<tr>
<th scope="col">Code</th>
<th scope="col">Valid</th>
<th scope="col">Till</th>
<th scope="col" style="width: 2.5rem"></th>
</tr>
</thead>
<tbody>
\{{#regcodes}}
<tr>
<td>\{{ token }}</td>
<td>\{{ valid }}</td>
<!-- ToDo: Make helper to resolve number to human readaby text-->
<td>\{{formatDate validTill }}</td>
<td style="padding: 0.25em">
<button style="border: 0; background-color: rgba(0, 0, 0, 0); padding: 0; text-align: center;" onclick="deleteRegcode('\{{_id}}')">
<i class="material-icons" style="font-size: 2rem; display: inline">
delete
</i>
</button>
</td>
</tr>
\{{/regcodes}}
</tbody>
</table></script><script id=template-client-list type=text/x-handlebars-template><button class="btn btn-raised btn-primary" onclick="createClient()">Create</button>
<table class="table table-bordered" style="margin-bottom: 0">
<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">Secret</th>
<th scope="col">Maintainer</th>
<th scope="col">Name</th>
<th scope="col" style="width: 80px">Type</th>
<th scope="col">Website</th>
<th scope="col" style="width: 2.5rem">
<div></div>
</th>
<th scope="col" style="width: 2.5rem"></th>
<th scope="col" style="width: 2.5rem"></th>
</tr>
</thead>
<tbody>
\{{#clients}}
<tr>
<td>\{{ client_id }}</td>
<td>\{{ client_secret }}</td>
<td>\{{ maintainer.username }}</td>
<td>\{{ name }}</td>
<td>
\{{#if internal}}
<span class="badge badge-success">Internal</span>
\{{else}}
<span class="badge badge-danger">External</span>
\{{/if}}
</td>
<td>
<a href="\{{ website }}">\{{ website }}</a>
</td>
<td style="padding: 0.25em">
<button style="border: 0; background-color: rgba(0, 0, 0, 0); padding: 0; text-align: center;" onclick="permissionsClient('\{{_id}}')">
perm
</button>
</td>
<td style="padding: 0.25em">
<button style="border: 0; background-color: rgba(0, 0, 0, 0); padding: 0; text-align: center;" onclick="editClient('\{{_id}}')">
<i class="material-icons" style="font-size: 2rem; display: inline">
edit
</i>
</button>
</td>
<td style="padding: 0.25em">
<button style="border: 0; background-color: rgba(0, 0, 0, 0); padding: 0; text-align: center;" onclick="deleteClient('\{{_id}}')">
<i class="material-icons" style="font-size: 2rem; display: inline">
delete
</i>
</button>
</td>
</tr>
\{{/clients}}
</tbody>
</table></script><script id=template-client-form type=text/x-handlebars-template><form class="form" action="JavaScript:void(null)" onsubmit="createClientSubmit(this)" style="margin-bottom: 0">
<input type=hidden value="\{{_id}}" name=id />
<div class="form-group">
<label for="name_input" class="bmd-label-floating">Name</label>
<input type="text" class="form-control" id="name_input" name=name value="\{{name}}">
</div>
<div class="form-group">
<label for="redirect_input" class="bmd-label-floating">Redirect Url</label>
<input type="text" class="form-control" id="redirect_input" name=redirect_url value="\{{redirect_url}}">
</div>
<div class="form-group">
<label for="website_input" class="bmd-label-floating">Website</label>
<input type="text" class="form-control" id="website_input" name=website value="\{{website}}">
</div>
<div class="form-group">
<label for="logo_input" class="bmd-label-floating">Logo</label>
<input type="text" class="form-control" id="logo_input" name=logo value="\{{logo}}">
</div>
<div class="form-group">
<div class="form-check">
<input type="checkbox" class="form-check-input" id="internal_check" \{{#if internal}} checked="checked" \{{/if}} name=internal>
<label class="form-check-label" for="internal_check">Internal</label>
</div>
</div>
<span class="form-group bmd-form-group">
<!-- needed to match padding for floating labels -->
<button type="submit" class="btn btn-raised btn-primary">Save</button>
</span>
</form></script><script id=template-permission-list type=text/x-handlebars-template><h2><button class="btn btn-raised btn-primary" onclick="gotoClients()">back</button> to \{{client_name}} </h2>
<button class="btn btn-raised btn-primary" onclick="createPermission('\{{ client_id }}')">Create</button>
<table class="table table-bordered" style="margin-bottom: 0">
<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">Name</th>
<th scope="col">Description</th>
<th scope="col" style="width: 10ch">Type</th>
<th scope="col" style="width: 2.5rem"></th>
</tr>
</thead>
<tbody>
\{{#permissions}}
<tr>
<td>\{{ _id }}</td>
<td>\{{ name }}</td>
<td>\{{ description }}</td>
<td>\{{ grant_type }}</td>
<td style="padding: 0.25em">
<button style="border: 0; background-color: rgba(0, 0, 0, 0); padding: 0; text-align: center;" onclick="deletePermission('\{{_id}}')">
<i class="material-icons" style="font-size: 2rem; display: inline">
delete
</i>
</button>
</td>
</tr>
\{{/permissions}}
</tbody>
</table></script><script id=template-permission-form type=text/x-handlebars-template><form class="form" action="JavaScript:void(null)" onsubmit="createPermissionSubmit(this)" style="margin-bottom: 0">
<input type=hidden value="\{{client_id}}" name=client />
<div class="form-group">
<label for="name_input" class="bmd-label-floating">Name</label>
<input type="text" class="form-control" id="name_input" name=name value="">
</div>
<div class="form-group">
<label for=description class="bmd-label-floating">Description</label>
<input type="text" class="form-control" id=description name=description value="">
</div>
<div class="form-group">
<label for=type class="bmd-label-floating">Type</label>
<select type="text" class="form-control" id=type name=type>
<option value="user">User granted</option>
<option value="client">Client granted</option>
</select>
</div>
<span class="form-group bmd-form-group">
<!-- needed to match padding for floating labels -->
<button type="submit" class="btn btn-raised btn-primary">Save</button>
</span>
</form></script><script>(function(){'use strict';function request(endpoint, method, data) {
var headers = new Headers();
headers.set("Content-Type", "application/json");
return fetch(endpoint, {
method: method,
body: JSON.stringify(data),
headers: headers,
credentials: "include",
})
.then(async (e) => {
if (e.status !== 200)
throw new Error((await e.text()) || e.statusText);
return e.json();
})
.then((e) => {
if (e.error)
return Promise.reject(
new Error(
typeof e.error === "string"
? e.error
: JSON.stringify(e.error)
)
);
return e;
});
}function getFormData(element) {
let data = {};
if (
element.name !== undefined &&
element.name !== null &&
element.name !== ""
) {
if (typeof element.name === "string") {
if (element.type === "checkbox") data[element.name] = element.checked;
else data[element.name] = element.value;
}
}
element.childNodes.forEach((child) => {
let res = getFormData(child);
data = Object.assign(data, res);
});
return data;
}Handlebars.registerHelper("humangender", function (value, options) {
switch (value) {
case 1:
return "male";
case 2:
return "female";
case 3:
return "other";
default:
case 0:
return "none";
}
});
// Deprecated since version 0.8.0
Handlebars.registerHelper("formatDate", function (datetime, format) {
return new Date(datetime).toLocaleString();
});
(() => {
const tableb = document.getElementById("table-body");
function setTitle(title) {
document.getElementById("sitename").innerText = title;
}
const cc = document.getElementById("custom_data");
const ccc = document.getElementById("custom_data_cont");
function setCustomCard(content) {
if (!content) {
cc.innerHTML = "";
ccc.style.display = "none";
} else {
cc.innerHTML = content;
ccc.style.display = "";
}
}
const error_cont = document.getElementById("error_cont");
const error_msg = document.getElementById("error_msg");
function catchError(error) {
error_cont.style.display = "";
error_msg.innerText = error.message;
console.log(error);
}
async function renderUser() {
console.log("Rendering User");
setTitle("User");
const listt = Handlebars.compile(
document.getElementById("template-user-list").innerText
);
async function loadList() {
let data = await request("/api/admin/user", "GET");
tableb.innerHTML = listt({
users: data,
});
}
window.userOnChangeType = (id) => {
request("/api/admin/user?id=" + id, "PUT")
.then(() => loadList())
.catch(catchError);
};
window.deleteUser = (id) => {
request("/api/admin/user?id=" + id, "DELETE")
.then(() => loadList())
.catch(catchError);
};
await loadList();
}
async function renderPermissions(client_id, client_name) {
const listt = Handlebars.compile(
document.getElementById("template-permission-list").innerText
);
const formt = Handlebars.compile(
document.getElementById("template-permission-form").innerText
);
setCustomCard();
async function loadList() {
try {
let data = await request(
"/api/admin/permission?client=" + client_id,
"GET"
);
tableb.innerHTML = listt({
client_id: client_id,
client_name: client_name,
permissions: data,
});
} catch (err) {
catchError(err);
}
}
window.gotoClients = () => {
renderClient();
};
window.deletePermission = (id) => {
request("/api/admin/permission?id=" + id, "DELETE")
.then(() => loadList())
.catch(catchError);
};
window.createPermission = () => {
try {
setCustomCard(formt({ client_id: client_id }));
} catch (err) {
console.log("Err", err);
}
};
window.createPermissionSubmit = (elm) => {
console.log(elm);
let data = getFormData(elm);
console.log(data);
request("/api/admin/permission", "POST", data)
.then(() => setCustomCard())
.then(() => loadList())
.catch(catchError);
};
await loadList();
}
async function renderClient() {
console.log("Rendering Client");
setTitle("Client");
const listt = Handlebars.compile(
document.getElementById("template-client-list").innerText
);
const formt = Handlebars.compile(
document.getElementById("template-client-form").innerText
);
let clients = [];
async function loadList() {
let data = await request("/api/admin/client", "GET");
clients = data;
tableb.innerHTML = listt({
clients: data,
});
}
window.permissionsClient = (id) => {
renderPermissions(id, clients.find((e) => e._id === id).name);
};
window.deleteClient = (id) => {
request("/api/admin/client/id=" + id, "DELETE")
.then(() => loadList())
.catch(catchError);
};
window.createClientSubmit = (elm) => {
console.log(elm);
let data = getFormData(elm);
console.log(data);
let id = data.id;
delete data.id;
if (id && id !== "") {
request("/api/admin/client?id=" + id, "PUT", data)
.then(() => setCustomCard())
.then(() => loadList())
.catch(catchError);
} else {
request("/api/admin/client", "POST", data)
.then(() => setCustomCard())
.then(() => loadList())
.catch(catchError);
}
};
window.createClient = () => {
setCustomCard(formt());
};
window.editClient = (id) => {
let client = clients.find((e) => e._id === id);
if (!client) return catchError(new Error("Client does not exist!!"));
setCustomCard(formt(client));
};
await loadList().catch(catchError);
}
async function renderRegCode() {
console.log("Rendering RegCode");
setTitle("RegCode");
const listt = Handlebars.compile(
document.getElementById("template-regcode-list").innerText
);
async function loadList() {
let data = await request("/api/admin/regcode", "GET");
tableb.innerHTML = listt({
regcodes: data,
});
}
window.deleteRegcode = (id) => {
request("/api/admin/regcode?id=" + id, "DELETE")
.then(() => loadList())
.catch(catchError);
};
window.createRegcode = () => {
request("/api/admin/regcode", "POST")
.then(() => loadList())
.catch(catchError);
};
await loadList().catch(catchError);
}
const type = new URL(window.location.href).searchParams.get("type");
switch (type) {
case "client":
renderClient().catch(catchError);
break;
case "regcode":
renderRegCode().catch(catchError);
break;
case "user":
default:
renderUser().catch(catchError);
break;
}
})();})();</script></body></html>

View File

@ -1,21 +0,0 @@
{
"sass": {
"entry": "src\\admin/admin.scss",
"start": 1680888864800,
"end": 1680888864814,
"duration": 14,
"includedFiles": [
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\FrontendLegacy\\src\\admin\\admin.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\FrontendLegacy\\shared\\mat_bs.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\FrontendLegacy\\shared\\style.scss"
]
},
"js": {
"chars": 7975
},
"css": {
"chars": 1665
},
"bundle_size": 21873,
"gzip_size": 4359
}

File diff suppressed because one or more lines are too long

View File

@ -1,52 +0,0 @@
{
"sass": {
"entry": "src\\authorize/authorize.scss",
"start": 1680888863485,
"end": 1680888864104,
"duration": 619,
"includedFiles": [
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\FrontendLegacy\\src\\authorize\\authorize.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\button\\mdc-button.import.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\base\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\feature-targeting\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\feature-targeting\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\feature-targeting\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\theme\\_constants.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\theme\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\theme\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\animation\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\elevation\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\ripple\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\rtl\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\touch-target\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\typography\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\typography\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\shape\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\density\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\button\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\button\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\elevation\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\theme\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\elevation\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\ripple\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\animation\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\ripple\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\ripple\\_keyframes.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\rtl\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\touch-target\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\typography\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\shape\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\shape\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\density\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\button\\mdc-button.scss"
]
},
"js": {
"chars": 576
},
"css": {
"chars": 9933
},
"bundle_size": 11387,
"gzip_size": 2740
}

File diff suppressed because it is too large Load Diff

View File

@ -1,54 +0,0 @@
{
"sass": {
"entry": "src\\login/login.scss",
"start": 1596809618526,
"end": 1596809618741,
"duration": 215,
"includedFiles": [
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\src\\login\\login.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\button\\mdc-button.import.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\base\\_mixins.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\feature-targeting\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\feature-targeting\\_mixins.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\feature-targeting\\_functions.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\theme\\_constants.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\theme\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\theme\\_functions.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\animation\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\elevation\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\ripple\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\rtl\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\touch-target\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\typography\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\typography\\_functions.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\shape\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\density\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\button\\_variables.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\button\\_mixins.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\elevation\\_mixins.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\theme\\_mixins.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\elevation\\_functions.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\ripple\\_mixins.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\animation\\_functions.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\ripple\\_functions.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\ripple\\_keyframes.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\rtl\\_mixins.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\touch-target\\_mixins.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\typography\\_mixins.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\shape\\_mixins.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\shape\\_functions.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\density\\_functions.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\node_modules\\@material\\button\\mdc-button.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\shared\\inputs.scss",
"C:\\Users\\micro\\Documents\\Projekte\\OpenAuth\\server\\views\\shared\\style.scss"
]
},
"js": {
"chars": 68059
},
"css": {
"chars": 11795
},
"bundle_size": 81043,
"gzip_size": 20007
}

View File

@ -1 +0,0 @@
<html><head><style></style></head><body><script>(function(){'use strict';console.log("Hello World");})();</script></body></html>

View File

@ -1,19 +0,0 @@
{
"sass": {
"entry": "src\\main/main.scss",
"start": 1680888864122,
"end": 1680888864124,
"duration": 2,
"includedFiles": [
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\FrontendLegacy\\src\\main\\main.scss"
]
},
"js": {
"chars": 57
},
"css": {
"chars": 18
},
"bundle_size": 128,
"gzip_size": 123
}

File diff suppressed because one or more lines are too long

View File

@ -1,63 +0,0 @@
{
"sass": {
"entry": "src\\register/register.scss",
"start": 1680888864210,
"end": 1680888864775,
"duration": 565,
"includedFiles": [
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\FrontendLegacy\\src\\register\\register.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\button\\mdc-button.import.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\base\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\feature-targeting\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\feature-targeting\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\feature-targeting\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\theme\\_constants.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\theme\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\theme\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\animation\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\elevation\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\ripple\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\rtl\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\touch-target\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\typography\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\typography\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\shape\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\density\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\button\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\button\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\elevation\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\theme\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\elevation\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\ripple\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\animation\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\ripple\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\ripple\\_keyframes.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\rtl\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\touch-target\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\typography\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\shape\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\shape\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\density\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\button\\mdc-button.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\form-field\\mdc-form-field.import.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\form-field\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\form-field\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\form-field\\mdc-form-field.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\radio\\mdc-radio.import.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\radio\\_variables.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\radio\\_mixins.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\radio\\_functions.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\node_modules\\@material\\radio\\mdc-radio.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\FrontendLegacy\\shared\\inputs.scss",
"D:\\Projekte\\OpenServer\\OpenAuth\\server\\FrontendLegacy\\shared\\style.scss"
]
},
"js": {
"chars": 21204
},
"css": {
"chars": 19609
},
"bundle_size": 44031,
"gzip_size": 9858
}

View File

@ -9,7 +9,7 @@ type Profile {
id: string;
name: string;
username: string;
birthday: int;
birthday?: int;
gender: Gender;
}

6
example.env Normal file
View File

@ -0,0 +1,6 @@
DATABASE_HOST=mongodb
DATABASE_DATABASE=openauth
CORE_NAME=OpenAuthDev
CORE_URL=http://localhost
CORE_SECRET=verysecretsecret
WEB_PORT=3000

View File

@ -1,6 +1,6 @@
{
"name": "@hibas123/openauth",
"version": "1.2.0",
"version": "1.3.2",
"author": "Fabian Stamm <dev@fabianstamm.de>",
"private": true,
"scripts": {
@ -18,6 +18,6 @@
"_API"
],
"dependencies": {
"@hibas123/jrpcgen": "^1.2.11"
"@hibas123/jrpcgen": "^1.2.14"
}
}

406
yarn.lock
View File

@ -5,6 +5,15 @@ __metadata:
version: 6
cacheKey: 8
"@babel/runtime@npm:^7.21.0":
version: 7.23.4
resolution: "@babel/runtime@npm:7.23.4"
dependencies:
regenerator-runtime: ^0.14.0
checksum: 8eb6a6b2367f7d60e7f7dd83f477cc2e2fdb169e5460694d7614ce5c730e83324bcf29251b70940068e757ad1ee56ff8073a372260d90cad55f18a825caf97cd
languageName: node
linkType: hard
"@cbor-extract/cbor-extract-darwin-arm64@npm:2.1.1":
version: 2.1.1
resolution: "@cbor-extract/cbor-extract-darwin-arm64@npm:2.1.1"
@ -428,14 +437,14 @@ __metadata:
languageName: node
linkType: hard
"@hibas123/jrpcgen@npm:^1.2.11":
version: 1.2.11
resolution: "@hibas123/jrpcgen@npm:1.2.11"
"@hibas123/jrpcgen@npm:^1.2.14":
version: 1.2.14
resolution: "@hibas123/jrpcgen@npm:1.2.14"
dependencies:
fs-extra: ^10.0.0
bin:
jrpc: lib/jrpc.js
checksum: af15d1a4c9b96f4bb1dd8b14971ddada7d53a0536fd481ba6fbb0217259ad8c5e90f256ff268cdf34919a46c99a74e941beedad1415addb68f4f6c9edf7fdfad
checksum: 9539b56177d7d13bc7f13629f8b18536e975093d433a2e87d1f7b965c1500abd62e0b45d73178643f51652e94aa44e74b734cdbb917822a8a90a70898f00ad9e
languageName: node
linkType: hard
@ -476,7 +485,7 @@ __metadata:
"@hibas123/nodeloggingserver_client": ^1.1.2
"@hibas123/openauth-internalapi": "workspace:^"
"@hibas123/openauth-views-v1": "workspace:^"
"@hibas123/safe_mongo": ^2.0.1
"@hibas123/safe_mongo": 2.0.1
"@simplewebauthn/server": ^7.2.0
"@types/body-parser": ^1.19.2
"@types/compression": ^1.7.2
@ -496,7 +505,7 @@ __metadata:
apidoc: ^0.54.0
body-parser: ^1.20.2
compression: ^1.7.4
concurrently: ^8.0.1
concurrently: ^8.2.2
connect-mongo: ^5.0.0
cookie-parser: ^1.4.6
cors: ^2.8.5
@ -505,22 +514,22 @@ __metadata:
express-session: ^1.17.3
handlebars: ^4.7.7
i18n: ^0.15.1
ini: ^4.0.0
joi: ^17.9.1
ini: ^4.1.1
joi: ^17.11.0
jsonwebtoken: ^9.0.0
moment: ^2.29.4
mongodb: ^5.2.0
node-rsa: ^1.1.1
nodemon: ^2.0.22
nodemon: ^3.0.1
npm-run-all: ^4.1.5
prettier: ^2.8.7
qrcode: ^1.5.1
qrcode: ^1.5.3
reflect-metadata: ^0.1.13
speakeasy: ^2.0.0
ts-node: ^10.9.1
typescript: ^5.0.4
u2f: ^0.1.3
uuid: ^9.0.0
uuid: ^9.0.1
languageName: unknown
linkType: soft
@ -558,12 +567,12 @@ __metadata:
resolution: "@hibas123/openauth-views-v2@workspace:Frontend"
dependencies:
"@hibas123/openauth-internalapi": "workspace:^"
"@hibas123/theme": ^2.0.6
"@hibas123/theme": ^2.0.7
"@hibas123/utils": ^2.2.18
"@popperjs/core": ^2.11.7
"@popperjs/core": ^2.11.8
"@rollup/plugin-commonjs": ^24.0.1
"@rollup/plugin-html": ^1.0.2
"@rollup/plugin-image": ^3.0.2
"@rollup/plugin-html": ^1.0.3
"@rollup/plugin-image": ^3.0.3
"@rollup/plugin-node-resolve": ^15.0.2
"@simplewebauthn/browser": ^7.2.0
"@tsconfig/svelte": ^4.0.1
@ -571,19 +580,20 @@ __metadata:
autoprefixer: ^10.4.14
classnames: ^2.3.2
cleave.js: ^1.6.0
cssnano: ^6.0.0
cssnano: ^6.0.1
esbuild: ^0.17.16
flowbite: ^1.6.5
flowbite-svelte: ^0.34.9
joi: ^17.9.1
postcss: ^8.4.21
joi: ^17.11.0
postcss: ^8.4.31
postcss-import: ^15.1.0
postcss-url: ^10.1.3
rollup: ^3.20.2
rollup-plugin-esbuild: ^5.0.0
rollup-plugin-hash: ^1.3.0
rollup-plugin-livereload: ^2.0.5
rollup-plugin-postcss: ^4.0.2
rollup-plugin-sizes: ^1.0.5
rollup-plugin-sizes: ^1.0.6
rollup-plugin-svelte: ^7.1.4
rollup-plugin-visualizer: ^5.9.0
svelte: ^3.58.0
@ -598,11 +608,11 @@ __metadata:
version: 0.0.0-use.local
resolution: "@hibas123/openauth@workspace:."
dependencies:
"@hibas123/jrpcgen": ^1.2.11
"@hibas123/jrpcgen": ^1.2.14
languageName: unknown
linkType: soft
"@hibas123/safe_mongo@npm:^2.0.1":
"@hibas123/safe_mongo@npm:2.0.1":
version: 2.0.1
resolution: "@hibas123/safe_mongo@npm:2.0.1"
dependencies:
@ -612,10 +622,10 @@ __metadata:
languageName: node
linkType: hard
"@hibas123/theme@npm:^2.0.6":
version: 2.0.6
resolution: "@hibas123/theme@npm:2.0.6"
checksum: 81aa611291b743a7c4914ec59cd99bfe05d5bd6d1ee1d5d4cbfdcc1b39d0c3b3fe50a6072053fb112fa9a01741c8547cd6757f36a21b3d2d92d95faab7ca3289
"@hibas123/theme@npm:^2.0.7":
version: 2.0.7
resolution: "@hibas123/theme@npm:2.0.7"
checksum: ea46f254982f6778483e500151b73bd041bf948eb4b9ce37cf3069168d93eca0a01046f061a1fa984b14e7b3bd987fb775dc0c2b47cc1dd189119a4f5a1c14df
languageName: node
linkType: hard
@ -910,6 +920,15 @@ __metadata:
languageName: node
linkType: hard
"@mongodb-js/saslprep@npm:^1.1.0":
version: 1.1.1
resolution: "@mongodb-js/saslprep@npm:1.1.1"
dependencies:
sparse-bitfield: ^3.0.3
checksum: 0b263aef5e42a2b296c205a4afcc06c3e59817427dfdf4b5d6f49c4e5c000aa90f652006b95f726e0eac7e888031a82393a964e390d5689a2de61e945f8238d3
languageName: node
linkType: hard
"@nodelib/fs.scandir@npm:2.1.5":
version: 2.1.5
resolution: "@nodelib/fs.scandir@npm:2.1.5"
@ -1016,13 +1035,20 @@ __metadata:
languageName: node
linkType: hard
"@popperjs/core@npm:^2.11.6, @popperjs/core@npm:^2.11.7, @popperjs/core@npm:^2.9.3":
"@popperjs/core@npm:^2.11.6, @popperjs/core@npm:^2.9.3":
version: 2.11.7
resolution: "@popperjs/core@npm:2.11.7"
checksum: 5b6553747899683452a1d28898c1b39173a4efd780e74360bfcda8eb42f1c5e819602769c81a10920fc68c881d07fb40429604517d499567eac079cfa6470f19
languageName: node
linkType: hard
"@popperjs/core@npm:^2.11.8":
version: 2.11.8
resolution: "@popperjs/core@npm:2.11.8"
checksum: e5c69fdebf52a4012f6a1f14817ca8e9599cb1be73dd1387e1785e2ed5e5f0862ff817f420a87c7fc532add1f88a12e25aeb010ffcbdc98eace3d55ce2139cf0
languageName: node
linkType: hard
"@rollup/plugin-commonjs@npm:^24.0.1":
version: 24.0.1
resolution: "@rollup/plugin-commonjs@npm:24.0.1"
@ -1042,30 +1068,30 @@ __metadata:
languageName: node
linkType: hard
"@rollup/plugin-html@npm:^1.0.2":
version: 1.0.2
resolution: "@rollup/plugin-html@npm:1.0.2"
"@rollup/plugin-html@npm:^1.0.3":
version: 1.0.3
resolution: "@rollup/plugin-html@npm:1.0.3"
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
checksum: e2d7609db1393015d76c7428ee4e866bc73299aaac65fba57d272c21354c2433996c784d7adf0bc0500e923c38521a75bbc01be628b73a6e56b475ad989143ea
checksum: f71fb47a5e3b4f9a3223de385217d350814dd330c9d82ec822c37c566f1effb83cd251c8df7e034b5605394654db6b21abc0501e69bf911dd3bce67cc4944a4f
languageName: node
linkType: hard
"@rollup/plugin-image@npm:^3.0.2":
version: 3.0.2
resolution: "@rollup/plugin-image@npm:3.0.2"
"@rollup/plugin-image@npm:^3.0.3":
version: 3.0.3
resolution: "@rollup/plugin-image@npm:3.0.3"
dependencies:
"@rollup/pluginutils": ^5.0.1
mini-svg-data-uri: ^1.4.4
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
checksum: f9d8f587f10c51398fa8c23f1543e3073f969cf7e4acd7f401e02a3e3752702a9eb289ddb14009733ce37d04474c549aba9e7d13ebf50e26226266ba51546b69
checksum: 30363d50c3d43fc35add135ce1b9591a69f378d696829724ce229e7c78ed00bc646280c150bd4b872d9359aeee656fae7107876c802dd7374aa71e21cb0af371
languageName: node
linkType: hard
@ -2223,6 +2249,13 @@ __metadata:
languageName: node
linkType: hard
"bson@npm:^5.5.0":
version: 5.5.1
resolution: "bson@npm:5.5.1"
checksum: f49730504e8362e2c8d1eb0c272e5e125392c41fb7196fc35ccbc39718ee62569a1d197bd2342c3334cd420073d3fd5dc7dea764a7f219dcd79e0ce473dd2772
languageName: node
linkType: hard
"buffer-crc32@npm:^0.2.5":
version: 0.2.13
resolution: "buffer-crc32@npm:0.2.13"
@ -2702,23 +2735,23 @@ __metadata:
languageName: node
linkType: hard
"concurrently@npm:^8.0.1":
version: 8.0.1
resolution: "concurrently@npm:8.0.1"
"concurrently@npm:^8.2.2":
version: 8.2.2
resolution: "concurrently@npm:8.2.2"
dependencies:
chalk: ^4.1.2
date-fns: ^2.29.3
date-fns: ^2.30.0
lodash: ^4.17.21
rxjs: ^7.8.0
shell-quote: ^1.8.0
spawn-command: 0.0.2-1
rxjs: ^7.8.1
shell-quote: ^1.8.1
spawn-command: 0.0.2
supports-color: ^8.1.1
tree-kill: ^1.2.2
yargs: ^17.7.1
yargs: ^17.7.2
bin:
conc: dist/bin/concurrently.js
concurrently: dist/bin/concurrently.js
checksum: cce10ab1bbd7fd099300234637cdbc8e12622a5fe53f8dd31dcd9562d9803f25d3d0410bdb6fffd54e8f4e11b852366c03994bd319843cce70e449c8a8a69526
checksum: 8ac774df06869773438f1bf91025180c52d5b53139bc86cf47659136c0d97461d0579c515d848d1e945d4e3e0cafe646b2ea18af8d74259b46abddcfe39b2c6c
languageName: node
linkType: hard
@ -2966,13 +2999,13 @@ __metadata:
languageName: node
linkType: hard
"cssnano-preset-default@npm:^6.0.0":
version: 6.0.0
resolution: "cssnano-preset-default@npm:6.0.0"
"cssnano-preset-default@npm:^6.0.1":
version: 6.0.1
resolution: "cssnano-preset-default@npm:6.0.1"
dependencies:
css-declaration-sorter: ^6.3.1
cssnano-utils: ^4.0.0
postcss-calc: ^8.2.3
postcss-calc: ^9.0.0
postcss-colormin: ^6.0.0
postcss-convert-values: ^6.0.0
postcss-discard-comments: ^6.0.0
@ -2980,7 +3013,7 @@ __metadata:
postcss-discard-empty: ^6.0.0
postcss-discard-overridden: ^6.0.0
postcss-merge-longhand: ^6.0.0
postcss-merge-rules: ^6.0.0
postcss-merge-rules: ^6.0.1
postcss-minify-font-values: ^6.0.0
postcss-minify-gradients: ^6.0.0
postcss-minify-params: ^6.0.0
@ -3001,7 +3034,7 @@ __metadata:
postcss-unique-selectors: ^6.0.0
peerDependencies:
postcss: ^8.2.15
checksum: 439e11cdb3d3d3658afd93b1b0de54983a6925880e3c9b8255e57ee7b2d7d0e70fc3f82890075f4d891a2e6eb694f7621089f6bed99c9828488a2c7fbd4a7ea9
checksum: 451080ae47c93e6525c7133c36426968ee758eb9115132ba481e6b12d50775f4d086635bb2f807957e017fc9d253aa876aa64800be6b3d000ada90721b9ea410
languageName: node
linkType: hard
@ -3036,15 +3069,15 @@ __metadata:
languageName: node
linkType: hard
"cssnano@npm:^6.0.0":
version: 6.0.0
resolution: "cssnano@npm:6.0.0"
"cssnano@npm:^6.0.1":
version: 6.0.1
resolution: "cssnano@npm:6.0.1"
dependencies:
cssnano-preset-default: ^6.0.0
cssnano-preset-default: ^6.0.1
lilconfig: ^2.1.0
peerDependencies:
postcss: ^8.2.15
checksum: e7d8b809d6beca1799bc3b4caab9d4a60bd1e0058e7e3a773fdaf89371b43be02d1754069bb02dcc9a71bdb362755b0b6297ec40d32b7265367dce81578c8c3a
checksum: 15e0777189edf2d4287ed3628f65d78c9934a2c0729e29811e85bd760653a0142477b3c2dde9e0a51438c509b2b926e6482215cd8d4e6704e3eb1ab38d1dba0c
languageName: node
linkType: hard
@ -3080,10 +3113,12 @@ __metadata:
languageName: node
linkType: hard
"date-fns@npm:^2.29.3":
version: 2.29.3
resolution: "date-fns@npm:2.29.3"
checksum: e01cf5b62af04e05dfff921bb9c9933310ed0e1ae9a81eb8653452e64dc841acf7f6e01e1a5ae5644d0337e9a7f936175fd2cb6819dc122fdd9c5e86c56be484
"date-fns@npm:^2.30.0":
version: 2.30.0
resolution: "date-fns@npm:2.30.0"
dependencies:
"@babel/runtime": ^7.21.0
checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4
languageName: node
linkType: hard
@ -4385,6 +4420,16 @@ __metadata:
languageName: node
linkType: hard
"hasha@npm:^2.2.0":
version: 2.2.0
resolution: "hasha@npm:2.2.0"
dependencies:
is-stream: ^1.0.1
pinkie-promise: ^2.0.0
checksum: 1855680c0e8a1b92686f816f2f224e184e5f2422f2ddef4f05184ea57bf954cecc017598af08b84c6aa723ccc38353469d4f143869ecfafedf1c50aec0e7ed4e
languageName: node
linkType: hard
"he@npm:^1.2.0":
version: 1.2.0
resolution: "he@npm:1.2.0"
@ -4619,10 +4664,10 @@ __metadata:
languageName: node
linkType: hard
"ini@npm:^4.0.0":
version: 4.0.0
resolution: "ini@npm:4.0.0"
checksum: 6bea95c94be5703a7d9cc202cb0f4b7290831687d4670421b84993a99fa15383f9781cbee61af579c9a8b72b4f3b9ae790525d61077438c2f20577ac70990583
"ini@npm:^4.1.1":
version: 4.1.1
resolution: "ini@npm:4.1.1"
checksum: 0e5909554074fbc31824fa5415b0f604de4a665514c96a897a77bf77353a7ad4743927321270e9d0610a9d510ccd1f3cd77422f7cc80d8f4542dbce75476fb6d
languageName: node
linkType: hard
@ -4858,6 +4903,13 @@ __metadata:
languageName: node
linkType: hard
"is-stream@npm:^1.0.1":
version: 1.1.0
resolution: "is-stream@npm:1.1.0"
checksum: 063c6bec9d5647aa6d42108d4c59723d2bd4ae42135a2d4db6eadbd49b7ea05b750fd69d279e5c7c45cf9da753ad2c00d8978be354d65aa9f6bb434969c6a2ae
languageName: node
linkType: hard
"is-stream@npm:^2.0.0":
version: 2.0.1
resolution: "is-stream@npm:2.0.1"
@ -4955,16 +5007,16 @@ __metadata:
languageName: node
linkType: hard
"joi@npm:^17.9.1":
version: 17.9.1
resolution: "joi@npm:17.9.1"
"joi@npm:^17.11.0":
version: 17.11.0
resolution: "joi@npm:17.11.0"
dependencies:
"@hapi/hoek": ^9.0.0
"@hapi/topo": ^5.0.0
"@sideway/address": ^4.1.3
"@sideway/formula": ^3.0.1
"@sideway/pinpoint": ^2.0.0
checksum: 055df3841e00d7ed065ef1cc3330cf69097ab2ffec3083d8b1d6edfd2e25504bf2983f5249d6f0459bcad99fe21bb0c9f6f1cc03569713af27cd5eb00ee7bb7d
checksum: 3a4e9ecba345cdafe585e7ed8270a44b39718e11dff3749aa27e0001a63d578b75100c062be28e6f48f960b594864034e7a13833f33fbd7ad56d5ce6b617f9bf
languageName: node
linkType: hard
@ -5629,7 +5681,7 @@ __metadata:
languageName: node
linkType: hard
"mongodb@npm:*, mongodb@npm:^5.2.0":
"mongodb@npm:*":
version: 5.2.0
resolution: "mongodb@npm:5.2.0"
dependencies:
@ -5655,6 +5707,38 @@ __metadata:
languageName: node
linkType: hard
"mongodb@npm:^5.2.0":
version: 5.9.1
resolution: "mongodb@npm:5.9.1"
dependencies:
"@mongodb-js/saslprep": ^1.1.0
bson: ^5.5.0
mongodb-connection-string-url: ^2.6.0
socks: ^2.7.1
peerDependencies:
"@aws-sdk/credential-providers": ^3.188.0
"@mongodb-js/zstd": ^1.0.0
kerberos: ^1.0.0 || ^2.0.0
mongodb-client-encryption: ">=2.3.0 <3"
snappy: ^7.2.2
dependenciesMeta:
"@mongodb-js/saslprep":
optional: true
peerDependenciesMeta:
"@aws-sdk/credential-providers":
optional: true
"@mongodb-js/zstd":
optional: true
kerberos:
optional: true
mongodb-client-encryption:
optional: true
snappy:
optional: true
checksum: a827937120cd7eecafc0ad5657b40536774f0b09582a9363db0a192149ba20eae80a33fccf573f5ce69a20aca6759c40b4961d9d1d4de2a350c543030055e0f6
languageName: node
linkType: hard
"moo@npm:^0.5.1":
version: 0.5.2
resolution: "moo@npm:0.5.2"
@ -5712,6 +5796,15 @@ __metadata:
languageName: node
linkType: hard
"nanoid@npm:^3.3.6":
version: 3.3.7
resolution: "nanoid@npm:3.3.7"
bin:
nanoid: bin/nanoid.cjs
checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2
languageName: node
linkType: hard
"negotiator@npm:0.6.3, negotiator@npm:^0.6.3":
version: 0.6.3
resolution: "negotiator@npm:0.6.3"
@ -5803,7 +5896,7 @@ __metadata:
languageName: node
linkType: hard
"nodemon@npm:^2.0.15, nodemon@npm:^2.0.22":
"nodemon@npm:^2.0.15":
version: 2.0.22
resolution: "nodemon@npm:2.0.22"
dependencies:
@ -5823,6 +5916,26 @@ __metadata:
languageName: node
linkType: hard
"nodemon@npm:^3.0.1":
version: 3.0.1
resolution: "nodemon@npm:3.0.1"
dependencies:
chokidar: ^3.5.2
debug: ^3.2.7
ignore-by-default: ^1.0.1
minimatch: ^3.1.2
pstree.remy: ^1.1.8
semver: ^7.5.3
simple-update-notifier: ^2.0.0
supports-color: ^5.5.0
touch: ^3.1.0
undefsafe: ^2.0.5
bin:
nodemon: bin/nodemon.js
checksum: 6a5d81855760d6617049eccce10ccf02bddb482dab13ceea5280ae595ec7004eee13e7b934368e3f46c37fe4d970342a8c38c99cae7e93e4d7a3ed1c1ecb6acf
languageName: node
linkType: hard
"nopt@npm:^6.0.0":
version: 6.0.0
resolution: "nopt@npm:6.0.0"
@ -6207,6 +6320,22 @@ __metadata:
languageName: node
linkType: hard
"pinkie-promise@npm:^2.0.0":
version: 2.0.1
resolution: "pinkie-promise@npm:2.0.1"
dependencies:
pinkie: ^2.0.0
checksum: b53a4a2e73bf56b6f421eef711e7bdcb693d6abb474d57c5c413b809f654ba5ee750c6a96dd7225052d4b96c4d053cdcb34b708a86fceed4663303abee52fcca
languageName: node
linkType: hard
"pinkie@npm:^2.0.0":
version: 2.0.4
resolution: "pinkie@npm:2.0.4"
checksum: b12b10afea1177595aab036fc220785488f67b4b0fc49e7a27979472592e971614fa1c728e63ad3e7eb748b4ec3c3dbd780819331dad6f7d635c77c10537b9db
languageName: node
linkType: hard
"pirates@npm:^4.0.1":
version: 4.0.5
resolution: "pirates@npm:4.0.5"
@ -6242,6 +6371,18 @@ __metadata:
languageName: node
linkType: hard
"postcss-calc@npm:^9.0.0":
version: 9.0.1
resolution: "postcss-calc@npm:9.0.1"
dependencies:
postcss-selector-parser: ^6.0.11
postcss-value-parser: ^4.2.0
peerDependencies:
postcss: ^8.2.2
checksum: 7327ed83bfec544ab8b3e38353baa72ff6d04378b856db4ad82dbd68ce0b73668867ef182b5d4025f9dd9aa9c64aacc50cd1bd9db8d8b51ccc4cb97866b9d72b
languageName: node
linkType: hard
"postcss-colormin@npm:^5.3.1":
version: 5.3.1
resolution: "postcss-colormin@npm:5.3.1"
@ -6459,9 +6600,9 @@ __metadata:
languageName: node
linkType: hard
"postcss-merge-rules@npm:^6.0.0":
version: 6.0.0
resolution: "postcss-merge-rules@npm:6.0.0"
"postcss-merge-rules@npm:^6.0.1":
version: 6.0.1
resolution: "postcss-merge-rules@npm:6.0.1"
dependencies:
browserslist: ^4.21.4
caniuse-api: ^3.0.0
@ -6469,7 +6610,7 @@ __metadata:
postcss-selector-parser: ^6.0.5
peerDependencies:
postcss: ^8.2.15
checksum: 8e7ed43c9faccb3859f06969011fd7fb3a9f37b27e4adb8d6a8a5c3b82d89b38ff1c4e9ca93e3aa63b0520f510c5af886d0e4b1ad2a550ff592a5710fbac55ec
checksum: db003c820319181647806f087ead22598faffee745713026b5c8ea637936dc737a55fdc8d7631731879f49ba675a880dda174f21ae62c8f5aa4b0fda1a81f19a
languageName: node
linkType: hard
@ -6986,7 +7127,7 @@ __metadata:
languageName: node
linkType: hard
"postcss@npm:^8.0.9, postcss@npm:^8.4.21":
"postcss@npm:^8.0.9":
version: 8.4.21
resolution: "postcss@npm:8.4.21"
dependencies:
@ -6997,6 +7138,17 @@ __metadata:
languageName: node
linkType: hard
"postcss@npm:^8.4.31":
version: 8.4.31
resolution: "postcss@npm:8.4.31"
dependencies:
nanoid: ^3.3.6
picocolors: ^1.0.0
source-map-js: ^1.0.2
checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea
languageName: node
linkType: hard
"preact@npm:^10.13.2":
version: 10.13.2
resolution: "preact@npm:10.13.2"
@ -7091,9 +7243,9 @@ __metadata:
languageName: node
linkType: hard
"qrcode@npm:^1.5.1":
version: 1.5.1
resolution: "qrcode@npm:1.5.1"
"qrcode@npm:^1.5.3":
version: 1.5.3
resolution: "qrcode@npm:1.5.3"
dependencies:
dijkstrajs: ^1.0.1
encode-utf8: ^1.0.3
@ -7101,7 +7253,7 @@ __metadata:
yargs: ^15.3.1
bin:
qrcode: bin/qrcode
checksum: 842f899d95caaad2ac507408b5498be3197e1df16bc6b537b20069d2cb1330e4588b50f672ce4a9ccf01338f7c97b5732ff9b5caaa6eb2338187d3c25a973e79
checksum: 9a8a20a0a9cb1d15de8e7b3ffa214e8b6d2a8b07655f25bd1b1d77f4681488f84d7bae569870c0652872d829d5f8ac4922c27a6bd14c13f0e197bf07b28dead7
languageName: node
linkType: hard
@ -7231,6 +7383,13 @@ __metadata:
languageName: node
linkType: hard
"regenerator-runtime@npm:^0.14.0":
version: 0.14.0
resolution: "regenerator-runtime@npm:0.14.0"
checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3
languageName: node
linkType: hard
"regexp.prototype.flags@npm:^1.4.3":
version: 1.4.3
resolution: "regexp.prototype.flags@npm:1.4.3"
@ -7364,6 +7523,15 @@ __metadata:
languageName: node
linkType: hard
"rollup-plugin-hash@npm:^1.3.0":
version: 1.3.0
resolution: "rollup-plugin-hash@npm:1.3.0"
dependencies:
hasha: ^2.2.0
checksum: ecb39f6d296664377436ab42defdc6250a4b7bd906b53aea4cb7026969a5c55a874d57c11561c98dc89c29e8b89f9dc0058ad13d7e3f5aef6247962fdf80d2bb
languageName: node
linkType: hard
"rollup-plugin-includepaths@npm:^0.2.4":
version: 0.2.4
resolution: "rollup-plugin-includepaths@npm:0.2.4"
@ -7418,15 +7586,15 @@ __metadata:
languageName: node
linkType: hard
"rollup-plugin-sizes@npm:^1.0.5":
version: 1.0.5
resolution: "rollup-plugin-sizes@npm:1.0.5"
"rollup-plugin-sizes@npm:^1.0.6":
version: 1.0.6
resolution: "rollup-plugin-sizes@npm:1.0.6"
dependencies:
filesize: ^9.0.0
module-details-from-path: ^1.0.3
peerDependencies:
rollup: ^2 || ^3
checksum: 38e8e194af849636fdcfcdb60169195c5df3932bf5241a860f14680a7850ef6819a7b6b0199f55ed021786799aee67f36d73fdcbbf55aa1696e61903a561fead
rollup: ^2 || ^3 || ^4
checksum: 1f48fedc6163650c4ca19c1ca1ed64343d9c8d2e25d575858c9548e08c1f0f324cf183620003033a20cbc4bde09aa72769c705ffe027b7d5b2e78aee1b4edf37
languageName: node
linkType: hard
@ -7510,12 +7678,12 @@ __metadata:
languageName: node
linkType: hard
"rxjs@npm:^7.8.0":
version: 7.8.0
resolution: "rxjs@npm:7.8.0"
"rxjs@npm:^7.8.1":
version: 7.8.1
resolution: "rxjs@npm:7.8.1"
dependencies:
tslib: ^2.1.0
checksum: 61b4d4fd323c1043d8d6ceb91f24183b28bcf5def4f01ca111511d5c6b66755bc5578587fe714ef5d67cf4c9f2e26f4490d4e1d8cabf9bd5967687835e9866a2
checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119
languageName: node
linkType: hard
@ -7639,6 +7807,17 @@ __metadata:
languageName: node
linkType: hard
"semver@npm:^7.5.3":
version: 7.5.4
resolution: "semver@npm:7.5.4"
dependencies:
lru-cache: ^6.0.0
bin:
semver: bin/semver.js
checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3
languageName: node
linkType: hard
"semver@npm:~7.0.0":
version: 7.0.0
resolution: "semver@npm:7.0.0"
@ -7745,13 +7924,20 @@ __metadata:
languageName: node
linkType: hard
"shell-quote@npm:^1.6.1, shell-quote@npm:^1.8.0":
"shell-quote@npm:^1.6.1":
version: 1.8.0
resolution: "shell-quote@npm:1.8.0"
checksum: 6ef7c5e308b9c77eedded882653a132214fa98b4a1512bb507588cf6cd2fc78bfee73e945d0c3211af028a1eabe09c6a19b96edd8977dc149810797e93809749
languageName: node
linkType: hard
"shell-quote@npm:^1.8.1":
version: 1.8.1
resolution: "shell-quote@npm:1.8.1"
checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b
languageName: node
linkType: hard
"side-channel@npm:^1.0.4":
version: 1.0.4
resolution: "side-channel@npm:1.0.4"
@ -7788,6 +7974,15 @@ __metadata:
languageName: node
linkType: hard
"simple-update-notifier@npm:^2.0.0":
version: 2.0.0
resolution: "simple-update-notifier@npm:2.0.0"
dependencies:
semver: ^7.5.3
checksum: 9ba00d38ce6a29682f64a46213834e4eb01634c2f52c813a9a7b8873ca49cdbb703696f3290f3b27dc067de6d9418b0b84bef22c3eb074acf352529b2d6c27fd
languageName: node
linkType: hard
"smart-buffer@npm:^4.2.0":
version: 4.2.0
resolution: "smart-buffer@npm:4.2.0"
@ -7907,10 +8102,10 @@ __metadata:
languageName: node
linkType: hard
"spawn-command@npm:0.0.2-1":
version: 0.0.2-1
resolution: "spawn-command@npm:0.0.2-1"
checksum: 2cac8519332193d1ed37d57298c4a1f73095e9edd20440fbab4aa47f531da83831734f2b51c44bb42b2747bf3485dec3fa2b0a1003f74c67561f2636622e328b
"spawn-command@npm:0.0.2":
version: 0.0.2
resolution: "spawn-command@npm:0.0.2"
checksum: e35c5d28177b4d461d33c88cc11f6f3a5079e2b132c11e1746453bbb7a0c0b8a634f07541a2a234fa4758239d88203b758def509161b651e81958894c0b4b64b
languageName: node
linkType: hard
@ -8672,12 +8867,12 @@ __metadata:
languageName: node
linkType: hard
"uuid@npm:^9.0.0":
version: 9.0.0
resolution: "uuid@npm:9.0.0"
"uuid@npm:^9.0.1":
version: 9.0.1
resolution: "uuid@npm:9.0.1"
bin:
uuid: dist/bin/uuid
checksum: 8dd2c83c43ddc7e1c71e36b60aea40030a6505139af6bee0f382ebcd1a56f6cd3028f7f06ffb07f8cf6ced320b76aea275284b224b002b289f89fe89c389b028
checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4
languageName: node
linkType: hard
@ -9104,7 +9299,7 @@ __metadata:
languageName: node
linkType: hard
"yargs@npm:^17.5.1, yargs@npm:^17.7.1":
"yargs@npm:^17.5.1":
version: 17.7.1
resolution: "yargs@npm:17.7.1"
dependencies:
@ -9119,6 +9314,21 @@ __metadata:
languageName: node
linkType: hard
"yargs@npm:^17.7.2":
version: 17.7.2
resolution: "yargs@npm:17.7.2"
dependencies:
cliui: ^8.0.1
escalade: ^3.1.1
get-caller-file: ^2.0.5
require-directory: ^2.1.1
string-width: ^4.2.3
y18n: ^5.0.5
yargs-parser: ^21.1.1
checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a
languageName: node
linkType: hard
"yeast@npm:0.1.2":
version: 0.1.2
resolution: "yeast@npm:0.1.2"