diff --git a/.dockerignorefile b/.dockerignorefile
index 9143b06b..24224fad 100644
--- a/.dockerignorefile
+++ b/.dockerignorefile
@@ -1,3 +1,5 @@
servers
compose.yml
-node_modules
\ No newline at end of file
+node_modules
+.gitignore
+Dockerfile
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 7a252950..b86e38f3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
node_modules
-servers/*.ign
\ No newline at end of file
+servers/*.ign
+.parcel-cache
\ No newline at end of file
diff --git a/compose.yml b/compose.yml
index 588c06bb..952ad075 100644
--- a/compose.yml
+++ b/compose.yml
@@ -29,10 +29,10 @@ services:
# - "traefik.http.routers.to-website.rule=Host(`jade.ellis.link`)"
# - "traefik.http.routers.to-website.entrypoints=http"
- - "traefik.http.routers.to-website.rule=Host(`jade.ellis.link`)"
- - "traefik.http.routers.to-website.entrypoints=https"
- - "traefik.http.routers.to-website.tls=true"
- - "traefik.http.routers.to-website.tls.certresolver=letsencrypt"
+ - "traefik.http.routers.to-website.rule=Host(`jade.ellis.link.localhost`)"
+ - "traefik.http.routers.to-website.entrypoints=http"
+ # - "traefik.http.routers.to-website.tls=true"
+ # - "traefik.http.routers.to-website.tls.certresolver=letsencrypt"
# - "traefik.http.routers.to-website.middlewares=cors-headers@docker"
# - "traefik.http.middlewares.cors-headers.headers.accessControlAllowOriginList=*"
@@ -51,25 +51,25 @@ services:
- "--log.level=DEBUG"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- - "--entrypoints.http.address=:80"
- - "--entrypoints.https.address=:443"
+ - "--entrypoints.http.address=:8080"
+ # - "--entrypoints.https.address=:443"
# - "--acme"
- - "--certificatesresolvers.letsencrypt.acme.email='jade@ellis.link'"
- - "--certificatesresolvers.letsencrypt.acme.storage=/certificates/acme.json"
+ # - "--certificatesresolvers.letsencrypt.acme.email='jade@ellis.link'"
+ # - "--certificatesresolvers.letsencrypt.acme.storage=/certificates/acme.json"
# - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
# - "--certificatesresolvers.letsencrypt.acme.httpChallenge.entryPoint=http"
- - "--certificatesresolvers.lets-encrypt.acme.tlschallenge=true"
+ # - "--certificatesresolvers.lets-encrypt.acme.tlschallenge=true"
- - "--entrypoints.http.http.redirections.entryPoint.to=https"
- - "--entrypoints.http.http.redirections.entryPoint.scheme=https"
+ # - "--entrypoints.http.http.redirections.entryPoint.to=https"
+ # - "--entrypoints.http.http.redirections.entryPoint.scheme=https"
# - --api.dashboard=true
# - --api.insecure=true
ports:
- - "80:80"
- - "443:443"
- # - "8080:8080"
+ # - "80:80"
+ # - "443:443"
+ - "8080:8080"
volumes:
- "/run/user/1000/podman/podman.sock:/var/run/docker.sock"
# - "/var/run/docker.sock:/var/run/docker.sock:ro"
diff --git a/packages/website/.dockerignore b/packages/website/.dockerignore
new file mode 100644
index 00000000..f84fb13d
--- /dev/null
+++ b/packages/website/.dockerignore
@@ -0,0 +1,13 @@
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+.vercel
+.output
+vite.config.js.timestamp-*
+vite.config.ts.timestamp-*
+output
\ No newline at end of file
diff --git a/packages/website/.gitignore b/packages/website/.gitignore
index 8f6c617e..f84fb13d 100644
--- a/packages/website/.gitignore
+++ b/packages/website/.gitignore
@@ -10,3 +10,4 @@ node_modules
.output
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
+output
\ No newline at end of file
diff --git a/packages/website/Dockerfile b/packages/website/Dockerfile
index fcb8719c..922ce1ec 100644
--- a/packages/website/Dockerfile
+++ b/packages/website/Dockerfile
@@ -16,13 +16,15 @@ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
RUN cd packages/website; pnpm run build
-
+run cd packages/website; pnpm exec rollup -c server-rollup.config.mjs
# copy node_modules/ and other build files over
FROM node:alpine
WORKDIR /app
-COPY --from=build /app/packages/website/build .
+COPY --from=build /app/packages/website/output .
+COPY --from=build /app/packages/website/build/client ./client/
+COPY --from=build /app/packages/website/build/prerendered ./prerendered/
COPY --from=build /app/packages/website/package.json ./package.json
ENV NODE_ENV production
diff --git a/packages/website/csp.js b/packages/website/csp.js
index 506b7cf4..fdbf8ccf 100644
--- a/packages/website/csp.js
+++ b/packages/website/csp.js
@@ -20,7 +20,7 @@ const cspDirectives = {
'manifest-src': ["'self'"],
'media-src': ["'self'", 'data:'],
'object-src': ["'none'"],
- 'style-src': ["'self'"],
+ 'style-src': ["'self'", "'unsafe-inline'"],
// 'style-src': ["'self'", "'unsafe-inline'", 'https://hcaptcha.com', 'https://*.hcaptcha.com'],
'default-src': [
'self',
diff --git a/packages/website/package.json b/packages/website/package.json
index 07ed028c..5f929fe1 100644
--- a/packages/website/package.json
+++ b/packages/website/package.json
@@ -12,10 +12,13 @@
"@fontsource/fira-mono": "^4.5.10",
"@json-feed-types/1_1": "^1.0.2",
"@neoconfetti/svelte": "^1.0.0",
+ "@rollup/plugin-node-resolve": "^15.2.3",
"@sveltejs/adapter-auto": "^3.0.0",
"@sveltejs/adapter-node": "^4.0.1",
"@sveltejs/kit": "^2.0.0",
"@sveltejs/vite-plugin-svelte": "^3.0.0",
+ "rollup": "^4.14.1",
+ "rollup-plugin-type-as-json-schema": "^0.2.6",
"sharp": "^0.33.2",
"svelte": "^4.2.7",
"svelte-check": "^3.6.0",
@@ -29,8 +32,33 @@
},
"type": "module",
"dependencies": {
+ "@codemirror/lang-javascript": "^6.2.2",
+ "@codemirror/language": "^6.10.1",
+ "@codemirror/lint": "^6.5.0",
+ "@codemirror/state": "^6.4.1",
+ "@codemirror/view": "^6.26.2",
+ "@lezer/highlight": "^1.2.0",
"@steeze-ui/svelte-icon": "^1.5.0",
+ "@uiw/codemirror-theme-github": "^4.21.25",
+ "acorn": "^8.11.3",
+ "magic-string": "^0.30.9",
"super-sitemap": "^0.14.14",
+ "svelte-codemirror-editor": "^1.3.0",
+ "terser": "^5.30.3",
"xmlbuilder2": "^3.1.1"
+ },
+ "targets": {
+ "module": {
+ "context": "node",
+ "engines": {
+ "node": ">= 20"
+ },
+ "outputFormat": "esmodule",
+ "optimize": true,
+ "includeNodeModules": true
+ }
+ },
+ "@parcel/resolver-default": {
+ "packageExports": true
}
}
diff --git a/packages/website/server-rollup.config.mjs b/packages/website/server-rollup.config.mjs
new file mode 100644
index 00000000..d90db847
--- /dev/null
+++ b/packages/website/server-rollup.config.mjs
@@ -0,0 +1,11 @@
+// rollup.config.mjs
+import { nodeResolve } from '@rollup/plugin-node-resolve';
+
+export default {
+ input: 'build/index.js',
+ output: {
+ dir: "output",
+ format: 'esm'
+ },
+ plugins: [nodeResolve()]
+};
\ No newline at end of file
diff --git a/packages/website/src/lib/Editor.svelte b/packages/website/src/lib/Editor.svelte
new file mode 100644
index 00000000..cfd38669
--- /dev/null
+++ b/packages/website/src/lib/Editor.svelte
@@ -0,0 +1,85 @@
+
+
+
+
+
+{#if $$slots.header}
+
+{/if}
+
+
+
+
diff --git a/packages/website/src/lib/styles.css b/packages/website/src/lib/styles.css
index 6f587b64..ee5454ed 100644
--- a/packages/website/src/lib/styles.css
+++ b/packages/website/src/lib/styles.css
@@ -4,6 +4,10 @@
--theme: #242424;
--background-color: #f8f8f8;
--surface-color: #fff;
+ --surface-secondary-color: #ededed;
+
+ --input-background-color: #fff;
+ --input-color: #24292e;
--backdrop-color: rgba(247, 247, 247, .54);
--shadow-color: rgba(0, 0, 0, .12);
--font-color: rgba(0, 0, 0, .87);
@@ -23,6 +27,10 @@
--backdrop-color: rgba(20, 20, 20, .54);
--shadow-color: rgba(255, 255, 255, .12);
--surface-color: #242424;
+ --surface-secondary-color: #222222;
+
+ --input-background-color: #161616;
+ --input-color: #d8d8d8;
--font-color: rgba(255, 255, 255, .87);
--font-color-contrast: rgba(0, 0, 0, .87);
--font-color-secondary: rgba(255, 255, 255, .6)
diff --git a/packages/website/src/lib/theme.ts b/packages/website/src/lib/theme.ts
new file mode 100644
index 00000000..efab5962
--- /dev/null
+++ b/packages/website/src/lib/theme.ts
@@ -0,0 +1,9 @@
+import { writable } from 'svelte/store'
+
+let query = typeof window != "undefined" ? window?.matchMedia('(prefers-color-scheme: dark)') : undefined
+
+export const theme = writable(query?.matches ? 'dark' : 'light')
+
+query?.addEventListener('change', e => {
+ theme.set(e.matches ? 'dark' : 'light')
+});
diff --git a/packages/website/src/lib/themes/github.ts b/packages/website/src/lib/themes/github.ts
new file mode 100644
index 00000000..9cee4e17
--- /dev/null
+++ b/packages/website/src/lib/themes/github.ts
@@ -0,0 +1,172 @@
+
+import { tags as t } from '@lezer/highlight';
+
+// NOTE: This requires enabling unsafe-inline styles in the CSP
+// From thememirror
+import { EditorView } from '@codemirror/view';
+import type { Extension } from '@codemirror/state';
+import {
+ HighlightStyle,
+ type TagStyle,
+ syntaxHighlighting,
+} from '@codemirror/language';
+
+interface Options {
+ /**
+ * Theme variant. Determines which styles CodeMirror will apply by default.
+ */
+ variant: Variant;
+
+ /**
+ * Settings to customize the look of the editor, like background, gutter, selection and others.
+ */
+ settings: Settings;
+
+ /**
+ * Syntax highlighting styles.
+ */
+ styles: TagStyle[];
+}
+
+type Variant = 'light' | 'dark';
+
+interface Settings {
+ /**
+ * Editor background.
+ */
+ background: string;
+
+ /**
+ * Default text color.
+ */
+ foreground: string;
+
+ /**
+ * Caret color.
+ */
+ caret: string;
+
+ /**
+ * Selection background.
+ */
+ selection: string;
+
+ /**
+ * Background of highlighted lines.
+ */
+ lineHighlight: string;
+
+ /**
+ * Gutter background.
+ */
+ gutterBackground: string;
+
+ /**
+ * Text color inside gutter.
+ */
+ gutterForeground: string;
+}
+
+const createTheme = ({ variant, settings, styles }: Options): Extension => {
+ const theme = EditorView.theme(
+ {
+ // eslint-disable-next-line @typescript-eslint/naming-convention
+ '&': {
+ backgroundColor: settings.background,
+ color: settings.foreground,
+ },
+ '.cm-content': {
+ caretColor: settings.caret,
+ },
+ '.cm-cursor, .cm-dropCursor': {
+ borderLeftColor: settings.caret,
+ },
+ '&.cm-focused .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection':
+ {
+ backgroundColor: settings.selection,
+ },
+ '.cm-activeLine': {
+ backgroundColor: settings.lineHighlight,
+ },
+ '.cm-gutters': {
+ backgroundColor: settings.gutterBackground,
+ color: settings.gutterForeground,
+ },
+ '.cm-activeLineGutter': {
+ backgroundColor: settings.lineHighlight,
+ },
+ },
+ {
+ dark: variant === 'dark',
+ },
+ );
+
+ const highlightStyle = HighlightStyle.define(styles);
+ const extension = [theme, syntaxHighlighting(highlightStyle)];
+
+ return extension;
+};
+
+export default createTheme;
+
+export const githubLight = createTheme({
+ variant: 'light',
+ settings: {
+ background: '#fff',
+ foreground: '#24292e',
+ selection: '#BBDFFF',
+ // selectionMatch: '#BBDFFF',
+ gutterBackground: '#fff',
+ gutterForeground: '#6e7781',
+ caret: '#7c3aed',
+ lineHighlight: '#8a91991a',
+ },
+ styles: [
+ { tag: [t.standard(t.tagName), t.tagName], color: '#116329' },
+ { tag: [t.comment, t.bracket], color: '#6a737d' },
+ { tag: [t.className, t.propertyName], color: '#6f42c1' },
+ { tag: [t.variableName, t.attributeName, t.number, t.operator], color: '#005cc5' },
+ { tag: [t.keyword, t.typeName, t.typeOperator, t.typeName], color: '#d73a49' },
+ { tag: [t.string, t.meta, t.regexp], color: '#032f62' },
+ { tag: [t.name, t.quote], color: '#22863a' },
+ { tag: [t.heading, t.strong], color: '#24292e', fontWeight: 'bold' },
+ { tag: [t.emphasis], color: '#24292e', fontStyle: 'italic' },
+ { tag: [t.deleted], color: '#b31d28', backgroundColor: 'ffeef0' },
+ { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#e36209' },
+ { tag: [t.url, t.escape, t.regexp, t.link], color: '#032f62' },
+ { tag: t.link, textDecoration: 'underline' },
+ { tag: t.strikethrough, textDecoration: 'line-through' },
+ { tag: t.invalid, color: '#cb2431' }
+ ],
+});
+
+export
+ const githubDark = createTheme({
+ variant: 'dark',
+ settings: {
+ background: '#161616',
+ foreground: '#d8d8d8',
+ caret: '#c9d1d9',
+ selection: '#003d73',
+ // selectionMatch: '#003d73',\
+ lineHighlight: '#1e1e1e',
+ gutterBackground: '#1c1c1c',
+ gutterForeground: '#fff',
+ },
+ styles: [
+ { tag: [t.standard(t.tagName), t.tagName], color: '#7ee787' },
+ { tag: [t.comment, t.bracket], color: '#8b949e' },
+ { tag: [t.className, t.propertyName], color: '#d2a8ff' },
+ { tag: [t.variableName, t.attributeName, t.number, t.operator], color: '#79c0ff' },
+ { tag: [t.keyword, t.typeName, t.typeOperator, t.typeName], color: '#ff7b72' },
+ { tag: [t.string, t.meta, t.regexp], color: '#a5d6ff' },
+ { tag: [t.name, t.quote], color: '#7ee787' },
+ { tag: [t.heading, t.strong], color: '#d2a8ff', fontWeight: 'bold' },
+ { tag: [t.emphasis], color: '#d2a8ff', fontStyle: 'italic' },
+ { tag: [t.deleted], color: '#ffdcd7', backgroundColor: 'ffeef0' },
+ { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#ffab70' },
+ { tag: t.link, textDecoration: 'underline' },
+ { tag: t.strikethrough, textDecoration: 'line-through' },
+ { tag: t.invalid, color: '#f97583' },
+ ],
+ });
\ No newline at end of file
diff --git a/packages/website/src/routes/(tools)/bookmarklets/+page.svelte b/packages/website/src/routes/(tools)/bookmarklets/+page.svelte
new file mode 100644
index 00000000..61310e08
--- /dev/null
+++ b/packages/website/src/routes/(tools)/bookmarklets/+page.svelte
@@ -0,0 +1,82 @@
+
+
+
+Bookmarklet Maker
+ (value = e.detail)}
+ lang={LanguageConfig.JavaScript}
+>
+
+
+
+Output
+{#await progress}
+ ...waiting
+{:catch error}
+ {error.message}
+{/await}
+
+
+
+
+ Bookmark this link: {options.name || "My Bookmarklet"}
+
+
+ Either drag the link to your bookmarlets bar or, on FireFox, right click and
+ select "Bookmark Link"
+
+
+
diff --git a/packages/website/src/routes/(tools)/bookmarklets/+page.ts b/packages/website/src/routes/(tools)/bookmarklets/+page.ts
new file mode 100644
index 00000000..189f71e2
--- /dev/null
+++ b/packages/website/src/routes/(tools)/bookmarklets/+page.ts
@@ -0,0 +1 @@
+export const prerender = true;
diff --git a/packages/website/src/routes/(tools)/bookmarklets/bookmarklets.ts b/packages/website/src/routes/(tools)/bookmarklets/bookmarklets.ts
new file mode 100644
index 00000000..e9d7d3b4
--- /dev/null
+++ b/packages/website/src/routes/(tools)/bookmarklets/bookmarklets.ts
@@ -0,0 +1,223 @@
+
+
+import MagicString from "magic-string";
+import { Parser } from "acorn";
+import { minify } from "terser";
+
+let sourceMap = false;
+
+import { configSchema } from "./config.schema";
+import type { Config } from "./config";
+// console.log(configSchema)
+export async function bookmarkify(code: string, options: Config) {
+
+ // try {
+ if (options.script) {
+ options.script = options.script.reverse();
+ options.script.forEach(s => {
+ let { path, opts } = extractOptions(s);
+ code = loadScript(code, path, opts.loadOnce);
+ });
+ }
+
+ if (options.style) {
+ options.style.forEach(s => {
+ let { path, opts } = extractOptions(s);
+ code = loadStyle(path, opts.loadOnce) + code;
+ });
+ }
+
+ const result = await minify(code, { sourceMap });
+ // return result.code;
+ if (typeof result.code == "string") {
+ // const intermediate = new MagicString(result.code);
+ return `javascript:${encodeURIComponent("(function(){" + result.code + "})()")}`;
+ }
+ // } catch (e) {
+ // console.log("Error occurred", e);
+ // }
+}
+
+export async function parseMeta(str: string): Promise {
+ enum MetaState {
+ PreOpen,
+ Opened,
+ Closed
+ }
+ let state: MetaState = MetaState.PreOpen
+
+
+ const openMetadata = /==bookmarklet==/gim;
+ const closeMetadata = /==\/bookmarklet==/gim;
+ const metaLine = /^[\s]*@([^\s]+)\s+(.*)$/gim;
+ let options: Config = {};
+
+ Parser.parse(str, {
+ ecmaVersion: "latest",
+ onComment(isBlock, text, start, end, startLoc, endLoc) {
+ openMetadata.lastIndex = 0;
+ closeMetadata.lastIndex = 0;
+ metaLine.lastIndex = 0;
+ if (state == MetaState.PreOpen) {
+ let res = openMetadata.exec(text)
+ if (res !== null) {
+ state = MetaState.Opened
+ closeMetadata.lastIndex = openMetadata.lastIndex;
+ metaLine.lastIndex = openMetadata.lastIndex;
+ // console.log("Meta opened at", start + openMetadata.lastIndex)
+ }
+ }
+ // console.log(text, closeMetadata.lastIndex)
+ let res
+ while (state == MetaState.Opened && (res = metaLine.exec(text)) !== null) {
+ closeMetadata.lastIndex = metaLine.lastIndex;
+ // console.log(str.slice(start + 2 + (metaLine.lastIndex - res[0].length), start + 2 + metaLine.lastIndex ))
+ let k = res[1];
+ let v = res[2];
+ if (k) {
+ if (configSchema.properties[k]?.type == "array") {
+ options[k] = options[k] || [];
+ options[k].push(v);
+ } else if (configSchema.properties[k]?.type == "boolean") {
+ options[k] = v.toLowerCase() == 'true';
+ } else {
+ options[k] = v;
+ }
+ }
+ }
+
+ if (state == MetaState.Opened) {
+ let endRes = closeMetadata.exec(text)
+ if (endRes !== null) {
+ state = MetaState.Closed;
+
+ // console.log("Meta closed at", start + closeMetadata.lastIndex)
+ }
+ }
+ },
+ });
+
+ // @ts-ignore
+ if (state == MetaState.Opened) {
+ throw new Error("Missing metadata close block. Add '==/Bookmarklet==' to your comment block");
+
+ }
+ return options;
+}
+
+function loadScript(code: string, path: string, loadOnce: boolean) {
+ loadOnce = !!loadOnce;
+ let id = `bookmarklet__script_${cyrb53(path).toString(36).substring(0, 7)}`;
+ return `
+ function callback(){
+ ${code}
+ }
+
+ if (!${loadOnce} || !document.getElementById("${id}")) {
+ var s = document.createElement("script");
+ if (s.addEventListener) {
+ s.addEventListener("load", callback, false)
+ } else if (s.readyState) {
+ s.onreadystatechange = callback
+ }
+ if (${loadOnce}) {
+ s.id = "${id}";
+ }
+ s.src = "${quoteEscape(path)}";
+ document.body.appendChild(s);
+ } else {
+ callback();
+ }
+ `;
+}
+
+function loadStyle(path: string, loadOnce: boolean) {
+ loadOnce = !!loadOnce;
+ let id = `bookmarklet__style_${cyrb53(path).toString(36).substring(0, 7)}`;
+ return `
+ if (!${loadOnce} || !document.getElementById("${id}")) {
+ var link = document.createElement("link");
+ if (${loadOnce}) {
+ link.id = "${id}";
+ }
+ link.rel="stylesheet";
+ link.href = "${quoteEscape(path)}";
+ document.body.appendChild(link);
+ }
+ `;
+}
+const cyrb53 = (str: string, seed = 0) => {
+ let h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
+ for (let i = 0, ch; i < str.length; i++) {
+ ch = str.charCodeAt(i);
+ h1 = Math.imul(h1 ^ ch, 2654435761);
+ h2 = Math.imul(h2 ^ ch, 1597334677);
+ }
+ h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507);
+ h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909);
+ h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507);
+ h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909);
+
+ return 4294967296 * (2097151 & h2) + (h1 >>> 0);
+};
+function extractOptions(path: string) {
+ // Returns {
+ // path: the updated path string (minus any options)
+ // opts: plain object of options
+ // }
+ //
+ // You can prefix a path with options in the form of:
+ //
+ // ```
+ // @style !loadOnce !foo=false https://example.com/foo.css
+ // ```
+ //
+ // If there is no `=`, then the value of the option defaults to `true`.
+ // Values get converted via JSON.parse if possible, o/w they're a string.
+ //
+ let opts: { [x: string]: any } = {};
+
+ let matcher = /^(\![^\s]+)\s+/g
+
+ let m
+ let splitAfter = 0;
+ while ((m = matcher.exec(path)) !== null) {
+ splitAfter = matcher.lastIndex;
+
+ let opt = m[1].substring(1).split('=');
+ opts[opt[0]] = opt[1] === undefined ? true : _fuzzyParse(opt[1]);
+ // break
+ }
+ return { path: path.substring(splitAfter), opts };
+}
+
+const _fuzzyParse = (val: string) => {
+ try {
+ return JSON.parse(val);
+ } catch (e) {
+ return val;
+ }
+};
+
+// function result() {
+
+// return minification(value)
+// .then((result) => {
+// errorMessage = "";
+// if (result === "") {
+// errorMessage = "Put some code in there!";
+// } else {
+// codeOutput = "javascript:(function(){" + result + "}());";
+// }
+// return;
+// })
+// .catch((err) => {
+// codeOutput = "";
+// return (errorMessage = err);
+// });
+// }
+
+
+function quoteEscape(x) {
+ return x.replace('"', '\\"').replace("'", "\\'");
+}
\ No newline at end of file
diff --git a/packages/website/src/routes/(tools)/bookmarklets/config.ts b/packages/website/src/routes/(tools)/bookmarklets/config.ts
new file mode 100644
index 00000000..0352f081
--- /dev/null
+++ b/packages/website/src/routes/(tools)/bookmarklets/config.ts
@@ -0,0 +1,13 @@
+export interface Config {
+ author?: string;
+ description?: string;
+ email?: string;
+ license?: string;
+ name?: string;
+ repository?: string;
+ script?: string[];
+ style?: string[];
+ url?: string;
+ version?: string;
+ [x: string]: any;
+}
diff --git a/packages/website/svelte.config.js b/packages/website/svelte.config.js
index 98976e8a..601f721c 100644
--- a/packages/website/svelte.config.js
+++ b/packages/website/svelte.config.js
@@ -15,7 +15,22 @@ const config = {
// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
// If your environment is not supported or you settled on a specific environment, switch out the adapter.
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
- adapter: htmlMinifierAdaptor(adapter()),
+ adapter:
+ htmlMinifierAdaptor(
+ adapter(),
+ {
+ pages: "build/prerendered/",
+ minifierOptions: {
+ minifyURLs: true,
+
+ // Because of CSP hashing
+ minifyJS: false, // We can pass a function here
+ collapseWhitespace: false,
+ sortAttributes: true,
+ sortClassName: true,
+ removeRedundantAttributes: true
+ }
+ }),
csp: {
mode: "auto",
directives: cspDirectives,
diff --git a/packages/website/vite.config.ts b/packages/website/vite.config.ts
index 405cbf3d..ef3df634 100644
--- a/packages/website/vite.config.ts
+++ b/packages/website/vite.config.ts
@@ -1,10 +1,13 @@
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
import { ViteImageOptimizer } from 'vite-plugin-image-optimizer';
+import typeAsJsonSchemaPlugin from 'rollup-plugin-type-as-json-schema';
export default defineConfig({
plugins: [
+
+ typeAsJsonSchemaPlugin(),
ViteImageOptimizer({
/* pass your config */
}),
@@ -12,5 +15,16 @@ export default defineConfig({
],
build: {
assetsInlineLimit: 0
- }
+ },
+ optimizeDeps: {
+ exclude: [
+ "codemirror",
+ // "@codemirror/lang-javascript",
+ // "@codemirror/state",
+ // "@codemirror/lint",
+ // "@codemirror/autocomplete",
+ // "@codemirror/language",
+ // "thememirror"
+ /* ... */],
+ },
});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index efb416e0..4ad5ce52 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,12 +10,45 @@ importers:
packages/website:
dependencies:
+ '@codemirror/lang-javascript':
+ specifier: ^6.2.2
+ version: 6.2.2
+ '@codemirror/language':
+ specifier: ^6.10.1
+ version: 6.10.1
+ '@codemirror/lint':
+ specifier: ^6.5.0
+ version: 6.5.0
+ '@codemirror/state':
+ specifier: ^6.4.1
+ version: 6.4.1
+ '@codemirror/view':
+ specifier: ^6.26.2
+ version: 6.26.2
+ '@lezer/highlight':
+ specifier: ^1.2.0
+ version: 1.2.0
'@steeze-ui/svelte-icon':
specifier: ^1.5.0
version: 1.5.0(svelte@4.2.8)
+ '@uiw/codemirror-theme-github':
+ specifier: ^4.21.25
+ version: 4.21.25(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)
+ acorn:
+ specifier: ^8.11.3
+ version: 8.11.3
+ magic-string:
+ specifier: ^0.30.9
+ version: 0.30.9
super-sitemap:
specifier: ^0.14.14
version: 0.14.14(svelte@4.2.8)
+ svelte-codemirror-editor:
+ specifier: ^1.3.0
+ version: 1.3.0(codemirror@6.0.1)(svelte@4.2.8)
+ terser:
+ specifier: ^5.30.3
+ version: 5.30.3
xmlbuilder2:
specifier: ^3.1.1
version: 3.1.1
@@ -29,6 +62,9 @@ importers:
'@neoconfetti/svelte':
specifier: ^1.0.0
version: 1.0.0
+ '@rollup/plugin-node-resolve':
+ specifier: ^15.2.3
+ version: 15.2.3(rollup@4.14.1)
'@sveltejs/adapter-auto':
specifier: ^3.0.0
version: 3.1.1(@sveltejs/kit@2.5.0)
@@ -41,6 +77,12 @@ importers:
'@sveltejs/vite-plugin-svelte':
specifier: ^3.0.0
version: 3.0.1(svelte@4.2.8)(vite@5.2.7)
+ rollup:
+ specifier: ^4.14.1
+ version: 4.14.1
+ rollup-plugin-type-as-json-schema:
+ specifier: ^0.2.6
+ version: 0.2.6
sharp:
specifier: ^0.33.2
version: 0.33.2
@@ -67,7 +109,7 @@ importers:
version: 5.3.3
vite:
specifier: ^5.0.12
- version: 5.2.7
+ version: 5.2.7(terser@5.30.3)
vite-plugin-image-optimizer:
specifier: ^1.1.7
version: 1.1.7(vite@5.2.7)
@@ -78,9 +120,105 @@ packages:
resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
engines: {node: '>=6.0.0'}
dependencies:
- '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.20
+ /@codemirror/autocomplete@6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.1)(@lezer/common@1.2.1):
+ resolution: {integrity: sha512-G2Zm0mXznxz97JhaaOdoEG2cVupn4JjPaS4AcNvZzhOsnnG9YVN68VzfoUw6dYTsIxT6a/cmoFEN47KAWhXaOg==}
+ peerDependencies:
+ '@codemirror/language': ^6.0.0
+ '@codemirror/state': ^6.0.0
+ '@codemirror/view': ^6.0.0
+ '@lezer/common': ^1.0.0
+ dependencies:
+ '@codemirror/language': 6.10.1
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.26.1
+ '@lezer/common': 1.2.1
+ dev: false
+
+ /@codemirror/autocomplete@6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(@lezer/common@1.2.1):
+ resolution: {integrity: sha512-G2Zm0mXznxz97JhaaOdoEG2cVupn4JjPaS4AcNvZzhOsnnG9YVN68VzfoUw6dYTsIxT6a/cmoFEN47KAWhXaOg==}
+ peerDependencies:
+ '@codemirror/language': ^6.0.0
+ '@codemirror/state': ^6.0.0
+ '@codemirror/view': ^6.0.0
+ '@lezer/common': ^1.0.0
+ dependencies:
+ '@codemirror/language': 6.10.1
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.26.2
+ '@lezer/common': 1.2.1
+ dev: false
+
+ /@codemirror/commands@6.3.3:
+ resolution: {integrity: sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==}
+ dependencies:
+ '@codemirror/language': 6.10.1
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.26.1
+ '@lezer/common': 1.2.1
+ dev: false
+
+ /@codemirror/lang-javascript@6.2.2:
+ resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==}
+ dependencies:
+ '@codemirror/autocomplete': 6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(@lezer/common@1.2.1)
+ '@codemirror/language': 6.10.1
+ '@codemirror/lint': 6.5.0
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.26.2
+ '@lezer/common': 1.2.1
+ '@lezer/javascript': 1.4.14
+ dev: false
+
+ /@codemirror/language@6.10.1:
+ resolution: {integrity: sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==}
+ dependencies:
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.26.2
+ '@lezer/common': 1.2.1
+ '@lezer/highlight': 1.2.0
+ '@lezer/lr': 1.4.0
+ style-mod: 4.1.2
+ dev: false
+
+ /@codemirror/lint@6.5.0:
+ resolution: {integrity: sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==}
+ dependencies:
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.26.2
+ crelt: 1.0.6
+ dev: false
+
+ /@codemirror/search@6.5.6:
+ resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==}
+ dependencies:
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.26.1
+ crelt: 1.0.6
+ dev: false
+
+ /@codemirror/state@6.4.1:
+ resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==}
+ dev: false
+
+ /@codemirror/view@6.26.1:
+ resolution: {integrity: sha512-wLw0t3R9AwOSQThdZ5Onw8QQtem5asE7+bPlnzc57eubPqiuJKIzwjMZ+C42vQett+iva+J8VgFV4RYWDBh5FA==}
+ dependencies:
+ '@codemirror/state': 6.4.1
+ style-mod: 4.1.2
+ w3c-keyname: 2.2.8
+ dev: false
+
+ /@codemirror/view@6.26.2:
+ resolution: {integrity: sha512-j6V48PlFC/O7ERAR5vRW5QKDdchzmyyfojDdt+zPsB0YXoWgcjlC1IWjmlYfx08aQZ3HN5BtALcgGgtSKGMe7A==}
+ dependencies:
+ '@codemirror/state': 6.4.1
+ style-mod: 4.1.2
+ w3c-keyname: 2.2.8
+ dev: false
+
/@emnapi/runtime@0.45.0:
resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==}
requiresBuild: true
@@ -488,14 +626,6 @@ packages:
dev: true
optional: true
- /@jridgewell/gen-mapping@0.3.3:
- resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
- engines: {node: '>=6.0.0'}
- dependencies:
- '@jridgewell/set-array': 1.1.2
- '@jridgewell/sourcemap-codec': 1.4.15
- '@jridgewell/trace-mapping': 0.3.20
-
/@jridgewell/gen-mapping@0.3.5:
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
@@ -503,27 +633,20 @@ packages:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.25
- dev: true
/@jridgewell/resolve-uri@3.1.1:
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
engines: {node: '>=6.0.0'}
- /@jridgewell/set-array@1.1.2:
- resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
- engines: {node: '>=6.0.0'}
-
/@jridgewell/set-array@1.2.1:
resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
engines: {node: '>=6.0.0'}
- dev: true
/@jridgewell/source-map@0.3.6:
resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
dependencies:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
- dev: true
/@jridgewell/sourcemap-codec@1.4.15:
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
@@ -539,7 +662,6 @@ packages:
dependencies:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
- dev: true
/@json-feed-types/1_1@1.0.2:
resolution: {integrity: sha512-Ht6Qm53qhWZvvPat4vScXSxiD3MdULuSZrOzUWgMPuez6HMcv5BQcb0OFvIH6WxH72rE8mZTWHrE2FF22XIAgg==}
@@ -552,6 +674,30 @@ packages:
resolution: {integrity: sha512-IWcSEjI+2bjl1T0R4cIPHu2DZ6PF/unRdEl9VZ1vTtLNaybzirGCywat+KLIpbmxrg48kRNgasH4CBYkq99NDw==}
dev: true
+ /@lezer/common@1.2.1:
+ resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==}
+ dev: false
+
+ /@lezer/highlight@1.2.0:
+ resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==}
+ dependencies:
+ '@lezer/common': 1.2.1
+ dev: false
+
+ /@lezer/javascript@1.4.14:
+ resolution: {integrity: sha512-GEdUyspTRgc5dwIGebUk+f3BekvqEWVIYsIuAC3pA8e8wcikGwBZRWRa450L0s8noGWuULwnmi4yjxTnYz9PpA==}
+ dependencies:
+ '@lezer/common': 1.2.1
+ '@lezer/highlight': 1.2.0
+ '@lezer/lr': 1.4.0
+ dev: false
+
+ /@lezer/lr@1.4.0:
+ resolution: {integrity: sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==}
+ dependencies:
+ '@lezer/common': 1.2.1
+ dev: false
+
/@neoconfetti/svelte@1.0.0:
resolution: {integrity: sha512-SmksyaJAdSlMa9cTidVSIqYo1qti+WTsviNDwgjNVm+KQ3DRP2Df9umDIzC4vCcpEYY+chQe0i2IKnLw03AT8Q==}
dev: true
@@ -610,7 +756,7 @@ packages:
resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==}
dev: true
- /@rollup/plugin-commonjs@25.0.7(rollup@4.10.0):
+ /@rollup/plugin-commonjs@25.0.7(rollup@4.14.1):
resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -619,16 +765,16 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.10.0)
+ '@rollup/pluginutils': 5.1.0(rollup@4.14.1)
commondir: 1.0.1
estree-walker: 2.0.2
glob: 8.1.0
is-reference: 1.2.1
- magic-string: 0.30.5
- rollup: 4.10.0
+ magic-string: 0.30.9
+ rollup: 4.14.1
dev: true
- /@rollup/plugin-json@6.1.0(rollup@4.10.0):
+ /@rollup/plugin-json@6.1.0(rollup@4.14.1):
resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -637,11 +783,11 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.10.0)
- rollup: 4.10.0
+ '@rollup/pluginutils': 5.1.0(rollup@4.14.1)
+ rollup: 4.14.1
dev: true
- /@rollup/plugin-node-resolve@15.2.3(rollup@4.10.0):
+ /@rollup/plugin-node-resolve@15.2.3(rollup@4.14.1):
resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -650,16 +796,16 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.10.0)
+ '@rollup/pluginutils': 5.1.0(rollup@4.14.1)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-builtin-module: 3.2.1
is-module: 1.0.0
resolve: 1.22.8
- rollup: 4.10.0
+ rollup: 4.14.1
dev: true
- /@rollup/pluginutils@5.1.0(rollup@4.10.0):
+ /@rollup/pluginutils@5.1.0(rollup@4.14.1):
resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -671,227 +817,123 @@ packages:
'@types/estree': 1.0.5
estree-walker: 2.0.2
picomatch: 2.3.1
- rollup: 4.10.0
+ rollup: 4.14.1
dev: true
- /@rollup/rollup-android-arm-eabi@4.10.0:
- resolution: {integrity: sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==}
+ /@rollup/rollup-android-arm-eabi@4.14.1:
+ resolution: {integrity: sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-android-arm-eabi@4.13.2:
- resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-android-arm64@4.10.0:
- resolution: {integrity: sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==}
+ /@rollup/rollup-android-arm64@4.14.1:
+ resolution: {integrity: sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-android-arm64@4.13.2:
- resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-darwin-arm64@4.10.0:
- resolution: {integrity: sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==}
+ /@rollup/rollup-darwin-arm64@4.14.1:
+ resolution: {integrity: sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-darwin-arm64@4.13.2:
- resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-darwin-x64@4.10.0:
- resolution: {integrity: sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==}
+ /@rollup/rollup-darwin-x64@4.14.1:
+ resolution: {integrity: sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-darwin-x64@4.13.2:
- resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm-gnueabihf@4.10.0:
- resolution: {integrity: sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==}
+ /@rollup/rollup-linux-arm-gnueabihf@4.14.1:
+ resolution: {integrity: sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm-gnueabihf@4.13.2:
- resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm64-gnu@4.10.0:
- resolution: {integrity: sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==}
+ /@rollup/rollup-linux-arm64-gnu@4.14.1:
+ resolution: {integrity: sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm64-gnu@4.13.2:
- resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==}
+ /@rollup/rollup-linux-arm64-musl@4.14.1:
+ resolution: {integrity: sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm64-musl@4.10.0:
- resolution: {integrity: sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-arm64-musl@4.13.2:
- resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-powerpc64le-gnu@4.13.2:
- resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==}
+ /@rollup/rollup-linux-powerpc64le-gnu@4.14.1:
+ resolution: {integrity: sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==}
cpu: [ppc64le]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-riscv64-gnu@4.10.0:
- resolution: {integrity: sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==}
+ /@rollup/rollup-linux-riscv64-gnu@4.14.1:
+ resolution: {integrity: sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-riscv64-gnu@4.13.2:
- resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-s390x-gnu@4.13.2:
- resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==}
+ /@rollup/rollup-linux-s390x-gnu@4.14.1:
+ resolution: {integrity: sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-x64-gnu@4.10.0:
- resolution: {integrity: sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==}
+ /@rollup/rollup-linux-x64-gnu@4.14.1:
+ resolution: {integrity: sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-x64-gnu@4.13.2:
- resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==}
+ /@rollup/rollup-linux-x64-musl@4.14.1:
+ resolution: {integrity: sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-x64-musl@4.10.0:
- resolution: {integrity: sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-linux-x64-musl@4.13.2:
- resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-win32-arm64-msvc@4.10.0:
- resolution: {integrity: sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==}
+ /@rollup/rollup-win32-arm64-msvc@4.14.1:
+ resolution: {integrity: sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-win32-arm64-msvc@4.13.2:
- resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-win32-ia32-msvc@4.10.0:
- resolution: {integrity: sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==}
+ /@rollup/rollup-win32-ia32-msvc@4.14.1:
+ resolution: {integrity: sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-win32-ia32-msvc@4.13.2:
- resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-win32-x64-msvc@4.10.0:
- resolution: {integrity: sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@rollup/rollup-win32-x64-msvc@4.13.2:
- resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==}
+ /@rollup/rollup-win32-x64-msvc@4.14.1:
+ resolution: {integrity: sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==}
cpu: [x64]
os: [win32]
requiresBuild: true
@@ -920,11 +962,11 @@ packages:
peerDependencies:
'@sveltejs/kit': ^2.4.0
dependencies:
- '@rollup/plugin-commonjs': 25.0.7(rollup@4.10.0)
- '@rollup/plugin-json': 6.1.0(rollup@4.10.0)
- '@rollup/plugin-node-resolve': 15.2.3(rollup@4.10.0)
+ '@rollup/plugin-commonjs': 25.0.7(rollup@4.14.1)
+ '@rollup/plugin-json': 6.1.0(rollup@4.14.1)
+ '@rollup/plugin-node-resolve': 15.2.3(rollup@4.14.1)
'@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.2.7)
- rollup: 4.10.0
+ rollup: 4.14.1
dev: true
/@sveltejs/kit@2.5.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.2.7):
@@ -944,14 +986,14 @@ packages:
esm-env: 1.0.0
import-meta-resolve: 4.0.0
kleur: 4.1.5
- magic-string: 0.30.5
+ magic-string: 0.30.9
mrmime: 2.0.0
sade: 1.8.1
set-cookie-parser: 2.6.0
sirv: 2.0.4
svelte: 4.2.8
tiny-glob: 0.2.9
- vite: 5.2.7
+ vite: 5.2.7(terser@5.30.3)
dev: true
/@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.2.7):
@@ -965,7 +1007,7 @@ packages:
'@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.8)(vite@5.2.7)
debug: 4.3.4
svelte: 4.2.8
- vite: 5.2.7
+ vite: 5.2.7(terser@5.30.3)
transitivePeerDependencies:
- supports-color
dev: true
@@ -981,10 +1023,10 @@ packages:
debug: 4.3.4
deepmerge: 4.3.1
kleur: 4.1.5
- magic-string: 0.30.5
+ magic-string: 0.30.9
svelte: 4.2.8
svelte-hmr: 0.15.3(svelte@4.2.8)
- vite: 5.2.7
+ vite: 5.2.7(terser@5.30.3)
vitefu: 0.2.5(vite@5.2.7)
transitivePeerDependencies:
- supports-color
@@ -1002,6 +1044,10 @@ packages:
/@types/estree@1.0.5:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+ /@types/json-schema@7.0.15:
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+ dev: true
+
/@types/pug@2.0.10:
resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
dev: true
@@ -1010,8 +1056,30 @@ packages:
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
dev: true
- /acorn@8.11.2:
- resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
+ /@uiw/codemirror-theme-github@4.21.25(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2):
+ resolution: {integrity: sha512-RDS9s/Lbi1uIvupIXNiREFMryZjd7X4xRMKzmf6NfZuXWVdDATTA1b5smzxXldJgl8bY4QoOevczRncFTVRfGA==}
+ dependencies:
+ '@uiw/codemirror-themes': 4.21.25(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)
+ transitivePeerDependencies:
+ - '@codemirror/language'
+ - '@codemirror/state'
+ - '@codemirror/view'
+ dev: false
+
+ /@uiw/codemirror-themes@4.21.25(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2):
+ resolution: {integrity: sha512-C3t/voELxQj0eaVhrlgzaOnSALNf8bOcRbL5xN9r2+RkdsbFOmvNl3VVhlxEB7PSGc1jUZwVO4wQsB2AP178ag==}
+ peerDependencies:
+ '@codemirror/language': '>=6.0.0'
+ '@codemirror/state': '>=6.0.0'
+ '@codemirror/view': '>=6.0.0'
+ dependencies:
+ '@codemirror/language': 6.10.1
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.26.2
+ dev: false
+
+ /acorn@8.11.3:
+ resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -1100,7 +1168,6 @@ packages:
/buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
- dev: true
/builtin-modules@3.3.0:
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
@@ -1155,10 +1222,24 @@ packages:
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
'@types/estree': 1.0.5
- acorn: 8.11.2
+ acorn: 8.11.3
estree-walker: 3.0.3
periscopic: 3.1.0
+ /codemirror@6.0.1(@lezer/common@1.2.1):
+ resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==}
+ dependencies:
+ '@codemirror/autocomplete': 6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.1)(@lezer/common@1.2.1)
+ '@codemirror/commands': 6.3.3
+ '@codemirror/language': 6.10.1
+ '@codemirror/lint': 6.5.0
+ '@codemirror/search': 6.5.6
+ '@codemirror/state': 6.4.1
+ '@codemirror/view': 6.26.1
+ transitivePeerDependencies:
+ - '@lezer/common'
+ dev: false
+
/color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
dependencies:
@@ -1220,9 +1301,13 @@ packages:
engines: {node: '>=14'}
dev: true
+ /commander@12.0.0:
+ resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==}
+ engines: {node: '>=18'}
+ dev: true
+
/commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
- dev: true
/commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
@@ -1242,6 +1327,10 @@ packages:
engines: {node: '>= 0.6'}
dev: true
+ /crelt@1.0.6:
+ resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
+ dev: false
+
/css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
dependencies:
@@ -1544,7 +1633,7 @@ packages:
entities: 4.5.0
param-case: 3.0.4
relateurl: 0.2.7
- terser: 5.30.2
+ terser: 5.30.3
dev: true
/import-fresh@3.3.0:
@@ -1634,6 +1723,12 @@ packages:
esprima: 4.0.1
dev: false
+ /json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dev: true
+
/kleur@4.1.5:
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
engines: {node: '>=6'}
@@ -1646,6 +1741,10 @@ packages:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
dev: false
+ /lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: true
+
/lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
dependencies:
@@ -1659,8 +1758,8 @@ packages:
yallist: 4.0.0
dev: true
- /magic-string@0.30.5:
- resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
+ /magic-string@0.30.9:
+ resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==}
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
@@ -1864,51 +1963,36 @@ packages:
glob: 7.2.3
dev: true
- /rollup@4.10.0:
- resolution: {integrity: sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
+ /rollup-plugin-type-as-json-schema@0.2.6:
+ resolution: {integrity: sha512-oxnqPK25qv5AqMOxZELQOGVFeidJJLBbd6Hngn4kbTGP9qH+CEw4SUW8hwt8bEVBGQPaL7wLYZXkVXYJgnlZ1Q==}
+ engines: {node: '>=14'}
dependencies:
- '@types/estree': 1.0.5
- optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.10.0
- '@rollup/rollup-android-arm64': 4.10.0
- '@rollup/rollup-darwin-arm64': 4.10.0
- '@rollup/rollup-darwin-x64': 4.10.0
- '@rollup/rollup-linux-arm-gnueabihf': 4.10.0
- '@rollup/rollup-linux-arm64-gnu': 4.10.0
- '@rollup/rollup-linux-arm64-musl': 4.10.0
- '@rollup/rollup-linux-riscv64-gnu': 4.10.0
- '@rollup/rollup-linux-x64-gnu': 4.10.0
- '@rollup/rollup-linux-x64-musl': 4.10.0
- '@rollup/rollup-win32-arm64-msvc': 4.10.0
- '@rollup/rollup-win32-ia32-msvc': 4.10.0
- '@rollup/rollup-win32-x64-msvc': 4.10.0
- fsevents: 2.3.3
+ lodash: 4.17.21
+ ts-json-schema-generator: 1.5.1
dev: true
- /rollup@4.13.2:
- resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==}
+ /rollup@4.14.1:
+ resolution: {integrity: sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.13.2
- '@rollup/rollup-android-arm64': 4.13.2
- '@rollup/rollup-darwin-arm64': 4.13.2
- '@rollup/rollup-darwin-x64': 4.13.2
- '@rollup/rollup-linux-arm-gnueabihf': 4.13.2
- '@rollup/rollup-linux-arm64-gnu': 4.13.2
- '@rollup/rollup-linux-arm64-musl': 4.13.2
- '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2
- '@rollup/rollup-linux-riscv64-gnu': 4.13.2
- '@rollup/rollup-linux-s390x-gnu': 4.13.2
- '@rollup/rollup-linux-x64-gnu': 4.13.2
- '@rollup/rollup-linux-x64-musl': 4.13.2
- '@rollup/rollup-win32-arm64-msvc': 4.13.2
- '@rollup/rollup-win32-ia32-msvc': 4.13.2
- '@rollup/rollup-win32-x64-msvc': 4.13.2
+ '@rollup/rollup-android-arm-eabi': 4.14.1
+ '@rollup/rollup-android-arm64': 4.14.1
+ '@rollup/rollup-darwin-arm64': 4.14.1
+ '@rollup/rollup-darwin-x64': 4.14.1
+ '@rollup/rollup-linux-arm-gnueabihf': 4.14.1
+ '@rollup/rollup-linux-arm64-gnu': 4.14.1
+ '@rollup/rollup-linux-arm64-musl': 4.14.1
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.14.1
+ '@rollup/rollup-linux-riscv64-gnu': 4.14.1
+ '@rollup/rollup-linux-s390x-gnu': 4.14.1
+ '@rollup/rollup-linux-x64-gnu': 4.14.1
+ '@rollup/rollup-linux-x64-musl': 4.14.1
+ '@rollup/rollup-win32-arm64-msvc': 4.14.1
+ '@rollup/rollup-win32-ia32-msvc': 4.14.1
+ '@rollup/rollup-win32-x64-msvc': 4.14.1
fsevents: 2.3.3
dev: true
@@ -1925,6 +2009,11 @@ packages:
mri: 1.2.0
dev: true
+ /safe-stable-stringify@2.4.3:
+ resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
+ engines: {node: '>=10'}
+ dev: true
+
/sander@0.5.1:
resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==}
dependencies:
@@ -2023,12 +2112,10 @@ packages:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
- dev: true
/source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
- dev: true
/sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
@@ -2045,6 +2132,10 @@ packages:
resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
dev: false
+ /style-mod@4.1.2:
+ resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==}
+ dev: false
+
/super-sitemap@0.14.14(svelte@4.2.8):
resolution: {integrity: sha512-ZrxbwYD1+7n+CHZaFwt3XW3a74gpLATLaDpH4yN67a0kHRwY8Tm0eLVeIuG07PXfzxCroWj8o60G1m4kigHEaw==}
peerDependencies:
@@ -2094,6 +2185,16 @@ packages:
- sugarss
dev: true
+ /svelte-codemirror-editor@1.3.0(codemirror@6.0.1)(svelte@4.2.8):
+ resolution: {integrity: sha512-Y39m9CsL0d30gGYYjJURWjKwAMEyiH42FojYiAXVKneGQ9cntOwOlloEk2Rhyy9ay29rSYYncskbnhAYNokIqw==}
+ peerDependencies:
+ codemirror: ^6.0.0
+ svelte: ^3.0.0 || ^4.0.0
+ dependencies:
+ codemirror: 6.0.1(@lezer/common@1.2.1)
+ svelte: 4.2.8
+ dev: false
+
/svelte-hmr@0.15.3(svelte@4.2.8):
resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==}
engines: {node: ^12.20 || ^14.13.1 || >= 16}
@@ -2143,7 +2244,7 @@ packages:
dependencies:
'@types/pug': 2.0.10
detect-indent: 6.1.0
- magic-string: 0.30.5
+ magic-string: 0.30.9
sorcery: 0.11.0
strip-indent: 3.0.0
svelte: 4.2.8
@@ -2165,7 +2266,7 @@ packages:
'@ampproject/remapping': 2.2.1
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.20
- acorn: 8.11.2
+ acorn: 8.11.3
aria-query: 5.3.0
axobject-query: 3.2.1
code-red: 1.0.4
@@ -2173,7 +2274,7 @@ packages:
estree-walker: 3.0.3
is-reference: 3.0.2
locate-character: 3.0.0
- magic-string: 0.30.5
+ magic-string: 0.30.9
periscopic: 3.1.0
/sveltekit-html-minifier@1.0.3(@sveltejs/kit@2.5.0):
@@ -2209,16 +2310,15 @@ packages:
wordwrapjs: 4.0.1
dev: false
- /terser@5.30.2:
- resolution: {integrity: sha512-vTDjRKYKip4dOFL5VizdoxHTYDfEXPdz5t+FbxCC5Rp2s+KbEO8w5wqMDPgj7CtFKZuzq7PXv28fZoXfqqBVuw==}
+ /terser@5.30.3:
+ resolution: {integrity: sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
'@jridgewell/source-map': 0.3.6
- acorn: 8.11.2
+ acorn: 8.11.3
commander: 2.20.3
source-map-support: 0.5.21
- dev: true
/tiny-glob@0.2.9:
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
@@ -2239,6 +2339,20 @@ packages:
engines: {node: '>=6'}
dev: true
+ /ts-json-schema-generator@1.5.1:
+ resolution: {integrity: sha512-apX5qG2+NA66j7b4AJm8q/DpdTeOsjfh7A3LpKsUiil0FepkNwtN28zYgjrsiiya2/OPhsr/PSjX5FUYg79rCg==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ dependencies:
+ '@types/json-schema': 7.0.15
+ commander: 12.0.0
+ glob: 8.1.0
+ json5: 2.2.3
+ normalize-path: 3.0.0
+ safe-stable-stringify: 2.4.3
+ typescript: 5.4.4
+ dev: true
+
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
dev: true
@@ -2254,6 +2368,12 @@ packages:
hasBin: true
dev: true
+ /typescript@5.4.4:
+ resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+ dev: true
+
/typical@4.0.0:
resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==}
engines: {node: '>=8'}
@@ -2272,10 +2392,10 @@ packages:
dependencies:
ansi-colors: 4.1.3
pathe: 1.1.2
- vite: 5.2.7
+ vite: 5.2.7(terser@5.30.3)
dev: true
- /vite@5.2.7:
+ /vite@5.2.7(terser@5.30.3):
resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -2305,7 +2425,8 @@ packages:
dependencies:
esbuild: 0.20.2
postcss: 8.4.38
- rollup: 4.13.2
+ rollup: 4.14.1
+ terser: 5.30.3
optionalDependencies:
fsevents: 2.3.3
dev: true
@@ -2318,9 +2439,13 @@ packages:
vite:
optional: true
dependencies:
- vite: 5.2.7
+ vite: 5.2.7(terser@5.30.3)
dev: true
+ /w3c-keyname@2.2.8:
+ resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
+ dev: false
+
/wordwrapjs@4.0.1:
resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==}
engines: {node: '>=8.0.0'}